TbCostomerService.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.pj.project.tb_costomer;
  2. import java.util.*;
  3. import java.util.stream.Collectors;
  4. import cn.hutool.core.date.DateUnit;
  5. import cn.hutool.core.date.DateUtil;
  6. import cn.hutool.core.util.StrUtil;
  7. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  8. import com.baomidou.mybatisplus.extension.service.IService;
  9. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10. import com.pj.constants.RoleEnum;
  11. import com.pj.project.tb_district.TbDistrict;
  12. import com.pj.project.tb_district.TbDistrictService;
  13. import com.pj.project.tb_init_permission.TbInitPermission;
  14. import com.pj.project.tb_init_permission.TbInitPermissionService;
  15. import com.pj.project4sp.SP;
  16. import com.pj.project4sp.admin.SpAdmin;
  17. import com.pj.project4sp.admin.SpAdminMapper;
  18. import com.pj.project4sp.admin.SpAdminService;
  19. import com.pj.project4sp.role.SpRole;
  20. import com.pj.project4sp.role.SpRoleMapper;
  21. import com.pj.project4sp.role4permission.SpRolePermissionMapper;
  22. import com.pj.utils.so.SoMap;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import com.pj.utils.sg.*;
  26. import org.springframework.transaction.annotation.Transactional;
  27. import javax.annotation.Resource;
  28. /**
  29. * Service: tb_costomer -- 客户管理
  30. *
  31. * @author qzy
  32. */
  33. @Service
  34. @Transactional
  35. public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer> implements IService<TbCostomer> {
  36. /**
  37. * 底层 Mapper 对象
  38. */
  39. @Autowired
  40. TbCostomerMapper tbCostomerMapper;
  41. @Resource
  42. private SpRoleMapper spRoleMapper;
  43. @Resource
  44. private SpRolePermissionMapper spRolePermissionMapper;
  45. @Resource
  46. private TbInitPermissionService tbInitPermissionService;
  47. @Resource
  48. private SpAdminMapper spAdminMapper;
  49. @Resource
  50. private SpAdminService spAdminService;
  51. /**
  52. * 增
  53. */
  54. int add(TbCostomer t) {
  55. if (!validateName(t)) {
  56. throw new RuntimeException("该企业名称已存在");
  57. }
  58. t.setCreareTime(new Date()).setJudgeContent("平台创建,直接通过").setJudgeTime(new Date());
  59. this.save(t);
  60. SpRole spRole = new SpRole();
  61. spRole.setCustomerId(t.getId()).setInfo("企业/客户管理员")
  62. .setName("管理员").setType("customerAdmin");
  63. spRoleMapper.add(spRole);
  64. long roleId = SP.publicMapper.getPrimarykey();
  65. List<String>codeList=new ArrayList<>();
  66. for (String type : StrUtil.splitTrim(t.getType(), ",")) {
  67. SoMap perSoMap = SoMap.getRequestSoMap();
  68. perSoMap.put("type", type);
  69. List<TbInitPermission>permissions= tbInitPermissionService.getList(perSoMap);
  70. codeList.addAll(permissions.stream().map(TbInitPermission::getCode).distinct().collect(Collectors.toList()));
  71. }
  72. spRolePermissionMapper.saveRolePer(roleId, codeList);
  73. return 1;
  74. }
  75. private boolean validateName(TbCostomer t) {
  76. String costomerName = t.getName();
  77. TbCostomer db = this.findByName(costomerName);
  78. if (db == null) {
  79. return true;
  80. }
  81. return StrUtil.equals(db.getId(), t.getId());
  82. }
  83. public TbCostomer findByName(String name){
  84. QueryWrapper<TbCostomer> queryWrapper = new QueryWrapper<>();
  85. queryWrapper.eq("name", name);
  86. return this.getOne(queryWrapper);
  87. }
  88. /**
  89. * 删
  90. */
  91. int delete(String id) {
  92. this.removeById(id);
  93. SoMap soMap = SoMap.getRequestSoMap();
  94. soMap.put("customerId", id);
  95. List<SpRole> roles = spRoleMapper.getList(soMap);
  96. if (roles.isEmpty()){
  97. return 1;
  98. }
  99. spRoleMapper.removeByCustomerId(id);
  100. spRolePermissionMapper.removeByRoleIds(roles.stream().map(SpRole::getId).collect(Collectors.toList()));
  101. spAdminMapper.removeByCustomerId(id);
  102. return 1;
  103. }
  104. /**
  105. * 改
  106. */
  107. int update(TbCostomer t) {
  108. if (!validateName(t)) {
  109. throw new RuntimeException("名称已存在");
  110. }
  111. this.updateById(t);
  112. return 1;
  113. }
  114. /**
  115. * 查集合 - 根据条件(参数为空时代表忽略指定条件)
  116. */
  117. public List<TbCostomer> getList(SoMap so) {
  118. return tbCostomerMapper.getList(so);
  119. }
  120. public int updateStatus(String id, int value) {
  121. int line = SP.publicMapper.updateColumnById(TbCostomer.TABLE_NAME, "status", value, id);
  122. int status=value==1?1:2;
  123. spAdminMapper.updateCustomerAdmin(id,status);
  124. return line;
  125. }
  126. public void judge(String id, int status,String judgeContent) {
  127. TbCostomer costomer= this.getById(id);
  128. costomer.setJudgeContent(judgeContent)
  129. .setJudgeStatus(status).setJudgeTime(new Date());
  130. this.updateById(costomer);
  131. //审核不通过禁用用户
  132. int isBan = status == 3 ? 2 : 1;//账号状态(1=正常, 2=禁用)
  133. List<SpAdmin> spAdminList = spAdminMapper.getByCostomerId(costomer.getId());
  134. for (SpAdmin spAdmin : spAdminList) {
  135. if(spAdmin != null) {
  136. spAdmin.setStatus(isBan);
  137. spAdminMapper.updateCustomerAdmin(costomer.getId(), isBan);
  138. }
  139. }
  140. }
  141. public void register(TbCostomer costomer) {
  142. costomer.setJudgeStatus(1).setStatus(1);
  143. this.add(costomer);
  144. //新增一个默认用户账号 账号:联系人/密码:手机号后六位
  145. SpAdmin spAdmin = new SpAdmin();
  146. spAdmin.setId(0L);
  147. spAdmin.setCustomerId(costomer.getId());
  148. spAdmin.setName(costomer.getDutyPeople());
  149. spAdmin.setPassword(costomer.getPhone().substring(costomer.getPhone().length()-6));
  150. SoMap so = new SoMap();
  151. so.put("customerId", costomer.getId());
  152. List<SpRole> roleList = spRoleMapper.getList(so);
  153. List<Long> roleIdList = roleList.stream().map(role -> role.getId()).collect(Collectors.toList());
  154. String roleId = roleIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
  155. spAdmin.setRoleId(roleId);
  156. spAdminService.addWhenRegister(spAdmin);
  157. spAdminMapper.updateCustomerAdmin(costomer.getId(), 2);
  158. }
  159. public List<String> findByBusinessTypeOpenid(String businessType, Integer bigBusinessType) {
  160. return tbCostomerMapper.findByBusinessTypeOpenid(businessType, bigBusinessType);
  161. }
  162. }