Explorar o código

掌柜核心-[微信客服]-微信客服自动发送消息

xuqiang hai 9 meses
pai
achega
365714a32a

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

@@ -4,6 +4,7 @@ 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 com.ydtech.utils.StringUtils;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -55,8 +56,12 @@ public class CustomerSendMsgOnEventRequest extends CustomerBaseRequest {
     }
 
 
-    public static CustomerSendMsgOnEventRequest sendMsgOnEvent(SysUser sysUser, String msgid, String code) {
-        String messages = "你好!" + sysUser.getName() + "(" + sysUser.getId() + ")" + "很高兴为你服务";
+    public static CustomerSendMsgOnEventRequest sendMsgOnEvent(SysUser sysUser, String msgid, String code,String partnerVersion) {
+        String messages = "你好!" + sysUser.getName() + "(" + sysUser.getId();
+        if (StringUtils.isNotEmpty(partnerVersion)){
+            messages += "-" + partnerVersion;
+        }
+        messages += ")" + "很高兴为你服务";
         // 发送欢迎信息
         CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = new CustomerSendMsgOnEventRequest();
         customerSendMsgOnEventRequest.setMsgtype("text");

+ 2 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -584,6 +584,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     int countTeamLeader(@Param("mobile")String mobile,@Param("roleId") String roleId);
 
     SysUser findByPhoneNotPartner(String phone);
+
+    String getPartnerVersion(@Param("userId") String id);
 }
 
 

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -407,6 +407,8 @@ public interface SysUserService extends BaseIService<SysUser> {
     SysUser findPartUserByPhone(String phone);
 
     SysUser findByPhoneNotPartner(String phone);
+
+    String getPartnerVersion(String id);
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1338,6 +1338,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserMapper.findByPhoneNotPartner(phone);
     }
 
+    @Override
+    public String getPartnerVersion(String id) {
+        return sysUserMapper.getPartnerVersion(id) ;
+    }
+
 
     //  邀请的是团队长   去创建团队长部门
     public String  addNewTeam(SysUser sysUser) {

+ 27 - 1
src/main/java/com/ydtech/modules/admin/service/impl/WechatCustomerServiceImpl.java

@@ -27,7 +27,9 @@ import me.chanjar.weixin.cp.bean.kf.WxCpKfServiceStateResp;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -45,6 +47,13 @@ public class WechatCustomerServiceImpl implements WechatCustomerService {
 
     private final SysWechatCustomerService sysWechatCustomerService;
 
+    private static final Map<String, String> PARTNER_VERSION_MAP = new HashMap<>();
+    static {
+        PARTNER_VERSION_MAP.put("1", "新");
+        PARTNER_VERSION_MAP.put("2", "旧");
+        PARTNER_VERSION_MAP.put("3", "");
+    }
+
 
     @Override
     public String customerCallback(String msgSignature, String timestamp, String nonce, String echoStr) {
@@ -107,12 +116,29 @@ public class WechatCustomerServiceImpl implements WechatCustomerService {
         }
         if (msgListDTO.getOrigin() == 4) {
             SysUser sysUser = sysUserService.getById(scene);
-            CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = CustomerSendMsgOnEventRequest.sendMsgOnEvent(sysUser, msgListDTO.getMsgid(), event.getWelcomeCode());
+            String partnerVersion = getPartnerVersion(sysUser.getId());
+            CustomerSendMsgOnEventRequest customerSendMsgOnEventRequest = CustomerSendMsgOnEventRequest.sendMsgOnEvent(sysUser, msgListDTO.getMsgid(), event.getWelcomeCode(),partnerVersion);
             wechatCustomerComponents.sendMsgOnEvent(customerSendMsgOnEventRequest);
         }
 
     }
 
+
+    public String getPartnerVersion(String userId){
+        try {
+            String ver = sysUserService.getPartnerVersion(userId);
+            if (StringUtils.isBlank(ver)) {
+                return "";
+            }
+            return PARTNER_VERSION_MAP.getOrDefault(ver, "");
+        } catch (Exception e) {
+            log.error("用户[{}]获取合伙人版本异常: {}", userId, e.getMessage(), e);
+            return "";
+        }
+    }
+
+
+
     @Override
     public List<CustomerListResponse.AccountListDTO> list() {
         CustomerListRequest customerListResponse = new CustomerListRequest(0, 100);

+ 8 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -2186,6 +2186,14 @@
         ORDER BY  u.create_time DESC LIMIT 1
     </select>
 
+    <select id="getPartnerVersion" resultType="java.lang.String">
+        SELECT
+            CASE
+                WHEN EXISTS ( SELECT id FROM partner_user WHERE user_id = #{userId} ) THEN 1
+                WHEN EXISTS ( SELECT id FROM sys_partner WHERE user_id = #{userId} ) THEN 2
+                    ELSE 3
+                END AS result;
+    </select>
 
     <select id="findPartnerUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
         SELECT