Commit 6663beec by fudahua

导购刷新好友

parent 2daddf05
......@@ -245,26 +245,18 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override
public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto) {
//拼装参数
dto = getMemberUnionidRelatedDTO(dto);
if(dto == null){
return "";
}
//加锁
String key = "external" + dto.getWxEnterpriseId() + "_"+ dto.getWxUserId() + "_" + dto.getExternalName() + "_" + dto.getAddCreateTime();
RedisUtil.lock(key,3l);
//新增成员和外部联系人的关系
String memberUnionId = insertMemberUnionIdRelated(dto);
//新增导购和外部联系人关系
dto.setMemberUnionidRelatedId(memberUnionId);
insertExternalClerkRelated(dto);
//解锁
RedisUtil.unlock(key);
return memberUnionId;
}
private void insertExternalClerkRelated(MemberUnionidRelatedDTO dto) {
dto = getMemberUnionidRelatedDTONew(dto);
if (null == dto) {
log.info("没处理完成-等下一次处理");
return null;
}
insertExternalClerkRelatedNew(dto);
return dto.getMemberUnionidRelatedId();
}
@Deprecated
private void insertExternalClerkRelated(MemberUnionidRelatedDTO dto) {
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
......@@ -281,7 +273,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return;
}
String staffId = staff.getStaffId();
MemberDTO member = null;
TabHaobanClerkMainStoreRelated r = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId,wxEnterpriseId);
if(r == null){
......@@ -289,7 +281,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return;
}
String storeId = r.getStoreId();
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId,storeId);
if(staffClerkRelationDTO == null){
log.info("【新增外币联系人】导购和clerk关联为空");
......@@ -311,9 +303,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
if(clerk != null && StringUtils.isNotBlank(qrcodeParam)&&StringUtils.isNotBlank(unionId)){
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}",staffClerkRelationDTO.getEnterpriseId(),unionId,name,avatar,qrcodeParam);
member = memberOpenCardBusinessService.getMemberByQywxChannelParam(staffClerkRelationDTO.getEnterpriseId(),unionId,"",name,avatar,qrcodeParam);
}
member = memberOpenCardBusinessService.getMemberByQywxChannelParam(staffClerkRelationDTO.getEnterpriseId(), unionId, "", name, avatar, qrcodeParam);
}
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelatedService.getByParams(wxUserId, wxEnterpriseId,name,createTime);
String key = wxUserId+wxEnterpriseId+name+createTime;
if(exsitDTO == null){
......@@ -351,42 +343,130 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setClerkId(staffClerkRelationDTO.getClerkId());
externalClerkRelatedService.update(exsitDTO);
}
}
private String insertMemberUnionIdRelated(MemberUnionidRelatedDTO dto) {
if(dto == null){
return "";
}
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
String createTime = dto.getAddCreateTime();
if(StringUtils.isAnyBlank(wxUserId,wxEnterpriseId,name,createTime)){
log.info("【新增外部联系人】wxUserId={},wxEnterpriseId={},name={},createTime={}",wxUserId,wxEnterpriseId,name,createTime);
return "";
}
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(wxUserId, wxEnterpriseId,name,createTime);
String uuid = "";
if(exsitDTO == null){
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
//如果是自建更新uuid
exsitDTO.setSelfExternalUserid(dto.getSelfExternalUserid());
exsitDTO.setUnionid(dto.getUnionid());
//更新对外联系人id
exsitDTO.setExternalUserid(dto.getExternalUserid());
memberUnionRelatedService.update(exsitDTO);
uuid = exsitDTO.getMemberUnionidRelatedId();
MemberUnionidRelatedDTO fullDTO = memberUnionRelatedService.getByParams(wxUserId, wxEnterpriseId,name,createTime);
dto.setExternalUserid(fullDTO.getExternalUserid());
dto.setUnionid(fullDTO.getUnionid());
}
return uuid;
}
private MemberUnionidRelatedDTO getMemberUnionidRelatedDTO(MemberUnionidRelatedDTO dto){
}
private void insertExternalClerkRelatedNew(MemberUnionidRelatedDTO dto) {
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
String createTime = dto.getAddCreateTime();
String externalUserId = dto.getExternalUserid();
String avatar = dto.getAvatar();
String unionId = dto.getUnionid();
if (StringUtils.isAnyBlank(wxUserId, wxEnterpriseId, name, createTime, unionId)) {
log.info("【新增外部联系人】wxUserId={},wxEnterpriseId={},name={},createTime={},avatar={},unionId={}", wxUserId, wxEnterpriseId, name, createTime, avatar, unionId);
return;
}
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
if (staff == null) {
log.info("staff不存在:{},{}", dto.getUnionid(), dto.getWxUserId());
return;
}
String staffId = staff.getStaffId();
TabHaobanClerkMainStoreRelated mainStoreRelated = clerkMainStoreRelatedService.selectByWxEnterpriseIdAndStoreId(staffId, wxEnterpriseId);
if (mainStoreRelated == null) {
log.info("【新增外部联系人】主门店为空:{}", staffId);
return;
}
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId, mainStoreRelated.getStoreId());
if (staffClerkRelationDTO == null) {
log.info("【新增外币联系人】导购和clerk关联为空");
return;
}
//新增导购和外部联系人关系
String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
log.info("【新增外部联系人】clerkCode={},unionid:{}", clerkCode, unionId);
if (clerk == null) {
log.info("【新增外币联系人】导购为空:{},{}", clerkCode, unionId);
return;
}
String qrcodeParam = clerk.getQrcodeParam();
if (StringUtils.isBlank(qrcodeParam)) {
powerService.saveClerkQrCode(clerk.getClerkId());
clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
qrcodeParam = clerk.getQrcodeParam();
}
if (StringUtils.isBlank(qrcodeParam)) {
log.info("不能生产导购二维码:{}", JSONObject.toJSONString(clerk));
return;
}
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}", staffClerkRelationDTO.getEnterpriseId(), unionId, name, avatar, qrcodeParam);
MemberDTO member = memberOpenCardBusinessService.getMemberByQywxChannelParam(staffClerkRelationDTO.getEnterpriseId(), unionId, "", name, avatar, qrcodeParam);
if (member == null) {
log.info("生产会员memnerid失败:{}", unionId);
return;
}
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserId(dto.getExternalUserid(), dto.getWxUserId());
if (CollectionUtils.isEmpty(externalClerkRelateds)) {
log.info("新增TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(createTime);
related.setClerkId(staffClerkRelationDTO.getClerkId());
related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
related.setExternalName(name);
related.setExternalUserId(externalUserId);
related.setStaffId(staffId);
related.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
related.setStoreId(staffClerkRelationDTO.getStoreId());
related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId);
related.setWxUserId(wxUserId);
related.setMemberId(member.getMemberId());
externalClerkRelatedService.insert(related);
} else {
log.info("更新TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0);
exsitDTO.setMemberId(member.getMemberId());
exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
exsitDTO.setExternalUserId(externalUserId);
exsitDTO.setUnionid(unionId);
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
exsitDTO.setClerkId(staffClerkRelationDTO.getClerkId());
externalClerkRelatedService.update(exsitDTO);
}
}
@Deprecated
private String insertMemberUnionIdRelated(MemberUnionidRelatedDTO dto) {
if(dto == null){
return "";
}
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
String createTime = dto.getAddCreateTime();
if(StringUtils.isAnyBlank(wxUserId,wxEnterpriseId,name,createTime)){
log.info("【新增外部联系人】wxUserId={},wxEnterpriseId={},name={},createTime={}",wxUserId,wxEnterpriseId,name,createTime);
return "";
}
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByParams(wxUserId, wxEnterpriseId,name,createTime);
String uuid = "";
if(exsitDTO == null){
uuid = memberUnionRelatedService.addMemberUnionidRelated(dto);
}else{
//如果是自建更新uuid
exsitDTO.setSelfExternalUserid(dto.getSelfExternalUserid());
exsitDTO.setUnionid(dto.getUnionid());
//更新对外联系人id
exsitDTO.setExternalUserid(dto.getExternalUserid());
memberUnionRelatedService.update(exsitDTO);
uuid = exsitDTO.getMemberUnionidRelatedId();
MemberUnionidRelatedDTO fullDTO = memberUnionRelatedService.getByParams(wxUserId, wxEnterpriseId,name,createTime);
dto.setExternalUserid(fullDTO.getExternalUserid());
dto.setUnionid(fullDTO.getUnionid());
}
return uuid;
}
@Deprecated
private MemberUnionidRelatedDTO getMemberUnionidRelatedDTO(MemberUnionidRelatedDTO dto){
log.info("【新增外部联系人回调】dto={}",JSON.toJSONString(dto));
String corpId = dto.getCorpid();
TabHaobanWxEnterprise wxEnterprise = wxEnterpriseService.getEnterpriseBycorpId(corpId);
......@@ -439,9 +519,68 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
dto.setExternalUserid(externalUserId);
return dto;
}
private ExternalUserPojo getExternalUserPojo(String unionIdJson,String userId1,String wxEnterpriseId) {
/**
* 组装数据
*
* @param dto
* @return
*/
public MemberUnionidRelatedDTO getMemberUnionidRelatedDTONew(MemberUnionidRelatedDTO dto) {
log.info("【新增外部联系人回调】dto={}", JSON.toJSONString(dto));
String corpId = dto.getCorpid();
TabHaobanWxEnterprise wxEnterprise = wxEnterpriseService.getEnterpriseBycorpId(corpId);
if (wxEnterprise == null) {
return null;
}
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId();
String userId = dto.getWxUserId();
String suiteid = dto.getSuiteid();
ExternalUserDTO externalUserDTO;
if (SELF_APP.equals(suiteid)) {
externalUserDTO = this.getCorpSelfExternalUseridInfo(wxEnterpriseId, userId, dto.getExternalUserid());
} else {
externalUserDTO = this.getExternalUseridInfo(wxEnterpriseId, userId, dto.getExternalUserid());
}
if (externalUserDTO == null) {
log.info("【新增外部联系人回调】unionIdJson=null");
return null;
}
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setExternalName(externalUserDTO.getName());
dto.setAddCreateTime(externalUserDTO.getAddCreateTime());
dto.setAvatar(externalUserDTO.getAvatar());
if (SELF_APP.equals(suiteid)) {
dto.setUnionid(externalUserDTO.getUnionId());
dto.setSelfExternalUserid(externalUserDTO.getExternalUserId());
} else {
dto.setExternalUserid(externalUserDTO.getExternalUserId());
}
String key = "external" + dto.getWxEnterpriseId() + "_" + dto.getWxUserId() + "_" + dto.getExternalName() + "_" + dto.getAddCreateTime();
String lockKey = key + "-lock";
RedisUtil.lock(lockKey, 3L);
String memberUnionidRelatedId = (String) RedisUtil.getCache(key);
if (memberUnionidRelatedId != null) {
log.info("初次绑定");
MemberUnionidRelated memberUnionidRelated = memberUnionidRelatedMapper.selectByPrimaryKey(memberUnionidRelatedId);
dto.setUnionid(dto.getUnionid() == null ? memberUnionidRelated.getUnionid() : dto.getUnionid());
dto.setExternalUserid(dto.getExternalUserid() == null ? memberUnionidRelated.getExternalUserid() : dto.getExternalUserid());
dto.setSelfExternalUserid(dto.getExternalUserid() == null ? memberUnionidRelated.getSelfExternalUserid() : dto.getSelfExternalUserid());
dto.setMemberUnionidRelatedId(memberUnionidRelatedId);
memberUnionRelatedService.update(dto);
RedisUtil.unlock(lockKey);
return dto;
} else {
memberUnionidRelatedId = memberUnionRelatedService.addMemberUnionidRelated(dto);
RedisUtil.setCache(key, memberUnionidRelatedId, 60L);
RedisUtil.unlock(lockKey);
return null;
}
}
private ExternalUserPojo getExternalUserPojo(String unionIdJson,String userId1,String wxEnterpriseId) {
ExternalUserPojo pojo = new ExternalUserPojo();
String unionId = "";
String follow_user = "";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment