فهرست منبع

创建家庭、业委会信息

hudingbo 5 سال پیش
والد
کامیت
e0bc1dccec

+ 16 - 0
whepi-web/src/main/java/com/bofeng/controller/WxUserOpenController.java

@@ -1,11 +1,13 @@
 package com.bofeng.controller;
 
 import com.bofeng.dao.UserRoleMapper;
+import com.bofeng.entity.OwnerLinkman;
 import com.bofeng.entity.UserOpen;
 import com.bofeng.entity.UserRole;
 import com.bofeng.service.HomeService;
 import com.bofeng.service.WxUserOpenService;
 import com.yvan.Model;
+import com.yvan.mvc.JsonBody;
 import com.yvan.platform.StringUtils;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -91,4 +93,18 @@ public class WxUserOpenController {
         return Model.newSuccess(wxUserOpenService.createFamily(unitId, doorPlate, linkMan, helpNum, phone));
     }
 
+    @ApiOperation("完善家庭及住宅信息")
+    @PostMapping("/userOpen/createYWH")
+    public Model<Long> createYWH(HttpServletRequest request, @JsonBody List<OwnerLinkman> lstOwner) throws Exception {
+        Long uptownId = Long.parseLong(request.getParameter("uptownId"));
+        if (uptownId == null || uptownId == 0L) {
+            return Model.newFail("请选择所在小区");
+        }
+        if (lstOwner == null || lstOwner.size() == 0) {
+            return Model.newFail("请增加业委会成员");
+        }
+        //成功返回用户Id
+        return Model.newSuccess(wxUserOpenService.createYWH(lstOwner, uptownId));
+    }
+
 }

+ 18 - 0
whepi-web/src/main/java/com/bofeng/dao/OwnerLinkmanMapper.java

@@ -0,0 +1,18 @@
+package com.bofeng.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.bofeng.entity.OwnerLinkman;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface OwnerLinkmanMapper extends BaseMapper<OwnerLinkman> {
+
+    @Select("select * from sys_owner_linkman where owner_id = #{ownerId}")
+    List<OwnerLinkman> getOwnerLinkmanByOwnerId(@Param("ownerId") Long ownerId);
+}

+ 7 - 0
whepi-web/src/main/java/com/bofeng/dao/OwnerMapper.java

@@ -3,9 +3,16 @@ package com.bofeng.dao;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.bofeng.entity.Owner;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
 @Repository
 public interface OwnerMapper extends BaseMapper<Owner> {
+
+    @Select("select * from sys_owner where uptown_id = #{uptownId}")
+    List<Owner> getOwnerByUptownId(@Param("uptownId") Long uptownId);
 }

+ 1 - 1
whepi-web/src/main/java/com/bofeng/dao/UptownHomeMapper.java

@@ -14,5 +14,5 @@ import java.util.List;
 public interface UptownHomeMapper extends BaseMapper<UptownHome> {
 
     @Select("select * from sys_uptown_home where house_id = #{houseId} and status = 1")
-    List<UptownHome> getUptownHomeBy(@Param("houseId")Long houseId, @Param("doorplate")String doorplate);
+    List<UptownHome> getUptownHomeBy(@Param("houseId") Long houseId);
 }

+ 53 - 0
whepi-web/src/main/java/com/bofeng/entity/OwnerLinkman.java

@@ -0,0 +1,53 @@
+package com.bofeng.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.joda.time.DateTime;
+
+@Getter
+@Setter
+@TableName("SYS_OWNER_LINKMAN")
+public class OwnerLinkman {
+
+    @ApiModelProperty("业委会联系人ID")
+    @TableId("LINKMAN_ID")
+    private Long linkmanId;
+
+    @ApiModelProperty("业委会ID")
+    @TableField("OWNER_ID")
+    private Long ownerId;
+
+    @ApiModelProperty("类型:1负责人、2成员")
+    @TableField("TYPE")
+    private Long type;
+
+    @ApiModelProperty("联系人名称")
+    @TableField("LINKMAN")
+    private String linkman;
+
+    @ApiModelProperty("联系人电话")
+    @TableField("PHONE")
+    private String phone;
+
+    @ApiModelProperty("新增人")
+    @TableField("USER_CREATE")
+    private Long userCreate;
+
+    @ApiModelProperty("新增时间")
+    @TableField("TIME_CREATE")
+    private DateTime timeCreate;
+
+    @ApiModelProperty("修改人")
+    @TableField("USER_UPDATE")
+    private Long userUpdate;
+
+    @ApiModelProperty("修改时间")
+    @TableField("TIME_UPDATE")
+    private DateTime timeUpdate;
+
+
+}

