hudingbo 5 gadi atpakaļ
vecāks
revīzija
9054844e29

+ 64 - 2
whepi-web/src/main/java/com/bofeng/controller/WxUserOpenController.java

@@ -8,7 +8,6 @@ import com.bofeng.entity.UserRole;
 import com.bofeng.service.HomeService;
 import com.bofeng.service.WxUserOpenService;
 import com.yvan.Model;
-import com.yvan.ModelOps;
 import com.yvan.platform.JsonWapper;
 import com.yvan.platform.StringUtils;
 import com.yvan.springmvc.HttpParameterParser;
@@ -146,7 +145,6 @@ public class WxUserOpenController {
         return Model.newSuccess(wxUserOpenService.queryFamily(userId));
     }
 
-
     @ApiOperation("创建业委会角色、成员信息")
     @PostMapping("/userOpen/createYWH")
     public Model<Long> createYWH(JsonWapper jsonWapper) throws Exception {
@@ -176,5 +174,69 @@ public class WxUserOpenController {
         }
     }
 
+    @ApiOperation("修改家庭及住宅信息")
+    @PostMapping("/userOpen/editFamily")
+    public Model<Long> editFamily(JsonWapper jsonWapper) throws Exception {
+        Long userId = jsonWapper.asObject(Long.class, "userId");
+        Long unitId = jsonWapper.asObject(Long.class, "unitId");
+        String doorPlate = jsonWapper.asObject(String.class, "doorPlate");
+        String linkMan = jsonWapper.asObject(String.class, "linkMan");
+        Integer helpNum = jsonWapper.asObject(Integer.class, "helpNum");
+        String phone = jsonWapper.asObject(String.class, "phone");
+        Long urId = jsonWapper.asObject(Long.class, "urId");
+        if (userId == null || userId == 0L) {
+            return Model.newFail("用户不存在");
+        }
+        if (unitId == null || unitId == 0L) {
+            return Model.newFail("请选择所在单元");
+        }
+        if (StringUtils.isNullOrEmpty(doorPlate)) {
+            return Model.newFail("请填写门牌号");
+        }
+        if (StringUtils.isNullOrEmpty(linkMan)) {
+            return Model.newFail("请填写家庭联系人");
+        }
+        if (helpNum == null) {
+            helpNum = 0;
+        }
+        if (StringUtils.isNullOrEmpty(phone)) {
+            return Model.newFail("请填写家庭联系电话");
+        }
+        //成功返回用户Id
+        try {
+            return Model.newSuccess(wxUserOpenService.editFamily(userId, unitId, doorPlate, linkMan, helpNum, phone, urId));
+        } catch (Exception e) {
+            return Model.newFail(e.getMessage());
+        }
+    }
 
+    @ApiOperation("修改业委会成员信息")
+    @PostMapping("/userOpen/editYWH")
+    public Model<Long> editYWH(JsonWapper jsonWapper) throws Exception {
+        Long uptownId = jsonWapper.asObject(Long.class, "uptownId");
+        Long userId = jsonWapper.asObject(Long.class, "userId");
+        Long urId = jsonWapper.asObject(Long.class, "urId");
+        List<OwnerLinkman> lstOwnerMan = new ArrayList<>();
+        OwnerLinkman ownerLinkman;
+        if (uptownId == null || uptownId == 0L) {
+            return Model.newFail("请选择所在小区");
+        }
+        for (int i = 0; i < jsonWapper.asList("lstOwner").size(); i++) {
+            Map<String, Object> mm = (Map) jsonWapper.asList("lstOwner").get(i);
+            ownerLinkman = new OwnerLinkman();
+            ownerLinkman.setLinkman(mm.get("linkman").toString());
+            ownerLinkman.setPhone(mm.get("phone").toString());
+            ownerLinkman.setType(Long.parseLong(mm.get("type").toString()));
+            lstOwnerMan.add(ownerLinkman);
+        }
+        if (lstOwnerMan == null || lstOwnerMan.size() == 0) {
+            return Model.newFail("请增加业委会成员");
+        }
+        //成功返回用户Id
+        try {
+            return Model.newSuccess(wxUserOpenService.editYWH(urId, userId, uptownId, lstOwnerMan));
+        } catch (Exception e) {
+            return Model.newFail(e.getMessage());
+        }
+    }
 }

+ 118 - 12
whepi-web/src/main/java/com/bofeng/service/WxUserOpenService.java

@@ -127,7 +127,7 @@ public class WxUserOpenService {
         }
         userRoleMapper.insert(userRole);
 
