查询好友关系

dev_0531
yechenhao 5 years ago
parent 25480e9733
commit 48253b365d

@ -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";

@ -105,4 +105,11 @@ public interface OpSellerCustomerRelationDOMapper extends BaseMapper<OpSellerCus
List<Map<String, Object>> selectCustomersByCpUserIdByList(@Param("cpUserIds")List<String> cpUserIds);
/**
*
* @param storeCode
* @param unionId
* @return
*/
OpSellerCustomerRelation selectCustomerStoreRelation(@Param("storeCode")String storeCode,@Param("unionId") String unionId);
}

@ -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<PrivilageCpUser
String selectCpUserIdByStoreId(Long storeId);
PrivilageCpUserDO selectCpUserByStoreId(Long storeId);
List<String> selectCpUserIdsByStoreIds(@Param("shopIds")List<Long> storeIds);
PrivilageCpUserStoreDO selectOneCpUser(String cpUser);

@ -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<String, Object> 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;
}
/**
*

@ -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;
}
}
/**
*

@ -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;
}

@ -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<PoiStore> 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;
}
}

@ -255,4 +255,14 @@
t.store_id
</select>
<select id="selectCustomerStoreRelation" resultType="com.kiisoo.ic.customer.entity.OpSellerCustomerRelation">
select t1.id
from op_seller_customer_relation t1,poi_store t2,op_customer t3
where t1.store_id = t2.id
and t1.customer_id = t3.id
and t3.wechat_uni_id = #{unionId}
and t2.code = #{storeCode}
limit 1
</select>
</mapper>

@ -36,6 +36,15 @@
order by pcus.id asc
limit 1
</select>
<select id="selectCpUserByStoreId" resultType="com.kiisoo.ic.employee.entity.PrivilageCpUserDO">
select pcu.cp_user_id as cpUserId,pcu.qr_code as qrCode
from privilage_cp_user_store pcus ,privilage_cp_user pcu
where pcus.cp_user_id = pcu.id and pcu.status in (1,4)
and pcus.store_id = #{storeId}
order by pcus.id asc
limit 1
</select>
<select id="selectCpUserIdsByStoreIds" resultType="java.lang.String">
select pcu.cp_user_id
from privilage_cp_user_store pcus ,privilage_cp_user pcu

Loading…
Cancel
Save