From 3219ee5eb2c7de1e1401bd94cb4dc4d37195b244 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 13 四月 2022 11:04:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xinghong-dev'

---
 service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java |   63 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java b/service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java
index e00c55a..802e3f9 100755
--- a/service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java
@@ -6,17 +6,30 @@
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.factory.CommunitySettingFactory;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.visit.VisitDto;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.dto.file.FileDto;
+import com.java110.intf.community.IVisitInnerServiceSMO;
 import com.java110.po.file.FileRelPo;
+import com.java110.po.owner.VisitPo;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeVisitConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
 
 /**
  * 淇濆瓨灏忓尯渚﹀惉
@@ -29,7 +42,16 @@
     private IVisitBMO visitBMOImpl;
 
     @Autowired
+    private IVisitInnerServiceSMO visitInnerServiceSMOImpl;
+
+    @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    //閿�
+    public static final String IS_NEED_REVIEW = "IS_NEED_REVIEW";
+
+    //閿�
+    public static final String VISIT_NUMBER = "VISIT_NUMBER";
 
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
@@ -43,10 +65,40 @@
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) throws ParseException {
         reqJson.put("vId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_vId));
+        //鏄惁闇�瑕佸鏍�
+        String val = CommunitySettingFactory.getValue(reqJson.getString("communityId"), IS_NEED_REVIEW);
+        if (!StringUtils.isEmpty(val) && val.equals("true") && reqJson.containsKey("carNum") && !StringUtil.isEmpty(reqJson.getString("carNum"))) {
+            reqJson.put("state", "0"); //0琛ㄧず鏈鏍革紱1琛ㄧず瀹℃牳閫氳繃锛�2琛ㄧず瀹℃牳鎷掔粷
+        } else {
+            reqJson.put("state", "1");
+        }
+        //闅忚浜烘暟
+        if (reqJson.containsKey("entourage") && reqJson.getString("entourage").equals("")) {
+            reqJson.put("entourage", "0");
+        }
+        //鏄惁瓒呰繃瑙勫畾娆℃暟
+        boolean specifiedTimes = false;
+        if (reqJson.containsKey("carNum") && !StringUtil.isEmpty(reqJson.getString("carNum"))) {
+            //鏌ヨ棰勭害杞﹁締鐧昏娆℃暟
+            int number = Integer.parseInt(CommunitySettingFactory.getValue(reqJson.getString("communityId"), VISIT_NUMBER));
+            VisitDto visitDto = new VisitDto();
+            //鏌ヨ褰撳ぉ杞﹁締鐧昏娆℃暟
+            visitDto.setOwnerId(reqJson.getString("ownerId"));
+            visitDto.setCarNumNoEmpty("1");
+            visitDto.setSameDay("1");
+            List<VisitDto> visitDtos = visitInnerServiceSMOImpl.queryVisits(visitDto);
+            int count = visitDtos.size();
+            //棰勭害杞﹁締鐧昏娆℃暟0涓嶅仛闄愬埗
+            if (count >= number && number>0) {
+                if (!StringUtils.isEmpty(val) && val.equals("false")) {
+                    reqJson.put("state", "0");
+                }
+                specifiedTimes = true;
+            }
+        }
         visitBMOImpl.addVisit(reqJson, context);
-
         if (reqJson.containsKey("photo") && !StringUtils.isEmpty(reqJson.getString("photo"))) {
             FileDto fileDto = new FileDto();
             fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
@@ -68,6 +120,13 @@
             FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
             super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
         }
+        commit(context);
+        if (specifiedTimes) {
+            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "鐧昏鎴愬姛,鎮ㄥ凡缁忚秴杩囬绾﹁溅杈嗙櫥璁版鏁伴檺鍒讹紝杞﹁締灏嗘棤娉曡嚜鍔ㄥ鏍革紒");
+            context.setResponseEntity(responseEntity);
+            return;
+        }
+
     }
 
     @Override

--
Gitblit v1.8.0