SysChannelGradeServiceImpl.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package com.ydtech.modules.admin.service.impl;
  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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.ydtech.modules.admin.constants.UserConstants;
  8. import com.ydtech.modules.admin.dao.SysChannelGradeMapper;
  9. import com.ydtech.modules.admin.model.po.*;
  10. import com.ydtech.modules.admin.model.vo.AuthSysChannelGradeVo;
  11. import com.ydtech.modules.admin.model.vo.SysChannelGradePageVo;
  12. import com.ydtech.modules.admin.model.vo.SysChannelVo;
  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.protocol.utils.AssertionUtils;
  17. import org.apache.commons.lang3.ObjectUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.Objects;
  24. import java.util.stream.Collectors;
  25. /**
  26. * @author dongxin
  27. * @description 针对表【sys_channel_grade(渠道分组级别表)】的数据库操作Service实现
  28. * @createDate 2024-09-10 17:41:31
  29. */
  30. @Service
  31. public class SysChannelGradeServiceImpl extends ServiceImpl<SysChannelGradeMapper, SysChannelGrade>
  32. implements SysChannelGradeService {
  33. @Autowired
  34. private SysChannelAreaRelationService sysChannelAreaRelationService;
  35. @Autowired
  36. private SysChannelGradeService sysChannelGradeService;
  37. @Autowired
  38. private SysChannelGroupInfoService sysChannelGroupInfoService;
  39. @Override
  40. public List<SysChannelGrade> queryList() {
  41. return list();
  42. }
  43. @Override
  44. public String checkNameUnique(SysChannelGrade sysChannelGrade) {
  45. Long groupId = ObjectUtils.isEmpty(sysChannelGrade.getId()) ? -1L: sysChannelGrade.getId();
  46. QueryWrapper<SysChannelGrade> qw = new QueryWrapper<>();
  47. qw.eq("name", sysChannelGrade.getName());
  48. SysChannelGrade info = this.baseMapper.selectOne(qw);
  49. if (!Objects.isNull(info) && info.getId() != groupId) {
  50. return UserConstants.NOT_UNIQUE;
  51. }
  52. return UserConstants.UNIQUE;
  53. }
  54. @Override
  55. @Transactional
  56. public void authArea(AuthSysChannelGradeVo authSysChannelGradeVo) {
  57. // 删除所有已经授权机构
  58. LambdaQueryWrapper<SysChannelAreaRelation> lqw = new LambdaQueryWrapper<>();
  59. lqw.eq(SysChannelAreaRelation::getGradeId, authSysChannelGradeVo.getId());
  60. sysChannelAreaRelationService.remove(lqw);
  61. List<String> areaIdList = authSysChannelGradeVo.getAreaIdList();
  62. List<SysChannelAreaRelation> relations = new ArrayList<>();
  63. if (CollUtil.isNotEmpty(areaIdList)) {
  64. for (String areaId : areaIdList) {
  65. SysChannelAreaRelation sysChannelAreaRelation = new SysChannelAreaRelation();
  66. sysChannelAreaRelation.setGradeId(authSysChannelGradeVo.getId());
  67. sysChannelAreaRelation.setAreaId(areaId);
  68. relations.add(sysChannelAreaRelation);
  69. }
  70. sysChannelAreaRelationService.saveBatch(relations);
  71. }
  72. }
  73. @Override
  74. @Transactional
  75. public void delete(Long id) {
  76. // 判断是否有费用设置
  77. LambdaQueryWrapper<SysChannelGroupInfo> infoWapper = new LambdaQueryWrapper<>();
  78. infoWapper.eq(SysChannelGroupInfo::getGradeId, id);
  79. long count = sysChannelGroupInfoService.count(infoWapper);
  80. AssertionUtils.isFail(count > 0,"该分组已经设置费用,请先删除费用分组");
  81. // 删除所有授权机构
  82. LambdaQueryWrapper<SysChannelAreaRelation> wrapper = new LambdaQueryWrapper<>();
  83. wrapper.eq(SysChannelAreaRelation::getGradeId, id);
  84. sysChannelAreaRelationService.remove(wrapper);
  85. // 删除渠道分组级别
  86. sysChannelGradeService.removeById(id);
  87. }
  88. @Override
  89. public Page<SysChannelGrade> queryPage(Page page, SysChannelGradePageVo sysChannelGradePageVo) {
  90. LambdaQueryWrapper<SysChannelGrade> wrapper = new LambdaQueryWrapper<>();
  91. wrapper.eq(!ObjectUtils.isEmpty(sysChannelGradePageVo.getName()), SysChannelGrade::getName,
  92. sysChannelGradePageVo.getName());
  93. Page<SysChannelGrade> channelGradePage = page(page, wrapper);
  94. return channelGradePage;
  95. }
  96. @Override
  97. public List<SysChannelAreaRelation> queryRelation(SysChannelVo sysChannelVo) {
  98. List<SysChannelAreaRelation> relationList = sysChannelAreaRelationService.queryRelationList(sysChannelVo);
  99. if(CollUtil.isEmpty(relationList)){
  100. return relationList;
  101. }else{
  102. for (SysChannelAreaRelation sysChannelAreaRelation : relationList) {
  103. sysChannelAreaRelation.setName(sysChannelAreaRelation.getName() + "--" + sysChannelAreaRelation.getAreaId());
  104. }
  105. return relationList;
  106. }
  107. }
  108. }