From 53dbe1b2140aa03458a5eac46c21c2e0047dab45 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期三, 19 四月 2023 00:42:31 +0800
Subject: [PATCH] 优化根据楼栋查询单元bug
---
service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java | 161 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 130 insertions(+), 31 deletions(-)
diff --git a/service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java b/service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java
index 4803b84..1b9b55e 100644
--- a/service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java
@@ -7,8 +7,16 @@
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.CommunitySettingFactory;
import com.java110.doc.annotation.*;
+import com.java110.dto.file.FileRelDto;
+import com.java110.dto.owner.OwnerDto;
import com.java110.dto.visit.VisitDto;
-import com.java110.intf.community.IVisitInnerServiceSMO;
+import com.java110.dto.visitSetting.VisitSettingDto;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.community.IVisitSettingV1InnerServiceSMO;
+import com.java110.intf.community.IVisitV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
@@ -24,45 +32,50 @@
import java.util.List;
import java.util.Map;
-
-
@Java110CmdDoc(title = "鏌ヨ璁垮",
description = "渚沺c绔煡璇㈣瀹汉鍛�",
httpMethod = "get",
url = "http://{ip}:{port}/app/visit.listVisits",
resource = "communityDoc",
author = "鍚村鏂�",
- serviceCode = "visit.listVisits"
+ serviceCode = "visit.listVisits",
+ seq = 22
)
@Java110ParamsDoc(params = {
- @Java110ParamDoc(name = "page",type = "int",length = 11, remark = "鍒嗛〉淇℃伅"),
- @Java110ParamDoc(name = "row", type = "int",length = 11, remark = "琛屾暟"),
- @Java110ParamDoc(name = "communityId", length = 30, remark = "灏忓尯ID"),
-})
+ @Java110ParamDoc(name = "page", type = "int", length = 11, remark = "鍒嗛〉淇℃伅"),
+ @Java110ParamDoc(name = "row", type = "int", length = 11, remark = "琛屾暟"),
+ @Java110ParamDoc(name = "communityId", length = 30, remark = "灏忓尯ID"),})
@Java110ResponseDoc(
params = {
@Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "杩斿洖缂栧彿锛�0 鎴愬姛 鍏朵粬澶辫触"),
@Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "鎴愬姛", remark = "鎻忚堪"),
@Java110ParamDoc(name = "visits", type = "Array", remark = "鏈夋晥鏁版嵁"),
- @Java110ParamDoc(parentNodeName = "visits",name = "vId", type = "String", remark = "璁垮ID"),
- @Java110ParamDoc(parentNodeName = "visits",name = "vName", type = "String", remark = "璁垮鍚嶇О"),
- @Java110ParamDoc(parentNodeName = "visits",name = "visitGender", type = "String", remark = "璁垮鎬у埆"),
- @Java110ParamDoc(parentNodeName = "visits",name = "phoneNumber", type = "String", remark = "鎵嬫満鍙�"),
- @Java110ParamDoc(parentNodeName = "visits",name = "visitTime", type = "String", remark = "璁块棶鏃堕棿"),
- }
-)
+ @Java110ParamDoc(parentNodeName = "visits", name = "vId", type = "String", remark = "璁垮ID"),
+ @Java110ParamDoc(parentNodeName = "visits", name = "vName", type = "String", remark = "璁垮鍚嶇О"),
+ @Java110ParamDoc(parentNodeName = "visits", name = "visitGender", type = "String", remark = "璁垮鎬у埆"),
+ @Java110ParamDoc(parentNodeName = "visits", name = "phoneNumber", type = "String", remark = "鎵嬫満鍙�"),
+ @Java110ParamDoc(parentNodeName = "visits", name = "visitTime", type = "String", remark = "璁块棶鏃堕棿"),})
@Java110ExampleDoc(
- reqBody="ttp://localhost:3000/app/visit.listVisits?page=1&row=10&communityId=2022121921870161",
- resBody="{\"page\":0,\"records\":0,\"rows\":0,\"total\":0,\"visits\":[]}"
+ reqBody = "ttp://localhost:3000/app/visit.listVisits?page=1&row=10&communityId=2022121921870161",
+ resBody = "{\"page\":0,\"records\":0,\"rows\":0,\"total\":0,\"visits\":[]}"
)
@Java110Cmd(serviceCode = "visit.listVisits")
public class ListVisitsCmd extends Cmd {
@Autowired
- private IVisitInnerServiceSMO visitInnerServiceSMOImpl;
+ private IVisitV1InnerServiceSMO visitV1InnerServiceSMO;
+
+ @Autowired
+ private IVisitSettingV1InnerServiceSMO visitSettingV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
//閿�
public static final String CAR_FREE_TIME = "CAR_FREE_TIME";
@@ -73,21 +86,28 @@
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
super.validatePageInfo(reqJson);
-
- Assert.hasKeyAndValue(reqJson,"communityId","鏈寘鍚皬鍖�");
-
+ Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖�");
}
@Override
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
ResponseEntity<String> responseEntity = new ResponseEntity<String>("", HttpStatus.OK);
+ VisitSettingDto visitSettingDto = new VisitSettingDto();
+ visitSettingDto.setCommunityId(reqJson.getString("communityId"));
+ List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
if (reqJson.containsKey("addVisitType") && !StringUtil.isEmpty(reqJson.getString("addVisitType"))
&& "initAddVisitParameter".equals(reqJson.getString("addVisitType"))) {
//棰勭害杞﹀厤璐规椂闀�
- String freeTime = CommunitySettingFactory.getValue(reqJson.getString("communityId"), CAR_FREE_TIME);
- String numStr = CommunitySettingFactory.getValue(reqJson.getString("communityId"), VISIT_NUMBER);
+ String freeTime = "";
+ String numStr = "";
+ if (visitSettingDtos != null && visitSettingDtos.size() == 1) {
+ freeTime = visitSettingDtos.get(0).getCarFreeTime();
+ numStr = visitSettingDtos.get(0).getVisitNumber();
+ }
+ /*String freeTime = CommunitySettingFactory.getValue(reqJson.getString("communityId"), CAR_FREE_TIME);
+ String numStr = CommunitySettingFactory.getValue(reqJson.getString("communityId"), VISIT_NUMBER);*/
int number = 999;
- if(StringUtil.isInteger(numStr)){
+ if (StringUtil.isInteger(numStr)) {
number = Integer.parseInt(numStr);
}
Map initAddVisitParameter = new HashMap();
@@ -97,16 +117,20 @@
responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(initAddVisitParameter), HttpStatus.OK);
} else {
VisitDto visitDto = BeanConvertUtil.covertBean(reqJson, VisitDto.class);
- if (reqJson.containsKey("channel") && !StringUtil.isEmpty(reqJson.getString("channel"))
- && "PC".equals(reqJson.getString("channel"))) {
- visitDto.setUserId("");
+ if ("PC".equals(reqJson.getString("channel"))) {
+ visitDto.setCreateUserId("");
}
- int count = visitInnerServiceSMOImpl.queryVisitsCount(visitDto);
+ int count = visitV1InnerServiceSMO.queryVisitsCount(visitDto);
+ String visitorCode = "";
+ if (visitSettingDtos != null && visitSettingDtos.size() == 1) {
+ visitorCode = visitSettingDtos.get(0).getVisitorCode();
+ }
List<ApiVisitDataVo> visits = new ArrayList<>();
if (count > 0) {
- List<VisitDto> visitDtos = visitInnerServiceSMOImpl.queryVisits(visitDto);
+ List<VisitDto> visitDtos = visitV1InnerServiceSMO.queryVisits(visitDto);
for (VisitDto visit : visitDtos) {
ApiVisitDataVo apiVisitDataVo = BeanConvertUtil.covertBean(visit, ApiVisitDataVo.class);
+ apiVisitDataVo.setVisitorCode(visitorCode);
if (!StringUtil.isEmpty(visit.getFileSaveName())) {
apiVisitDataVo.setUrl(visit.getFileSaveName());
}
@@ -115,15 +139,90 @@
} else {
visits = new ArrayList<>();
}
-
+ if (visits == null || visits.size() < 1) {
+ return;
+ }
+ //鍒峰叆娴佺▼ID
+ refreshOwners(visits, reqJson);
+ //鍒峰叆娴佺▼ID
+ refreshSetting(visits, reqJson);
+ // 鍒峰叆浜鸿劯
+ refreshPhoto(visits, reqJson);
ApiVisitVo apiVisitVo = new ApiVisitVo();
apiVisitVo.setTotal(count);
apiVisitVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
apiVisitVo.setVisits(visits);
-
responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiVisitVo), HttpStatus.OK);
}
context.setResponseEntity(responseEntity);
+ }
+ private void refreshOwners(List<ApiVisitDataVo> visits, JSONObject reqJson) {
+ if (visits == null || visits.size() < 1) {
+ return;
+ }
+ List<String> ownerIds = new ArrayList<>();
+ for (ApiVisitDataVo apiVisitDataVo : visits) {
+ ownerIds.add(apiVisitDataVo.getOwnerId());
+ }
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setOwnerIds(ownerIds.toArray(new String[ownerIds.size()]));
+ ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
+ ownerDto.setCommunityId(reqJson.getString("communityId"));
+ List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+
+ for(ApiVisitDataVo apiVisitDataVo: visits){
+ for(OwnerDto tmpOwnerDto : ownerDtos){
+ if(StringUtil.isEmpty(apiVisitDataVo.getOwnerId())){
+ continue;
+ }
+ if(!apiVisitDataVo.getOwnerId().equals(tmpOwnerDto.getOwnerId())){
+ continue;
+ }
+ apiVisitDataVo.setOwnerName(tmpOwnerDto.getName());
+ apiVisitDataVo.setOwnerTel(tmpOwnerDto.getLink());
+ }
+ }
+ }
+
+ private void refreshPhoto(List<ApiVisitDataVo> visits, JSONObject reqJson) {
+ List<String> vIds = new ArrayList<>();
+ for (ApiVisitDataVo apiVisitDataVo : visits) {
+ vIds.add(apiVisitDataVo.getvId());
+ }
+ FileRelDto fileRelDto = new FileRelDto();
+ fileRelDto.setObjIds(vIds.toArray(new String[vIds.size()]));
+ List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+ if (fileRelDtos == null || fileRelDtos.size() < 1) {
+ return;
+ }
+ String imgUrl = MappingCache.getValue(MappingConstant.FILE_DOMAIN, "IMG_PATH");
+ for (ApiVisitDataVo apiVisitDataVo : visits) {
+ for (FileRelDto tmpFileRelDto : fileRelDtos) {
+ if (!apiVisitDataVo.getvId().equals(tmpFileRelDto.getObjId())) {
+ continue;
+ }
+ if (tmpFileRelDto.getFileSaveName().startsWith("http")) {
+ apiVisitDataVo.setUrl(tmpFileRelDto.getFileSaveName());
+ } else {
+ apiVisitDataVo.setUrl(imgUrl + tmpFileRelDto.getFileSaveName());
+ }
+ }
+ }
+ }
+
+ private void refreshSetting(List<ApiVisitDataVo> visits, JSONObject reqJson) {
+ VisitSettingDto visitSettingDto = new VisitSettingDto();
+ visitSettingDto.setCommunityId(reqJson.getString("communityId"));
+ List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
+ if (visitSettingDtos == null || visitSettingDtos.size() < 1) {
+ return;
+ }
+ if (visits == null || visits.size() < 1) {
+ return;
+ }
+ for (ApiVisitDataVo visitDataVo : visits) {
+ visitDataVo.setFlowId(visitSettingDtos.get(0).getFlowId());
+ }
}
}
--
Gitblit v1.8.0