Explorar el Código

Merge remote-tracking branch 'origin/test' into test

lyh hace 1 año
padre
commit
c49ecaef1a

+ 5 - 0
src/main/java/com/ydtech/config/MvcConfig.java

@@ -3,6 +3,7 @@ package com.ydtech.config;
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 import com.ydtech.aop.DynamicNameAspect;
 import com.ydtech.aop.DynamicTableNameHandler;
 import com.ydtech.aop.RequestStringParamHandlerMethodArgumentResolver;
@@ -142,5 +143,9 @@ public class MvcConfig implements WebMvcConfigurer {
 
     }
 
+    @Bean
+    public XmlMapper xmlMapper(){
+        return new XmlMapper();
+    }
 
 }

+ 7 - 8
src/main/java/com/ydtech/modules/admin/components/WechatCustomerComponents.java

@@ -41,8 +41,8 @@ public class WechatCustomerComponents {
         return insCrawlerOrderComponents.request(url, "wechatCustomer", wechatCustomer.getDesc(), requestBody, responseType, httpHeaders);
     }
 
-    public WxCryptUtil getWxCryptUtil(){
-        return new WxCryptUtil(wechatCustomerProperties.getToken(),  wechatCustomerProperties.getEncodingAesKey(), wechatCustomerProperties.getCorpId());
+    public WxCryptUtil getWxCryptUtil() {
+        return new WxCryptUtil(wechatCustomerProperties.getToken(), wechatCustomerProperties.getEncodingAesKey(), wechatCustomerProperties.getCorpId());
     }
 
     /**
@@ -53,7 +53,7 @@ public class WechatCustomerComponents {
     private String getToken() {
         return redissonUtils.getFromRedis(() -> {
             CustomerGetTokenRequest customerGetTokenRequest = new CustomerGetTokenRequest(wechatCustomerProperties.getCorpId(), wechatCustomerProperties.getSecret());
-            String url = WechatCustomerEnum.URL + customerGetTokenRequest.getUrlParams();
+            String url = WechatCustomerEnum.URL + WechatCustomerEnum.GET_ACCESS_TOKEN.getUri() + customerGetTokenRequest.getUrlParams();
             CustomerGetTokenResponse customerGetTokenResponse = restTemplate.getForObject(url, CustomerGetTokenResponse.class);
             AssertionUtils.isEmpty(customerGetTokenResponse, "获取调用凭证access_token异常");
             String accessToken = customerGetTokenResponse.getAccessToken();
@@ -62,7 +62,6 @@ public class WechatCustomerComponents {
     }
 
 
-
     /**
      * 获取客服账号列表
      *
@@ -70,7 +69,7 @@ public class WechatCustomerComponents {
      * @return 客服账号列表
      */
     public CustomerListResponse list(CustomerListRequest customerListRequest) {
-        return request(WechatCustomerEnum.LIST, customerListRequest, CustomerListResponse.class, HttpHeaders.EMPTY);
+        return request(WechatCustomerEnum.LIST, customerListRequest, CustomerListResponse.class, new HttpHeaders());
     }
 
     /**
@@ -80,7 +79,7 @@ public class WechatCustomerComponents {
      * @return 客服账号链接
      */
     public CustomerAddContactWayResponse addContactWay(CustomerAddContactWayRequest customerAddContactWayRequest) {
-        return request(WechatCustomerEnum.ADD_CONTACT_WAY, customerAddContactWayRequest, CustomerAddContactWayResponse.class, HttpHeaders.EMPTY);
+        return request(WechatCustomerEnum.ADD_CONTACT_WAY, customerAddContactWayRequest, CustomerAddContactWayResponse.class, new HttpHeaders());
     }
 
     /**
@@ -90,7 +89,7 @@ public class WechatCustomerComponents {
      * @return 消息信息
      */
     public CustomerSendMsgOnEventResponse sendMsgOnEvent(CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest) {
-        return request(WechatCustomerEnum.LIST, customerSendMsgOnEventRequest, CustomerSendMsgOnEventResponse.class, HttpHeaders.EMPTY);
+        return request(WechatCustomerEnum.SEND_MSG_ON_EVENT, customerSendMsgOnEventRequest, CustomerSendMsgOnEventResponse.class, new HttpHeaders());
     }
 
     /**
@@ -100,7 +99,7 @@ public class WechatCustomerComponents {
      * @return 成功失败
      */
     public CustomerSyncMsgResponse syncMsg(CustomerSyncMsgRequest customerSyncMsgRequest) {
-        return request(WechatCustomerEnum.SYNC_MSG, customerSyncMsgRequest, CustomerSyncMsgResponse.class, HttpHeaders.EMPTY);
+        return request(WechatCustomerEnum.SYNC_MSG, customerSyncMsgRequest, CustomerSyncMsgResponse.class, new HttpHeaders());
     }
 
 }

+ 13 - 0
src/main/java/com/ydtech/modules/admin/components/wechat/customer/request/CustomerSendMsgOnEventRequest.java

@@ -2,6 +2,8 @@ package com.ydtech.modules.admin.components.wechat.customer.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.admin.components.wechat.customer.response.CustomerSyncMsgResponse;
+import com.ydtech.modules.admin.model.SysUser;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -52,4 +54,15 @@ public class CustomerSendMsgOnEventRequest extends CustomerBaseRequest {
 
     }
 
