Selaa lähdekoodia

优化资产导入自动创建业主账号

Your Name 2 vuotta sitten
vanhempi
commit
c32e21f2ea

+ 117 - 42
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java

@@ -1,8 +1,10 @@
 package com.java110.community.smo.impl;
 package com.java110.community.smo.impl;
 
 
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.log.LoggerFactory;
 import com.java110.core.log.LoggerFactory;
+import com.java110.dto.community.CommunityDto;
 import com.java110.dto.floor.FloorDto;
 import com.java110.dto.floor.FloorDto;
 import com.java110.dto.room.RoomDto;
 import com.java110.dto.room.RoomDto;
 import com.java110.dto.unit.UnitDto;
 import com.java110.dto.unit.UnitDto;
@@ -10,13 +12,22 @@ import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.importData.ImportOwnerRoomDto;
 import com.java110.dto.importData.ImportOwnerRoomDto;
 import com.java110.intf.community.*;
 import com.java110.intf.community.*;
+import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.floor.FloorPo;
 import com.java110.po.floor.FloorPo;
+import com.java110.po.owner.OwnerAppUserPo;
 import com.java110.po.owner.OwnerPo;
 import com.java110.po.owner.OwnerPo;
 import com.java110.po.owner.OwnerRoomRelPo;
 import com.java110.po.owner.OwnerRoomRelPo;
 import com.java110.po.room.RoomPo;
 import com.java110.po.room.RoomPo;
 import com.java110.po.unit.UnitPo;
 import com.java110.po.unit.UnitPo;
+import com.java110.po.user.UserPo;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.constant.UserLevelConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -50,6 +61,15 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
     @Autowired
     @Autowired
     private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
     private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
 
 
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
     @Override
     @Override
     public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
     public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
 
 
@@ -203,53 +223,13 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
         ownerDto.setLink(importOwnerRoomDto.getTel());
         ownerDto.setLink(importOwnerRoomDto.getTel());
         ownerDto.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
         ownerDto.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
         List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
         List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
-        OwnerPo ownerPo = null;
         String ownerId = "";
         String ownerId = "";
-
         int flag = 0;
         int flag = 0;
         if (ownerDtos == null || ownerDtos.size() < 1) {
         if (ownerDtos == null || ownerDtos.size() < 1) {
-            ownerPo = new OwnerPo();
-            ownerPo.setState(OwnerDto.STATE_FINISH);
-            ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
-            ownerPo.setbId("-1");
-            ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
-            ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
-            ownerPo.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
-            ownerPo.setName(importOwnerRoomDto.getOwnerName());
-            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
-            ownerPo.setAge(importOwnerRoomDto.getAge());
-            ownerPo.setSex(importOwnerRoomDto.getSex());
-            ownerPo.setLink(importOwnerRoomDto.getTel());
-            ownerPo.setMemberId(ownerPo.getOwnerId());
-            ownerPo.setRemark("房产导入");
-            ownerPo.setUserId(importOwnerRoomDto.getUserId());
-            flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
-            if (flag < 1) {
-                throw new IllegalArgumentException("导入业主失败");
-            }
-
-            ownerId = ownerPo.getOwnerId();
+            ownerId = doSaveOwnerInfo(importOwnerRoomDto);
         } else {
         } else {
             ownerId = ownerDtos.get(0).getOwnerId();
             ownerId = ownerDtos.get(0).getOwnerId();
-            ownerPo = new OwnerPo();
-            ownerPo.setState(OwnerDto.STATE_FINISH);
-            ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
-            ownerPo.setbId("-1");
-            ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
-            ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
-            ownerPo.setOwnerId(ownerId);
-            ownerPo.setName(importOwnerRoomDto.getOwnerName());
-            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
-            ownerPo.setAge(importOwnerRoomDto.getAge());
-            ownerPo.setSex(importOwnerRoomDto.getSex());
-            ownerPo.setLink(importOwnerRoomDto.getTel());
-            ownerPo.setMemberId(ownerPo.getOwnerId());
-            ownerPo.setRemark("房产导入");
-            ownerPo.setUserId(importOwnerRoomDto.getUserId());
-            flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
-            if (flag < 1) {
-                throw new IllegalArgumentException("导入业主失败");
-            }
+            doUpdateOwnerInfo(importOwnerRoomDto, ownerId);
         }
         }
         // 查询房屋和业主是否有关系
         // 查询房屋和业主是否有关系
         OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
         OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
@@ -277,6 +257,101 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
         }
         }
     }
     }
 
 