-        return 1L;
+        return userRole.getUrId();
     }
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
@@ -181,15 +181,15 @@ public class WxUserOpenService {
         if (lstOwnerMan == null) {
             throw new Exception("请新增业委会成员");
         }
-//        int masterNum = 0;
-//        for (OwnerLinkman item : lstOwnerMan) {
-//            if (item.getType() == 1L) {
-//                masterNum++;
-//            }
-//        }
-//        if (masterNum != 1) {
-//            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());
@@ -200,7 +200,7 @@ public class WxUserOpenService {
         }
         ownerMapper.insert(owner);
 
-        return 1L;
+        return userRole.getUrId();
     }
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
@@ -211,6 +211,9 @@ public class WxUserOpenService {
         if (sysUserId > 0L) {
             lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
         }
+        if (lstUserRole.size() > 2) {
+            throw new Exception("每个用户最多只能有两个角色");
+        }
         for (int i = 0; i < lstUserRole.size(); i++) {
             //获取家庭角色的家庭信息
             if (lstUserRole.get(i).getRoleId() == 1L) {
@@ -301,7 +304,6 @@ public class WxUserOpenService {
         return lstUptownHome;
     }
 
-
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public Long queryUser(Long userId) throws Exception {
         //这里是为了调试方便,userId由前端传过来
@@ -318,4 +320,108 @@ public class WxUserOpenService {
         return sysUserId;
     }
 
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+    public Long editFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone, Long urId) throws Exception {
+        Long sysUserId = queryUser(userId);
+        if (urId == 0L) {
+            throw new Exception("尚未建立家庭用户角色,无法编辑");
+        }
+        UserRole userRole = userRoleMapper.selectById(urId);
+        if (userRole == null) {
+            throw new Exception("尚未建立家庭用户角色,无法编辑");
+        }
+        if (userRole.getRoleId() != 1L) {
+            throw new Exception("当前角色不是家庭用户角色");
+        }
+        if (userRole.getUserId() != sysUserId) {
+            throw new Exception("角色与当前用户不匹配");
+        }
+        if (userRole.getPropertyId() == 0L) {
+            throw new Exception("【数据异常】角色尚未创建家庭");  //有家庭角色但没有家里家庭属于不正常的情况(在createFamily中应该一并创建)
+        }
+        //原小区、栋、单元、门牌
+        UptownHouse uptownHouse = uptownHouseMapper.selectById(userRole.getPropertyId());
+        if (uptownHouse == null) {
+            throw new Exception("尚未创建门牌号");
+        }
+        if (uptownHouse.getUnitId() != unitId || uptownHouse.getDoorplate() != doorPlate) {
+            //查找更换之后的单元、门牌是否被占用
+            List<UptownHouse> lstUptownHouse = uptownHouseMapper.getUptownHouseBy(unitId, doorPlate);
+            if (lstUptownHouse != null && lstUptownHouse.size() > 0) {
+                throw new Exception("该小区单元下的门牌已被人注册!");
+            }
+            uptownHouse.setUnitId(unitId);
+            uptownHouse.setDoorplate(doorPlate);
+            uptownHouseMapper.updateById(uptownHouse);
+        }
+        UptownHome uptownHome = uptownHomeMapper.selectById(uptownHouse.getHouseId());
+        if (uptownHome == null || uptownHome.getHouseId() == 0L) {
+            throw new Exception("该门牌尚未填写家庭信息!");
+        }
+        uptownHome.setLinkman(linkMan);
+        uptownHome.setPhone(phone);
+        uptownHome.setOld(helpNum);
+        uptownHomeMapper.updateById(uptownHome);
+
+        return 1L;
+    }
+
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+    public Long editYWH(Long urId, Long userId, Long uptownId, List<OwnerLinkman> lstOwnerMan) throws Exception {
+        Long sysUserId = queryUser(userId);
+        if (urId == 0L) {
+            throw new Exception("尚未建立家庭用户角色,无法编辑");
+        }
+        UserRole userRole = userRoleMapper.selectById(urId);
+        if (userRole == null) {
+            throw new Exception("尚未建立家庭用户角色,无法编辑");
+        }
+        if (userRole.getRoleId() != 2L) {
+            throw new Exception("当前角色不是业委会角色");
+        }
+        if (userRole.getUserId() != sysUserId) {
+            throw new Exception("角色与当前用户不匹配");
+        }
+        if (userRole.getPropertyId() == 0L) {
+            throw new Exception("【数据异常】角色尚未创建家庭");  //有家庭角色但没有家里家庭属于不正常的情况(在createFamily中应该一并创建)
+        }
+        Owner owner = ownerMapper.selectById(userRole.getPropertyId());
+        if (owner == null) {
+            throw new Exception("尚未创建业委会");
+        }
+        if (owner.getUptownId() != uptownId) {
+            //查找更换小区之后业委会是否被占用
+            List<Owner> lstOwner = ownerMapper.getOwnerByUptownId(uptownId);
+            if (lstOwner != null && lstOwner.size() > 0) {
+                throw new Exception("该小区业委会已被人注册!");
+            }
+            owner.setUptownId(uptownId);
+            ownerMapper.updateById(owner);
+        }
+        //修改业委会成员
+        if (lstOwnerMan == null) {
+            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());
+                owner.setPhone(item.getPhone());
+            }
+            item.setOwnerId(owner.getOwnerId());
+            ownerLinkmanMapper.insert(item);
+        }
+        ownerMapper.insert(owner);
+
+        return userRole.getUrId();
+    }
+
 }