+ 100 - 22
whepi-web/src/main/java/com/bofeng/service/WxUserOpenService.java

@@ -1,13 +1,8 @@
 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 com.bofeng.dao.*;
+import com.bofeng.entity.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -28,6 +23,10 @@ public class WxUserOpenService {
     private UptownHouseMapper uptownHouseMapper;
     @Autowired
     private UptownHomeMapper uptownHomeMapper;
+    @Autowired
+    private OwnerMapper ownerMapper;
+    @Autowired
+    private OwnerLinkmanMapper ownerLinkmanMapper;
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public Long createRole(Long isFamily, Long isYWH) throws Exception {
@@ -69,29 +68,30 @@ public class WxUserOpenService {
         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 (lstUserRole.size() > 0) {
+            for (UserRole item : lstUserRole) {
+                if (item.getRoleId() == 1L) {
+                    throw new Exception("家庭用户角色已存在");   //todo 暂时只允许一个用户角色绑定一个家庭门牌号
+                }
             }
         }
-        if (!isFamily) {
-            throw new Exception("尚未创建家庭用户角色");
-        }
+        //创建家庭用户角色
+        UserRole userRole = new UserRole();
+        userRole.setUrId(IdWorker.getId());
+        userRole.setUserId(userOpen.getUserId());
+        userRole.setUserCreate(userOpen.getUserId());
+        userRole.setUserUpdate(userOpen.getUserId());
+        userRole.setRoleId(1);  //家庭用户
+
         //判断该门牌号是否被创建(该楼栋单元下)
         List<UptownHouse> lstUptownHouse = uptownHouseMapper.getUptownHouseBy(unitId, doorPlate);
         if (lstUptownHouse.size() > 0) {
-            throw new Exception("该门牌已有人入住!");
+            throw new Exception("当前单元下已有该门牌信息!");
         }
         UptownHouse uptownHouse = new UptownHouse();
         uptownHouse.setHouseId(IdWorker.getId());
@@ -101,8 +101,9 @@ public class WxUserOpenService {
         if (uptownHouseMapper.insert(uptownHouse) != 1) {
             throw new Exception("创建门牌失败!");
         }
+        userRole.setPropertyId(uptownHouse.getHouseId());   //绑定家庭用户角色的门牌id
         //判断该门牌是否存在家庭信息
-        List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId(), doorPlate);
+        List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId());
         if (lstUptownHome.size() > 0) {
             throw new Exception("该门牌已有人入住!");
         }
@@ -118,6 +119,83 @@ public class WxUserOpenService {
         if (uptownHomeMapper.insert(uptownHome) != 1) {
             throw new Exception("创建家庭信息失败!");
         }
+        userRoleMapper.insert(userRole);
+
+        return 1L;
+    }
+
+    public Long createYWH(List<OwnerLinkman> lstOwnerMan, Long uptownId) 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) {
+            //判断该用户是否创建了业委会的角色
+            for (UserRole item : lstUserRole) {
+                if (item.getRoleId() == 2L) {
+                    throw new Exception("业委会用户角色已存在");   //todo 暂时只允许一个用户角色绑定一个业委会
+                }
+            }
+        }
+        //创建业委会用户角色
+        UserRole userRole = new UserRole();
+        userRole.setUrId(IdWorker.getId());
+        userRole.setUserId(userOpen.getUserId());
+        userRole.setUserCreate(userOpen.getUserId());
+        userRole.setUserUpdate(userOpen.getUserId());
+        userRole.setRoleId(2);  //业委会
+
+        //判断业委会是否已经建立
+        List<Owner> lstOwner = new ArrayList<>();
+        Owner owner;
+        if (uptownId > 0L) {
+            lstOwner = ownerMapper.getOwnerByUptownId(uptownId);
+        }
+        if (lstOwner.size() > 0) {
+            //判断该用户是否创建了业委会
+            for (Owner item : lstOwner) {
+                if (item.getUptownId() == uptownId) {
+                    throw new Exception("该小区已建立业委会");
+                }
+            }
+        }
+        owner = new Owner();
+        owner.setOwnerId(IdWorker.getId());
+        owner.setUptownId(uptownId);
+        owner.setUserCreate(userOpen.getUserId());
+        owner.setUserUpdate(userOpen.getUserId());
+
+        userRole.setPropertyId(owner.getOwnerId());
+        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("业委会负责人只允许有一个");
+        }
+        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 1L;
     }
 

+ 1 - 1
whepi-web/src/main/resources/application.yml

@@ -43,7 +43,7 @@ endpoints:
 #  whitelabel.enabled: false
 
 spring:
-  profiles.active: maoyunfeng
+  profiles.active: hudingbo
 
   application:
     name: whepi-web