Commit 1e1c4a34 by 徐高华

群活码-链接调整

parent 169689af
......@@ -49,6 +49,17 @@ public class GroupChatActivityHmQDTO implements Serializable {
private GroupChatActivityDTO chatActivity;
// 指定门店
private String inStoreId ;
public String getInStoreId() {
return inStoreId;
}
public void setInStoreId(String inStoreId) {
this.inStoreId = inStoreId;
}
public Long getChatActivityId() {
return chatActivityId;
}
......
......@@ -249,15 +249,19 @@ public class JoinRuleManager {
public List<GroupChatHmBO> handleMainStore(GroupChatActivityHmQDTO activityHmQDTO) {
String enterpriseId = activityHmQDTO.getEnterpriseId();
String wxEnterpriseId = activityHmQDTO.getChatActivity().getWxEnterpriseId();
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
if (memberStoreRelation == null) {
return new ArrayList<>();
}
String mainStoreId = memberStoreRelation.getMainStoreId();
if (StringUtils.isBlank(mainStoreId)) {
return new ArrayList<>();
if(StringUtils.isNotBlank(activityHmQDTO.getInStoreId())) {
return getByStoreIdList(enterpriseId,wxEnterpriseId, Lists.newArrayList(activityHmQDTO.getInStoreId()));
}else {
MemberStoreResp memberStoreRelation = memberStoreService.getMemberStoreRelation(enterpriseId, activityHmQDTO.getInviteeMemberId());
if (memberStoreRelation == null) {
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 {
// 群链接
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 linkId = link.getLinkId();
if (StringUtils.isNotEmpty(mixPhone)) {
......@@ -213,76 +213,81 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return ServiceResponse.failure("9999", "群活码不存在");
}
// [{"type":1服务门店2协管3lbs4指定人群,"open":1}]
JSONArray arr = JSONArray.parseArray(chatStoreRule) ;
GroupChatActivityHmQDTO hmQDTO = new GroupChatActivityHmQDTO() ;
hmQDTO.setEnterpriseId(enterpriseId);
hmQDTO.setInviteeMemberId(memberId);
GroupChatActivityDTO chatActivity = new GroupChatActivityDTO() ;
chatActivity.setWxEnterpriseId(wxEnterpriseId);
hmQDTO.setChatActivity(chatActivity);
for(int i=0;i< arr.size();i++) {
JSONObject json = arr.getJSONObject(i) ;
int open = json.getIntValue("open") ;
if(open == 1) {
int type = json.getIntValue("type") ;
if(type==1) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
}else if(type==2) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleOtherStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
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())) {
if(StringUtils.isNotBlank(inStoreId)) {
hmQDTO.setInStoreId(inStoreId);
List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
}else {
JSONArray arr = JSONArray.parseArray(chatStoreRule) ;
for(int i=0;i< arr.size();i++) {
JSONObject json = arr.getJSONObject(i) ;
int open = json.getIntValue("open") ;
if(open == 1) {
int type = json.getIntValue("type") ;
if(type==1) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleMainStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
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)) {
}else if(type==2) {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleOtherStore(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
if(storeToHmMap.size()==1) {
hmId = storeToHmMap.values().iterator().next().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;
}
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 {
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);
log.info("无经纬度");
}
}else {
log.info("无经纬度");
}
}else if(type==4) {
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (CollectionUtils.isNotEmpty(hmList)) {
for (HmLinkChatDTO item : hmList) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
link.getUpdateTime());
if (flag) {
log.info("使用特殊群活码={}", item.getChatHmId());
hmId = item.getChatHmId();
break;
}else if(type==4) {
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
if (CollectionUtils.isNotEmpty(hmList)) {
for (HmLinkChatDTO item : hmList) {
boolean flag = this.memberCondition(enterpriseId, memberId, item, link.getCreatorId(),
link.getUpdateTime());
if (flag) {
log.info("使用特殊群活码={}", item.getChatHmId());
hmId = item.getChatHmId();
break;
}
}
}
}
......@@ -360,7 +365,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
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()) {
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