From 0b04f664887c73e90bf684a4e69c0fdbfe26349d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 29 三月 2023 13:35:20 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java |  165 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 156 insertions(+), 9 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 aed89e5..948088d 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
@@ -6,9 +6,19 @@
 import com.java110.core.event.cmd.Cmd;
 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;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.api.visit.ApiVisitDataVo;
@@ -22,11 +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",
+        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"),})
+
+@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 = "璁块棶鏃堕棿"),})
+
+@Java110ExampleDoc(
+        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";
@@ -37,29 +86,52 @@
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         super.validatePageInfo(reqJson);
+        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);
-            //棰勭害杞﹀厤璐规鏁�
-            int number = Integer.parseInt(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)) {
+                number = Integer.parseInt(numStr);
+            }
             Map initAddVisitParameter = new HashMap();
             initAddVisitParameter.put("freeTime", freeTime);
             initAddVisitParameter.put("freeTimes", number);
+            //涓氫富绔幏鍙栬瀹㈢櫥璁扮浉鍏抽厤缃弬鏁�
             responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(initAddVisitParameter), HttpStatus.OK);
         } else {
             VisitDto visitDto = BeanConvertUtil.covertBean(reqJson, VisitDto.class);
-            int count = visitInnerServiceSMOImpl.queryVisitsCount(visitDto);
+            if (reqJson.containsKey("channel") && !StringUtil.isEmpty(reqJson.getString("channel"))
+                    && "PC".equals(reqJson.getString("channel"))) {
+                visitDto.setCreateUserId("");
+            }
+            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());
                     }
@@ -68,15 +140,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