|
|
@ -78,11 +78,13 @@ namespace Build_God_Api.Services |
|
|
public class DailyMissionService( |
|
|
public class DailyMissionService( |
|
|
ISqlSugarClient db, |
|
|
ISqlSugarClient db, |
|
|
IBagService bagService, |
|
|
IBagService bagService, |
|
|
|
|
|
IChatService chatService, |
|
|
ILogger<DailyMissionService> logger |
|
|
ILogger<DailyMissionService> logger |
|
|
) : IDailyMissionService |
|
|
) : IDailyMissionService |
|
|
{ |
|
|
{ |
|
|
private readonly ISqlSugarClient _db = db; |
|
|
private readonly ISqlSugarClient _db = db; |
|
|
private readonly IBagService _bagService = bagService; |
|
|
private readonly IBagService _bagService = bagService; |
|
|
|
|
|
private readonly IChatService _chatService = chatService; |
|
|
private readonly ILogger<DailyMissionService> _logger = logger; |
|
|
private readonly ILogger<DailyMissionService> _logger = logger; |
|
|
|
|
|
|
|
|
private const int DailyMissionCount = 5; |
|
|
private const int DailyMissionCount = 5; |
|
|
@ -306,6 +308,9 @@ namespace Build_God_Api.Services |
|
|
dailyMission.Status = DailyMissionStatus.Claimed; |
|
|
dailyMission.Status = DailyMissionStatus.Claimed; |
|
|
await _db.Updateable(dailyMission).ExecuteCommandAsync(); |
|
|
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); |
|
|
_logger.LogInformation("角色 {CharacterId} 领取了任务 {MissionId} 的奖励", characterId, mission.Id); |
|
|
|
|
|
|
|
|
return true; |
|
|
return true; |
|
|
@ -340,9 +345,18 @@ namespace Build_God_Api.Services |
|
|
|
|
|
|
|
|
if (yesterdayUnclaimedMissions.Any()) |
|
|
if (yesterdayUnclaimedMissions.Any()) |
|
|
{ |
|
|
{ |
|
|
|
|
|
var charInfo = await _db.Queryable<Character>() |
|
|
|
|
|
.FirstAsync(x => x.Id == characterId); |
|
|
|
|
|
|
|
|
foreach (var mission in yesterdayUnclaimedMissions) |
|
|
foreach (var mission in yesterdayUnclaimedMissions) |
|
|
{ |
|
|
{ |
|
|
|
|
|
var missionConfig = await _db.Queryable<Mission>().FirstAsync(x => x.Id == mission.MissionId); |
|
|
|
|
|
var missionName = missionConfig?.Title ?? "每日任务"; |
|
|
await _db.Deleteable<CharacterDailyMission>().Where(x => x.Id == mission.Id).ExecuteCommandAsync(); |
|
|
await _db.Deleteable<CharacterDailyMission>().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); |
|
|
_logger.LogInformation("清理角色 {CharacterId} 的昨日未领取任务 {MissionId}", characterId, mission.Id); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|