diff --git a/src/main/java/com/zh/project0512/controller/TaskController.java b/src/main/java/com/zh/project0512/controller/TaskController.java new file mode 100644 index 0000000..6352723 --- /dev/null +++ b/src/main/java/com/zh/project0512/controller/TaskController.java @@ -0,0 +1,146 @@ +package com.zh.project0512.controller; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zh.project0512.model.Reference; +import com.zh.project0512.model.RewardRule; +import com.zh.project0512.model.Task; +import com.zh.project0512.model.TaskTag; +import com.zh.project0512.service.*; +import com.zh.project0512.utils.JwtUtil; +import com.zh.project0512.utils.MybatisPlusUtil; +import com.zh.project0512.utils.result.HttpStatusEnum; +import com.zh.project0512.utils.result.Result; +import io.jsonwebtoken.Claims; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import javax.validation.constraints.DecimalMin; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import java.util.*; + +/** + *
+ * 前端控制器 + *
+ * + * @author zh + * @since 2022-05-21 + */ +@Tag(name="任务管理") +@Validated +@RestController +@RequestMapping("/task") +public class TaskController { + @Autowired + private ITaskService taskService; + @Autowired + private ITaskTagService taskTagService; + @Autowired + private ITaskBrandService taskBrandService; + @Autowired + private ITaskReferenceService taskReferenceService; + @Autowired + private IRewardRuleService rewardRuleService; + @Autowired + private IRewardRuleTemplateService rewardRuleTemplateService; + + @Operation(summary = "新增") + @PostMapping("/add") + public Result add(@Validated @RequestBody Task task) { + taskService.save(task); + int id = task.getId(); + taskTagService.addGroup(task.getTagList(), id); + taskBrandService.addGroup(task.getReferenceList(), id); + taskReferenceService.addGroup(task.getBrandList(), id); + return Result.success("添加完成"); + } + + @Data + static class DelTaskParam { + @NotNull(message = "id不能为空") + @Min(value = 1, message = "id最小值为1") + @Schema(title = "任务id") + private Integer id; + } + @Operation(summary = "删除") + @PostMapping("/del") + public Result del(@Validated @RequestBody DelTaskParam param) { + return MybatisPlusUtil.sqlResult(taskService.removeById(param.getId()), "删除"); + } + + @Operation(summary = "列表") + @PostMapping("/list") + public Result list(@RequestBody(required = false) JSONObject obj, + @RequestHeader(required = false,value="token") @Parameter(name="用户token",description = "关联用户信息") String token) { + Claims claims = new JwtUtil().parseJWT(token); + String openid = null; + if(claims != null){ + openid =claims.getId(); + } + IPage ipage = taskService.taskIdList(MybatisPlusUtil.SetPage(obj)); + List taskIdList = ipage.getRecords(); + if(taskIdList.size()>0){ + ipage.setRecords(taskService.taskList(openid,taskIdList)); + } + return Result.success(ipage); + } + + @Data + static class DetTaskParam { + @NotNull(message = "id不能为空") + @Min(value = 1, message = "id最小值为1") + @Schema(title = "任务id") + private Integer id; + } + + @Operation(summary = "详情") + @PostMapping("/detail") + public Result detail(@Validated @RequestBody DetTaskParam param) { + int id =param.getId(); + Task task = taskService.getById(id); + if (null == task) { + return Result.fail(HttpStatusEnum.NOT_FOUND); + } + List tagList = taskTagService.selByTaskId(id); + List brandList = taskBrandService.selByTaskId(id); + List