From 8b6a17077fbd68bd3404ec268cb8e7f8bdcea31e Mon Sep 17 00:00:00 2001 From: kevin jiang Date: Thu, 21 May 2020 16:27:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B4=BB=E5=8A=A8=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kiisoo/ic/constants/Constants.java | 11 ++++++ .../kiisoo/ic/customer/CustomerService.java | 34 +++++++++++++++++-- .../kiisoo/ic/store/constant/Constants.java | 5 +++ .../store/service/StoreEmployeeService.java | 17 ++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/constants/Constants.java b/src/main/java/com/kiisoo/ic/constants/Constants.java index 9d9eb7c..14e4b13 100644 --- a/src/main/java/com/kiisoo/ic/constants/Constants.java +++ b/src/main/java/com/kiisoo/ic/constants/Constants.java @@ -147,4 +147,15 @@ public class Constants { public static final String CODE_STORE_STAFF_HAS = "3007"; + /** + * 活动二维码前缀 + */ + public static final String ACTIVITY_QR_CODE_PREFIX = "pmn"; + + /** + * 下划线 + */ + public static final String LINE = "_"; + + } diff --git a/src/main/java/com/kiisoo/ic/customer/CustomerService.java b/src/main/java/com/kiisoo/ic/customer/CustomerService.java index 80cbb51..003a1a0 100644 --- a/src/main/java/com/kiisoo/ic/customer/CustomerService.java +++ b/src/main/java/com/kiisoo/ic/customer/CustomerService.java @@ -43,6 +43,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.DateFormat; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -174,6 +175,36 @@ public class CustomerService { * @return 是否成功 */ public void turnBack(TurnBackDTO turnBackDTOS) throws Exception { + String eaCode = turnBackDTOS.getEaCode(); + // 判断是否是活动扫码 + if(eaCode.contains(Constants.ACTIVITY_QR_CODE_PREFIX)){ + // 活动码处理 + handleActivity(turnBackDTOS, eaCode); + }else{ + // 导购码处理 + handleCustomer(turnBackDTOS); + } + } + + /** + * 活动码处理 + * @param turnBackDTOS 回调对象 + * @param eaCode 二维码的state字段 + */ + private void handleActivity(TurnBackDTO turnBackDTOS, String eaCode){ + String[] strArr = eaCode.split(Constants.LINE); + Long instanceId = Long.parseLong(strArr[1]); + int type = Integer.parseInt(strArr[2]); + Long promoterId = Long.parseLong(strArr[3]); + + // 处理逻辑 + } + + /** + * 处理客户扫码回调的方法 + * @param turnBackDTOS 回调对象 + */ + private void handleCustomer(TurnBackDTO turnBackDTOS) throws Exception { OpCustomer opCustomer = null; if (turnBackDTOS.getWxData().getUnionId() == null && turnBackDTOS.getWxData().getUserId() != null) { //此时说明是企业微信扫码添加 @@ -186,6 +217,7 @@ public class CustomerService { customerWrapper.eq("wechat_uni_id", turnBackDTOS.getWxData().getUnionId()).last("limit 1"); opCustomer = opCustomerDOMapper.selectOne(customerWrapper); }else{ + log.error("turn back error: " + turnBackDTOS.toString()); return; } @@ -283,8 +315,6 @@ public class CustomerService { //有vip数据就不需要重新请求bsd的vip接口 vipCheck(turnBackDTOS); } - //todo 发送websocket放开 -// WebSocketController.sendInfo(new Gson().toJson(insertCustomer)); } /** diff --git a/src/main/java/com/kiisoo/ic/store/constant/Constants.java b/src/main/java/com/kiisoo/ic/store/constant/Constants.java index bc5b1e0..de87374 100644 --- a/src/main/java/com/kiisoo/ic/store/constant/Constants.java +++ b/src/main/java/com/kiisoo/ic/store/constant/Constants.java @@ -85,6 +85,11 @@ public class Constants { */ public static final String BSD_REQ_QRCODE_TYPE_SELLER = "1"; + /** + * 活动码 + */ + public static final String BSD_REQ_QRCODE_TYPE_ACTIVITY = "2"; + /** * 好友数0 */ diff --git a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java index cacdfbb..2853b4f 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java @@ -1361,4 +1361,21 @@ public class StoreEmployeeService { return (b + b2 + b3 + b4) == 4; } + + /** + * 生成活动码 + * @param cpUserId 企业微信账号 + * @param storeCode 店铺编码 + * @param type 推广员: 1、导购 2、店铺 3、推广员 + * @param instanceId 活动实例id + * @param promoterId 推广员ID 如果是导购, 对应导购的id, 如果是店铺 对应店铺id, 如果是推广员,对应推广员id + * @return 返回 活动码地址、失败为空 + * @throws Exception 异常 + * @author dexiang.jiang + * @date 2020/05/21 15:01 + */ + public String createActivityQrCode(String cpUserId, String storeCode,int type ,Long instanceId, Long promoterId) throws Exception { + String state = Constants.ACTIVITY_QR_CODE_PREFIX + Constants.LINE + instanceId + Constants.LINE + type + Constants.LINE + promoterId; + return getQrCodeFromBSD(cpUserId, BSD_REQ_QRCODE_TYPE_ACTIVITY, state, storeCode); + } }