From f911989f59778b11e9f60d400c3434f4dc6a18fb Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 12 七月 2024 18:25:46 +0800
Subject: [PATCH] 代码提交

---
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java          |    2 
 server/web/src/main/java/com/doumee/api/web/CustomerApi.java                           |   22 +++
 server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java                   |    3 
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java     |    1 
 server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java |    8 +
 server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java   |    2 
 server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java |   15 +-
 server/service/src/main/java/com/doumee/service/business/CustomerService.java          |    7 
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java   |   88 +++++++++++++++++
 server/service/src/main/java/com/doumee/core/utils/Constants.java                      |   37 +++++++
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java          |   27 +++++
 server/web/src/main/java/com/doumee/api/web/PersonnelApi.java                          |   20 ++++
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java    |   34 +++++-
 server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java            |    5 +
 server/service/src/main/java/com/doumee/service/business/MemberService.java            |    5 +
 15 files changed, 249 insertions(+), 27 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
index e78f898..5d02b44 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
@@ -3,6 +3,7 @@
 import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel;
 import com.doumee.biz.zbom.model.IamUpateShopModel;
 import com.doumee.biz.zbom.model.IamUpateUserModel;
+import com.doumee.dao.business.model.CustomerLog;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -15,5 +16,7 @@
 @Service
 public interface ZbomCRMService {
 
+    void dealCustomerLogData(CustomerLog customerLog);
+
     int postDataToCrm(CrmCustomerSubmmitModel entity );
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
index 9a3d67c..f6d1d27 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
@@ -6,6 +6,7 @@
 import com.doumee.biz.zbom.model.CrmCustomerInfoModel;
 import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.HttpsUtil;
 import com.doumee.dao.business.CrmInterfaceLogMapper;
 import com.doumee.dao.business.CustomerLogMapper;
@@ -15,6 +16,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -34,6 +36,30 @@
 
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
+
+
+    @Override
+    @Async
+    public void dealCustomerLogData(CustomerLog customerLog){
+        CrmCustomerSubmmitModel entity = new CrmCustomerSubmmitModel();
+        List<CrmCustomerInfoModel> cusInfo = new ArrayList();
+        CrmCustomerInfoModel crmCustomerInfoModel = new CrmCustomerInfoModel();
+        crmCustomerInfoModel.setId(customerLog.getId());
+        crmCustomerInfoModel.setName(customerLog.getName());
+        crmCustomerInfoModel.setPhone(customerLog.getPhone());
+        crmCustomerInfoModel.setAreaname(customerLog.getAreaName());
+        crmCustomerInfoModel.setAreacode(customerLog.getAreaCode());
+        crmCustomerInfoModel.setOpenid(customerLog.getOpenid());
+        crmCustomerInfoModel.setSource(Constants.CrmSources.SOURCE_ZBJX);
+        crmCustomerInfoModel.setChannel(crmCustomerInfoModel.getSource()+"00");
+        crmCustomerInfoModel.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm"));
+        cusInfo.add(crmCustomerInfoModel);
+        entity.setCusInfo(cusInfo);
+        this.postDataToCrm(entity);
+
+    }
+
+
 
     /**
      * 蹇楅偊瀹㈡埛淇℃伅鎻愪氦鎺ュ彛
@@ -98,6 +124,7 @@
                 .set(CustomerLog::getCrmDate,new Date() ));// 鏇存柊鐘舵��
         return status;// 榛樿澶辫触
     }
+
     public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone){
             if(crmInterfaceLogMapper ==null){
                 return;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
index 8820113..057d516 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
@@ -45,7 +45,7 @@
 
     public static void main(String[] args) {
         ZbomSMSServiceImpl obj = new ZbomSMSServiceImpl();
-        obj.sendMessage("鎮ㄧ殑楠岃瘉鐮佹槸765412锛屾楠岃瘉鐮佺敤浜庨噸缃瘑鐮併��3鍒嗛挓鍐呮湁鏁堛��","15345690849");
+        obj.sendMessage("鎮ㄧ殑楠岃瘉鐮佹槸765412锛屾楠岃瘉鐮佺敤浜庨噸缃瘑鐮併��3鍒嗛挓鍐呮湁鏁堛��","18156091665");
     }
     /**
      * 蹇楅偊瀹㈡埛淇℃伅鎻愪氦鎺ュ彛
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
index 224e993..1a1c786 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -109,6 +109,7 @@
         }
         return null;
     }
+
     /**
      * 鑾峰彇鍐呭鍒楄〃鍒嗛〉
      * @param param
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 95372cc..376277b 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -38,6 +38,9 @@
     public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ;
     public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ;
     public static final String REDIS_TOKEN_KEY = "token_";
+    public static final String CUSTOMER = "CUSTOMER";    
+    public static final String BUSINESS = "BUSINESS";
+
 
     //琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
     public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
@@ -53,6 +56,7 @@
     public static final String FILE_DIR = "";
     public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD";
     public static final String VALIDATE_VISIT = "VALIDATE_VISIT";
+    public static final String PLATFORM = "mp-weixin";
 
     // 璁垮鏉ヨ閰嶇疆
     public static final String VISIT_CONFIG = "VISIT_CONFIG";
@@ -449,6 +453,39 @@
     int otherDeal = 4;//浠栦汉宸插鐞�
 }
 
+
+    /**
+     * 鏍规嵁閰嶇疆澶勭悊鎴垮眿鎴峰瀷淇℃伅
+     * @param layout
+     * @return
+     */
+    public static String getHouseLayout(String layout){
+        if(StringUtils.isBlank(layout)){
+            return null;
+        }
+        String [] arr = layout.split("-");
+        StringBuffer stringBuffer = new StringBuffer();
+        for (int i = 0; i < arr.length; i++) {
+            if(i==0){
+                stringBuffer.append( i + "瀹�");
+            }else if(i==1){
+                stringBuffer.append( i + "鍘�");
+            }else if(i==2){
+                stringBuffer.append( i + "鍘�");
+            }else if(i==3){
+                stringBuffer.append( i + "鍗�");
+            }else if(i==4){
+                stringBuffer.append( i + "闃�");
+            }else {
+                break;
+            }
+
+        }
+        return stringBuffer.toString();
+}
+
+
+
     /**
      * 鑾峰彇杞︾墝绫诲瀷淇℃伅
      *
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java b/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
index 983fec9..5462d9d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import com.doumee.dao.business.dto.BaseQueryDto;
 import io.swagger.annotations.ApiModel;
@@ -150,4 +151,8 @@
     @ExcelColumn(name="濮撳悕")
     private String name;
 
+    @ApiModelProperty(value = "openid")
+    @TableField(exist = false)
+    private String openid;
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java
index 7bd7a38..764442a 100644
--- a/server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/RenovationCalculatorDTO.java
@@ -31,6 +31,4 @@
     @ApiModelProperty(value = "瑁呬慨棰勭畻锛堜竾鍏冿級")
     private BigDecimal budget;
 
-
-
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/CustomerService.java b/server/service/src/main/java/com/doumee/service/business/CustomerService.java
index e496dc0..4fbe5c1 100644
--- a/server/service/src/main/java/com/doumee/service/business/CustomerService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CustomerService.java
@@ -3,6 +3,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Customer;
+import com.doumee.dao.business.model.CustomerLog;
 import com.doumee.dao.web.reqeust.FreeCustomizationDTO;
 import com.doumee.dao.web.reqeust.RenovationCalculatorDTO;
 import com.doumee.dao.web.reqeust.TestTrimStyleDTO;
@@ -103,17 +104,17 @@
      * 鎴垮眿瑁呬慨璁$畻鍣ㄤ俊鎭瓨鍌�
      * @param renovationCalculatorDTO
      */
-    void saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO);
+    CustomerLog saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO);
 
     /**
      * 0鍏冨畾鍒朵俊鎭�
      * @param freeCustomizationDTO
      */
