WxUserOpenService.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package com.bofeng.service;
  2. import com.baomidou.mybatisplus.toolkit.IdWorker;
  3. import com.bofeng.dao.*;
  4. import com.bofeng.entity.*;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import org.springframework.transaction.annotation.Propagation;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. @Service
  12. @Transactional(readOnly = true)
  13. public class WxUserOpenService {
  14. @Autowired
  15. private HomeService homeService;
  16. @Autowired
  17. private UserRoleMapper userRoleMapper;
  18. @Autowired
  19. private UptownHouseMapper uptownHouseMapper;
  20. @Autowired
  21. private UptownHomeMapper uptownHomeMapper;
  22. @Autowired
  23. private OwnerMapper ownerMapper;
  24. @Autowired
  25. private OwnerLinkmanMapper ownerLinkmanMapper;
  26. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  27. public Long createRole(Long isFamily, Long isYWH) throws Exception {
  28. if (isFamily == 0L && isYWH == 0L) {
  29. throw new Exception("请至少选择一个角色");
  30. }
  31. UserOpen userOpen = homeService.getUserOpen();
  32. if (userOpen == null) {
  33. throw new Exception("微信登录失败");
  34. }
  35. //判断该用户是否已经创建了角色
  36. List<UserRole> list = new ArrayList<>();
  37. if (userOpen.getUserId() > 0L) {
  38. list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
  39. }
  40. if (list.size() > 0) {
  41. throw new Exception("角色已存在");
  42. }
  43. UserRole userRole = new UserRole();
  44. userRole.setUrId(IdWorker.getId());
  45. userRole.setUserId(userOpen.getUserId());
  46. userRole.setUserCreate(userOpen.getUserId());
  47. userRole.setUserUpdate(userOpen.getUserId());
  48. //根据页面勾选情况创建角色
  49. if (isFamily > 0L) {
  50. userRole.setRoleId(1); //家庭用户
  51. userRoleMapper.insert(userRole);
  52. }
  53. if (isYWH > 0L) {
  54. userRole.setRoleId(2); //业委会成员
  55. userRoleMapper.insert(userRole);
  56. }
  57. return userRole.getUserId();
  58. }
  59. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  60. public Long createFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone) throws Exception {
  61. Long sysUserId = 0L;
  62. if (userId == null || userId == 0L) {
  63. UserOpen userOpen = homeService.getUserOpen();
  64. if (userOpen == null) {
  65. throw new Exception("微信登录失败");
  66. }
  67. sysUserId = userOpen.getUserId();
  68. } else {
  69. sysUserId = userId;
  70. }
  71. //判断该用户是否已经创建了家庭用户角色
  72. List<UserRole> lstUserRole = new ArrayList<>();
  73. if (sysUserId > 0L) {
  74. lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
  75. }
  76. if (lstUserRole.size() > 0) {
  77. for (UserRole item : lstUserRole) {
  78. if (item.getRoleId() == 1L) {
  79. throw new Exception("家庭用户角色已存在"); //todo 暂时只允许一个用户角色绑定一个家庭门牌号
  80. }
  81. }
  82. }
  83. //创建家庭用户角色
  84. UserRole userRole = new UserRole();
  85. userRole.setUrId(IdWorker.getId());
  86. userRole.setUserId(sysUserId);
  87. userRole.setUserCreate(sysUserId);
  88. userRole.setUserUpdate(sysUserId);
  89. userRole.setRoleId(1); //家庭用户
  90. //判断该门牌号是否被创建(该楼栋单元下)
  91. List<UptownHouse> lstUptownHouse = uptownHouseMapper.getUptownHouseBy(unitId, doorPlate);
  92. if (lstUptownHouse.size() > 0) {
  93. throw new Exception("当前单元下已有该门牌信息!");
  94. }
  95. UptownHouse uptownHouse = new UptownHouse();
  96. uptownHouse.setHouseId(IdWorker.getId());
  97. uptownHouse.setUnitId(unitId);
  98. uptownHouse.setDoorplate(doorPlate);
  99. uptownHouse.setStatus(1);
  100. if (uptownHouseMapper.insert(uptownHouse) != 1) {
  101. throw new Exception("创建门牌失败!");
  102. }
  103. userRole.setPropertyId(uptownHouse.getHouseId()); //绑定家庭用户角色的门牌id
  104. //判断该门牌是否存在家庭信息
  105. List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId());
  106. if (lstUptownHome.size() > 0) {
  107. throw new Exception("该门牌已有人入住!");
  108. }
  109. UptownHome uptownHome = new UptownHome();
  110. uptownHome.setHouseId(uptownHouse.getHouseId());
  111. uptownHome.setLinkman(linkMan);
  112. uptownHome.setPhone(phone);
  113. uptownHome.setYoung(0);
  114. uptownHome.setMiddle(0);
  115. uptownHome.setOld(helpNum);
  116. uptownHome.setRemark("");
  117. uptownHome.setStatus(1);
  118. if (uptownHomeMapper.insert(uptownHome) != 1) {
  119. throw new Exception("创建家庭信息失败!");
  120. }
  121. userRoleMapper.insert(userRole);
  122. return 1L;
  123. }
  124. public Long createYWH(List<OwnerLinkman> lstOwnerMan, Long uptownId) throws Exception {
  125. UserOpen userOpen = homeService.getUserOpen();
  126. if (userOpen == null) {
  127. throw new Exception("微信登录失败");
  128. }
  129. //判断该用户是否已经创建了业委会角色
  130. List<UserRole> lstUserRole = new ArrayList<>();
  131. if (userOpen.getUserId() > 0L) {
  132. lstUserRole = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
  133. }
  134. if (lstUserRole.size() > 0) {
  135. //判断该用户是否创建了业委会的角色
  136. for (UserRole item : lstUserRole) {
  137. if (item.getRoleId() == 2L) {
  138. throw new Exception("业委会用户角色已存在"); //todo 暂时只允许一个用户角色绑定一个业委会
  139. }
  140. }
  141. }
  142. //创建业委会用户角色
  143. UserRole userRole = new UserRole();
  144. userRole.setUrId(IdWorker.getId());
  145. userRole.setUserId(userOpen.getUserId());
  146. userRole.setUserCreate(userOpen.getUserId());
  147. userRole.setUserUpdate(userOpen.getUserId());
  148. userRole.setRoleId(2); //业委会
  149. //判断业委会是否已经建立
  150. List<Owner> lstOwner = new ArrayList<>();
  151. Owner owner;
  152. if (uptownId > 0L) {
  153. lstOwner = ownerMapper.getOwnerByUptownId(uptownId);
  154. }
  155. if (lstOwner.size() > 0) {
  156. //判断该用户是否创建了业委会
  157. for (Owner item : lstOwner) {
  158. if (item.getUptownId() == uptownId) {
  159. throw new Exception("该小区已建立业委会");
  160. }
  161. }
  162. }
  163. owner = new Owner();
  164. owner.setOwnerId(IdWorker.getId());
  165. owner.setUptownId(uptownId);
  166. owner.setUserCreate(userOpen.getUserId());
  167. owner.setUserUpdate(userOpen.getUserId());
  168. userRole.setPropertyId(owner.getOwnerId());
  169. userRoleMapper.insert(userRole);
  170. //建立业委会成员
  171. if (lstOwnerMan == null) {
  172. throw new Exception("请新增业委会成员");
  173. }
  174. int masterNum = 0;
  175. for (OwnerLinkman item : lstOwnerMan) {
  176. if (item.getType() == 1L) {
  177. masterNum++;
  178. }
  179. }
  180. if (masterNum != 1L) {
  181. throw new Exception("业委会负责人只允许有一个");
  182. }
  183. for (OwnerLinkman item : lstOwnerMan) {
  184. if (item.getType() == 1L) {
  185. owner.setLinkman(item.getLinkman());
  186. owner.setPhone(item.getPhone());
  187. }
  188. item.setOwnerId(owner.getOwnerId());
  189. ownerLinkmanMapper.insert(item);
  190. }
  191. ownerMapper.insert(owner);
  192. return 1L;
  193. }
  194. }