77 lines
2.4 KiB
C#

using Grpc.Core;
using Microsoft.Extensions.Logging;
using ZR.Service.IService;
namespace ZR.Admin.Grpc.Services
{
public class MyDiaryService(ILogger<MyDiaryService> logger, IMyDiaryService myDiaryService) : MyDiary.MyDiaryBase
{
public override async Task<EditReply> Edit(EditRequest request, ServerCallContext context)
{
logger.LogInformation($"接收到来自 {request.UserId} 的请求");
var myDiary = new Model.MyDiary()
{
Content = request.Content,
CreateTime = request.CreateTime.ToDateTime().ToLocalTime(),
UserId = request.UserId
};
var myDiaryToday = await myDiaryService.Queryable()
.Where(it => it.CreateTime.Date == myDiary.CreateTime.Date && it.UserId == myDiary.UserId)
.FirstAsync();
if (myDiaryToday != null)
{
myDiaryToday.Content = myDiary.Content;
await myDiaryService.Updateable(myDiaryToday)
.ExecuteCommandAsync();
}
else
{
await myDiaryService.Insertable(myDiary).ExecuteReturnSnowflakeIdAsync();
}
// 构建并返回回复消息
var reply = new EditReply()
{
ResultMessage = $"日记已记录 来自 gRPC 服务器!"
};
logger.LogInformation($"日记已记录");
// 返回一个 Task<HelloReply>
return reply;
}
public override async Task<QueryReply> Query(QueryRequest request, ServerCallContext context)
{
logger.LogInformation($"接收到来自 {request.UserId} 的请求");
var myDiary = new Model.MyDiary()
{
CreateTime = request.CreateTime.ToDateTime().ToLocalTime(),
UserId = request.UserId
};
var myDiaryToday = await myDiaryService.Queryable()
.Where(it => it.CreateTime.Date == myDiary.CreateTime.Date && it.UserId == myDiary.UserId)
.FirstAsync();
if (myDiaryToday != null)
{
myDiary.Content = myDiaryToday.Content;
}
// 构建并返回回复消息
var reply = new QueryReply()
{
Content = myDiary.Content ?? ""
};
return reply;
}
}
}