-    void saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO);
+    CustomerLog saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO);
 
     /**
      * 娴嬭瘯瑁呬慨椋庢牸
      * @param testTrimStyleDTO
      */
-    void saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO);
+    CustomerLog saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/MemberService.java b/server/service/src/main/java/com/doumee/service/business/MemberService.java
index 05ba621..b97fe57 100644
--- a/server/service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/service/src/main/java/com/doumee/service/business/MemberService.java
@@ -123,4 +123,9 @@
     Member getMemberInfo(Long memberId);
 
 
+    /**
+     * 鐢ㄦ埛娉ㄩ攢
+     * @param memberId
+     */
+    void logOff(Long memberId);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java
index 2e84db3..1416905 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerServiceImpl.java
@@ -207,11 +207,8 @@
         return customerMapper.selectCount(wrapper);
     }
 
-
-
-
     @Override
-    public void saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO){
+    public CustomerLog saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO){
         if(Objects.isNull(renovationCalculatorDTO)
             || Objects.isNull(renovationCalculatorDTO.getMemberId())
             || Objects.isNull(renovationCalculatorDTO.getHouseStatus())
@@ -255,11 +252,13 @@
         customerLog.setHouseType(renovationCalculatorDTO.getHouseType());
         customerLog.setCostomerId(customer.getId().toString());
         customerLogMapper.insert(customerLog);
+        customerLog.setOpenid(member.getOpenid());
+        return  customerLog;
     }
 
 
     @Override
-    public void saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO){
+    public CustomerLog saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO){
         if(Objects.isNull(freeCustomizationDTO)
                 || Objects.isNull(freeCustomizationDTO.getMemberId())
                 || StringUtils.isEmpty(freeCustomizationDTO.getName())
@@ -320,10 +319,12 @@
         customerLog.setName(freeCustomizationDTO.getName());
         customerLog.setPhone(freeCustomizationDTO.getPhone());
         customerLogMapper.insert(customerLog);
+        customerLog.setOpenid(member.getOpenid());
+        return  customerLog;
     }
 
     @Override
-    public void saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO){
+    public CustomerLog saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO){
         if(Objects.isNull(testTrimStyleDTO)
                 || Objects.isNull(testTrimStyleDTO.getMemberId())
 
@@ -388,6 +389,8 @@
         customerLog.setAgeInfo(testTrimStyleDTO.getAgeInfo());
         customerLog.setPhone(testTrimStyleDTO.getPhone());
         customerLogMapper.insert(customerLog);
+        customerLog.setOpenid(member.getOpenid());
+        return  customerLog;
     }
 
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 80576f9..18e6aa8 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -4,6 +4,11 @@
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
+import com.doumee.biz.zbom.model.zhongtai.ZTUserGetTokenRequest;
+import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.ZTUserGetTokenResponse;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.constants.ResponseStatus;
@@ -54,6 +59,9 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private ZbomZhongTaiService zbomZhongTaiService;
 
     @Autowired
     private RedisTemplate<String,Object> redisTemplate;
@@ -301,6 +309,28 @@
 
     @Override
     public void updMemberDetail(EditMemberRequest editMemberRequest){
+        Member member = memberMapper.selectById(editMemberRequest.getMemberId());
+        ZTUserInfoUpdateRequest ztUserInfoUpdateRequest = new  ZTUserInfoUpdateRequest();
+        ztUserInfoUpdateRequest.setOpenid(member.getOpenid());
+        String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
+        ztUserInfoUpdateRequest.setAppId(appId);
+        ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM);
+        ztUserInfoUpdateRequest.setPhone(editMemberRequest.getPhone());
+        ztUserInfoUpdateRequest.setName(editMemberRequest.getName());
+        ztUserInfoUpdateRequest.setAddress(editMemberRequest.getProvinceName()+editMemberRequest.getCityName()+editMemberRequest.getAreaName());
+        ztUserInfoUpdateRequest.setFullAddress(editMemberRequest.getAddress());
+        String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() +
+                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode();
+        if(StringUtils.isNotBlank(editMemberRequest.getImgurl())){
+            ztUserInfoUpdateRequest.setAvatarUrl(prefix + editMemberRequest.getImgurl());
+        }
+        ztUserInfoUpdateRequest.setUptown(editMemberRequest.getDistrict());
+        ztUserInfoUpdateRequest.setHouseArea(editMemberRequest.getHousearea().toString());
+        ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(editMemberRequest.getHousetype()));
+        ZTUserGetTokenResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest);
+        if(Objects.isNull(userUpdateInfo)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴淇℃伅鏇存柊澶辫触锛岃鑱旂郴绠$悊鍛�");
+        }
         memberMapper.update(new UpdateWrapper<Member>()
                 .lambda()
                 .set(StringUtils.isNotBlank(editMemberRequest.getImgurl()),Member::getImgurl,editMemberRequest.getImgurl())
@@ -318,8 +348,8 @@
                 .set(StringUtils.isNotBlank(editMemberRequest.getHousetype()),Member::getHousetype,editMemberRequest.getHousetype())
                 .set(Objects.nonNull(editMemberRequest.getLatitude()),Member::getLatitude,editMemberRequest.getLatitude())
                 .set(Objects.nonNull(editMemberRequest.getLongitude()),Member::getLongitude,editMemberRequest.getLongitude())
+                .set(Member::getToken,userUpdateInfo.getToken())
                 .eq(Member::getId,editMemberRequest.getMemberId()));
