SysChannelGradeController.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.ydtech.modules.admin.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.core.page.PageResult;
  8. import com.ydtech.modules.admin.constants.UserConstants;
  9. import com.ydtech.modules.admin.model.SysArea;
  10. import com.ydtech.modules.admin.model.po.*;
  11. import com.ydtech.modules.admin.model.vo.*;
  12. import com.ydtech.modules.admin.service.SysAreaService;
  13. import com.ydtech.modules.admin.service.SysChannelAreaRelationService;
  14. import com.ydtech.modules.admin.service.SysChannelGradeService;
  15. import com.ydtech.modules.admin.service.SysChannelGroupInfoService;
  16. import com.ydtech.modules.admin.service.impl.SysAreaServiceImpl;
  17. import com.ydtech.modules.admin.service.impl.SysChannelAreaRelationServiceImpl;
  18. import com.ydtech.modules.admin.service.impl.SysChannelGroupInfoServiceImpl;
  19. import com.ydtech.modules.admin.service.impl.SysChannelGroupServiceImpl;
  20. import com.ydtech.modules.base.controller.BaseController;
  21. import com.ydtech.modules.protocol.utils.AssertionUtils;
  22. import com.ydtech.utils.JudgeUtils;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiOperation;
  25. import org.springframework.beans.BeanUtils;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.validation.annotation.Validated;
  28. import org.springframework.web.bind.annotation.*;
  29. import javax.validation.Valid;
  30. import java.time.LocalDateTime;
  31. import java.util.List;
  32. @Api(tags = "渠道分组管理")
  33. @RestController
  34. @RequestMapping("/sysChannelGrade")
  35. public class SysChannelGradeController extends BaseController {
  36. @Autowired
  37. private SysChannelGradeService sysChannelGradeService;
  38. @Autowired
  39. private SysAreaService sysAreaService;
  40. @Autowired
  41. private SysChannelGroupInfoService sysChannelGroupInfoService;
  42. @Autowired
  43. private SysChannelAreaRelationService sysChannelAreaRelationService;
  44. @PostMapping(value = "/queryList")
  45. @ApiOperation(value = "渠道分组列表")
  46. public HttpResult<Object> queryList(){
  47. return HttpResult.ok(sysChannelGradeService.queryList());
  48. }
  49. @PostMapping(value = "/queryRelationList/{id}")
  50. @ApiOperation(value = "获取关联机构列表")
  51. public HttpResult<Object> queryRelationList(@PathVariable Long id){
  52. return HttpResult.ok(sysChannelGradeService.queryRelationList(id));
  53. }
  54. @PostMapping(value = "/queryRelation")
  55. @ApiOperation(value = "获取关联机构列表")
  56. public HttpResult<Object> queryRelation(@RequestBody SysChannelVo sysChannelVo){
  57. return HttpResult.ok(sysChannelGradeService.queryRelation(sysChannelVo));
  58. }
  59. @PostMapping("/queryPage")
  60. @ApiOperation(value = "渠道分组分页列表")
  61. public HttpResult<PageResult<SysChannelGrade>> queryPage(@RequestBody @Valid SysChannelGradePageVo sysChannelGradePageVo) {
  62. Page page = buildPageRequest(sysChannelGradePageVo.getPageDto());
  63. Page<SysChannelGrade> pageResultHttpResult = sysChannelGradeService.queryPage(page,sysChannelGradePageVo);
  64. return HttpResult.ok(buildPageResponse(pageResultHttpResult));
  65. }
  66. @PostMapping("/grade")
  67. @ApiOperation("添加渠道分组")
  68. public HttpResult save(@RequestBody @Valid AddSysChannelGradeVo addSysChannelGradeVo) {
  69. // 获取当前登录信息
  70. String userName = getUserName();
  71. SysChannelGrade sysChannelGrade = new SysChannelGrade();
  72. BeanUtils.copyProperties(addSysChannelGradeVo, sysChannelGrade);
  73. sysChannelGrade.setCreateTime(LocalDateTime.now());
  74. sysChannelGrade.setCreateBy(userName);
  75. if (UserConstants.NOT_UNIQUE.equals(sysChannelGradeService.checkNameUnique(sysChannelGrade))) {
  76. return HttpResult.error("新增渠道分组'" + sysChannelGrade.getName() + "'失败,渠道分组名称已存在");
  77. }
  78. boolean save = sysChannelGradeService.save(sysChannelGrade);
  79. return JudgeUtils.add(save);
  80. }
  81. @PutMapping("/grade/{id}")
  82. @ApiOperation("修改渠道分组")
  83. public HttpResult modify(@PathVariable Long id, @RequestBody AddSysChannelGradeVo addSysChannelGradeVo) {
  84. // 获取当前登录信息
  85. String userName = getUserName();
  86. SysChannelGrade sysChannelGrade = new SysChannelGrade();
  87. BeanUtils.copyProperties(addSysChannelGradeVo, sysChannelGrade);
  88. sysChannelGrade.setId(id);
  89. sysChannelGrade.setUpdateTime(LocalDateTime.now());
  90. sysChannelGrade.setUpdateBy(userName);
  91. if (UserConstants.NOT_UNIQUE.equals(sysChannelGradeService.checkNameUnique(sysChannelGrade))) {
  92. return HttpResult.error("修改渠道分组'" + sysChannelGrade.getName() + "'失败,渠道分组名称已存在");
  93. }
  94. // 判断是否有费用设置
  95. LambdaQueryWrapper<SysChannelGroupInfo> infoWapper = new LambdaQueryWrapper<>();
  96. infoWapper.eq(SysChannelGroupInfo::getGradeId, id);
  97. List<SysChannelGroupInfo> infos = sysChannelGroupInfoService.list(infoWapper);
  98. for (SysChannelGroupInfo info : infos) {
  99. info.setGradeName(addSysChannelGradeVo.getName());
  100. info.setUpdateBy(userName);
  101. info.setUpdateTime(LocalDateTime.now());
  102. }
  103. sysChannelGroupInfoService.saveOrUpdateBatch(infos);
  104. boolean modify = sysChannelGradeService.saveOrUpdate(sysChannelGrade);
  105. return JudgeUtils.modify(modify);
  106. }
  107. @DeleteMapping("/grade/{id}")
  108. @ApiOperation("删除渠道分组")
  109. public HttpResult delete(@PathVariable Long id) {
  110. sysChannelGradeService.delete(id);
  111. return HttpResult.ok("删除成功");
  112. }
  113. @DeleteMapping("/deleteAuth")
  114. @ApiOperation("删除分组授权机构")
  115. public HttpResult deleteAuth(@RequestBody AuthSysChannelGradeVo authSysChannelGradeVo) {
  116. sysChannelGradeService.deleteAuth(authSysChannelGradeVo);
  117. return HttpResult.ok("删除成功");
  118. }
  119. @PostMapping("/grade/authorized")
  120. @ApiOperation("渠道分组授权机构")
  121. public HttpResult authorized(@RequestBody @Valid AuthSysChannelGradeVo authSysChannelGradeVo) {
  122. // 查询该机构是否有授权
  123. List<String> areaIdList = authSysChannelGradeVo.getAreaIdList();
  124. if(CollUtil.isEmpty(areaIdList)){
  125. // 删除所有已经授权机构
  126. QueryWrapper<SysChannelAreaRelation> wrapper = new QueryWrapper<>();
  127. LambdaQueryWrapper<SysChannelAreaRelation> lqw = new LambdaQueryWrapper<>();
  128. lqw.eq(SysChannelAreaRelation::getGradeId, authSysChannelGradeVo.getId());
  129. sysChannelAreaRelationService.remove(wrapper);
  130. return HttpResult.ok("授权成功");
  131. }
  132. LambdaQueryWrapper<SysChannelGrade> queryWrapper = new LambdaQueryWrapper<>();
  133. queryWrapper.in(SysChannelGrade::getId, areaIdList);
  134. long count = sysChannelGradeService.count(queryWrapper);
  135. AssertionUtils.isFail(count > 0,"已授权的机构不能重复授权");
  136. LambdaQueryWrapper<SysArea> areaWrapper = new LambdaQueryWrapper<>();
  137. areaWrapper.in(SysArea::getId, areaIdList);
  138. List<SysArea> areas = sysAreaService.list(areaWrapper);
  139. AssertionUtils.isFail(areas.size() > 0, "勾选机构不存在");
  140. for (int i = 0; i < areas.size(); i++) {
  141. LambdaQueryWrapper<SysArea> wrapper = new LambdaQueryWrapper<>();
  142. wrapper.eq(SysArea::getUpperCode, areas.get(i).getAreaCode());
  143. long areaCount = sysAreaService.count(wrapper);
  144. AssertionUtils.isFail(areaCount <= 0,"非末级机构,不允许授权!");
  145. }
  146. sysChannelGradeService.authArea(authSysChannelGradeVo);
  147. return HttpResult.ok("授权成功");
  148. }
  149. }