From 1c0d19bb0cf20800eacab83be856680dfbe237a2 Mon Sep 17 00:00:00 2001 From: yechenhao Date: Thu, 14 May 2020 13:31:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kiisoo/ic/customer/CustomerService.java | 53 +++++++++++++++---- .../kiisoo/ic/customer/entity/OpCustomer.java | 6 +++ .../ic/employee/service/EmployeeService.java | 4 +- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/customer/CustomerService.java b/src/main/java/com/kiisoo/ic/customer/CustomerService.java index 59cc50c..a0923dd 100644 --- a/src/main/java/com/kiisoo/ic/customer/CustomerService.java +++ b/src/main/java/com/kiisoo/ic/customer/CustomerService.java @@ -17,6 +17,8 @@ import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper; import com.kiisoo.ic.customer.mapper.OpVipDOMapper; import com.kiisoo.ic.customer.service.CustomerViewService; import com.kiisoo.ic.domain.service.PrivilageDomainService; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; +import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.employee.service.EmployeeService; import com.kiisoo.ic.generalize.service.RetailCompanyService; import com.kiisoo.ic.ls.controller.WebSocketController; @@ -60,6 +62,9 @@ public class CustomerService { @Autowired private OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper; + @Autowired + private PrivilageCpUserDOMapper privilageCpUserDOMapper; + @Autowired private OpVipDOMapper opVipDOMapper; @@ -162,17 +167,27 @@ public class CustomerService { * @return 是否成功 */ public void turnBack(TurnBackDTO turnBackDTOS) throws Exception { - if (turnBackDTOS.getWxData().getUnionId() == null || turnBackDTOS.getUserId() == null) { + OpCustomer opCustomer = null; + if (turnBackDTOS.getWxData().getUnionId() == null && turnBackDTOS.getWxData().getUserId() == null) { + //此时说明是企业微信扫码添加 + QueryWrapper customerWrapper = new QueryWrapper<>(); + customerWrapper.eq("wechat_uni_id", null).eq("external_userid", turnBackDTOS.getWxData().getUserId()).last("limit 1"); + opCustomer = opCustomerDOMapper.selectOne(customerWrapper); + }else if (turnBackDTOS.getWxData().getUnionId() != null && turnBackDTOS.getUserId() != null){ + //客户信息 + QueryWrapper customerWrapper = new QueryWrapper<>(); + customerWrapper.eq("wechat_uni_id", turnBackDTOS.getWxData().getUnionId()).last("limit 1"); + opCustomer = opCustomerDOMapper.selectOne(customerWrapper); + }else{ return; } - //客户信息 - QueryWrapper customerWrapper = new QueryWrapper<>(); - customerWrapper.eq("wechat_uni_id", turnBackDTOS.getWxData().getUnionId()).last("limit 1"); - OpCustomer opCustomer = opCustomerDOMapper.selectOne(customerWrapper); + //店铺信息 PrivilageCpUserStoreDO poiStore = privilageCpUserStoreDOMapper.selectOneCpUser(turnBackDTOS.getUserId()); if (poiStore == null) { - return; + //无店铺数据处理 + poiStore = new PrivilageCpUserStoreDO(); + poiStore.setStoreId(0L); } PoiStore shop = poiStoreDOMapper.selectById(poiStore.getStoreId()); PoiStoreStaff poiStoreStaff = null; @@ -192,6 +207,8 @@ public class CustomerService { insertCustomer.setWechatUniId(turnBackDTOS.getWxData().getUnionId()); insertCustomer.setName(turnBackDTOS.getName()); insertCustomer.setAvatarUrl(turnBackDTOS.getWxData().getAvatarUrl()); + insertCustomer.setExternalUserid(turnBackDTOS.getWxData().getUserId()); + insertCustomer.setCpUserId(turnBackDTOS.getUserId()); insertCustomer.setPhone(turnBackDTOS.getPhone()); if (shop != null && StringUtils.isNotBlank(shop.getName())){ insertCustomer.setShopName(shop.getName()); @@ -210,16 +227,16 @@ public class CustomerService { if (poiStoreStaff != null) { //存在--1.处理客户导购关系。 try { - sellerCustomerRelation(opCustomer, turnBackDTOS.getEaCode(),sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId(), poiStoreStaff.getId()); + sellerCustomerRelation(insertCustomer, turnBackDTOS.getEaCode(),sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId(), poiStoreStaff.getId()); }catch (Exception e) { - log.error(opCustomer.toString(),e); + log.error(insertCustomer.toString(),e); return; } } else { try { - storeCustomerRelation(opCustomer,sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId()); + storeCustomerRelation(insertCustomer,sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId()); }catch (Exception e) { - log.error(opCustomer.toString(),e); + log.error(insertCustomer.toString(),e); return; } } @@ -368,6 +385,22 @@ public class CustomerService { //无效 insertRelation.setType(2); } + if (shopId == 0L){ + QueryWrapper cpQw = new QueryWrapper<>(); + cpQw.eq("cp_user_id",opCustomer.getCpUserId()).last("limit 1"); + PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectOne(cpQw); + if (privilageCpUserDO!=null){ + insertRelation.setUserId(privilageCpUserDO.getId()); + }else{ + privilageCpUserDO = new PrivilageCpUserDO(); + privilageCpUserDO.setCpUserId(opCustomer.getCpUserId()); + privilageCpUserDO.setStatus(1); + privilageCpUserDOMapper.insert(privilageCpUserDO); + insertRelation.setUserId(privilageCpUserDO.getId()); + } + + insertRelation.setType(3); + } opSellerCustomerRelationDOMapper.insert(insertRelation); } } diff --git a/src/main/java/com/kiisoo/ic/customer/entity/OpCustomer.java b/src/main/java/com/kiisoo/ic/customer/entity/OpCustomer.java index bd1092b..5315a6e 100644 --- a/src/main/java/com/kiisoo/ic/customer/entity/OpCustomer.java +++ b/src/main/java/com/kiisoo/ic/customer/entity/OpCustomer.java @@ -116,6 +116,12 @@ public class OpCustomer { @TableField(exist = false) private String shopName; + /** + * 企业微信账号 + */ + @TableField(exist = false) + private String cpUserId; + /** * 是否有效1有效2无效 */ diff --git a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java index cb8630a..956d3d7 100644 --- a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java +++ b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java @@ -529,7 +529,9 @@ public class EmployeeService { WxDataDTO wxDataDTO = new WxDataDTO(); wxDataDTO.setAvatarUrl(externalContact.getAvatar()); wxDataDTO.setUserId(externalContact.getExternalUserId()); - wxDataDTO.setUnionId(externalContact.getUnionId()); + if (externalContact.getUnionId() != null){ + wxDataDTO.setUnionId(externalContact.getUnionId()); + } turnBackDTO.setWxData(wxDataDTO); // HttpResult httpResult = HttpClientUtil.httpPost("http://127.0.0.1:8080/kiisoo-ic/api/ics/customer", JSONObject.toJSONString(turnBackDTO)); // String message = httpResult.getMessage();