Commit cfbd5f80 by 徐高华

Merge branch 'feature/xgh/202506迭代' into 'developer'

群活码-链接调整

See merge request !2978
parents 10035fc1 4c938e64
......@@ -31,6 +31,16 @@ public class HmLinkStoreDTO implements Serializable {
private java.util.Date createTime;
private java.util.Date updateTime;
private String distanceStr ;
public String getDistanceStr() {
return distanceStr;
}
public void setDistanceStr(String distanceStr) {
this.distanceStr = distanceStr;
}
public String getStoreAddress() {
return storeAddress;
}
......
......@@ -40,6 +40,18 @@ public class HmLinkWxaDTO implements Serializable {
*/
private Integer qwFriendFlag ;
// 是否群活码
private boolean isGroupChatHm ;
public boolean isGroupChatHm() {
return isGroupChatHm;
}
public void setGroupChatHm(boolean isGroupChatHm) {
this.isGroupChatHm = isGroupChatHm;
}
public Integer getQwFriendFlag() {
return qwFriendFlag;
}
......
package com.gic.haoban.manage.api.qdto.chat;
import java.io.Serializable;
public class LinkHmFromWxaQDTO implements Serializable {
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 省市编码
*/
private String districtCode;
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getDistrictCode() {
return districtCode;
}
public void setDistrictCode(String districtCode) {
this.districtCode = districtCode;
}
}
......@@ -5,6 +5,7 @@ import java.util.List;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkWxaDTO;
import com.gic.haoban.manage.api.qdto.chat.LinkHmFromWxaQDTO;
/**
*
......@@ -53,7 +54,10 @@ public interface HmLinkApiService {
*/
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String storeId,
String clerkId, String linkShortCode, String mixPhone, String unionid , String memberId);
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String storeId,
String clerkId, String linkShortCode, String mixPhone, String unionid , String memberId , LinkHmFromWxaQDTO qdto);
/**
*
* @Title: getMemberClerkHm
......
......@@ -410,7 +410,7 @@ public class JoinRuleManager {
* @param storeIdList 门店id列表
* @return
*/
private Map<String, List<GroupChatHmBO>> getStoreIdToGroupChatHmBOMap(String enterpriseId,String wxEnterpriseId,List<String> storeIdList) {
public Map<String, List<GroupChatHmBO>> getStoreIdToGroupChatHmBOMap(String enterpriseId,String wxEnterpriseId,List<String> storeIdList) {
logger.info("门店id列表:{}",JSON.toJSONString(storeIdList));
Page<ClerkDTO> page = clerkService.pageClerkByNameOrCode(enterpriseId,"",storeIdList,1,10000);
List<ClerkDTO> clerkList = page.getResult();
......
......@@ -9,10 +9,14 @@ import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONArray;
import com.gic.api.base.commons.BusinessException;
import com.gic.api.base.commons.Page;
import com.gic.enterprise.api.service.WechatStoreService;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO;
import com.gic.haoban.manage.api.qdto.chat.LinkHmFromWxaQDTO;
import com.gic.haoban.manage.service.context.chat.JoinRuleManager;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -128,6 +132,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private JoinRuleManager joinRuleManager ;
@Autowired
private WechatStoreService wechatStoreService;
@Override
public ServiceResponse<String> getHmLinkUrl() {
......@@ -188,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) {
String mixPhone, String unionid, String memberId, HmLinkBO link, HmLinkWxaDTO retDTO, LinkHmFromWxaQDTO qdto) {
Long hmId = link.getOtherChatHmId();
Long linkId = link.getLinkId();
if (StringUtils.isNotEmpty(mixPhone)) {
......@@ -231,15 +238,32 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
break;
}
}else if(type==3) {
try {
List<GroupChatHmBO> hmBOList = joinRuleManager.handleLbs(hmQDTO);
if(CollectionUtils.isNotEmpty(hmBOList)) {
hmId = hmBOList.get(0).getChatHmId() ;
break;
}
} catch (BusinessException e) {
log.info("获取lbs失败");
continue;
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 {
return ServiceResponse.success(retDTO);
}
}else if(type==4) {
List<HmLinkChatDTO> hmList = this.hmLinkChatService.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
......@@ -271,8 +295,13 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
}
@Override
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String storeId, String clerkId, String linkShortCode, String mixPhone, String unionid, String memberId) {
return this.getLinkHmFromWxa(enterpriseId, whitchStore, storeId, clerkId, linkShortCode, mixPhone, unionid, memberId, new LinkHmFromWxaQDTO());
}
@Override
public ServiceResponse<HmLinkWxaDTO> getLinkHmFromWxa(String enterpriseId, Integer whitchStore, String inStoreId,
String inClerkId, String linkShortCode, String mixPhone, String unionid, String memberId) {
String inClerkId, String linkShortCode, String mixPhone, String unionid, String memberId, LinkHmFromWxaQDTO qdto) {
if ("-1".equals(memberId)) {
memberId = null;
}
......@@ -306,7 +335,11 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 如果是社群链接
if (link.getLinkType() == HmLinkTypeEnum.CHAT_HM_LINK_TYPE.getLinkType()) {
log.info("群链接,linkId={}", link.getLinkId());
return this.getLinkChatHmFromWxa(wxEnterpriseId, enterpriseId, mixPhone, unionid, memberId, link, retDTO);
ServiceResponse<HmLinkWxaDTO> resp = this.getLinkChatHmFromWxa(wxEnterpriseId, enterpriseId, mixPhone, unionid, memberId, link, retDTO,qdto);
if(null != resp.getResult()) {
resp.getResult().setGroupChatHm(true);
}
return resp;
}
// 判断导购是否有活码,如果没有返回错误
......
......@@ -273,5 +273,6 @@
<dubbo:reference id="settingApiService" interface="com.gic.haoban.task.api.service.SettingApiService" timeout="10000" retries="0" />
<dubbo:reference interface="com.gic.haoban.task.manage.api.service.IMarketClueTaskApiService" id="iMarketClueTaskApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference id="canvasApiService" interface="com.gic.canvas.api.service.CanvasApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="wechatStoreService" interface="com.gic.enterprise.api.service.WechatStoreService" timeout="10000" retries="0" check="false"/>
</beans>
\ No newline at end of file
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