diff --git a/Build_God_Api/Build_God_Api/Services/DailyMissionService.cs b/Build_God_Api/Build_God_Api/Services/DailyMissionService.cs index 63dccab..6ad9733 100644 --- a/Build_God_Api/Build_God_Api/Services/DailyMissionService.cs +++ b/Build_God_Api/Build_God_Api/Services/DailyMissionService.cs @@ -78,11 +78,13 @@ namespace Build_God_Api.Services public class DailyMissionService( ISqlSugarClient db, IBagService bagService, + IChatService chatService, ILogger logger ) : IDailyMissionService { private readonly ISqlSugarClient _db = db; private readonly IBagService _bagService = bagService; + private readonly IChatService _chatService = chatService; private readonly ILogger _logger = logger; private const int DailyMissionCount = 5; @@ -306,6 +308,9 @@ namespace Build_God_Api.Services dailyMission.Status = DailyMissionStatus.Claimed; await _db.Updateable(dailyMission).ExecuteCommandAsync(); + var claimMessage = $"恭喜!任务【{mission.Title}】已完成,奖励:✨{expReward} 💰{moneyReward}"; + await _chatService.AddMessageAsync(characterId, character.Name, claimMessage, ChatMessageType.System); + _logger.LogInformation("角色 {CharacterId} 领取了任务 {MissionId} 的奖励", characterId, mission.Id); return true; @@ -340,9 +345,18 @@ namespace Build_God_Api.Services if (yesterdayUnclaimedMissions.Any()) { + var charInfo = await _db.Queryable() + .FirstAsync(x => x.Id == characterId); + foreach (var mission in yesterdayUnclaimedMissions) { + var missionConfig = await _db.Queryable().FirstAsync(x => x.Id == mission.MissionId); + var missionName = missionConfig?.Title ?? "每日任务"; await _db.Deleteable().Where(x => x.Id == mission.Id).ExecuteCommandAsync(); + + var expireMessage = $"【{missionName}】由于没有完成已自动过期,并已为您分配新的任务,请按时完成任务吧!"; + await _chatService.AddMessageAsync(characterId, charInfo?.Name ?? "玩家", expireMessage, ChatMessageType.System); + _logger.LogInformation("清理角色 {CharacterId} 的昨日未领取任务 {MissionId}", characterId, mission.Id); } }