-
     }
 
     @Override
@@ -334,4 +364,60 @@
         return member;
     }
 
+
+    /**
+     * 鏇存柊涓彴token淇℃伅
+     * @param member
+     */
+    public void updUserZTToken(Member member){
+        //濡傛灉鏃犳湁鏁堟湡/宸茶繃鏈� 閲嶆柊鑾峰彇
+        if(Objects.isNull(member.getTokenDate()) || member.getTokenDate().getTime()<=System.currentTimeMillis() ){
+            ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
+            //鏌ヨAPPID
+            String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
+            param.setAppId(appId);
+            param.setOpenId(member.getOpenid());
+            ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param);
+            if(Objects.nonNull(ztUserGetTokenResponse)){
+                member.setToken(ztUserGetTokenResponse.getToken());
+                //TODO 鏆傛棤杩囨湡鏃ユ湡
+                memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken())
+                        .eq(Member::getId,member.getId()));
+            }else{
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
+            }
+        };
+    }
+
+
+
+    @Override
+    public void logOff(Long memberId){
+        Member member = memberMapper.selectById(memberId);
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(StringUtils.isBlank(member.getPhone())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸叉敞閿�");
+        }
+        //鏍¢獙鐢ㄦ埛token淇℃伅
+        this.updUserZTToken(member);
+        //璋冭捣涓彴娉ㄩ攢鎺ュ彛
+        ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
+        ztBaseRequst.setUserType(Constants.CUSTOMER);
+        ztBaseRequst.setOpenid(member.getOpenid());
+        ztBaseRequst.setToken(member.getToken());
+        Boolean logoutFlag = zbomZhongTaiService.userLogout(ztBaseRequst);
+        if(logoutFlag){
+            memberMapper.update(new UpdateWrapper<Member>().lambda()
+                    .set(Member::getPhone,null)
+                    .set(Member::getEditDate,new Date())
+                    .eq(Member::getId,member.getId())
+            );
+            return;
+        }
+        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴娉ㄩ攢澶辫触锛岃鑱旂郴绠$悊鍛�");
+    }
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 052a192..a1f7547 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.ZbomSMSService;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -39,6 +40,9 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private ZbomSMSService zbomSMSService;
 
 
     public static void isCaptcheValide(SmsEmailMapper smsEmailMapper, String phone, String captche) {
@@ -89,10 +93,8 @@
         String code = Constants.getRandom6Num();
 
         String content = //systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode()+
-
                 "楠岃瘉鐮佷负锛�"+code+"锛屾楠岃瘉鐮佹湁鏁堜负3鍒嗛挓銆傝鍕挎硠闇�";
-
-
+        zbomSMSService.sendMessage(content,smsEmail.getPhone());
         smsEmail.setRemark(code);
         smsEmail.setIsdeleted(Constants.ZERO);
         smsEmail.setCreateDate(new Date());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index dad6e61..64a7de6 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -18,12 +18,9 @@
 import com.doumee.dao.admin.request.UserImport;
 import com.doumee.dao.business.ShopMapper;
 import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.SmsEmailMapper;
 import com.doumee.dao.business.UsersMapper;
-import com.doumee.dao.business.model.Multifile;
-import com.doumee.dao.business.model.News;
-import com.doumee.dao.business.model.Shop;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Users;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.UsersService;
@@ -68,6 +65,8 @@
     private UsersMapper usersMapper;
     @Autowired
     private ShopMapper shopMapper;
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
@@ -293,6 +292,8 @@
     }
 
 
