From 48253b365dc88073dc17ef0bddd34f285436d7f5 Mon Sep 17 00:00:00 2001 From: yechenhao Date: Tue, 26 May 2020 19:58:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=A5=BD=E5=8F=8B=E5=85=B3?= =?UTF-8?q?=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kiisoo/ic/constants/Constants.java | 8 +++ .../OpSellerCustomerRelationDOMapper.java | 7 +++ .../mapper/PrivilageCpUserStoreDOMapper.java | 3 + .../store/service/StoreEmployeeService.java | 28 +-------- .../controller/SynchronousController.java | 26 +++++++- .../synchronous/entity/FriendExistReqDO.java | 12 ++++ .../service/PromotionCodeService.java | 59 +++++++++++++++++++ .../OpSellerCustomerRelationDOMapper.xml | 10 ++++ .../mapper/PrivilageCpUserStoreDOMapper.xml | 9 +++ 9 files changed, 134 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/synchronous/entity/FriendExistReqDO.java diff --git a/src/main/java/com/kiisoo/ic/constants/Constants.java b/src/main/java/com/kiisoo/ic/constants/Constants.java index 14e4b13..94241d3 100644 --- a/src/main/java/com/kiisoo/ic/constants/Constants.java +++ b/src/main/java/com/kiisoo/ic/constants/Constants.java @@ -139,6 +139,14 @@ public class Constants { public static final String CODE_STORE_NO_HAS = "3006"; + public static final String MSG_STORE_CP_USER_NO_HAS = "该店铺不存在账号"; + + public static final String CODE_STORE_CP_USER_NO_HAS = "3006"; + + public static final String MSG_STORE_CP_USER_ERROR = "该店铺企业微信账号有误,无法生成二维码"; + + public static final String CODE_STORE_CP_USER_ERROR = "3006"; + public static final String MSG_USER_HAS = "用户已存在"; public static final String CODE_USER_HAS = "3006"; diff --git a/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java b/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java index 1219846..b29b8ad 100644 --- a/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java +++ b/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java @@ -105,4 +105,11 @@ public interface OpSellerCustomerRelationDOMapper extends BaseMapper> selectCustomersByCpUserIdByList(@Param("cpUserIds")List cpUserIds); + /** + * 查询好友关系 + * @param storeCode + * @param unionId + * @return + */ + OpSellerCustomerRelation selectCustomerStoreRelation(@Param("storeCode")String storeCode,@Param("unionId") String unionId); } diff --git a/src/main/java/com/kiisoo/ic/store/mapper/PrivilageCpUserStoreDOMapper.java b/src/main/java/com/kiisoo/ic/store/mapper/PrivilageCpUserStoreDOMapper.java index 54b10b0..3ac7a27 100644 --- a/src/main/java/com/kiisoo/ic/store/mapper/PrivilageCpUserStoreDOMapper.java +++ b/src/main/java/com/kiisoo/ic/store/mapper/PrivilageCpUserStoreDOMapper.java @@ -1,6 +1,7 @@ package com.kiisoo.ic.store.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO; import com.kiisoo.ic.store.entity.StoreUserDTO; import org.apache.ibatis.annotations.Param; @@ -22,6 +23,8 @@ public interface PrivilageCpUserStoreDOMapper extends BaseMapper selectCpUserIdsByStoreIds(@Param("shopIds")List storeIds); PrivilageCpUserStoreDO selectOneCpUser(String cpUser); 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 63f44c5..61f9650 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java @@ -153,8 +153,6 @@ public class StoreEmployeeService { @Autowired private PrivilageUserDOMapper privilageUserDOMapper; - @Value("${bsd.friendExistUrl}") - private String friendExistUrl; @Value("${bsd.qrCode}") private String qrCodeBsdUrl; @@ -288,31 +286,7 @@ public class StoreEmployeeService { } return url; } - /** - * 获取波司登好友接口 - * - * @param unionId - * @param storeCode - * @return - * @throws Exception - */ - public String getFriendExistFromBSD(String unionId, String storeCode) throws Exception { - String url = ""; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Map params = new HashMap<>(); - params.put("union_id", unionId); - params.put("store_code", storeCode); - String message = HttpClientUtil.httpPost(friendExistUrl + MD5FileUtil.getMD5String("BOSIDENG" + sdf.format(new Date())), JSONObject.toJSONString(params)).getMessage(); - log.info("unionId="+unionId + "store_code=" + storeCode + "getFriendExistFromBSD " + message); - JSONObject qrCodeJson = JSONObject.parseObject(message); - BsdFriendsExistResponse bsdResponse = qrCodeJson.toJavaObject(BsdFriendsExistResponse.class); - if ("1000".equals(bsdResponse.getCode()) && bsdResponse.getResInfo().getExist()) { - url = bsdResponse.getResInfo().getQrcode(); - } else { - log.error("unionId="+unionId + "store_code=" + storeCode + "getFriendExistFromBSD 获取波司登好友失败 " + message); - } - return url; - } + /** * 获取波司登二维码 diff --git a/src/main/java/com/kiisoo/ic/synchronous/controller/SynchronousController.java b/src/main/java/com/kiisoo/ic/synchronous/controller/SynchronousController.java index bcc5727..c8cdacb 100644 --- a/src/main/java/com/kiisoo/ic/synchronous/controller/SynchronousController.java +++ b/src/main/java/com/kiisoo/ic/synchronous/controller/SynchronousController.java @@ -1,12 +1,15 @@ package com.kiisoo.ic.synchronous.controller; import com.alibaba.fastjson.JSON; -import com.google.gson.JsonObject; +import com.kiisoo.ic.common.KiisooException; import com.kiisoo.ic.customer.CustomerService; +import com.kiisoo.ic.store.bean.BsdFriendsExistResponse; import com.kiisoo.ic.store.entity.PoiStore; +import com.kiisoo.ic.synchronous.entity.FriendExistReqDO; import com.kiisoo.ic.synchronous.entity.TurnBackDTO; import com.kiisoo.ic.synchronous.entity.TurnBackVO; import com.kiisoo.ic.synchronous.service.BackReceiveService; +import com.kiisoo.ic.synchronous.service.PromotionCodeService; import com.kiisoo.ic.utils.DataImportUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +39,8 @@ public class SynchronousController { @Autowired private BackReceiveService backReceiveService; + @Autowired + private PromotionCodeService promotionCodeService; /** * 导入店铺接口 @@ -90,6 +95,25 @@ public class SynchronousController { return DataImportUtil.fail(e); } } + /** + * 好友查询接口 + * @param friendExistReqDO 亲故对象 + * @return BsdFriendsExistResponse + */ + @RequestMapping(value = "/ics/friends/exist", method = RequestMethod.POST, consumes = "application/json") + @ResponseBody + public BsdFriendsExistResponse getFriendsExist(@RequestBody FriendExistReqDO friendExistReqDO) { + try { + return promotionCodeService.getFriendsExist(friendExistReqDO); + }catch (KiisooException e){ + log.error("好友回调报错",e); + BsdFriendsExistResponse bsdFriendsExistResponse = new BsdFriendsExistResponse(); + bsdFriendsExistResponse.setResInfo(null); + bsdFriendsExistResponse.setMsg(e.getMsg()); + bsdFriendsExistResponse.setCode(e.getCode()); + return bsdFriendsExistResponse; + } + } /** * 好友添加回调通知 diff --git a/src/main/java/com/kiisoo/ic/synchronous/entity/FriendExistReqDO.java b/src/main/java/com/kiisoo/ic/synchronous/entity/FriendExistReqDO.java new file mode 100644 index 0000000..c40c27b --- /dev/null +++ b/src/main/java/com/kiisoo/ic/synchronous/entity/FriendExistReqDO.java @@ -0,0 +1,12 @@ +package com.kiisoo.ic.synchronous.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +@Data +public class FriendExistReqDO { + @JSONField(name = "store_code") + private String storeCode; + @JSONField(name = "union_id") + private String unionId; +} diff --git a/src/main/java/com/kiisoo/ic/synchronous/service/PromotionCodeService.java b/src/main/java/com/kiisoo/ic/synchronous/service/PromotionCodeService.java index fda773a..8b0e235 100644 --- a/src/main/java/com/kiisoo/ic/synchronous/service/PromotionCodeService.java +++ b/src/main/java/com/kiisoo/ic/synchronous/service/PromotionCodeService.java @@ -4,11 +4,16 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kiisoo.aegis.common.faces.util.HttpUtil; +import com.kiisoo.ic.common.KiisooException; import com.kiisoo.ic.common.utils.MD5FileUtil; import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil; import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult; +import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation; +import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper; import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; +import com.kiisoo.ic.store.bean.BsdFriendsExistInfo; +import com.kiisoo.ic.store.bean.BsdFriendsExistResponse; import com.kiisoo.ic.store.bean.BsdShareCodeResponse; import com.kiisoo.ic.store.constant.Constants; import com.kiisoo.ic.store.entity.PoiStore; @@ -18,6 +23,7 @@ import com.kiisoo.ic.store.entity.StoreUserDTO; import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; +import com.kiisoo.ic.synchronous.entity.FriendExistReqDO; import com.kiisoo.ic.synchronous.entity.PromotionDO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -27,6 +33,7 @@ import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; +import static com.kiisoo.ic.constants.Constants.*; import static com.kiisoo.ic.employee.constant.Constants.DATABASE_CP_USER_ID_KEY; import static com.kiisoo.ic.store.constant.Constants.BSD_REQ_QRCODE_TYPE_SELLER; import static com.kiisoo.ic.store.constant.Constants.BSD_REQ_QRCODE_TYPE_STORE; @@ -46,6 +53,9 @@ public class PromotionCodeService { @Autowired private PrivilageCpUserDOMapper privilageCpUserDOMapper; + @Autowired + private OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper; + public String getToken(){ String token = "BOSIDENG"; String date = "2018-10-31"; @@ -138,4 +148,53 @@ public class PromotionCodeService { }); } + + /** + * 好友查询接口 + * @param friendExistReqDO 亲故对象 + * @return BsdFriendsExistResponse + */ + public BsdFriendsExistResponse getFriendsExist(FriendExistReqDO friendExistReqDO) throws KiisooException { + BsdFriendsExistResponse response = new BsdFriendsExistResponse(); + BsdFriendsExistInfo existInfo = new BsdFriendsExistInfo(); + //查询是否有该店铺 + QueryWrapper storeQw = new QueryWrapper<>(); + storeQw.eq("code",friendExistReqDO.getStoreCode()).last("limit 1"); + PoiStore poiStore = poiStoreDOMapper.selectOne(storeQw); + if (poiStore == null){ + throw new KiisooException(MSG_STORE_NO_HAS,CODE_STORE_NO_HAS); + } + //根据unionId与店铺code查询是否已经是好友 + OpSellerCustomerRelation relation = opSellerCustomerRelationDOMapper.selectCustomerStoreRelation(friendExistReqDO.getStoreCode(),friendExistReqDO.getUnionId()); + if (relation == null){ + existInfo.setExist(false); + }else{ + existInfo.setExist(true); + } + //查询该店铺门店号 + PrivilageCpUserDO privilageCpUserDO = privilageCpUserStoreDOMapper.selectCpUserByStoreId(poiStore.getId()); + String url = ""; + if (privilageCpUserDO == null){ + throw new KiisooException(MSG_STORE_CP_USER_NO_HAS,CODE_STORE_CP_USER_NO_HAS); + }else{ + url = privilageCpUserDO.getQrCode(); + } + //查询门店号二维码 + if (StringUtils.isBlank(url)) { + try { + url = getQrCodeFromBSD(privilageCpUserDO.getCpUserId(), BSD_REQ_QRCODE_TYPE_STORE, "0", poiStore.getCode()); + privilageCpUserDO.setQrCode(url); + int update = privilageCpUserDOMapper.updateById(privilageCpUserDO); + } catch (Exception e) { + throw new KiisooException(MSG_STORE_CP_USER_ERROR,CODE_STORE_CP_USER_ERROR); + } + } + existInfo.setQrcode(url); + + response.setCode("1000"); + response.setMsg("操作成功"); + response.setResInfo(existInfo); + + return response; + } } diff --git a/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml b/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml index d8eb391..6e279c8 100644 --- a/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml +++ b/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml @@ -255,4 +255,14 @@ t.store_id + + diff --git a/src/main/resources/mapper/PrivilageCpUserStoreDOMapper.xml b/src/main/resources/mapper/PrivilageCpUserStoreDOMapper.xml index e17e0c8..6fc9eb1 100644 --- a/src/main/resources/mapper/PrivilageCpUserStoreDOMapper.xml +++ b/src/main/resources/mapper/PrivilageCpUserStoreDOMapper.xml @@ -36,6 +36,15 @@ order by pcus.id asc limit 1 + +