This commit is contained in:
Putoo
2026-07-10 16:39:52 +08:00
parent cfe6612a7a
commit 9de24634e3
31 changed files with 760 additions and 39 deletions

View File

@@ -103,6 +103,94 @@ public class TaskController : ControllerBase
{ npc = npcInfo, data = data, talkMsg, taskState, btnTips = taskInfo.btnTips, toGoods, retGoods });
}
/// <summary>
/// 获取个人任务
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetUserTask()
{
string userId = StateHelper.userId;
var data = await _taskService.GetUserTaskData(userId);
return PoAction.Ok(data);
}
/// <summary>
/// 重置任务
/// </summary>
/// <param name="task"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> RestTask(int task)
{
string userId = StateHelper.userId;
var onTaskInfo = await _taskService.GetUserTaskInfo(userId,task);
if (onTaskInfo == null)
{
return PoAction.Message("暂无任务!");
}
int nextId = (int)onTaskInfo.itemId + 1;
var nextTask = await _taskService.GetTaskItemInfo(nextId);
if (nextTask == null)
{
return PoAction.Message("当前任务已结束,无需重置!");
}
var result = await _taskService.GetUserTaskModel(userId, nextTask);
if (result.result.result)
{
return PoAction.Message("任务可完成,无需重置!");
}
await _taskService.ResetNextTask(userId, nextId);
return PoAction.Ok(true);
}
/// <summary>
/// 获取个人任务详情
/// </summary>
/// <param name="taskId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetUserTaskInfo(int taskId)
{
string userId = StateHelper.userId;
var taskInfo = await _taskService.GetTaskItemInfo(taskId);
if (taskInfo == null)
{
return PoAction.Message("任务不存在!");
}
string talkMsg = taskInfo.taskTips;
int taskState = 1;
var userOnTask = await _taskService.GetUserTaskInfo(userId, (int)taskInfo.taskId);
if (userOnTask != null)
{
if (userOnTask.itemId == taskId)
{
var nextInfo = await _taskService.GetTaskItemInfo(taskId + 1);
if (taskInfo == null)
{
taskState = 100;
}
else
{
talkMsg = taskInfo.nextTips;
taskInfo = nextInfo;
}
}
}
var data = await _taskService.GetUserTaskModel(userId, taskInfo);
int toGoods = await _goodsService.GetUserGoodsCount(userId, GameConfig.GameGetTaskGoods);
int retGoods = await _goodsService.GetUserGoodsCount(userId, GameConfig.GameRetTaskGoods);
return PoAction.Ok(new
{ data = data, talkMsg, taskState, toGoods, retGoods });
}
/// <summary>
/// 完成任务
/// </summary>
@@ -175,6 +263,7 @@ public class TaskController : ControllerBase
}
message = message.TrimEnd(',');
await GameBus.UpdateBag(userId, 1, award, "完成任务");//发放奖励
}
return PoAction.Ok(true, message);