|
|
@@ -1,10 +1,13 @@
|
|
|
package com.java110.user.bmo.owner.impl;
|
|
|
|
|
|
import com.java110.dto.RoomDto;
|
|
|
+import com.java110.dto.owner.OwnerCarDto;
|
|
|
import com.java110.dto.owner.OwnerDto;
|
|
|
+import com.java110.dto.owner.OwnerRoomRelDto;
|
|
|
import com.java110.intf.common.IFileInnerServiceSMO;
|
|
|
import com.java110.intf.common.IFileRelInnerServiceSMO;
|
|
|
import com.java110.intf.community.IRoomInnerServiceSMO;
|
|
|
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
|
|
|
import com.java110.intf.user.IOwnerInnerServiceSMO;
|
|
|
import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
|
|
|
import com.java110.user.bmo.owner.IComprehensiveQuery;
|
|
|
@@ -14,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Service
|
|
|
@@ -43,6 +47,9 @@ public class ComprehensiveQueryImpl implements IComprehensiveQuery {
|
|
|
@Autowired
|
|
|
private IFileInnerServiceSMO fileInnerServiceSMOImpl;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
|
|
|
+
|
|
|
@Override
|
|
|
public ResponseEntity<String> query(String communityId, String searchValue, String searchType) {
|
|
|
OwnerDto ownerDto = null;
|
|
|
@@ -50,10 +57,258 @@ public class ComprehensiveQueryImpl implements IComprehensiveQuery {
|
|
|
case SEARCH_TYPE_ROOM:
|
|
|
ownerDto = queryByRoom(communityId, searchValue);
|
|
|
break;
|
|
|
+ case SEARCH_TYPE_OWNER_NAME:
|
|
|
+ ownerDto = queryByOwnerName(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_TEL:
|
|
|
+ ownerDto = queryByOwnerTel(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_IDCARD:
|
|
|
+ ownerDto = queryByOwnerIdCard(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_CAR:
|
|
|
+ ownerDto = queryByOwnerCar(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_MEMBER_NAME:
|
|
|
+ ownerDto = queryByOwnerMemberName(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_MEMBER_TEL:
|
|
|
+ ownerDto = queryByOwnerMemberTel(communityId, searchValue);
|
|
|
+ break;
|
|
|
+ case SEARCH_TYPE_OWNER_MEMBER_IDCARD:
|
|
|
+ ownerDto = queryByOwnerMemberIdCard(communityId, searchValue);
|
|
|
+ break;
|
|
|
}
|
|
|
return ResultVo.createResponseEntity(1, 1, ownerDto);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 成员身份证查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerMemberIdCard(String communityId, String searchValue) {
|
|
|
+
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setIdCard(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到成员信息或者查询到多条,请换其他条件查询");
|
|
|
+
|
|
|
+ return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 成员名称查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerMemberTel(String communityId, String searchValue) {
|
|
|
+
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setLink(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到成员信息或者查询到多条,请换其他条件查询");
|
|
|
+
|
|
|
+ return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 成员名称查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerMemberName(String communityId, String searchValue) {
|
|
|
+
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setName(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到成员信息或者查询到多条,请换其他条件查询");
|
|
|
+
|
|
|
+ return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据业主车辆查询业主
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerCar(String communityId, String searchValue) {
|
|
|
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
|
|
|
+ ownerCarDto.setCommunityId(communityId);
|
|
|
+ ownerCarDto.setCarNum(searchValue);
|
|
|
+ List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
|
|
|
+
|
|
|
+ if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
|
|
|
+ throw new IllegalArgumentException("未查到车辆信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ return queryByOwnerId(communityId, ownerCarDtos.get(0).getOwnerId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据业主ID查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerId(String communityId, String searchValue) {
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setOwnerId(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到业主信息或者查询到多条,请换其他条件查询");
|
|
|
+ OwnerDto resOwnerDto = ownerDtos.get(0);
|
|
|
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
|
|
|
+ ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
|
|
|
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
|
|
|
+
|
|
|
+ //没有房屋
|
|
|
+ if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+ List<String> roomIds = new ArrayList<>();
|
|
|
+ for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
|
|
|
+ roomIds.add(tmpOwnerRoomRelDto.getRoomId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
+ roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
|
|
|
+ roomDto.setCommunityId(communityId);
|
|
|
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
+ resOwnerDto.setRooms(roomDtos);
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据业主身份证查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerIdCard(String communityId, String searchValue) {
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setIdCard(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到业主信息或者查询到多条,请换其他条件查询");
|
|
|
+ OwnerDto resOwnerDto = ownerDtos.get(0);
|
|
|
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
|
|
|
+ ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
|
|
|
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
|
|
|
+
|
|
|
+ //没有房屋
|
|
|
+ if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+ List<String> roomIds = new ArrayList<>();
|
|
|
+ for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
|
|
|
+ roomIds.add(tmpOwnerRoomRelDto.getRoomId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
+ roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
|
|
|
+ roomDto.setCommunityId(communityId);
|
|
|
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
+ resOwnerDto.setRooms(roomDtos);
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据业主手机号查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerTel(String communityId, String searchValue) {
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setLink(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到业主信息或者查询到多条,请换其他条件查询");
|
|
|
+ OwnerDto resOwnerDto = ownerDtos.get(0);
|
|
|
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
|
|
|
+ ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
|
|
|
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
|
|
|
+
|
|
|
+ //没有房屋
|
|
|
+ if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+ List<String> roomIds = new ArrayList<>();
|
|
|
+ for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
|
|
|
+ roomIds.add(tmpOwnerRoomRelDto.getRoomId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
+ roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
|
|
|
+ roomDto.setCommunityId(communityId);
|
|
|
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
+ resOwnerDto.setRooms(roomDtos);
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据业主名称 查询
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param searchValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private OwnerDto queryByOwnerName(String communityId, String searchValue) {
|
|
|
+
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ ownerDto.setName(searchValue);
|
|
|
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
|
|
|
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ Assert.listOnlyOne(ownerDtos, "未找到业主信息或者查询到多条,请换其他条件查询");
|
|
|
+ OwnerDto resOwnerDto = ownerDtos.get(0);
|
|
|
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
|
|
|
+ ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
|
|
|
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
|
|
|
+
|
|
|
+ //没有房屋
|
|
|
+ if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+ List<String> roomIds = new ArrayList<>();
|
|
|
+ for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
|
|
|
+ roomIds.add(tmpOwnerRoomRelDto.getRoomId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
+ roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
|
|
|
+ roomDto.setCommunityId(communityId);
|
|
|
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
+ resOwnerDto.setRooms(roomDtos);
|
|
|
+ return resOwnerDto;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据房屋查询
|
|
|
*
|
|
|
@@ -86,6 +341,7 @@ public class ComprehensiveQueryImpl implements IComprehensiveQuery {
|
|
|
OwnerDto ownerDto = new OwnerDto();
|
|
|
ownerDto.setCommunityId(communityId);
|
|
|
ownerDto.setRoomId(roomDtos.get(0).getRoomId());
|
|
|
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
|
|
|
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
|
|
|
Assert.listOnlyOne(ownerDtos, "未找到业主信息");
|