+
+    public static CustomerSendMsgOnEventRequest sendMsgOnEvent(SysUser sysUser, String msgid, String code) {
+        String messages = "你好!" + sysUser.getName() + "(" + sysUser.getId() + ")" + "很高兴为你服务";
+        // 发送欢迎信息
+        CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = new CustomerSendMsgOnEventRequest();
+        customerSendMsgOnEventRequest.setMsgtype("text");
+        customerSendMsgOnEventRequest.setCode(code);
+        customerSendMsgOnEventRequest.setText(new TextDTO(messages));
+        return customerSendMsgOnEventRequest;
+    }
+
 }

+ 8 - 11
src/main/java/com/ydtech/modules/admin/service/impl/WechatCustomerServiceImpl.java

@@ -15,6 +15,7 @@ import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.admin.service.WechatCustomerService;
 import com.ydtech.utils.StringUtils;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.util.crypto.WxCryptUtil;
 import me.chanjar.weixin.cp.bean.kf.WxCpKfMsgListResp;
 import me.chanjar.weixin.cp.bean.kf.WxCpKfMsgSendRequest;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+@Slf4j
 @Service
 @RequiredArgsConstructor
 public class WechatCustomerServiceImpl implements WechatCustomerService {
@@ -30,21 +32,22 @@ public class WechatCustomerServiceImpl implements WechatCustomerService {
 
     private final SysUserService sysUserService;
 
-    private final SysDeptService sysDeptService;
+    private final XmlMapper xmlMapper;
 
     @Override
     public String customerCallback(String msgSignature, String timestamp, String nonce, String echoStr) {
-        System.out.println(msgSignature + " " + timestamp + " " + nonce + " " + echoStr);
         WxCryptUtil wxCryptUtil = wechatCustomerComponents.getWxCryptUtil();
         return wxCryptUtil.decrypt(echoStr);
     }
 
     @Override
     public void callbackSendMsgOnEvent(String wechatEncrypt) throws JsonProcessingException {
-        XmlMapper xmlMapper = new XmlMapper();
+        log.info("回调参数为{}", wechatEncrypt);
         WechatEncryptVo wechatEncryptVo = xmlMapper.readValue(wechatEncrypt, WechatEncryptVo.class);
         WxCryptUtil wxCryptUtil = wechatCustomerComponents.getWxCryptUtil();
+        log.info("解密参数为{}", wechatEncryptVo.getEncrypt());
         String encrypt = wxCryptUtil.decrypt(wechatEncryptVo.getEncrypt());
+        log.info("解密后的参数为{}", encrypt);
         WechatCustomerCallbackVo wechatCustomerCallbackVo = xmlMapper.readValue(encrypt, WechatCustomerCallbackVo.class);
 
         // 获取消息
@@ -62,14 +65,8 @@ public class WechatCustomerServiceImpl implements WechatCustomerService {
         }
 
         SysUser sysUser = sysUserService.getById(sceneParam);
-        String messages = "你好!" + sysUser.getName() + "(" + sysUser.getId() + ")" + "很高兴为你服务";
-
-        // 发送欢迎信息
-        CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = new CustomerSendMsgOnEventRequest();
-        customerSendMsgOnEventRequest.setMsgtype("text");
-        customerSendMsgOnEventRequest.setMsgid(msgListDTO.getMsgid());
-        customerSendMsgOnEventRequest.setCode(event.getWelcomeCode());
-        customerSendMsgOnEventRequest.setText(new CustomerSendMsgOnEventRequest.TextDTO(messages));
+        CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = CustomerSendMsgOnEventRequest.sendMsgOnEvent(sysUser, msgListDTO.getMsgid(),event.getWelcomeCode());
         wechatCustomerComponents.sendMsgOnEvent(customerSendMsgOnEventRequest);
     }
+
 }

+ 2 - 2
src/main/resources/application-pre.yml

@@ -223,8 +223,8 @@ wechat:
   customer:
     corp-id: wwfe67d19509d43ec5
     secret: lbn1DU7VhqK3dG0XDciPDXf_AdSryne84nvRhtSEGLc
-    token: HBme3ASL
-    encoding-aes-key: kv1XrZqTDUup27rVatFG3s04DSw2qEAvxg7k9euEROq
+    token: btgwGK2r
+    encoding-aes-key: eevs11QeInJYRysGYnC8gK68F4CGsedM1Dn1X79cPCs
   open:
     properties:
       jzg:

+ 2 - 2
src/main/resources/application-prod.yml

@@ -215,8 +215,8 @@ wechat:
   customer:
     corp-id: wwfe67d19509d43ec5
     secret: lbn1DU7VhqK3dG0XDciPDXf_AdSryne84nvRhtSEGLc
-    token: HBme3ASL
-    encoding-aes-key: kv1XrZqTDUup27rVatFG3s04DSw2qEAvxg7k9euEROq
+    token: btgwGK2r
+    encoding-aes-key: eevs11QeInJYRysGYnC8gK68F4CGsedM1Dn1X79cPCs
   open:
     properties:
       jzg:

+ 2 - 2
src/main/resources/application-test.yml

@@ -233,8 +233,8 @@ wechat:
   customer:
     corp-id: wwfe67d19509d43ec5
     secret: lbn1DU7VhqK3dG0XDciPDXf_AdSryne84nvRhtSEGLc
-    token: HBme3ASL
-    encoding-aes-key: kv1XrZqTDUup27rVatFG3s04DSw2qEAvxg7k9euEROq
+    token: btgwGK2r
+    encoding-aes-key: eevs11QeInJYRysGYnC8gK68F4CGsedM1Dn1X79cPCs
   open:
     properties:
       jzg: