From 64a6a81753abfc712b1ab384de0f7afb87f4fb23 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 18 七月 2024 17:02:52 +0800
Subject: [PATCH] 提交

---
 server/service/src/main/java/com/doumee/service/business/CustomerLogService.java          |    4 
 admin/src/views/business/customerLog.vue                                                  |   50 +++++++++--
 server/service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java                  |   14 ---
 admin/src/components/business/OperaShopWindow.vue                                         |   27 ++++--
 server/admin/src/main/java/com/doumee/api/business/CustomerLogController.java             |   14 +++
 admin/src/api/business/customerLog.js                                                     |    6 +
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java             |    3 
 server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java |   36 +++++++++
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java      |   31 ++-----
 9 files changed, 129 insertions(+), 56 deletions(-)

diff --git a/admin/src/api/business/customerLog.js b/admin/src/api/business/customerLog.js
index 72b9ea1..148bd1b 100644
--- a/admin/src/api/business/customerLog.js
+++ b/admin/src/api/business/customerLog.js
@@ -24,6 +24,12 @@
 export function updateById (data) {
   return request.post('/business/customerLog/updateById', data)
 }
+export function reSubmit (data) {
+  return request.post('/business/customerLog/reSubmit', data)
+}
+export function reSubmitAll (data) {
+  return request.post('/business/customerLog/reSubmitAll', data)
+}
 
 // 鍒犻櫎
 export function deleteById (id) {
diff --git a/admin/src/components/business/OperaShopWindow.vue b/admin/src/components/business/OperaShopWindow.vue
index aacc499..547c708 100644
--- a/admin/src/components/business/OperaShopWindow.vue
+++ b/admin/src/components/business/OperaShopWindow.vue
@@ -167,9 +167,12 @@
         .then(res => {
           this.provinces = res
         })
+      if(this.form.provinceCode){
+        this.selectProvince(this.form.provinceCode,true)
+      }
     },
     // 閫夋嫨鐪佷唤
