EvaluateManageController.java 6.3 KB

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