+    private void doUpdateOwnerInfo(ImportOwnerRoomDto importOwnerRoomDto, String ownerId) {
+        OwnerPo ownerPo;
+        int flag;
+        ownerPo = new OwnerPo();
+        ownerPo.setState(OwnerDto.STATE_FINISH);
+        ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
+        ownerPo.setbId("-1");
+        ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
+        ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerPo.setOwnerId(ownerId);
+        ownerPo.setName(importOwnerRoomDto.getOwnerName());
+        ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
+        ownerPo.setAge(importOwnerRoomDto.getAge());
+        ownerPo.setSex(importOwnerRoomDto.getSex());
+        ownerPo.setLink(importOwnerRoomDto.getTel());
+        ownerPo.setMemberId(ownerPo.getOwnerId());
+        ownerPo.setRemark("房产导入");
+        ownerPo.setUserId(importOwnerRoomDto.getUserId());
+        flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
+        if (flag < 1) {
+            throw new IllegalArgumentException("导入业主失败");
+        }
+    }
+
+    private String doSaveOwnerInfo(ImportOwnerRoomDto importOwnerRoomDto) {
+        int flag;
+        OwnerPo ownerPo = new OwnerPo();
+        ownerPo.setState(OwnerDto.STATE_FINISH);
+        ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
+        ownerPo.setbId("-1");
+        ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
+        ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerPo.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
+        ownerPo.setName(importOwnerRoomDto.getOwnerName());
+        ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
+        ownerPo.setAge(importOwnerRoomDto.getAge());
+        ownerPo.setSex(importOwnerRoomDto.getSex());
+        ownerPo.setLink(importOwnerRoomDto.getTel());
+        ownerPo.setMemberId(ownerPo.getOwnerId());
+        ownerPo.setRemark("房产导入");
+        ownerPo.setUserId(importOwnerRoomDto.getUserId());
+        flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
+        if (flag < 1) {
+            throw new IllegalArgumentException("导入业主失败");
+        }
+
+        String autoUser = MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH, "AUTO_GENERATOR_OWNER_USER");
+
+        if (!"ON".equals(autoUser)) {
+            return ownerPo.getOwnerId();
+        }
+
+        CommunityDto communityDto = new CommunityDto();
+        communityDto.setCommunityId(ownerPo.getCommunityId());
+        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+        Assert.listNotNull(communityDtos, "未包含小区信息");
+        CommunityDto tmpCommunityDto = communityDtos.get(0);
+
+        UserPo userPo = new UserPo();
+        userPo.setUserId(GenerateCodeFactory.getUserId());
+        userPo.setName(ownerPo.getName());
+        userPo.setTel(ownerPo.getLink());
+        userPo.setPassword(AuthenticationFactory.passwdMd5(ownerPo.getLink()));
+        userPo.setLevelCd(UserLevelConstant.USER_LEVEL_ORDINARY);
+        userPo.setAge(ownerPo.getAge());
+        userPo.setAddress(ownerPo.getAddress());
+        userPo.setSex(ownerPo.getSex());
+        flag = userV1InnerServiceSMOImpl.saveUser(userPo);
+        if (flag < 1) {
+            throw new CmdException("注册失败");
+        }
+
+        OwnerAppUserPo ownerAppUserPo = new OwnerAppUserPo();
+        //状态类型,10000 审核中,12000 审核成功,13000 审核失败
+        ownerAppUserPo.setState("12000");
+        ownerAppUserPo.setAppTypeCd("10010");
+        ownerAppUserPo.setAppUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_appUserId));
+        ownerAppUserPo.setMemberId(ownerPo.getMemberId());
+        ownerAppUserPo.setCommunityName(tmpCommunityDto.getName());
+        ownerAppUserPo.setCommunityId(ownerPo.getCommunityId());
+        ownerAppUserPo.setAppUserName(ownerPo.getName());
+        ownerAppUserPo.setIdCard(ownerPo.getIdCard());
+        ownerAppUserPo.setAppType("WECHAT");
+        ownerAppUserPo.setLink(ownerPo.getLink());
+        ownerAppUserPo.setUserId(userPo.getUserId());
+        ownerAppUserPo.setOpenId("-1");
+
+        flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
+        if (flag < 1) {
+            throw new CmdException("添加用户业主关系失败");
+        }
+
+        return ownerPo.getOwnerId();
+    }
+
     private String doSaveRoom(ImportOwnerRoomDto importOwnerRoomDto, String unitId) {
     private String doSaveRoom(ImportOwnerRoomDto importOwnerRoomDto, String unitId) {
         RoomDto roomDto = new RoomDto();
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(importOwnerRoomDto.getCommunityId());
         roomDto.setCommunityId(importOwnerRoomDto.getCommunityId());