java110 лет назад: 2
Родитель
Сommit
ca3827c9af

+ 4 - 3
java110-db/src/main/resources/mapper/community/InitializeBuildingUnitDaoImplMapper.xml

@@ -24,9 +24,10 @@
             and community_id = #{communityId}
     </delete>
     <delete id="deleteOwnerRoomRel" parameterType="Map">
-        delete from building_owner_room_rel where room_id in(
-        select t.room_id from building_room t where t.community_id = #{communityId}
-        )
+        delete from building_owner_room_rel where room_id in
+        <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
     </delete>
 
     <!-- 初始化数据 add by wuxw 2018-07-03 -->

+ 4 - 3
java110-db/src/main/resources/mapper/user/InitializeOwnerServiceDaoImplMapper.xml

@@ -12,9 +12,10 @@
 
 
     <delete id="deleteUser" parameterType="Map">
-        delete from u_user where user_id in(
-        select t.user_id from owner_app_user t where t.community_id = #{communityId}
-        )
+        delete from u_user where user_id in
+        <foreach collection="userIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
     </delete>
     <delete id="deleteOwnerAppUser" parameterType="Map">
         delete from owner_app_user where 1=1

+ 31 - 0
service-community/src/main/java/com/java110/community/smo/impl/InitializeBuildingUnitSMOImpl.java

@@ -3,6 +3,9 @@ package com.java110.community.smo.impl;
 
 import com.java110.community.dao.IInitializeBuildingUnitDao;
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.intf.community.IRoomV1InnerServiceSMO;
 import com.java110.intf.community.IinitializeBuildingUnitSMO;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
@@ -11,6 +14,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,6 +27,10 @@ public class InitializeBuildingUnitSMOImpl extends BaseServiceSMO implements Iin
 
     private static Logger logger = LoggerFactory.getLogger(InitializeBuildingUnitSMOImpl.class);
 
+    public static final int DEFAULT_ROW = 200;
+    @Autowired
+    private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
+
     @Autowired
     private IInitializeBuildingUnitDao initializeBuildingUnitDaoImpl;
 
@@ -43,6 +52,28 @@ public class InitializeBuildingUnitSMOImpl extends BaseServiceSMO implements Iin
 
         //todo 自动解绑房屋 先注释,子查询删除报错
         // initializeBuildingUnitDaoImpl.deleteOwnerRoomRel(communityId);
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(communityId.get("communityId").toString());
+        int count = roomV1InnerServiceSMOImpl.queryRoomsCount(roomDto);
+        int page = (int) Math.floor(count / DEFAULT_ROW);
+        List<String> roomIds = null;
+        for (int pageIndex = 1; pageIndex < page + 1; pageIndex++) {
+            roomDto = new RoomDto();
+            roomDto.setPage(pageIndex);
+            roomDto.setRow(DEFAULT_ROW);
+            roomDto.setCommunityId(communityId.get("communityId").toString());
+            List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
+            if (roomDtos == null || roomDtos.size() < 1) {
+                continue;
+            }
+            roomIds = new ArrayList<>();
+            for (RoomDto tmpRoomDto : roomDtos) {
+                roomIds.add(tmpRoomDto.getRoomId());
+            }
+            communityId.put("roomIds", roomIds.toArray(new String[roomIds.size()]));
+            initializeBuildingUnitDaoImpl.deleteOwnerRoomRel(communityId);
+
+        }
         return deleteFlag;
     }
 

+ 34 - 1
service-user/src/main/java/com/java110/user/smo/impl/InitializeOwnerInnerServiceSMOImpl.java

@@ -1,12 +1,16 @@
 package com.java110.user.smo.impl;
 
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.owner.OwnerAppUserDto;
 import com.java110.intf.user.IInitializeOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
 import com.java110.user.dao.IInitializeOwneServiceDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,14 +24,43 @@ import java.util.Map;
 @RestController
 public class InitializeOwnerInnerServiceSMOImpl extends BaseServiceSMO implements IInitializeOwnerInnerServiceSMO {
 
+
+    public static final int DEFAULT_ROW = 200;
+
     @Autowired
     private IInitializeOwneServiceDao initializeOwnerServiceDaoImpl;
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
     @Override
     public int deleteBuildingOwner(@RequestBody Map communityId) {
         int deleteFast = initializeOwnerServiceDaoImpl.deleteBuildingOwner(communityId);
 
         //todo 删除 业主绑定数据
-        //initializeOwnerServiceDaoImpl.deleteUser(communityId);
+
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setCommunityId(communityId.get("communityId").toString());
+        int count = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsersCount(ownerAppUserDto);
+        int page = (int) Math.floor(count / DEFAULT_ROW);
+        List<String> userIds = null;
+        for (int pageIndex = 1; pageIndex < page + 1; pageIndex++) {
+            ownerAppUserDto = new OwnerAppUserDto();
+            ownerAppUserDto.setPage(pageIndex);
+            ownerAppUserDto.setRow(DEFAULT_ROW);
+            ownerAppUserDto.setCommunityId(communityId.get("communityId").toString());
+            List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+            if (ownerAppUserDtos == null || ownerAppUserDtos.size() < 1) {
+                continue;
+            }
+            userIds = new ArrayList<>();
+            for (OwnerAppUserDto tmpOwnerAppUserDto : ownerAppUserDtos) {
+                userIds.add(tmpOwnerAppUserDto.getUserId());
+            }
+            communityId.put("userIds", userIds.toArray(new String[userIds.size()]));
+            initializeOwnerServiceDaoImpl.deleteUser(communityId);
+
+        }
         initializeOwnerServiceDaoImpl.deleteOwnerAppUser(communityId);
         return deleteFast;
     }