package com.ruoyi.web.controller.api; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.BasePage; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.model.TMission; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.service.TMissionService; import com.ruoyi.system.vo.MissionTotalVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; /** *

* 任务管理 前端控制器 *

* * @author xiaochen * @since 2025-09-28 */ @RestController @RequestMapping("") @Api(tags = "任务App") public class TMissionController { private final TokenService tokenService; private final TAppUserService appUserService; private final TMissionService missionService; private final RedisCache redisCache; @Autowired public TMissionController(TokenService tokenService, TAppUserService appUserService, TMissionService missionService,RedisCache redisCache) { this.tokenService = tokenService; this.appUserService = appUserService; this.missionService = missionService; this.redisCache = redisCache; } @ApiOperation(value = "获取任务列表--任务汇总", response = MissionTotalVo.class) @PostMapping(value = "/api/t-mission/missionTotal") public R missionTotal() { String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.missionTotal(userId)); } /** * 获取任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--待执行任务", response = TMission.class) @PostMapping(value = "/api/t-mission/pageNowList") public R> pageList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.pageNowList(query,userId)); } /** * 获取任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--抢单任务", response = TMission.class) @PostMapping(value = "/api/t-mission/pageGrabList") public R> pageGrabList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); return R.ok(missionService.pageGrabList(query)); } /** * 获取任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--历史任务", response = TMission.class) @PostMapping(value = "/api/t-mission/pageHistoryList") public R> pageHistoryList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.pageHistoryList(query,userId)); } /** * 添加任务 */ @ApiOperation(value = "获取任务列表--添加任务", response = TMission.class) @PostMapping(value = "/api/t-mission/addMission") public R addMission(@RequestBody String param) { TMission tMission = JSON.parseObject(param, TMission.class); String userId = tokenService.getLoginUserApplet().getUserId(); TAppUser appUser = appUserService.getById(userId); tMission.setCommitUserId(userId); tMission.setCommitTime(LocalDateTime.now()); tMission.setCommitUserName(appUser.getNickName()); tMission.setCommitType(2); tMission.setIsMissionPool(0); missionService.save(tMission); return R.ok(tMission.getId()); } /** * 抢单任务 */ @ApiOperation(value = "获取任务列表--抢单任务", response = TMission.class) @PostMapping(value = "/api/t-mission/grabMission") public R grabMission(@RequestBody String param) { String missionId = JSON.parseObject(param, String.class); String userId = tokenService.getLoginUserApplet().getUserId(); missionService.grabMission(missionId,userId); return R.ok(); } /** * 申请支援 */ @ApiOperation(value = "获取任务列表--申请支援", response = TMission.class) @PostMapping(value = "/api/t-mission/requestSupport") public R requestSupport(@RequestBody String param) { String missionId = JSON.parseObject(param, String.class); String userId = tokenService.getLoginUserApplet().getUserId(); missionService.grabMission(missionId,userId); return R.ok(); } /** * 完成任务 */ @ApiOperation(value = "获取任务列表--完成任务汇报", response = TMission.class) @PostMapping(value = "/api/t-mission/successMission") public R successMission(@RequestBody String param) { String missionId = JSON.parseObject(param, String.class); String userId = tokenService.getLoginUserApplet().getUserId(); missionService.successMission(missionId,userId); return R.ok(); } }