From a7fb50c91e4932aa175be266fbdd42b2a70eba66 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 22 五月 2024 18:11:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java |  137 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 102 insertions(+), 35 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index 0c163ed..55ca0be 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -2,6 +2,8 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.system.SystemUserBiz;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.erp.ErpConstants;
 import com.doumee.core.erp.ErpTool;
@@ -24,9 +26,13 @@
 import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.dto.ResetPasswordDTO;
 import com.doumee.dao.business.join.DeviceJoinMapper;
 import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.dto.ResetSystemUserPwdDTO;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.AuditApproveDTO;
 import com.doumee.dao.web.reqeust.ErpVisitDTO;
 import com.doumee.dao.web.reqeust.ErpWithVisitDTO;
@@ -34,6 +40,7 @@
 import com.doumee.dao.web.response.VisitDetailVO;
 import com.doumee.dao.web.response.VisitRecordVO;
 import com.doumee.service.business.InterfaceLogService;
+import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.VisitsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -80,6 +87,8 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
+    private SystemUserBiz systemUserBiz;
+    @Autowired
     private DeviceJoinMapper deviceJoinMapper;
     @Autowired
     private ErpTool erpTool;
@@ -89,6 +98,12 @@
 
     @Autowired
     private InterfaceLogService interfaceLogService;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
+    @Autowired
+    private SmsEmailService smsEmailService;
+    @Autowired
+    private SystemUserMapper systemUserMapper;
 
 
     @Override
@@ -188,26 +203,25 @@
         //妫�楠屾嫓璁夸汉鏄惁鍚堟硶
         Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
         if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
-            //&&!IdcardUtil.isValidCard(visits.getIdcardNo())
+//            &&!IdcardUtil.isValidCard(visits.getIdcardNo())
         ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
         }
         Date date = new Date();
         //鍒涘缓鏃堕棿
         visits.setCreateDate(date);
-        //鏅�氳瀹�
-        visits.setType(Constants.ONE);
         //闅忚浜哄憳鏁伴噺
-        visits.setMemberNum(CollectionUtils.isNotEmpty(visits.getWithUserList())?visits.getWithUserList().size():0);
+        visits.setMemberNum(Constants.ZERO);
         //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄦ敼鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞�
-        Member member =dealMemberAndVisits(visits);
+        Member member = dealMemberAndVisits(visits);
         visits.setMemberId(member.getId());
         visits.setVisitType(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode()));
         //鍒濆鍖栬瀹俊鎭�
         initVisitInfo(visits,date);
         visitsMapper.insert(visits);
+
         //鍙戣捣ERP瀹℃壒鐢宠
