using Grpc.Core; using Microsoft.Extensions.Logging; using ZR.Service.IService; namespace ZR.Admin.Grpc.Services { public class MyDiaryService(ILogger logger, IMyDiaryService myDiaryService) : MyDiary.MyDiaryBase { public override async Task 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 return reply; } public override async Task 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; } } }