+
+
     @Override
     public AccountResponse phoneLogin(String phone,String code){
         if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){
@@ -308,10 +309,27 @@
         if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
         }
-        //TODO 楠岃瘉鐭俊淇℃伅
-        if(!StringUtils.equals(code,"123456")){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮侀敊璇�");
+        //楠岃瘉鐭俊
+        SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
+                .eq(SmsEmail::getType, Constants.ZERO)
+                .eq(SmsEmail::getPhone, phone)
+                .eq(SmsEmail::getRemark, code)
+                .eq(SmsEmail::getIsdeleted, Constants.ZERO)
+        );
+        if(model == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
         }
+        if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+        }
+        model.setStatus(Constants.ONE);
+        model.setEditDate(new Date());
+        if(model.getCreateDate() !=null &&
+                System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
+            smsEmailMapper.updateById(model);
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
+        }
+        smsEmailMapper.updateById(model);
         //鍒涘缓token
         JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
         String token = JwtTokenUtil.generateToken(payLoad);
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
index badafea..3c9c591 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -1,8 +1,10 @@
 package com.doumee.api.web;
 
+import com.doumee.biz.zbom.ZbomCRMService;
 import com.doumee.config.annotation.LoginRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.CustomerLog;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.AccountResponse;
@@ -15,6 +17,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -43,6 +46,8 @@
     @Autowired
     private CustomerService customerService;
 
