From c32e21f2eab25be19b337d546e67e1441733dd4a Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期五, 30 六月 2023 22:15:06 +0800
Subject: [PATCH] 优化资产导入自动创建业主账号

---
 service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java |  209 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 153 insertions(+), 56 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java b/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
index b975e64..d633186 100644
--- a/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
+++ b/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
@@ -1,20 +1,33 @@
 package com.java110.community.smo.impl;
 
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.log.LoggerFactory;
-import com.java110.dto.FloorDto;
-import com.java110.dto.RoomDto;
-import com.java110.dto.UnitDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.floor.FloorDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.dto.unit.UnitDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.owner.OwnerRoomRelDto;
-import com.java110.entity.assetImport.ImportOwnerRoomDto;
+import com.java110.dto.importData.ImportOwnerRoomDto;
 import com.java110.intf.community.*;
+import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.floor.FloorPo;
+import com.java110.po.owner.OwnerAppUserPo;
 import com.java110.po.owner.OwnerPo;
 import com.java110.po.owner.OwnerRoomRelPo;
 import com.java110.po.room.RoomPo;
 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.StringUtil;
 import org.slf4j.Logger;
@@ -30,7 +43,7 @@
  */
 @RestController
 public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implements IImportOwnerRoomInnerServiceSMO {
-    private static Logger logger = LoggerFactory.getLogger(CommunityServiceSMOImpl.class);
+    private static Logger logger = LoggerFactory.getLogger(ImportOwnerRoomInnerServiceSMOImpl.class);
 
 
     @Autowired
@@ -48,6 +61,15 @@
     @Autowired
     private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
 
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
     @Override
     public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
 
@@ -64,6 +86,21 @@
 
 
         return successCount;
+    }
+
+    @Override
+    public int saveOwnerRoom(@RequestBody ImportOwnerRoomDto importOwnerRoomDto) {
+
+
+        if (importOwnerRoomDto == null) {
+            return 0;
+        }
+
+        List<ImportOwnerRoomDto> importOwnerRoomDtosed = new ArrayList<>();
+        // 1.0 鏌ョ湅 妤兼爧鏄惁瀛樺湪
+        return doSaveOwnerRooms(importOwnerRoomDto, importOwnerRoomDtosed);
+
+
     }
 
     /**
@@ -186,54 +223,13 @@
         ownerDto.setLink(importOwnerRoomDto.getTel());
         ownerDto.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
         List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
-        OwnerPo ownerPo = null;
         String ownerId = "";
-
         int flag = 0;
         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 {
             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();
@@ -249,7 +245,7 @@
         ownerRoomRelPo.setUserId(importOwnerRoomDto.getUserId());
         ownerRoomRelPo.setbId("-1");
         ownerRoomRelPo.setRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
-        ownerRoomRelPo.setState("2001");
+        ownerRoomRelPo.setState(importOwnerRoomDto.getRoomState());
         ownerRoomRelPo.setRoomId(roomId);
         ownerRoomRelPo.setOwnerId(ownerId);
         ownerRoomRelPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
@@ -259,6 +255,101 @@
         if (flag < 1) {
             throw new IllegalArgumentException("瀵煎叆涓氫富鎴垮眿鍏崇郴澶辫触");
         }
+    }
+
+    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) {
@@ -273,7 +364,8 @@
         int flag = 0;
         if (roomDtos == null || roomDtos.size() < 1) {
             roomPo = new RoomPo();
-            roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+            //roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+            roomPo.setState(importOwnerRoomDto.getRoomState());
             roomPo.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
             roomPo.setApartment(importOwnerRoomDto.getSection());
             roomPo.setSection("1");
@@ -300,7 +392,7 @@
             roomId = roomDtos.get(0).getRoomId();
             if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
                 roomPo = new RoomPo();
-                roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+                roomPo.setState(importOwnerRoomDto.getRoomState());
                 roomPo.setRoomId(roomId);
                 roomPo.setApartment(importOwnerRoomDto.getSection());
                 roomPo.setSection("1");
@@ -360,7 +452,7 @@
                 throw new IllegalArgumentException("瀵煎叆鍗曞厓澶辫触");
             }
 
-            unitId = unitPo.getFloorId();
+            unitId = unitPo.getUnitId();
         } else {
             unitId = unitDtos.get(0).getUnitId();
             if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
@@ -395,6 +487,10 @@
         List<FloorDto> floorDtos = floorV1InnerServiceSMOImpl.queryFloors(floorDto);
         FloorPo floorPo = null;
         String floorId = "";
+        int seq = 1;
+        if (StringUtil.isNumber(importOwnerRoomDto.getFloorNum())) {
+            seq = Integer.parseInt(importOwnerRoomDto.getFloorNum());
+        }
 
         int flag = 0;
         if (floorDtos == null || floorDtos.size() < 1) {
@@ -404,9 +500,10 @@
             floorPo.setFloorArea("1");
             floorPo.setFloorId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
             floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
-            floorPo.setName(importOwnerRoomDto.getFloorNum()+"鏍�");
+            floorPo.setName(importOwnerRoomDto.getFloorNum() + "鏍�");
             floorPo.setRemark("鎴夸骇瀵煎叆");
             floorPo.setUserId(importOwnerRoomDto.getUserId());
+            floorPo.setSeq(seq);
             flag = floorV1InnerServiceSMOImpl.saveFloor(floorPo);
 
             if (flag < 1) {
@@ -418,12 +515,12 @@
             floorId = floorDtos.get(0).getFloorId();
             if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
                 floorPo = new FloorPo();
-                floorPo.setbId("-1");
+                //floorPo.setbId("-1");
                 floorPo.setCommunityId(importOwnerRoomDto.getCommunityId());
-                floorPo.setFloorArea("1");
+                //floorPo.setFloorArea("1");
                 floorPo.setFloorId(floorId);
                 floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
-                floorPo.setName(importOwnerRoomDto.getFloorNum()+"鏍�");
+                floorPo.setName(importOwnerRoomDto.getFloorNum() + "鏍�");
                 floorPo.setRemark("鎴夸骇瀵煎叆");
                 floorPo.setUserId(importOwnerRoomDto.getUserId());
                 flag = floorV1InnerServiceSMOImpl.updateFloor(floorPo);

--
Gitblit v1.8.0