|
@@ -0,0 +1,124 @@
|
|
|
+package com.bofeng.service;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.toolkit.IdWorker;
|
|
|
+import com.bofeng.dao.UptownHomeMapper;
|
|
|
+import com.bofeng.dao.UptownHouseMapper;
|
|
|
+import com.bofeng.dao.UserRoleMapper;
|
|
|
+import com.bofeng.entity.UptownHome;
|
|
|
+import com.bofeng.entity.UptownHouse;
|
|
|
+import com.bofeng.entity.UserOpen;
|
|
|
+import com.bofeng.entity.UserRole;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Transactional(readOnly = true)
|
|
|
+public class WxUserOpenService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private HomeService homeService;
|
|
|
+ @Autowired
|
|
|
+ private UserRoleMapper userRoleMapper;
|
|
|
+ @Autowired
|
|
|
+ private UptownHouseMapper uptownHouseMapper;
|
|
|
+ @Autowired
|
|
|
+ private UptownHomeMapper uptownHomeMapper;
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public Long createRole(Long isFamily, Long isYWH) throws Exception {
|
|
|
+ if (isFamily == 0L && isYWH == 0L) {
|
|
|
+ throw new Exception("请至少选择一个角色");
|
|
|
+ }
|
|
|
+ UserOpen userOpen = homeService.getUserOpen();
|
|
|
+ if (userOpen == null) {
|
|
|
+ throw new Exception("微信登录失败");
|
|
|
+ }
|
|
|
+ //判断该用户是否已经创建了角色
|
|
|
+ List<UserRole> list = new ArrayList<>();
|
|
|
+ if (userOpen.getUserId() > 0L) {
|
|
|
+ list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
|
|
|
+ }
|
|
|
+ if (list.size() > 0) {
|
|
|
+ throw new Exception("角色已存在");
|
|
|
+ }
|
|
|
+ UserRole userRole = new UserRole();
|
|
|
+ userRole.setUrId(IdWorker.getId());
|
|
|
+ userRole.setUserId(userOpen.getUserId());
|
|
|
+ userRole.setUserCreate(userOpen.getUserId());
|
|
|
+ userRole.setUserUpdate(userOpen.getUserId());
|
|
|
+ //根据页面勾选情况创建角色
|
|
|
+ if (isFamily > 0L) {
|
|
|
+ userRole.setRoleId(1); //家庭用户
|
|
|
+ userRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+ if (isYWH > 0L) {
|
|
|
+ userRole.setRoleId(2); //业委会成员
|
|
|
+ userRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+ return userRole.getUserId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public Long createFamily(Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone) throws Exception {
|
|
|
+ UserOpen userOpen = homeService.getUserOpen();
|
|
|
+ if (userOpen == null) {
|
|
|
+ throw new Exception("微信登录失败");
|
|
|
+ }
|
|
|
+ //判断该用户是否已经创建了角色
|
|
|
+ List<UserRole> lstUserRole = new ArrayList<>();
|
|
|
+ if (userOpen.getUserId() > 0L) {
|
|
|
+ lstUserRole = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
|
|
|
+ }
|
|
|
+ if (lstUserRole.size() == 0) {
|
|
|
+ throw new Exception("尚未创建任何角色");
|
|
|
+ }
|
|
|
+ //判断该用户是否创建了家庭用户的角色
|
|
|
+ Boolean isFamily = false;
|
|
|
+ for (UserRole item : lstUserRole) {
|
|
|
+ if (item.getRoleId() == 1L) {
|
|
|
+ isFamily = true;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isFamily) {
|
|
|
+ throw new Exception("尚未创建家庭用户角色");
|
|
|
+ }
|
|
|
+ //判断该门牌号是否被创建(该楼栋单元下)
|
|
|
+ List<UptownHouse> lstUptownHouse = uptownHouseMapper.getUptownHouseBy(unitId, doorPlate);
|
|
|
+ if (lstUptownHouse.size() > 0) {
|
|
|
+ throw new Exception("该门牌已有人入住!");
|
|
|
+ }
|
|
|
+ UptownHouse uptownHouse = new UptownHouse();
|
|
|
+ uptownHouse.setHouseId(IdWorker.getId());
|
|
|
+ uptownHouse.setUnitId(unitId);
|
|
|
+ uptownHouse.setDoorplate(doorPlate);
|
|
|
+ uptownHouse.setStatus(1);
|
|
|
+ if (uptownHouseMapper.insert(uptownHouse) != 1) {
|
|
|
+ throw new Exception("创建门牌失败!");
|
|
|
+ }
|
|
|
+ //判断该门牌是否存在家庭信息
|
|
|
+ List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId(), doorPlate);
|
|
|
+ if (lstUptownHome.size() > 0) {
|
|
|
+ throw new Exception("该门牌已有人入住!");
|
|
|
+ }
|
|
|
+ UptownHome uptownHome = new UptownHome();
|
|
|
+ uptownHome.setHouseId(uptownHouse.getHouseId());
|
|
|
+ uptownHome.setLinkman(linkMan);
|
|
|
+ uptownHome.setPhone(phone);
|
|
|
+ uptownHome.setYoung(0);
|
|
|
+ uptownHome.setMiddle(0);
|
|
|
+ uptownHome.setOld(helpNum);
|
|
|
+ uptownHome.setRemark("");
|
|
|
+ uptownHome.setStatus(1);
|
|
|
+ if (uptownHomeMapper.insert(uptownHome) != 1) {
|
|
|
+ throw new Exception("创建家庭信息失败!");
|
|
|
+ }
|
|
|
+ return 1L;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|