Commit 1e1c4a34 by 徐高华

群活码-链接调整

parent 169689af
...@@ -49,6 +49,17 @@ public class GroupChatActivityHmQDTO implements Serializable { ...@@ -49,6 +49,17 @@ public class GroupChatActivityHmQDTO implements Serializable {
private GroupChatActivityDTO chatActivity; private GroupChatActivityDTO chatActivity;
// 指定门店
private String inStoreId ;
public String getInStoreId() {
return inStoreId;
}
public void setInStoreId(String inStoreId) {
this.inStoreId = inStoreId;
}
public Long getChatActivityId() { public Long getChatActivityId() {
return chatActivityId; return chatActivityId;
} }
......
...@@ -249,15 +249,19 @@ public class JoinRuleManager { ...@@ -249,15 +249,19 @@ public class JoinRuleManager {
public List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) { public List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId(); String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId(); String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId()); if(StringUtils.isNotBlank(activityHmQDTO.getInStoreId())) {
if (memberStoreRelation == null) { return getByStoreIdList(enterpriseId,wxEnterpriseId, Lists.newArrayList(activityHmQDTO.getInStoreId()));
return new ArrayList<>(); }else {
} MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
String mainStoreId = memberStoreRelation.getMainStoreId(); if (memberStoreRelation == null) {
if (StringUtils.isBlank(mainStoreId)) { return new ArrayList<>();
return new ArrayList<>(); }
String mainStoreId = memberStoreRelation.getMainStoreId();
if (StringUtils.isBlank(mainStoreId)) {
return new ArrayList<>();
}
return getByStoreIdList(enterpriseId,wxEnterpriseId, Lists.newArrayList(mainStoreId));
} }
return getByStoreIdList(enterpriseId,wxEnterpriseId, Lists.newArrayList(mainStoreId));
} }
/** /**
......
...@@ -195,7 +195,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -195,7 +195,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 群链接 // 群链接
private ServiceResponse<HmLinkWxaDTO> getLinkChatHmFromWxa(String wxEnterpriseId, String enterpriseId, private ServiceResponse<HmLinkWxaDTO> getLinkChatHmFromWxa(String wxEnterpriseId, String enterpriseId,
String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO, LinkHmFromWxaQDTO qdto) { String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO, LinkHmFromWxaQDTO qdto,String inStoreId) {
Long hmId = link.getOtherChatHmId(); Long hmId = link.getOtherChatHmId();
Long linkId = link.getLinkId(); Long linkId = link.getLinkId();
if (StringUtils.isNotEmpty(mixPhone)) { if (StringUtils.isNotEmpty(mixPhone)) {
...@@ -213,76 +213,81 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -213,76 +213,81 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return ServiceResponse.failure("9999", "群活码不存在"); return ServiceResponse.failure("9999", "群活码不存在");
} }
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}] // [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
JSONArray arr = JSONArray.parseArray(chatStoreRule) ;
GroupChatActivityHmQDTO hmQDTO = new GroupChatActivityHmQDTO() ; GroupChatActivityHmQDTO hmQDTO = new GroupChatActivityHmQDTO() ;
hmQDTO.setEnterpriseId(enterpriseId); hmQDTO.setEnterpriseId(enterpriseId);
hmQDTO.setInviteeMemberId(memberId); hmQDTO.setInviteeMemberId(memberId);
GroupChatActivityDTO chatActivity = new GroupChatActivityDTO() ; GroupChatActivityDTO chatActivity = new GroupChatActivityDTO() ;
chatActivity.setWxEnterpriseId(wxEnterpriseId); chatActivity.setWxEnterpriseId(wxEnterpriseId);
hmQDTO.setChatActivity(chatActivity); hmQDTO.setChatActivity(chatActivity);
for(int i=0;i< arr.size();i++) { if(StringUtils.isNotBlank(inStoreId)) {
JSONObject json = arr.getJSONObject(i) ; hmQDTO.setInStoreId(inStoreId);
int open = json.getIntValue("open") ; List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
if(open == 1) { }else {
int type = json.getIntValue("type") ; JSONArray arr = JSONArray.parseArray(chatStoreRule) ;
if(type==1) { for(int i=0;i< arr.size();i++) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO); JSONObject json = arr.getJSONObject(i) ;
if(CollectionUtils.isNotEmpty(hmBOList)) { int open = json.getIntValue("open") ;
hmId = hmBOList.get(0).getChatHmId() ; if(open == 1) {
break; int type = json.getIntValue("type") ;
} if(type==1) {
}else if(type==2) { List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
List<GroupChatHmBO> hmBOList = joinRuleManager.handleOtherStore(hmQDTO); if(CollectionUtils.isNotEmpty(hmBOList)) {
if(CollectionUtils.isNotEmpty(hmBOList)) { hmId = hmBOList.get(0).getChatHmId() ;
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
}else if(type==3) {
if(StringUtils.isNotEmpty(qdto.getLatitude()) && StringUtils.isNotEmpty(qdto.getLongitude()) && StringUtils.isNotEmpty(qdto.getDistrictCode())) {
Page<StoreDTO> page = new Page<>() ;
Map<String, Object> params = new HashMap<String, Object>();
params.put("latitude", qdto.getLatitude());
params.put("longitude", qdto.getLongitude());
params.put("enterpriseId",enterpriseId) ;
params.put("areaId",qdto.getDistrictCode()) ;
params.put("brandType", 1);
page.setParams(params);
page.setPageSize(1000);
page.setCurrentPage(1);
page = this.wechatStoreService.getActiveStoresByPage(page) ;
if (CollectionUtils.isEmpty(page.getResult())) {
break; break;
} }
List<String> storeIds = page.getResult().stream().map(StoreDTO::getStoreId).collect(Collectors.toList()); }else if(type==2) {
//获取storeId对应活码 List<GroupChatHmBO> hmBOList = joinRuleManager.handleOtherStore(hmQDTO);
Map<String, List<GroupChatHmBO>> storeToHmMap = this.joinRuleManager.getStoreIdToGroupChatHmBOMap(enterpriseId, wxEnterpriseId, storeIds); if(CollectionUtils.isNotEmpty(hmBOList)) {
if (MapUtil.isEmpty(storeToHmMap)) { hmId = hmBOList.get(0).getChatHmId() ;
break; break;
} }
if(storeToHmMap.size()==1) { }else if(type==3) {
hmId = storeToHmMap.values().iterator().next().get(0).getChatHmId(); if(StringUtils.isNotEmpty(qdto.getLatitude()) && StringUtils.isNotEmpty(qdto.getLongitude()) && StringUtils.isNotEmpty(qdto.getDistrictCode())) {
break; Page<StoreDTO> page = new Page<>() ;
Map<String, Object> params = new HashMap<String, Object>();
params.put("latitude", qdto.getLatitude());
params.put("longitude", qdto.getLongitude());
params.put("enterpriseId",enterpriseId) ;
params.put("areaId",qdto.getDistrictCode()) ;
params.put("brandType", 1);
page.setParams(params);
page.setPageSize(1000);
page.setCurrentPage(1);
page = this.wechatStoreService.getActiveStoresByPage(page) ;
if (CollectionUtils.isEmpty(page.getResult())) {
break;
}
List<String> storeIds = page.getResult().stream().map(StoreDTO::getStoreId).collect(Collectors.toList());
//获取storeId对应活码
Map<String, List<GroupChatHmBO>> storeToHmMap = this.joinRuleManager.getStoreIdToGroupChatHmBOMap(enterpriseId, wxEnterpriseId, storeIds);
if (MapUtil.isEmpty(storeToHmMap)) {
break;
}
if(storeToHmMap.size()==1) {
hmId = storeToHmMap.values().iterator().next().get(0).getChatHmId();
break;
}else {
List<HmLinkStoreDTO> storeList = page.getResult().stream().map(store -> {
HmLinkStoreDTO storeDTO = EntityUtil.changeEntityByJSON(HmLinkStoreDTO.class, store) ;
return storeDTO;
}).collect(Collectors.toList()) ;
retDTO.setStoreList(storeList);
return ServiceResponse.success(retDTO);
}
}else { }else {
List<HmLinkStoreDTO> storeList = page.getResult().stream().map(store -> { log.info("无经纬度");
HmLinkStoreDTO storeDTO = EntityUtil.changeEntityByJSON(HmLinkStoreDTO.class, store) ;
return storeDTO;
}).collect(Collectors.toList()) ;
retDTO.setStoreList(storeList);
return ServiceResponse.success(retDTO);
} }
}else { }else if(type==4) {
log.info("无经纬度"); List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
} if (CollectionUtils.isNotEmpty(hmList)) {
}else if(type==4) { for (HmLinkChatDTO item : hmList) {
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId); boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
if (CollectionUtils.isNotEmpty(hmList)) { link.getUpdateTime());
for (HmLinkChatDTO item : hmList) { if (flag) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(), log.info("使用特殊群活码={}", item.getChatHmId());
link.getUpdateTime()); hmId = item.getChatHmId();
if (flag) { break;
log.info("使用特殊群活码={}", item.getChatHmId()); }
hmId = item.getChatHmId();
break;
} }
} }
} }
...@@ -360,7 +365,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -360,7 +365,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return ServiceResponse.success(retDTO) ; return ServiceResponse.success(retDTO) ;
} }
} }
ServiceResponse<HmLinkWxaDTO> resp = this.getLinkChatHmFromWxa(wxEnterpriseId, enterpriseId, mixPhone, unionid, memberId, link, retDTO,qdto); ServiceResponse<HmLinkWxaDTO> resp = this.getLinkChatHmFromWxa(wxEnterpriseId, enterpriseId, mixPhone, unionid, memberId, link, retDTO,qdto,inStoreId);
if(null != resp.getResult()) { if(null != resp.getResult()) {
resp.getResult().setGroupChatHm(true); resp.getResult().setGroupChatHm(true);
} }
......
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