+    @Autowired
+    private ZbomCRMService zbomCRMService;
 
     @ApiOperation(value = "瀹㈡埛绔皬绋嬪簭鐧婚檰", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/wxLoginCustomer")
@@ -101,7 +106,8 @@
     })
     public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) {
         renovationCalculatorDTO.setMemberId(getMemberId());
-        customerService.saveRenovationCalculator(renovationCalculatorDTO);
+        CustomerLog customerLog =customerService.saveRenovationCalculator(renovationCalculatorDTO);
+        zbomCRMService.dealCustomerLogData(customerLog);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -114,7 +120,8 @@
     })
     public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) {
         freeCustomizationDTO.setMemberId(getMemberId());
-        customerService.saveFreeCustomizationApply(freeCustomizationDTO);
+        CustomerLog customerLog = customerService.saveFreeCustomizationApply(freeCustomizationDTO);
+        zbomCRMService.dealCustomerLogData(customerLog);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -126,7 +133,16 @@
     })
     public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) {
         testTrimStyleDTO.setMemberId(getMemberId());
-        customerService.saveTestTrimStyle(testTrimStyleDTO);
+        CustomerLog customerLog = customerService.saveTestTrimStyle(testTrimStyleDTO);
+        zbomCRMService.dealCustomerLogData(customerLog);
+        return  ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "鐢ㄦ埛娉ㄩ攢", notes = "瀹㈡埛绔皬绋嬪簭")
+    @GetMapping("/logOff")
+    public ApiResponse logOff() {
+        memberService.logOff(getMemberId());
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
diff --git a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
index cce994c..8772dde 100644
--- a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -3,14 +3,17 @@
 import com.doumee.config.annotation.UserLoginRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.SmsEmail;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.MemberService;
+import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.UsersService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -33,6 +36,9 @@
     @Autowired
     public UsersService usersService;
 
+    @Autowired
+    public SmsEmailService smsEmailService;
+
 
     @ApiOperation(value = "灏忕▼搴忕櫥闄�", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/loginByWx")
@@ -44,6 +50,20 @@
     }
 
 
+    @ApiOperation(value = "鍙戦�佺煭淇¢獙璇佺爜", notes = "鍛樺伐绔皬绋嬪簭")
+    @GetMapping("/sendSms")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "鎵嬫満鍙�", required = true),
+    })
+    public ApiResponse sendSms(@RequestParam String phone) {
+        SmsEmail smsEmail = new SmsEmail();
+        smsEmail.setPhone(phone);
+        smsEmailService.sendSms(smsEmail);
+        return  ApiResponse.success("鍙戦�佹垚鍔�");
+    }
+
+
+
     @ApiOperation(value = "鎵嬫満鍙烽獙璇佺爜鐧婚檰", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/loginByPhone")
     @ApiImplicitParams({

--
Gitblit v1.9.3