-    selectProvince (val) {
+    selectProvince (val,isInit) {
       this.provinces.forEach(item => {
         if (item.id == val) {
           this.form.provinceName = item.name
@@ -177,29 +180,35 @@
       })
       this.cities = []
       this.areas = []
-      this.form.cityName = ''
-      this.form.areaCode = ''
-      this.form.cityCode = ''
-      this.form.areaName = ''
+      if(!isInit){
+        this.form.cityName = ''
+        this.form.areaCode = ''
+        this.form.cityCode = ''
+        this.form.areaName = ''
+      }
       if(!val || val ==''){
         return
       }
       this.api.areaList({ pid: val })
         .then(res => {
           this.cities = res
-          this.selectCity(this.form.cityId)
+          if(isInit){
+            this.selectCity(this.form.cityCode,isInit)
+          }
         })
     },
     // 閫夋嫨鍩庡競
-    selectCity (val) {
+    selectCity (val,isInit) {
       this.cities.forEach(item => {
         if (item.id == val) {
           this.form.cityName = item.name
         }
       })
       this.areas = []
-      this.form.areaCode = ''
-      this.form.areaName = ''
+      if(!isInit){
+        this.form.areaCode = ''
+        this.form.areaName = ''
+      }
       if(!val || val ==''){
         return
       }
diff --git a/admin/src/views/business/customerLog.vue b/admin/src/views/business/customerLog.vue
index d0a6099..225481f 100644
--- a/admin/src/views/business/customerLog.vue
+++ b/admin/src/views/business/customerLog.vue
@@ -42,25 +42,27 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-<!--  <ul class="toolbar" v-permissions="['business:customerlog:create', 'business:customerlog:delete']">
-        <li><el-button type="primary" @click="$refs.operaCustomerLogWindow.open('鏂板缓瀹㈡埛鐣欒祫璁板綍淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:customerlog:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:customerlog:delete']">鍒犻櫎</el-button></li>
-      </ul>-->
+      <ul class="toolbar" v-permissions="['business:customerlog:create', 'business:customerlog:delete']">
+        <li><el-button type="primary" @click="reSubmitAll(0)" icon="el-icon-plus" v-permissions="['business:customerlog:update']">鎻愪氦鍏ㄩ儴銆愭湭鎻愪氦銆戞暟鎹�</el-button></li>
+        <li><el-button type="primary" @click="reSubmitAll(2)" icon="el-icon-plus" v-permissions="['business:customerlog:update']">閲嶆柊鎻愪氦銆愬け璐ャ�戞暟鎹�</el-button></li>
+      </ul>
       <el-table
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
         @selection-change="handleSelectionChange"
       >
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="120px"></el-table-column>
-        <el-table-column prop="type" label="鎻愪氦绫诲瀷" min-width="100px">
+        <el-table-column  prop="index"  width="55"><template slot-scope="scope">{{scope.$index+1}}</template></el-table-column>
+        <el-table-column prop="type" label="鎻愪氦绫诲瀷" fixed min-width="100px">
           <template slot-scope="{row}">
               <span v-if="row.type ==0">娴嬭瘯瑁呬慨椋庢牸</span>
               <span v-if="row.type ==1">0鍏冨畾鍒�</span>
               <span v-if="row.type ==2">瑁呬慨璁$畻鍣�</span>
           </template>
         </el-table-column>
+        <el-table-column prop="phone" label="鎵嬫満鍙�" fixed min-width="100px"></el-table-column>
+        <el-table-column prop="name" label="濮撳悕" fixed min-width="100px"></el-table-column>
+        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿"  min-width="120px"></el-table-column>
         <el-table-column prop="orderDate" label="棰勭害閲忔埧鏃堕棿" min-width="120px"></el-table-column>
         <el-table-column prop="plaDate" label="璁″垝瑁呬慨寮�濮嬫椂闂�" min-width="120px">
           <template slot-scope="{row}">
@@ -119,7 +121,6 @@
         <el-table-column prop="styleInfo" label="椋庢牸" min-width="100px"></el-table-column>
         <el-table-column prop="provinceName" label="鐪佷唤鍚嶇О" min-width="100px"></el-table-column>
         <el-table-column prop="cityName" label="鍩庡競鍚嶇О" min-width="100px"></el-table-column>
-        <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
         <el-table-column prop="budget" label="瑁呬慨棰勭畻(鍏�)" min-width="100px"></el-table-column>
         <el-table-column prop="crmStatus" label="crm鎻愪氦鐘舵��" min-width="100px">
           <template slot-scope="{row}">
@@ -133,12 +134,13 @@
         <el-table-column
           v-if="containPermissions(['business:customerlog:update', 'business:customerlog:delete'])"
           label="鎿嶄綔"
-          min-width="120"
+          min-width="150"
           fixed="right"
+          align="center"
         >
           <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaCustomerLogWindow.open('缂栬緫瀹㈡埛鐣欒祫璁板綍淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:customerlog:update']">缂栬緫</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:customerlog:update']" v-if="row.crmStatus !=1">閲嶆柊鎻愪氦crm</el-button>
+            <!-- <el-button type="text" @click="$refs.operaCustomerLogWindow.open('缂栬緫瀹㈡埛鐣欒祫璁板綍淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:customerlog:update']">缂栬緫</el-button>-->
+            <el-button type="text" @click="reSubmit(row)" icon="el-icon-edit" v-permissions="['business:customerlog:update']" v-if="row.crmStatus !=1">閲嶆柊鎻愪氦crm</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -165,6 +167,7 @@
   components: { TableLayout, Pagination, OperaCustomerLogWindow },
   data () {
     return {
+      running: false,
       // 鎼滅储
       searchForm: {
         queryEndDate: '',
@@ -188,6 +191,31 @@
   },
   methods: {
     // 鏌ヨ鏁版嵁
+    reSubmit (row) {
+      this.api.reSubmit({ id: row.id })
+        .then(res => {
+          this.handlePageChange()
+        })
+        .finally(() => {
+        })
+    },
+    reSubmitAll (status) {
+      this.$dialog.actionConfirm('纭杩涜璇ユ搷浣滃悧锛�?')
+        .then(() => {
+          this.running = true
+          this.api.reSubmitAll({ crmStatus: status })
+            .then(res => {
+              this.handlePageChange()
+            })
+            .finally(() => {
+            })
+            .catch(e => {
+            })
+            .finally(() => {
+              this.running = false
+            })
+        })
+    }
   }
 }
 </script>
diff --git a/server/admin/src/main/java/com/doumee/api/business/CustomerLogController.java b/server/admin/src/main/java/com/doumee/api/business/CustomerLogController.java
index 20332e4..2e792d3 100644
--- a/server/admin/src/main/java/com/doumee/api/business/CustomerLogController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/CustomerLogController.java
@@ -66,6 +66,20 @@
         customerLogService.updateById(customerLog);
         return ApiResponse.success(null);
     }
+    @ApiOperation("鏍规嵁ID閲嶆柊鎻愪氦crm")
+    @PostMapping("/reSubmit")
+    @RequiresPermissions("business:customerlog:update")
+    public ApiResponse reSubmit(@RequestBody CustomerLog customerLog) {
+        customerLogService.reSubmit(customerLog);
+        return ApiResponse.success(null);
+    }
+    @ApiOperation("鏍规嵁crm鐘舵�佹壒閲忔彁浜よ嚦crm")
+    @PostMapping("/reSubmitAll")
+    @RequiresPermissions("business:customerlog:update")
+    public ApiResponse reSubmitAll(@RequestBody CustomerLog customerLog) {
+        customerLogService.reSubmitAll(customerLog);
+        return ApiResponse.success(null);
+    }
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
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 125032f..60da93d 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
@@ -54,6 +54,9 @@
     @Override
     @Async
     public void dealCustomerLogData(CustomerLog customerLog){
+        if(StringUtils.isBlank(customerLog.getPhone())){
+            return;
+        }
         CrmCustomerInfoRequest entity = new CrmCustomerInfoRequest();
         entity.setId(customerLog.getId());
         entity.setName(customerLog.getName());
diff --git a/server/service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java b/server/service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java
index b6633be..f7c080a 100644
--- a/server/service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java
+++ b/server/service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java
@@ -25,21 +25,9 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
-    @Bean
+//    @Bean
     public WxMpConfigStorage wxMpConfigStorage() {
         WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();
-        try {
-            // 鍏紬鍙穉ppId
-            configStorage.setAppId(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
-            // 鍏紬鍙穉ppSecret
-            configStorage.setSecret(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode());
-            // 鍏紬鍙稵oken
-            configStorage.setToken(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode());
-            // 鍏紬鍙稥ncodingAESKey
-//        configStorage.setAesKey();
-        }catch (Exception e){
-            log.error("璇诲彇寰俊灏忕▼搴忕浉鍏抽厤缃敊璇�========"+e.getMessage());
-        }
 
         return configStorage;
     }
diff --git a/server/service/src/main/java/com/doumee/service/business/CustomerLogService.java b/server/service/src/main/java/com/doumee/service/business/CustomerLogService.java
index b931b2d..8cc05f0 100644
--- a/server/service/src/main/java/com/doumee/service/business/CustomerLogService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CustomerLogService.java
@@ -54,7 +54,7 @@
      * @param customerLogs 瀹炰綋闆�
      */
     void updateByIdInBatch(List<CustomerLog> customerLogs);
-
+    void reSubmitAll(CustomerLog log);
     /**
      * 涓婚敭鏌ヨ
      *
@@ -94,4 +94,6 @@
      * @return long
      */
     long count(CustomerLog customerLog);
+
+    void reSubmit(CustomerLog customerLog);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
index 31792c8..7e10ee1 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -1,5 +1,8 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.biz.zbom.ZbomCRMService;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
@@ -29,6 +32,8 @@
 
     @Autowired
     private CustomerLogMapper customerLogMapper;
+    @Autowired
+    private ZbomCRMService zbomCRMService;
 
     @Override
     public Long create(CustomerLog customerLog) {
@@ -61,6 +66,37 @@
     }
 
     @Override
+    public void reSubmit(CustomerLog customerLog){
+        CustomerLog log = customerLogMapper.selectById(customerLog.getId());
+        if(log ==null || Constants.equalsInteger(log.getIsdeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(Constants.equalsInteger(log.getCrmStatus(),Constants.ONE)){
+            //濡傛灉宸茬粡鎻愪氦鎴愬姛杩�
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ暀璧勬暟鎹凡鎻愪氦锛屾棤闇�閲嶆柊鎻愪氦锛�");
+        }
+        zbomCRMService.dealCustomerLogData(log);
+    }
+    @Override
+    public void reSubmitAll(CustomerLog log){
+        List<CustomerLog> logList = customerLogMapper.selectList(new QueryWrapper<CustomerLog>()
+                .lambda()
+                .eq(CustomerLog::getIsdeleted,Constants.ZERO)
+                .eq(log.getCrmStatus()!=null,CustomerLog::getCrmStatus,log.getCrmStatus())
+                .ne(CustomerLog::getCrmStatus,Constants.ONE));
+        if(logList ==null || logList.size() ==0){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝涓嶅瓨鍦ㄥ緟澶勭悊鏁版嵁");
+        }
+        if(Constants.equalsInteger(log.getCrmStatus(),Constants.ONE)){
+            //濡傛灉宸茬粡鎻愪氦鎴愬姛杩�
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ暀璧勬暟鎹凡鎻愪氦锛屾棤闇�閲嶆柊鎻愪氦锛�");
+        }
+        for(CustomerLog model :logList){
+            zbomCRMService.dealCustomerLogData(model);
+        }
+    }
+
+    @Override
     public void updateByIdInBatch(List<CustomerLog> customerLogs) {
         if (CollectionUtils.isEmpty(customerLogs)) {
             return;
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 e6beb7b..98c5578 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
@@ -2,7 +2,10 @@
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
-import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.ZbomZhongTaiService;
 import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
@@ -18,47 +21,31 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.oss.FileModel;
-import com.doumee.core.utils.*;
+import com.doumee.core.utils.CodeVerifyUtils;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.WxMiniConfig;
 import com.doumee.dao.business.CustomerUserMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.UsersMapper;
-import com.doumee.dao.business.model.CustomerUser;
-import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Users;
-import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.web.reqeust.EditMemberRequest;
 import com.doumee.dao.web.reqeust.WxPhoneRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.dao.web.response.ZTBaseInfoResponse;
-import com.doumee.service.business.CustomerService;
 import com.doumee.service.business.MemberService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.hikvision.artemis.sdk.util.HttpUtils;
 import me.chanjar.weixin.common.error.WxErrorException;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Response;
-import org.apache.catalina.User;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.util.ThreadContext;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.*;
 import java.util.Date;
-import java.util.concurrent.TimeUnit;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * 鐢ㄦ埛淇℃伅琛⊿ervice瀹炵幇

--
Gitblit v1.9.3