SysChannelGradeController.java 5.7 KB

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