-        if(visits.getSourceType().equals(Constants.ZERO)){
+        if(dataSyncConfig.getVisitorDataOrigin().equals(Constants.ONE)){
             String erpId = startSendErpCheck(visits,visitMember);
             if(StringUtils.isNotBlank(erpId)){
                 visits.setErpId(erpId);
@@ -220,9 +234,11 @@
             wxPlatNotice.sendVisitAuditTemplateNotice(visits,
                     systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
                     systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
-        }else{
+        }else if(dataSyncConfig.getVisitorDataOrigin().equals(Constants.ZERO)){
             visits.setStatus(Constants.VisitStatus.pass);
             visitsMapper.updateById(visits);
+        }else{
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�");
         }
         initWithVisitInfo(visits);
         updateProblemLog(visits,problemLog,member);
@@ -231,6 +247,33 @@
 
         return visits.getId();
     }
+
+
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public Integer visitReporting(Visits visits) {
+        isValidBaseParam(visits);
+        //妫�楠岃鎷滆浜烘槸鍚﹀悎娉�
+        Member visitMember = isValideVisitedUser(visits.getMemberId());
+        Date date = new Date();
+        //鍒涘缓鏃堕棿
+        visits.setCreateDate(date);
+        //璁垮鎶ュ
+        visits.setType(Constants.TWO);
+        visits.setReceptMemberId(visitMember.getId());
+        visits.setStatus(Constants.VisitStatus.waitCheck);
+        visits.setVisitType(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode()));
+        visits.setIdcardNo(DESUtil.decrypt(Constants.EDS_PWD, visitMember.getIdcardNo()));
+        //鍒濆鍖栬瀹俊鎭�
+        initVisitInfo(visits,date);
+        visitsMapper.insert(visits);
+        return visits.getId();
+    }
+
+
+
 
 
     /**
@@ -258,7 +301,7 @@
             approve.setIsEndCheck(Constants.ZERO);
             approve.setType(Constants.ZERO);
             approve.setLevel(Constants.ONE);
-            approve.setVisitId(visits.getId());
+            approve.setObjId(visits.getId());
             approveMapper.insert(approve);
             if(!CollectionUtils.isNotEmpty(approveIds)){
                 approve.setIsEndCheck(Constants.ONE);
@@ -293,7 +336,7 @@
         if(approve.getStatus().equals(Constants.approveStatus.wait)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒璁板綍宸插鐞�!");
         }
-        Visits visits = visitsMapper.selectById(approve.getVisitId());
+        Visits visits = visitsMapper.selectById(approve.getObjId());
         if(Objects.isNull(visits)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
@@ -315,7 +358,7 @@
             if(approve.getApproveType().equals(Constants.ONE)){
                 //浼氱 鏌ヨ鏄惁鏄渶鍚庝竴鏉¤褰� 濡傛灉鏄渶鍚庝竴鏉¤褰� 鍒欑敓鎴愪笅绾у鎵硅褰� 濡傛灉鏄渶鍚庝竴绾э紝鍒欒繘琛屽鎵圭‘璁�
                 if(approveMapper.selectCount(new QueryWrapper<Approve>().lambda()
-                        .eq(Approve::getVisitId,visits.getId())
+                        .eq(Approve::getObjId,visits.getId())
                         .eq(Approve::getLevel,approve.getLevel())
                         .ne(Approve::getId,approve.getId())
                 )<=Constants.ZERO){
@@ -336,7 +379,7 @@
                         .set(Approve::getStatus,Constants.approveStatus.otherDeal)
                         .set(Approve::getEditDate,new Date())
                         .set(Approve::getCheorId,auditApproveDTO.getMemberId())
-                        .eq(Approve::getVisitId,visits.getId())
+                        .eq(Approve::getObjId,visits.getId())
                         .eq(Approve::getStatus,Constants.approveStatus.wait)
                         .ne(Approve::getId,approve.getId())
                         .eq(Approve::getLevel,approve.getLevel())
@@ -363,7 +406,7 @@
                     .set(Approve::getStatus,Constants.approveStatus.otherDeal)
                     .set(Approve::getEditDate,new Date())
                     .set(Approve::getCheorId,auditApproveDTO.getMemberId())
-                    .eq(Approve::getVisitId,visits.getId())
+                    .eq(Approve::getObjId,visits.getId())
                     .eq(Approve::getStatus,Constants.approveStatus.wait)
                     .ne(Approve::getId,approve.getId())
                     .eq(Approve::getLevel,approve.getLevel())
@@ -401,7 +444,7 @@
                 approve.setTemplatId(approveParam.getId());
                 approve.setChekorId(Integer.valueOf(id));
                 approve.setType(Constants.ONE);
-                approve.setVisitId(visitId);
+                approve.setObjId(visitId);
                 approveList.add(approve);
             }
             approveMapper.insertBatchSomeColumn(approveList);
@@ -428,7 +471,7 @@
                 approve.setApproveType(approveParam.getApproveType());
                 approve.setChekorId(id);
                 approve.setType(Constants.ONE);
-                approve.setVisitId(visitId);
+                approve.setObjId(visitId);
                 approveList.add(approve);
             }
             approveMapper.insertBatchSomeColumn(approveList);
@@ -562,16 +605,27 @@
                 ||  StringUtils.isBlank( visits.getPhone())
                 ||  StringUtils.isBlank( visits.getCompanyName())
                 ||  visits.getIdcardType() == null
+                ||  Objects.isNull(visits.getType())
 //                ||  StringUtils.isBlank( visits.getFaceImg() )
                 ||  StringUtils.isBlank( visits.getIdcardNo() )
                 || visits.getReceptMemberId() == null){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
         }
+        //璁垮鎶ュ
+        if(visits.getType().equals(Constants.TWO)
+         && (StringUtils.isBlank( visits.getName())
+                ||  StringUtils.isBlank( visits.getPhone())
+                ||  StringUtils.isBlank( visits.getCompanyName()))
+                ||  StringUtils.isBlank( visits.getCarNos())
+                ||  Objects.isNull( visits.getMemberNum())
+        ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
+        }
         if(visits.getEndtime().getTime() < System.currentTimeMillis()){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿锛�");//
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍏ュ巶鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿锛�");//
         }
         if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂达紒");//
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绂诲巶鏃堕棿蹇呴』澶т簬鍏ュ巶鏃堕棿锛�");//
         }
         if(visits.getSourceType().equals(Constants.ZERO)){
             String code = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VALIDATE_VISIT).getCode();
@@ -582,7 +636,6 @@
 
             }
             if(StringUtils.isNotBlank(code)&&!StringUtils.equals(code,"0")){
-//                Integer betweenDays = Math.toIntExact(cn.hutool.core.date.DateUtil.between(visits.getEndtime(), visits.getStarttime(), DateUnit.DAY));
                 int betweenDays = DateUtil.daysBetweenDates11(visits.getEndtime(), visits.getStarttime())+1;
                 if( betweenDays > codenum){
                     throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害鎬诲ぉ鏁颁笉鑳借秴杩嘯"+code+"澶锛�");
@@ -769,17 +822,6 @@
                 model.setMemberId(visitsMember.getId());
             }
         }
-
-//        if(CollectionUtils.isNotEmpty(addList)){
-//            memberMapper.insertBatchSomeColumn(addList);
-//        }
-//        if(CollectionUtils.isNotEmpty(editList)){
-//            editList.forEach(i->{
-//                memberMapper.updateById(i);
-//            });
-//
-//        }
-
         return  m;
     }
 
@@ -940,7 +982,7 @@
 
     private ProblemLog isValidProblemLog(Visits visits) {
         String required = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROBLEM_VISIT_REQUIRED).getCode();
-        if(StringUtils.equals(required,Constants.ONE+"")&&visits.getSourceType()==Constants.ZERO){
+        if(StringUtils.equals(required,Constants.ONE+"")&&visits.getSourceType()==Constants.ZERO&&!visits.getType().equals(Constants.TWO)){
             //濡傛灉蹇呴』绛旈锛屾煡鎵剧瓟棰樿褰�
             if(visits.getUserAnswerId() == null){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰橈紒");
@@ -1102,6 +1144,7 @@
                 .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName())
                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus());
         queryWrapper.isNull(Visits::getParentId);
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Visits::getMemberId,pageWrap.getModel().getMemberId());
         queryWrapper.orderByDesc(Visits::getCreateDate);
         IPage<Visits> result = visitsJoinMapper.selectJoinPage(page, Visits.class,queryWrapper);
 
@@ -1190,12 +1233,12 @@
             visitDetailVO.setVisitUserCompany(company.getName());
         }
         visitDetailVO.setName(visits.getName());
-            visitDetailVO.setCompanyName(visits.getCompanyName());
-            visitDetailVO.setFaceImg(visits.getFaceImg());
-            visitDetailVO.setImgUrl(visits.getImgurl());
-            visitDetailVO.setIdCardDecode(visits.getIdcardDecode());
-            visitDetailVO.setPrefix(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
-                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
+        visitDetailVO.setCompanyName(visits.getCompanyName());
+        visitDetailVO.setFaceImg(visits.getFaceImg());
+        visitDetailVO.setImgUrl(visits.getImgurl());
+        visitDetailVO.setIdCardDecode(visits.getIdcardDecode());
+        visitDetailVO.setPrefix(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
         if(StringUtils.isNotBlank(visits.getDoors())){
             List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                             .select(DeviceRole::getName)
@@ -1293,4 +1336,28 @@
                 .eq(Retention::getMemberId,visits.getMemberId()));
     }
 
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void resetPassword(ResetPasswordDTO resetPasswordDTO){
+        if(Objects.isNull(resetPasswordDTO)
+            || StringUtils.isBlank(resetPasswordDTO.getPassword())
+            || StringUtils.isBlank(resetPasswordDTO.getValidCode())
+            || StringUtils.isBlank(resetPasswordDTO.getPhone())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMobile,resetPasswordDTO.getPhone()).eq(SystemUser::getDeleted,Constants.ZERO).last(" limit 1"));
+        if(Objects.isNull(systemUser)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鎵嬫満鍙锋墍灞炶处鎴�");
+        }
+        smsEmailService.validateCode(resetPasswordDTO.getValidCode(),resetPasswordDTO.getPhone());
+        ResetSystemUserPwdDTO dto = new ResetSystemUserPwdDTO();
+        dto.setPassword(resetPasswordDTO.getPassword());
+        dto.setId(systemUser.getId());
+        dto.setOperaUserId(systemUser.getId());
+        systemUserBiz.resetPwd(dto);
+
+
+    }
+
 }

--
Gitblit v1.9.3