From 597d26b944e1d8bd5772d1f9fac5ec92ba7d592a Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 27 九月 2024 15:40:42 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
---
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java | 106 ++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 80 insertions(+), 26 deletions(-)
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 89a91a3..eb481d1 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
@@ -3,13 +3,12 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.model.crm.*;
import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse;
import com.doumee.biz.zbom.model.crm.response.CRMCustomerListResponse;
import com.doumee.biz.zbom.model.crm.response.CRMDaogouBindListResponse;
-import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
-import com.doumee.biz.zbom.model.zhongtai.response.ZTBaseResponse;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
@@ -19,19 +18,22 @@
import com.doumee.dao.business.CustomerLogMapper;
import com.doumee.dao.business.model.CrmInterfaceLog;
import com.doumee.dao.business.model.CustomerLog;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Users;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.Base64Util;
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 org.springframework.util.Base64Utils;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
@@ -48,9 +50,10 @@
private CustomerLogMapper customerLogMapper;
@Autowired
private CrmInterfaceLogMapper crmInterfaceLogMapper;
-
@Autowired
private RedisTemplate<String, Object> redisTemplate;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@@ -61,7 +64,10 @@
*/
@Override
@Async
- public int dealCustomerLogData(CustomerLog customerLog){
+ public void dealCustomerLogData(CustomerLog customerLog){
+ if(StringUtils.isBlank(customerLog.getPhone())){
+ return;
+ }
CrmCustomerInfoRequest entity = new CrmCustomerInfoRequest();
entity.setId(customerLog.getId());
entity.setName(customerLog.getName());
@@ -77,7 +83,8 @@
entity.setSource(CRMConstants.CRM_SOURCE.SOURCE_MP02);
entity.setChannel(CRMConstants.CRM_SOURCE.SOURCE_MP02+"00");
}
- entity.setOpenId(customerLog.getOpenid());
+// entity.setOpenId(customerLog.getOpenid());
+ entity.setOpenid(customerLog.getOpenid());
entity.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm"));
CrmCustomerPostRequest obj = new CrmCustomerPostRequest();
obj.setCusInfo(new ArrayList<>());
@@ -98,7 +105,6 @@
.set(CustomerLog::getCrmStatus,Constants.ONE )
.set(CustomerLog::getCrmInfo,crmInfo )
.set(CustomerLog::getCrmDate,new Date() ));// 鏇存柊鐘舵��
- return status;// 榛樿澶辫触
}
/**
* 鑾峰彇瀵艰喘缁戝畾鍒楄〃
@@ -110,7 +116,10 @@
int status ;
String crmInfo;
String param = JSONObject.toJSONString(entity);
- CRMBaseResponse<List<CRMDaogouBindListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.DAOGOU_BIND_LIST_URL,CRMConstants.IntegerName.DAOGOU_BIND_LIST_NAME,param);
+ CRMBaseResponse<List<CRMDaogouBindListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.DAOGOU_BIND_LIST_URL,
+ CRMConstants.IntegerName.DAOGOU_BIND_LIST_NAME,
+ param,
+ new TypeReference<CRMBaseResponse<List<CRMDaogouBindListResponse>>>(){});
return result;// 榛樿澶辫触
}
@@ -124,13 +133,16 @@
int status ;
String crmInfo;
String param = JSONObject.toJSONString(entity);
- CRMBaseResponse<List<CRMCustomerListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.CUS_BEFORE_PAGE_LIST_URL,CRMConstants.IntegerName.CUS_BEFORE_PAGE_LIST_NAME,param);
+ CRMBaseResponse<List<CRMCustomerListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.CUS_BEFORE_PAGE_LIST_URL
+ ,CRMConstants.IntegerName.CUS_BEFORE_PAGE_LIST_NAME
+ ,param
+ ,new TypeReference<CRMBaseResponse<List<CRMCustomerListResponse>>>(){});
return result;// 榛樿澶辫触
}
public <T> CRMBaseResponse<T> sendCusHttpRequest(String interfaceUrl, String name, String param){
log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
- String appKey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_KEY);
+ String appKey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_POSTCUS_API_KEY);
String url = redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL) + interfaceUrl ;
long _t = System.currentTimeMillis();
if (StringUtils.isNotBlank(appKey)||StringUtils.isNotBlank(url)) {
@@ -158,7 +170,7 @@
}
return null;
}
- public <T> CRMBaseResponse<T> sendHttpRequest(String interfaceUrl, String name, String param){
+ public <T> CRMBaseResponse<T> sendHttpRequest(String interfaceUrl, String name, String param,TypeReference<CRMBaseResponse<T>> typeReference){
log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
String appKey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_KEY);
String url = redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL) + interfaceUrl ;
@@ -170,8 +182,6 @@
url += "?timestamp=" + _t + "&sign=" + DigestUtils.md5Hex( _t + appKey);
Map<String,String> headers = new HashMap<>();
res = HttpsUtil.postJson(url,param);
- TypeReference typeReference =
- new TypeReference<CRMBaseResponse<T>>(){};
CRMBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType());
logResult(result,name);
if(StringUtils.equals(result.getCode(),CRMConstants.CODE_SUCCESS)){
@@ -245,22 +255,66 @@
* @return
*/
@Override
- public String getCrmGoUrl(String userName){
- StringBuffer sb = new StringBuffer();
- String result = null;
+ public String getCrmGoUrl(String userName,Integer type,String iamId){
try {
// 鍒涘缓StringBuffer瀵硅薄鐢ㄦ潵鎿嶄綔瀛楃涓�
int _t = (int)(System.currentTimeMillis());
- String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_AUTH_API_KEY);
- String url = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL)
- +CRMConstants.IntegerUrl.GO_CRM_AUTH_URL
- + "?timestamp="+_t
- +"&agent_phone_number=" + URLEncoder.encode(userName, "UTF-8")
- + "&bindKey=mp&sign="+ DigestUtils.md5Hex( _t + appkey);;
+ String pageKey ="mp";//瀹㈡埛鍒楄〃椤甸潰鐮�
+ String fileUrl = systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL_MP).getCode();
+ if(Constants.equalsInteger(type,Constants.ONE)){
+ pageKey = "mpAddIntention";//鏂板鎰忓悜椤甸潰鐮�
+ fileUrl = systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL_MP_ADDINTENTION).getCode();
+ }
+ String url = redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL)
+ + CRMConstants.IntegerUrl.GO_CRM_AUTH_URL
+ + "?bindKey="+pageKey
+ + "&tick=" + this.getTick(iamId, fileUrl);
return url;
}catch (Exception e){
e.printStackTrace();
}
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑾峰彇璺宠浆鍦板潃澶辫触鍝︼紒");
}
+
+ public String getTick(String iamId, String fileUrL) throws UnsupportedEncodingException {
+ Map<String,Object> map = new HashMap<>();
+ //鐢ㄦ埛IAM涓婚敭
+ map.put("ssouserid",iamId);
+ //鍞墠灏忕▼搴廰ppid
+ map.put("appid",systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_BUSINESS_APPID).getCode());
+ //璺宠浆鍦板潃
+ map.put("rediUrl",fileUrL);
+ //鏃堕棿鎴�
+ map.put("timestamp",System.currentTimeMillis()/1000+"");
+ //C绔皬绋嬪簭appid
+ map.put("sourceappid",systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_CUSTOMER_APPID).getCode());
+ System.out.println(JSONObject.toJSONString(map));
+ //鑾峰彇tick
+ String tick = ZbomCRMServiceImpl.encrypt(
+ systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL_PRIVATE_KEY).getCode()
+ ,JSONObject.toJSONString(map)
+ ,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL_INIT_VECTOR).getCode());
+
+ String tickEncoder = URLEncoder.encode(tick,"UTF-8");
+
+ return tickEncoder;
+ }
+
+
+ public static String encrypt(String key, String value,String initVector) {
+ try {
+ IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
+ SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
+ cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
+ byte[] encrypted = cipher.doFinal(value.getBytes());
+ return Base64Utils.encodeToString(encrypted);
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return null;
+ }
+
+
}
--
Gitblit v1.9.3