From 4e992596dd378bb68021875a90801b4c7ecaf288 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 06 十二月 2024 00:52:07 +0800
Subject: [PATCH] 扣款只扣物业费和水电费扣款
---
service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java | 399 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 356 insertions(+), 43 deletions(-)
diff --git a/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java b/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
old mode 100644
new mode 100755
index 9de4153..a710af4
--- a/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
+++ b/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
@@ -1,24 +1,33 @@
package com.java110.user.bmo.owner.impl;
-import com.java110.dto.RoomDto;
+import com.java110.dto.account.AccountDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.dto.privilege.BasePrivilegeDto;
+import com.java110.dto.contract.ContractDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.intf.acct.IAccountInnerServiceSMO;
import com.java110.intf.common.IFileInnerServiceSMO;
import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.community.IMenuInnerServiceSMO;
import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.store.IContractInnerServiceSMO;
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;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.ListUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
@Service
public class ComprehensiveQueryImpl implements IComprehensiveQuery {
@@ -31,6 +40,8 @@
public static final String SEARCH_TYPE_OWNER_MEMBER_NAME = "6"; //鏍规嵁瀹跺涵鎴愬憳鍚嶇О
public static final String SEARCH_TYPE_OWNER_MEMBER_TEL = "7"; //鏍规嵁瀹跺涵鎴愬憳鐢佃瘽
public static final String SEARCH_TYPE_OWNER_MEMBER_IDCARD = "8"; //鏍规嵁瀹跺涵鎴愬憳韬唤璇�
+ public static final String SEARCH_TYPE_SHOPS = "9"; //鏍规嵁鍟嗛摵鍙�
+ public static final String SEARCH_TYPE_CONTRACT = "10"; //鍚堝悓鍙�
@Autowired
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
@@ -50,36 +61,72 @@
@Autowired
private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+ @Autowired
+ private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
+
+ @Autowired
+ private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
+ @Autowired
+ private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
@Override
- public ResponseEntity<String> query(String communityId, String searchValue, String searchType) {
+ public ResponseEntity<String> query(String communityId, String searchValue, String searchType, String userId, String storeId) {
OwnerDto ownerDto = null;
switch (searchType) {
case SEARCH_TYPE_ROOM:
- ownerDto = queryByRoom(communityId, searchValue);
+ ownerDto = queryByRoom(communityId, searchValue, userId);
+ break;
+ case SEARCH_TYPE_SHOPS:
+ ownerDto = queryByShops(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_NAME:
- ownerDto = queryByOwnerName(communityId, searchValue);
+ ownerDto = queryByOwnerName(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_TEL:
- ownerDto = queryByOwnerTel(communityId, searchValue);
+ ownerDto = queryByOwnerTel(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_IDCARD:
- ownerDto = queryByOwnerIdCard(communityId, searchValue);
+ ownerDto = queryByOwnerIdCard(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_CAR:
- ownerDto = queryByOwnerCar(communityId, searchValue);
+ ownerDto = queryByOwnerCar(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_MEMBER_NAME:
- ownerDto = queryByOwnerMemberName(communityId, searchValue);
+ ownerDto = queryByOwnerMemberName(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_MEMBER_TEL:
- ownerDto = queryByOwnerMemberTel(communityId, searchValue);
+ ownerDto = queryByOwnerMemberTel(communityId, searchValue, userId);
break;
case SEARCH_TYPE_OWNER_MEMBER_IDCARD:
- ownerDto = queryByOwnerMemberIdCard(communityId, searchValue);
+ ownerDto = queryByOwnerMemberIdCard(communityId, searchValue, userId);
+ break;
+ case SEARCH_TYPE_CONTRACT:
+ ownerDto = queryByContract(communityId, searchValue, userId, storeId);
break;
}
+
+ if (ownerDto == null) {
+ return ResultVo.createResponseEntity(1, 1, ownerDto);
+ }
+ //todo 鏌ヨ璐︽埛浣欓
+ AccountDto accountDto = new AccountDto();
+ accountDto.setObjId(ownerDto.getMemberId());
+ accountDto.setPartId(communityId);
+ List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
+ if (ListUtil.isNull(accountDtos)) {
+ return ResultVo.createResponseEntity(1, 1, ownerDto);
+ }
+ BigDecimal accountDec = new BigDecimal("0");
+ for (AccountDto tmpAccountDto : accountDtos) {
+ accountDec = accountDec.add(new BigDecimal(tmpAccountDto.getAmount()));
+ }
+ accountDec = accountDec.setScale(2, BigDecimal.ROUND_HALF_UP);
+
+ ownerDto.setAcctAmount(accountDec.doubleValue() + "");
+
return ResultVo.createResponseEntity(1, 1, ownerDto);
+
}
/**
@@ -89,16 +136,29 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerMemberIdCard(String communityId, String searchValue) {
-
+ private OwnerDto queryByOwnerMemberIdCard(String communityId, String searchValue, String userId) {
OwnerDto ownerDto = new OwnerDto();
ownerDto.setCommunityId(communityId);
ownerDto.setIdCard(searchValue);
- ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER});
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
Assert.listOnlyOne(ownerDtos, "鏈壘鍒版垚鍛樹俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
-
- return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ OwnerDto owner = queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && idCard != null) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ owner.setIdCard(idCard);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ owner.setLink(link);
+ }
+ return owner;
}
/**
@@ -108,16 +168,29 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerMemberTel(String communityId, String searchValue) {
-
+ private OwnerDto queryByOwnerMemberTel(String communityId, String searchValue, String userId) {
OwnerDto ownerDto = new OwnerDto();
ownerDto.setCommunityId(communityId);
ownerDto.setLink(searchValue);
- ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER});
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
Assert.listOnlyOne(ownerDtos, "鏈壘鍒版垚鍛樹俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
-
- return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ OwnerDto owner = queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && idCard != null) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ owner.setIdCard(idCard);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ owner.setLink(link);
+ }
+ return owner;
}
/**
@@ -127,16 +200,31 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerMemberName(String communityId, String searchValue) {
+ private OwnerDto queryByOwnerMemberName(String communityId, String searchValue, String userId) {
OwnerDto ownerDto = new OwnerDto();
ownerDto.setCommunityId(communityId);
ownerDto.setName(searchValue);
- ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER, OwnerDto.OWNER_TYPE_CD_RENTING});
+ ownerDto.setOwnerTypeCds(new String[]{OwnerDto.OWNER_TYPE_CD_MEMBER});
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
- Assert.listOnlyOne(ownerDtos, "鏈壘鍒版垚鍛樹俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
-
- return queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ Assert.isNotNull(ownerDtos, "鏈壘鍒版垚鍛樹俊鎭紝璇锋崲鍏朵粬鏉′欢鏌ヨ");
+ //Assert.listOnlyOne(ownerDtos, "鏈壘鍒版垚鍛樹俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
+ OwnerDto owner = queryByOwnerId(communityId, ownerDtos.get(0).getOwnerId());
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && idCard != null) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ owner.setIdCard(idCard);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ owner.setLink(link);
+ }
+ return owner;
}
/**
@@ -146,7 +234,7 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerCar(String communityId, String searchValue) {
+ private OwnerDto queryByOwnerCar(String communityId, String searchValue, String userId) {
OwnerCarDto ownerCarDto = new OwnerCarDto();
ownerCarDto.setCommunityId(communityId);
ownerCarDto.setCarNum(searchValue);
@@ -156,7 +244,22 @@
throw new IllegalArgumentException("鏈煡鍒拌溅杈嗕俊鎭�");
}
- return queryByOwnerId(communityId, ownerCarDtos.get(0).getOwnerId());
+ OwnerDto owner = queryByOwnerId(communityId, ownerCarDtos.get(0).getOwnerId());
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && idCard != null) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ owner.setIdCard(idCard);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ owner.setLink(link);
+ }
+ return owner;
}
@@ -204,16 +307,34 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerIdCard(String communityId, String searchValue) {
+ private OwnerDto queryByOwnerIdCard(String communityId, String searchValue, String userId) {
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);
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
- ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
+ ownerRoomRelDto.setOwnerId(ownerDtoList.get(0).getOwnerId());
List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
//娌℃湁鎴垮眿
@@ -241,16 +362,34 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerTel(String communityId, String searchValue) {
+ private OwnerDto queryByOwnerTel(String communityId, String searchValue, String userId) {
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);
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
- ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
+ ownerRoomRelDto.setOwnerId(ownerDtoList.get(0).getOwnerId());
List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
//娌℃湁鎴垮眿
@@ -278,17 +417,34 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByOwnerName(String communityId, String searchValue) {
-
+ private OwnerDto queryByOwnerName(String communityId, String searchValue, String userId) {
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);
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
- ownerRoomRelDto.setOwnerId(ownerDtos.get(0).getOwnerId());
+ ownerRoomRelDto.setOwnerId(ownerDtoList.get(0).getOwnerId());
List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
//娌℃湁鎴垮眿
@@ -316,13 +472,73 @@
* @param searchValue
* @return
*/
- private OwnerDto queryByRoom(String communityId, String searchValue) {
+ private OwnerDto queryByShops(String communityId, String searchValue, String userId) {
+
+ if (!searchValue.contains("-")) {
+ throw new IllegalArgumentException("鏌ヨ鍐呭鏍煎紡閿欒锛岃杈撳叆 妤兼爧-鍟嗛摵 濡� 1-1");
+ }
+
+ String[] values = searchValue.split("-", 3);
+
+ if (values.length != 2) {
+ throw new IllegalArgumentException("鏌ヨ鍐呭鏍煎紡閿欒锛岃杈撳叆 妤兼爧-鍟嗛摵 濡� 1-1");
+ }
+
+ RoomDto roomDto = new RoomDto();
+ roomDto.setFloorNum(values[0]);
+ roomDto.setUnitNum("0");
+ roomDto.setRoomNum(values[1]);
+ roomDto.setCommunityId(communityId);
+
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+ Assert.listOnlyOne(roomDtos, "鏈壘鍒版埧灞嬩俊鎭�");
+
+ 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, "鏈壘鍒颁笟涓讳俊鎭�");
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
+
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
+
+ resOwnerDto.setRooms(roomDtos);
+
+ return resOwnerDto;
+ }
+
+ /**
+ * 鏍规嵁鎴垮眿鏌ヨ
+ *
+ * @param communityId
+ * @param searchValue
+ * @return
+ */
+ private OwnerDto queryByRoom(String communityId, String searchValue, String userId) {
if (!searchValue.contains("-")) {
throw new IllegalArgumentException("鏌ヨ鍐呭鏍煎紡閿欒锛岃杈撳叆 妤兼爧-鍗曞厓-鎴垮眿 濡� 1-1-1");
}
- String[] values = searchValue.split("-");
+ String[] values = searchValue.split("-", 3);
if (values.length != 3) {
throw new IllegalArgumentException("鏌ヨ鍐呭鏍煎紡閿欒锛岃杈撳叆 妤兼爧-鍗曞厓-鎴垮眿 濡� 1-1-1");
@@ -335,23 +551,120 @@
roomDto.setCommunityId(communityId);
List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
-
- Assert.listOnlyOne(roomDtos, "鏈壘鍒版埧灞嬩俊鎭�");
+ //Assert.listOnlyOne(roomDtos, "鏈壘鍒版埧灞嬩俊鎭�");
+ if (roomDtos == null || roomDtos.size() < 1) {
+ throw new IllegalArgumentException("鏈壘鍒版埧灞嬩俊鎭�");
+ }
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, "鏈壘鍒颁笟涓讳俊鎭�");
+ if (ownerDtos == null || ownerDtos.size() < 1) {
+ throw new IllegalArgumentException("鏈壘鍒颁笟涓讳俊鎭�");
+ }
- Assert.listOnlyOne(ownerDtos, "鏈壘鍒颁笟涓讳俊鎭�");
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && idCard.length() >= 16) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && link.length() == 11) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
- OwnerDto resOwnerDto = ownerDtos.get(0);
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
resOwnerDto.setRooms(roomDtos);
return resOwnerDto;
}
+ /**
+ * 鏍规嵁鍚堝悓鏌ヨ
+ *
+ * @param communityId
+ * @param searchValue
+ * @return
+ */
+ private OwnerDto queryByContract(String communityId, String searchValue, String userId, String storeId) {
+
+ ContractDto contractDto = new ContractDto();
+ contractDto.setContractCode(searchValue);
+ contractDto.setStoreId(storeId);
+ List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+ Assert.listOnlyOne(contractDtos, "鏈壘鍒板悎鍚屼俊鎭�");
+
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setCommunityId(communityId);
+ ownerDto.setMemberId(contractDtos.get(0).getObjId());
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+ Assert.listOnlyOne(ownerDtos, "鏈壘鍒颁笟涓讳俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
+ //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+ List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+ List<OwnerDto> ownerDtoList = new ArrayList<>();
+ for (OwnerDto owner : ownerDtos) {
+ //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+ String idCard = owner.getIdCard();
+ if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+ idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+ }
+ //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+ String link = owner.getLink();
+ if (mark.size() == 0 && link != null && !link.equals("")) {
+ link = link.substring(0, 3) + "****" + link.substring(7);
+ }
+ owner.setIdCard(idCard);
+ owner.setLink(link);
+ ownerDtoList.add(owner);
+ }
+ OwnerDto resOwnerDto = ownerDtoList.get(0);
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+ ownerRoomRelDto.setOwnerId(ownerDtoList.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;
+ }
+
+ /**
+ * 鑴辨晱澶勭悊
+ *
+ * @return
+ */
+ public List<Map> getPrivilegeOwnerList(String resource, String userId) {
+ BasePrivilegeDto basePrivilegeDto = new BasePrivilegeDto();
+ basePrivilegeDto.setResource(resource);
+ basePrivilegeDto.setUserId(userId);
+ List<Map> privileges = menuInnerServiceSMOImpl.checkUserHasResource(basePrivilegeDto);
+ return privileges;
+ }
}
--
Gitblit v1.8.0