TbCostomerService.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.pj.project.tb_costomer;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import cn.hutool.core.date.DateUnit;
  7. import cn.hutool.core.date.DateUtil;
  8. import cn.hutool.core.util.StrUtil;
  9. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  10. import com.baomidou.mybatisplus.extension.service.IService;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import com.pj.constants.RoleEnum;
  13. import com.pj.project.tb_district.TbDistrict;
  14. import com.pj.project.tb_district.TbDistrictService;
  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 TbDistrictService tbDistrictService;
  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. List<RoleEnum> roleEnums = RoleEnum.getCustomerInitRoleList();
  61. List<String>commonPer=RoleEnum.COMMON_ROLE_PER.getPerCode();
  62. roleEnums.forEach(roleEnum -> {
  63. SpRole spRole = new SpRole();
  64. spRole.setCustomerId(t.getId()).setInfo(roleEnum.getName())
  65. .setName(roleEnum.getName()).setType(roleEnum.getType());
  66. spRoleMapper.add(spRole);
  67. long roleId = SP.publicMapper.getPrimarykey();
  68. spRolePermissionMapper.saveRolePer(roleId, roleEnum.getPerCode());
  69. spRolePermissionMapper.saveRolePer(roleId,commonPer);
  70. });
  71. return 1;
  72. }
  73. private boolean validateName(TbCostomer t) {
  74. String costomerName = t.getName();
  75. TbCostomer db = this.findByName(costomerName);
  76. if (db == null) {
  77. return true;
  78. }
  79. return StrUtil.equals(db.getId(), t.getId());
  80. }
  81. TbCostomer findByName(String name){
  82. QueryWrapper<TbCostomer> queryWrapper = new QueryWrapper<>();
  83. queryWrapper.eq("name", name);
  84. return this.getOne(queryWrapper);
  85. }
  86. /**
  87. * 删
  88. */
  89. int delete(String id) {
  90. this.removeById(id);
  91. SoMap soMap = SoMap.getRequestSoMap();
  92. soMap.put("customerId", id);
  93. List<SpRole> roles = spRoleMapper.getList(soMap);
  94. if (roles.isEmpty()){
  95. return 1;
  96. }
  97. spRoleMapper.removeByCustomerId(id);
  98. spRolePermissionMapper.removeByRoleIds(roles.stream().map(SpRole::getId).collect(Collectors.toList()));
  99. spAdminMapper.removeByCustomerId(id);
  100. return 1;
  101. }
  102. /**
  103. * 改
  104. */
  105. int update(TbCostomer t) {
  106. if (!validateName(t)) {
  107. throw new RuntimeException("名称已存在");
  108. }
  109. this.updateById(t);
  110. return 1;
  111. }
  112. /**
  113. * 查集合 - 根据条件(参数为空时代表忽略指定条件)
  114. */
  115. public List<TbCostomer> getList(SoMap so) {
  116. return tbCostomerMapper.getList(so);
  117. }
  118. public int updateStatus(String id, int value) {
  119. int line = SP.publicMapper.updateColumnById(TbCostomer.TABLE_NAME, "status", value, id);
  120. int status=value==1?1:2;
  121. spAdminMapper.updateCustomerAdmin(id,status);
  122. return line;
  123. }
  124. public void judge(String id, int status,String judgeContent) {
  125. TbCostomer costomer= this.getById(id);
  126. costomer.setJudgeContent(judgeContent)
  127. .setJudgeStatus(status).setJudgeTime(new Date());
  128. this.updateById(costomer);
  129. //审核不通过禁用用户
  130. int isBan = status == 3 ? 2 : 1;//账号状态(1=正常, 2=禁用)
  131. List<SpAdmin> spAdminList = spAdminMapper.getByCostomerId(costomer.getId());
  132. for (SpAdmin spAdmin : spAdminList) {
  133. if(spAdmin != null) {
  134. spAdmin.setStatus(isBan);
  135. spAdminMapper.updateCustomerAdmin(costomer.getId(), isBan);
  136. }
  137. }
  138. }
  139. public void register(TbCostomer costomer) {
  140. costomer.setJudgeStatus(1).setStatus(1);
  141. this.add(costomer);
  142. //新增一个默认用户账号 账号:联系人/密码:手机号后六位
  143. SpAdmin spAdmin = new SpAdmin();
  144. spAdmin.setId(0L);
  145. spAdmin.setCustomerId(costomer.getId());
  146. spAdmin.setName(costomer.getDutyPeople());
  147. spAdmin.setPassword(costomer.getPhone().substring(costomer.getPhone().length()-6));
  148. SoMap so = new SoMap();
  149. so.put("customerId", costomer.getId());
  150. List<SpRole> roleList = spRoleMapper.getList(so);
  151. List<Long> roleIdList = roleList.stream().map(role -> role.getId()).collect(Collectors.toList());
  152. String roleId = roleIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
  153. spAdmin.setRoleId(roleId);
  154. spAdminService.addWhenRegister(spAdmin);
  155. spAdminMapper.updateCustomerAdmin(costomer.getId(), 2);
  156. }
  157. public List<String> findByBusinessTypeOpenid(String businessType) {
  158. return tbCostomerMapper.findByBusinessTypeOpenid(businessType);
  159. }
  160. }