EvaluateManageController.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.xjrsoft.module.evaluate.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import cn.hutool.core.bean.BeanUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  8. import com.xjrsoft.common.model.result.RT;
  9. import com.xjrsoft.common.page.ConventPage;
  10. import com.xjrsoft.common.page.PageOutput;
  11. import com.xjrsoft.common.utils.VoToColumnUtil;
  12. import com.xjrsoft.module.evaluate.dto.AddEvaluateManageDto;
  13. import com.xjrsoft.module.evaluate.dto.EvaluateManageChangeStatusDto;
  14. import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
  15. import com.xjrsoft.module.evaluate.dto.MakeEvaluateItemDto;
  16. import com.xjrsoft.module.evaluate.dto.UpdateEvaluateManageDto;
  17. import com.xjrsoft.module.evaluate.entity.EvaluateManage;
  18. import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
  19. import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
  20. import com.xjrsoft.module.evaluate.service.IEvaluateTemplateService;
  21. import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
  22. import com.xjrsoft.module.evaluate.vo.EvaluateManageVo;
  23. import com.xjrsoft.module.evaluate.vo.MakeEvaluateItemVo;
  24. import com.xjrsoft.module.system.entity.DictionaryDetail;
  25. import io.swagger.annotations.Api;
  26. import io.swagger.annotations.ApiOperation;
  27. import lombok.AllArgsConstructor;
  28. import org.springframework.web.bind.annotation.DeleteMapping;
  29. import org.springframework.web.bind.annotation.GetMapping;
  30. import org.springframework.web.bind.annotation.PostMapping;
  31. import org.springframework.web.bind.annotation.PutMapping;
  32. import org.springframework.web.bind.annotation.RequestBody;
  33. import org.springframework.web.bind.annotation.RequestMapping;
  34. import org.springframework.web.bind.annotation.RequestParam;
  35. import org.springframework.web.bind.annotation.RestController;
  36. import javax.validation.Valid;
  37. import java.util.Date;
  38. import java.util.List;
  39. /**
  40. * @title: 评价管理
  41. * @Author dzx
  42. * @Date: 2024-01-16
  43. * @Version 1.0
  44. */
  45. @RestController
  46. @RequestMapping("/evaluate" + "/evaluateManage")
  47. @Api(value = "/evaluate" + "/evaluateManage",tags = "评价管理代码")
  48. @AllArgsConstructor
  49. public class EvaluateManageController {
  50. private final IEvaluateManageService evaluateManageService;
  51. private final IEvaluateTemplateService evaluateTemplateService;
  52. @GetMapping(value = "/page")
  53. @ApiOperation(value="评价管理列表(分页)")
  54. @SaCheckPermission("evaluatemanage:detail")
  55. public RT<PageOutput<EvaluateManagePageVo>> page(@Valid EvaluateManagePageDto dto){
  56. Page<EvaluateManagePageVo> page = evaluateManageService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
  57. PageOutput<EvaluateManagePageVo> pageOutput = ConventPage.getPageOutput(page, EvaluateManagePageVo.class);
  58. return RT.ok(pageOutput);
  59. }
  60. @GetMapping(value = "/info")
  61. @ApiOperation(value="根据id查询评价管理信息")
  62. @SaCheckPermission("evaluatemanage:detail")
  63. public RT<EvaluateManageVo> info(@RequestParam Long id){
  64. MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
  65. evaluateManageMPJLambdaWrapper
  66. .select(EvaluateManage::getId)
  67. .selectAs(EvaluateManage::getSortCode, EvaluateManageVo::getSortCode)
  68. .selectAs(EvaluateTemplate::getEvaluateType, EvaluateManageVo::getEvaluateType)
  69. .select(EvaluateManage.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageVo.class).contains(x.getProperty()))
  70. .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, EvaluateManage::getCreateFrequency,ext->ext
  71. .selectAs(DictionaryDetail::getName,EvaluateManageVo::getCreateFrequencyCn))
  72. .leftJoin(EvaluateTemplate.class, EvaluateTemplate::getId, EvaluateManage::getEvaluateTemplateId)
  73. .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, EvaluateTemplate::getEvaluateType,ext->ext
  74. .selectAs(DictionaryDetail::getName,EvaluateManageVo::getEvaluateTypeCn))
  75. .eq(EvaluateManage::getId, id)
  76. .disableSubLogicDel();
  77. EvaluateManageVo evaluateManageVo = evaluateManageService.selectJoinOne(EvaluateManageVo.class, evaluateManageMPJLambdaWrapper);
  78. if (evaluateManageVo == null) {
  79. return RT.error("找不到此数据!");
  80. }
  81. return RT.ok(evaluateManageVo);
  82. }
  83. @PostMapping(value = "/change-status")
  84. @ApiOperation(value="修改状态")
  85. @SaCheckPermission("evaluatemanage:edit")
  86. public RT<Boolean> changeStatus(@Valid @RequestBody EvaluateManageChangeStatusDto dto){
  87. if(dto.getStatus() == 1){
  88. Boolean release = evaluateManageService.release(dto.getId());
  89. return RT.ok(release);
  90. }
  91. if(dto.getStatus() == 0){
  92. EvaluateManage evaluateManage = BeanUtil.toBean(dto, EvaluateManage.class);
  93. evaluateManage.setModifyDate(new Date());
  94. evaluateManage.setModifyUserId(StpUtil.getLoginIdAsLong());
  95. return RT.ok(evaluateManageService.updateById(evaluateManage));
  96. }
  97. if(dto.getStatus() == 2){
  98. return RT.ok(evaluateManageService.updateById(new EvaluateManage(){{
  99. setId(dto.getId());
  100. setCreateDate(new Date());
  101. setCreateUserId(StpUtil.getLoginIdAsLong());
  102. setStatus(1);
  103. }}));
  104. }
  105. return RT.ok(true);
  106. }
  107. @PostMapping
  108. @ApiOperation(value = "新增评价管理")
  109. @SaCheckPermission("evaluatemanage:add")
  110. public RT<Boolean> add(@Valid @RequestBody AddEvaluateManageDto dto){
  111. EvaluateManage evaluateManage = BeanUtil.toBean(dto, EvaluateManage.class);
  112. evaluateManage.setCreateDate(new Date());
  113. evaluateManage.setCreateUserId(StpUtil.getLoginIdAsLong());
  114. //获取sortCode的最大数量
  115. QueryWrapper<EvaluateManage> queryWrapperSortcode = new QueryWrapper<>();
  116. queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
  117. EvaluateManage e = evaluateManageService.getOne(queryWrapperSortcode);
  118. int sortCode = e.getSortCode() + 1;
  119. evaluateManage.setSortCode(sortCode);
  120. boolean isSuccess = evaluateManageService.add(evaluateManage);
  121. return RT.ok(isSuccess);
  122. }
  123. @PutMapping
  124. @ApiOperation(value = "修改评价管理")
  125. @SaCheckPermission("evaluatemanage:edit")
  126. public RT<Boolean> update(@Valid @RequestBody UpdateEvaluateManageDto dto){
  127. EvaluateManage evaluateManage = BeanUtil.toBean(dto, EvaluateManage.class);
  128. return RT.ok(evaluateManageService.update(evaluateManage));
  129. }
  130. @DeleteMapping
  131. @ApiOperation(value = "删除评价管理")
  132. @SaCheckPermission("evaluatemanage:delete")
  133. public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
  134. return RT.ok(evaluateManageService.delete(ids));
  135. }
  136. }