77 lines
2.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|