From d43ff7bbc7f25c0136b45141d626c49682e19a4e Mon Sep 17 00:00:00 2001 From: LegnaYet <1023868505@qq.com> Date: Fri, 24 Apr 2020 17:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E5=BA=97=E5=8F=B7=E7=AE=A1=E7=90=86bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kiisoo/ic/config/WxCpConfiguration.java | 8 +++---- .../ic/wx/service/WxResponseService.java | 22 ++++++++++++++----- .../resources/mapper/PoiStoreDOMapper.xml | 1 + .../PrivilageUserShopRelationDOMapper.xml | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/config/WxCpConfiguration.java b/src/main/java/com/kiisoo/ic/config/WxCpConfiguration.java index 7cb870e..c458ee4 100644 --- a/src/main/java/com/kiisoo/ic/config/WxCpConfiguration.java +++ b/src/main/java/com/kiisoo/ic/config/WxCpConfiguration.java @@ -32,7 +32,7 @@ public class WxCpConfiguration { private static Map cpServices = Maps.newHashMap(); - public static Integer APPLICATIONID = 1000043; + public static Integer APPLICATIONID = 1000004; @Autowired private BasicConfigDOMapper basicConfigDOMapper; @@ -44,12 +44,12 @@ public class WxCpConfiguration { @PostConstruct public void initServices() { QueryWrapper baseParams = new QueryWrapper<>(); - baseParams.eq("code","CP_CORPID"); + baseParams.eq("code","HT_CP_CORPID"); BasicConfigDO basicConfigDO = basicConfigDOMapper.selectOne(baseParams); QueryWrapper confParams = new QueryWrapper<>(); - confParams.likeRight("code","CP_"); - confParams.ne("code","CP_CORPID"); + confParams.likeRight("code","HT_CP_"); + confParams.ne("code","HT_CP_CORPID"); List confConfigDO = basicConfigDOMapper.selectList(confParams); Map> confMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(confConfigDO)){ diff --git a/src/main/java/com/kiisoo/ic/wx/service/WxResponseService.java b/src/main/java/com/kiisoo/ic/wx/service/WxResponseService.java index f6ba352..c4d8b46 100644 --- a/src/main/java/com/kiisoo/ic/wx/service/WxResponseService.java +++ b/src/main/java/com/kiisoo/ic/wx/service/WxResponseService.java @@ -19,7 +19,9 @@ import com.kiisoo.ic.wx.entity.FollowUserDTO; import com.kiisoo.ic.wx.entity.FollowUserTag; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.cp.api.WxCpExternalContactService; import me.chanjar.weixin.cp.api.WxCpService; +import me.chanjar.weixin.cp.bean.WxCpUserExternalContactInfo; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -350,8 +352,9 @@ public class WxResponseService { case "add_external_contact": // state字段需要企业成员验证添加后回调给到 NodeList stateNode = root.getElementsByTagName("State"); + String state = ""; if(stateNode.getLength() > 0) { - String state = stateNode.item(0).getTextContent(); + state = stateNode.item(0).getTextContent(); log.info(state); } log.info("add_external_contact 配置了客户联系功能的成员添加外部联系人时,回调该事件"); @@ -360,7 +363,7 @@ public class WxResponseService { String res = WeixinApi.getExternalContactInfo(externalUserID); log.info(res); //添加客户并添加店铺企业微信信息 - addExternalContact(res); + addExternalContact(res,state); // welcomeCodeNode = root.getElementsByTagName("WelcomeCode"); // welcomeCode = welcomeCodeNode.item(0).getTextContent(); @@ -417,11 +420,18 @@ public class WxResponseService { * @param * @return */ - public OpCustomerEnterpriseWechat analyticCustomerEnterprise(String res){ + public OpCustomerEnterpriseWechat analyticCustomerEnterprise(String res) throws WxErrorException { JSONObject parseObject = JSON.parseObject(res); //解析企业微信信息 OpCustomerEnterpriseWechat ocew = JSONObject.parseObject(parseObject.getString("external_contact"), OpCustomerEnterpriseWechat.class); List fUserDTO = JSONObject.parseArray(parseObject.getString("follow_user"),FollowUserDTO.class); + + WxCpService cpService = WxCpConfiguration.getCpService(APPLICATIONID); + WxCpExternalContactService externalContactService = cpService.getExternalContactService(); + WxCpUserExternalContactInfo contactDetail = externalContactService.getContactDetail(ocew.getExternalUserid()); + if (contactDetail!=null && contactDetail.getExternalContact()!=null && StringUtils.isNotBlank(contactDetail.getExternalContact().getUnionId())){ + ocew.setUnionid(contactDetail.getExternalContact().getUnionId()); + } if (CollectionUtils.isNotEmpty(fUserDTO)){ ocew.setUserid(fUserDTO.get(0).getUserid()); ocew.setRemark(fUserDTO.get(0).getRemark()); @@ -446,10 +456,12 @@ public class WxResponseService { * 添加客户 * @param res */ - public void addExternalContact(String res){ + public void addExternalContact(String res,String state) throws WxErrorException { OpCustomerEnterpriseWechat ocew = analyticCustomerEnterprise(res); + ocew.setState(state); CustomerDTO customerDTO = new CustomerDTO(); customerDTO.setUniId(ocew.getUnionid()); + customerDTO.setExternalUserid(ocew.getExternalUserid()); if (StringUtils.isNotBlank(ocew.getState())){ //解析state 店铺code-导购 String[] split = ocew.getState().split("-"); @@ -476,7 +488,7 @@ public class WxResponseService { * 更新客户信息 * @param res */ - public void editExternalContact(String res){ + public void editExternalContact(String res) throws WxErrorException { OpCustomerEnterpriseWechat ocew = analyticCustomerEnterprise(res); CustomerModifyDTO customerModifyDTO= new CustomerModifyDTO(); customerModifyDTO.setUniId(ocew.getUnionid()); diff --git a/src/main/resources/mapper/PoiStoreDOMapper.xml b/src/main/resources/mapper/PoiStoreDOMapper.xml index a21103e..192fc60 100644 --- a/src/main/resources/mapper/PoiStoreDOMapper.xml +++ b/src/main/resources/mapper/PoiStoreDOMapper.xml @@ -70,6 +70,7 @@ where t1.domain_id = t2.domain_id and t2.entity_id = t3.id and t2.type = 3 + and and t1.org_id in diff --git a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml index 2aa04c8..e548c5d 100644 --- a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml +++ b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml @@ -29,6 +29,7 @@