|
@@ -9,7 +9,9 @@ import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
@Transactional(readOnly = true)
|
|
@@ -27,6 +29,12 @@ public class WxUserOpenService {
|
|
|
private OwnerMapper ownerMapper;
|
|
|
@Autowired
|
|
|
private OwnerLinkmanMapper ownerLinkmanMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysUptownUnitMapper sysUptownUnitMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysAreaMapper sysAreaMapper;
|
|
|
+ @Autowired
|
|
|
+ private UptownMapper uptownMapper;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
public Long createRole(Long isFamily, Long isYWH) throws Exception {
|
|
@@ -64,16 +72,7 @@ public class WxUserOpenService {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
public Long createFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone) throws Exception {
|
|
|
- Long sysUserId = 0L;
|
|
|
- if (userId == null || userId == 0L) {
|
|
|
- UserOpen userOpen = homeService.getUserOpen();
|
|
|
- if (userOpen == null) {
|
|
|
- throw new Exception("微信登录失败");
|
|
|
- }
|
|
|
- sysUserId = userOpen.getUserId();
|
|
|
- } else {
|
|
|
- sysUserId = userId;
|
|
|
- }
|
|
|
+ Long sysUserId = queryUser(userId);
|
|
|
|
|
|
//判断该用户是否已经创建了家庭用户角色
|
|
|
List<UserRole> lstUserRole = new ArrayList<>();
|
|
@@ -131,15 +130,13 @@ public class WxUserOpenService {
|
|
|
return 1L;
|
|
|
}
|
|
|
|
|
|
- public Long createYWH(List<OwnerLinkman> lstOwnerMan, Long uptownId) throws Exception {
|
|
|
- UserOpen userOpen = homeService.getUserOpen();
|
|
|
- if (userOpen == null) {
|
|
|
- throw new Exception("微信登录失败");
|
|
|
- }
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public Long createYWH(Long userId, Long uptownId, List<OwnerLinkman> lstOwnerMan) throws Exception {
|
|
|
+ Long sysUserId = queryUser(userId);
|
|
|
//判断该用户是否已经创建了业委会角色
|
|
|
List<UserRole> lstUserRole = new ArrayList<>();
|
|
|
- if (userOpen.getUserId() > 0L) {
|
|
|
- lstUserRole = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
|
|
|
+ if (sysUserId > 0L) {
|
|
|
+ lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
|
|
|
}
|
|
|
if (lstUserRole.size() > 0) {
|
|
|
//判断该用户是否创建了业委会的角色
|
|
@@ -152,9 +149,9 @@ public class WxUserOpenService {
|
|
|
//创建业委会用户角色
|
|
|
UserRole userRole = new UserRole();
|
|
|
userRole.setUrId(IdWorker.getId());
|
|
|
- userRole.setUserId(userOpen.getUserId());
|
|
|
- userRole.setUserCreate(userOpen.getUserId());
|
|
|
- userRole.setUserUpdate(userOpen.getUserId());
|
|
|
+ userRole.setUserId(sysUserId);
|
|
|
+ userRole.setUserCreate(sysUserId);
|
|
|
+ userRole.setUserUpdate(sysUserId);
|
|
|
userRole.setRoleId(2); //业委会
|
|
|
|
|
|
//判断业委会是否已经建立
|
|
@@ -174,25 +171,25 @@ public class WxUserOpenService {
|
|
|
owner = new Owner();
|
|
|
owner.setOwnerId(IdWorker.getId());
|
|
|
owner.setUptownId(uptownId);
|
|
|
- owner.setUserCreate(userOpen.getUserId());
|
|
|
- owner.setUserUpdate(userOpen.getUserId());
|
|
|
+ owner.setUserCreate(sysUserId);
|
|
|
+ owner.setUserUpdate(sysUserId);
|
|
|
|
|
|
- userRole.setPropertyId(owner.getOwnerId());
|
|
|
+ userRole.setPropertyId(owner.getOwnerId()); //设置业委会id给角色
|
|
|
userRoleMapper.insert(userRole);
|
|
|
|
|
|
//建立业委会成员
|
|
|
if (lstOwnerMan == null) {
|
|
|
throw new Exception("请新增业委会成员");
|
|
|
}
|
|
|
- int masterNum = 0;
|
|
|
- for (OwnerLinkman item : lstOwnerMan) {
|
|
|
- if (item.getType() == 1L) {
|
|
|
- masterNum++;
|
|
|
- }
|
|
|
- }
|
|
|
- if (masterNum != 1L) {
|
|
|
- throw new Exception("业委会负责人只允许有一个");
|
|
|
- }
|
|
|
+// int masterNum = 0;
|
|
|
+// for (OwnerLinkman item : lstOwnerMan) {
|
|
|
+// if (item.getType() == 1L) {
|
|
|
+// masterNum++;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (masterNum != 1) {
|
|
|
+// throw new Exception("业委会负责人只允许有一个");
|
|
|
+// }
|
|
|
for (OwnerLinkman item : lstOwnerMan) {
|
|
|
if (item.getType() == 1L) {
|
|
|
owner.setLinkman(item.getLinkman());
|
|
@@ -206,4 +203,119 @@ public class WxUserOpenService {
|
|
|
return 1L;
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public List<UserRole> queryUserRoles(Long userId) throws Exception {
|
|
|
+ //获取角色信息
|
|
|
+ Long sysUserId = queryUser(userId);
|
|
|
+ List<UserRole> lstUserRole = new ArrayList<>();
|
|
|
+ if (sysUserId > 0L) {
|
|
|
+ lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
|
|
|
+ }
|
|
|
+ for (int i = 0; i < lstUserRole.size(); i++) {
|
|
|
+ //获取家庭角色的家庭信息
|
|
|
+ if (lstUserRole.get(i).getRoleId() == 1L) {
|
|
|
+ if (lstUserRole.get(i).getPropertyId() > 0L) {
|
|
|
+ UptownHome uptownHome = uptownHomeMapper.selectById(lstUserRole.get(i).getPropertyId());
|
|
|
+ if (uptownHome != null) {
|
|
|
+ UptownHouse uptownHouse = uptownHouseMapper.selectById(lstUserRole.get(i).getPropertyId());
|
|
|
+ if (uptownHouse == null) {
|
|
|
+ throw new Exception("门牌信息丢失");
|
|
|
+ }
|
|
|
+ uptownHome.setDoorplate(uptownHouse.getDoorplate());
|
|
|
+ Map<String, Long> map = new HashMap<>();
|
|
|
+ map.put("unitId", uptownHouse.getUnitId()); //栋单元
|
|
|
+ sysUptownUnit uptownUnit = sysUptownUnitMapper.selectById(uptownHouse.getUnitId());
|
|
|
+ if (uptownUnit == null || uptownUnit.getUptownId() == 0L) {
|
|
|
+ throw new Exception("单元中小区信息丢失");
|
|
|
+ }
|
|
|
+ map.put("uptownId", uptownUnit.getUptownId()); //小区
|
|
|
+ Uptown uptown = uptownMapper.selectById(uptownUnit.getUptownId());
|
|
|
+ if (uptown == null || uptown.getUptownId() == 0L) {
|
|
|
+ throw new Exception("小区信息丢失");
|
|
|
+ }
|
|
|
+ SysArea sysArea = sysAreaMapper.selectById(uptown.getArea());
|
|
|
+ map.put("areaId", sysArea.getAreaId()); //县区
|
|
|
+ SysArea sysCity = sysAreaMapper.selectById(sysArea.getAreaUp());
|
|
|
+ map.put("cityId", sysCity.getAreaId()); //城市
|
|
|
+ SysArea sysProvince = sysAreaMapper.selectById(sysCity.getAreaUp());
|
|
|
+ map.put("provinceId", sysProvince.getAreaId()); //省份
|
|
|
+ uptownHome.setLocation(map);
|
|
|
+ lstUserRole.get(i).setUptownHome(uptownHome);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取业委会角色的业委会及其成员信息
|
|
|
+ if (lstUserRole.get(i).getRoleId() == 2L) {
|
|
|
+ if (lstUserRole.get(i).getPropertyId() > 0L) {
|
|
|
+ Owner owner = ownerMapper.selectById(lstUserRole.get(i).getPropertyId());
|
|
|
+ if (owner != null && owner.getOwnerId() > 0L) {
|
|
|
+ List<OwnerLinkman> lstOwnerLinkman = ownerLinkmanMapper.getOwnerLinkmanByOwnerId(owner.getOwnerId());
|
|
|
+ if (lstOwnerLinkman != null && lstOwnerLinkman.size() > 0) {
|
|
|
+ owner.setLstOwnerLinkman(lstOwnerLinkman);
|
|
|
+ }
|
|
|
+ lstUserRole.get(i).setOwner(owner);
|
|
|
+ Map<String, Long> map = new HashMap<>();
|
|
|
+ map.put("uptownId", owner.getUptownId()); //小区
|
|
|
+ Uptown uptown = uptownMapper.selectById(owner.getUptownId());
|
|
|
+ SysArea sysArea = sysAreaMapper.selectById(uptown.getArea());
|
|
|
+ map.put("areaId", sysArea.getAreaId()); //县区
|
|
|
+ SysArea sysCity = sysAreaMapper.selectById(sysArea.getAreaUp());
|
|
|
+ map.put("cityId", sysCity.getAreaId()); //城市
|
|
|
+ SysArea sysProvince = sysAreaMapper.selectById(sysCity.getAreaUp());
|
|
|
+ map.put("provinceId", sysProvince.getAreaId()); //省份
|
|
|
+ owner.setLocation(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return lstUserRole;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public List<UptownHome> queryFamily(Long userId) throws Exception {
|
|
|
+ Long sysUserId = queryUser(userId);
|
|
|
+ Long userHouseId = 0L;
|
|
|
+ int roleFamilyNum = 0;
|
|
|
+ List<UserRole> lstUserRole = new ArrayList<>();
|
|
|
+ if (sysUserId > 0L) {
|
|
|
+ lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
|
|
|
+ }
|
|
|
+ if (lstUserRole.size() > 0) {
|
|
|
+ for (UserRole item : lstUserRole) {
|
|
|
+ if (item.getRoleId() == 1L) {
|
|
|
+ roleFamilyNum++;
|
|
|
+ userHouseId = item.getPropertyId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (roleFamilyNum == 0) {
|
|
|
+ throw new Exception("尚未创建家庭角色");
|
|
|
+ }
|
|
|
+ if (roleFamilyNum > 1) {
|
|
|
+ throw new Exception("该用户创建的家庭角色大于1个");
|
|
|
+ }
|
|
|
+ List<UptownHome> lstUptownHome = new ArrayList<>();
|
|
|
+ if (userHouseId > 0L) {
|
|
|
+ lstUptownHome = uptownHomeMapper.getUptownHomeBy(userHouseId);
|
|
|
+ }
|
|
|
+ return lstUptownHome;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
+ public Long queryUser(Long userId) throws Exception {
|
|
|
+ //这里是为了调试方便,userId由前端传过来
|
|
|
+ Long sysUserId = 0L;
|
|
|
+ if (userId == null || userId == 0L) {
|
|
|
+ UserOpen userOpen = homeService.getUserOpen();
|
|
|
+ if (userOpen == null) {
|
|
|
+ throw new Exception("微信登录失败");
|
|
|
+ }
|
|
|
+ sysUserId = userOpen.getUserId();
|
|
|
+ } else {
|
|
|
+ sysUserId = userId;
|
|
|
+ }
|
|
|
+ return sysUserId;
|
|
|
+ }
|
|
|
+
|
|
|
}
|