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