Commit a3ec12f1 by fudahua

会员标签同步-好友打标签同步

parent 9fd82acb
...@@ -106,6 +106,14 @@ public interface ExternalClerkRelatedApiService { ...@@ -106,6 +106,14 @@ public interface ExternalClerkRelatedApiService {
*/ */
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo); Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize);
/** /**
* 获取企业下的关联关系列表 * 获取企业下的关联关系列表
......
...@@ -195,6 +195,13 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -195,6 +195,13 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
} }
@Override @Override
public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId);
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
}
@Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds) { public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIds(memberIds, wxEnterpriseId); List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIds(memberIds, wxEnterpriseId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list); return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
......
...@@ -3,8 +3,6 @@ package com.gic.haoban.manage.service.service.out.impl; ...@@ -3,8 +3,6 @@ package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.ToolUtil; import com.gic.commons.util.ToolUtil;
import com.gic.haoban.app.customer.dto.SearchComputeDTO;
import com.gic.haoban.app.customer.dto.SearchDataDTO;
import com.gic.haoban.app.customer.enums.QywxTaskStatusEnum; import com.gic.haoban.app.customer.enums.QywxTaskStatusEnum;
import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService; import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
...@@ -22,10 +20,6 @@ import com.gic.haoban.manage.service.service.QywxTagService; ...@@ -22,10 +20,6 @@ import com.gic.haoban.manage.service.service.QywxTagService;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.member.api.dto.MemberTagDTO; import com.gic.member.api.dto.MemberTagDTO;
import com.gic.member.api.service.MemberTagService; import com.gic.member.api.service.MemberTagService;
import com.gic.search.engine.api.constant.MemberDataEnum;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryBatch;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService; import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.gic.wechat.api.dto.qywx.QywxTagDTO; import com.gic.wechat.api.dto.qywx.QywxTagDTO;
import com.gic.wechat.api.dto.qywx.QywxTagGroupDTO; import com.gic.wechat.api.dto.qywx.QywxTagGroupDTO;
...@@ -563,45 +557,6 @@ public class QywxTagApiServiceImpl implements QywxTagApiService { ...@@ -563,45 +557,6 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
} }
/** /**
* 同步标签到所有好友
*
* @param syncTagFormat
* @param enterpriseId
* @param coprId
* @param externalUserId
* @param externalTagMap
* @param memberAllSetTagKeys 该企业下该会员的所有打标签
*/
private void syncToQywxByWxUserId(QywxSyncTagFormatPojo syncTagFormat, String enterpriseId, String coprId, String externalUserId
, Map<String, Set<String>> externalTagMap, Set<String> memberAllSetTagKeys) {
ServiceResponse resp = new ServiceResponse();
//商户下设置同步的企业微信标签keys
Set<String> entQywxTagSyncKeys = syncTagFormat.getEntQywxTagKeysMap().get(enterpriseId);
//同步好友
externalTagMap.forEach((wxUserId, haveTagKes) -> {
//该用户在该商户下打的标签
Sets.SetView<String> entHasSetQywxTagKeys = Sets.intersection(haveTagKes, entQywxTagSyncKeys);
//获取需要打的标签
Sets.SetView<String> needSetTags = Sets.difference(memberAllSetTagKeys, entHasSetQywxTagKeys);
//需要删除的标签
Sets.SetView<String> needDelTags = Sets.difference(entHasSetQywxTagKeys, memberAllSetTagKeys);
if (CollectionUtils.isEmpty(needDelTags) && CollectionUtils.isEmpty(needSetTags)) {
logger.info("不需要操作:{},{}", wxUserId, externalUserId);
return;
}
QywxResponseDTO responseDTO = qywxUserApiService.markTag(coprId, config.getWxSuiteid(), wxUserId, externalUserId, needSetTags, needDelTags);
logger.info("操作返回:{}", JSONObject.toJSONString(responseDTO));
if (responseDTO.getErrcode() != 0) {
//todo 告警
logger.info("权限不对:{},{}", wxUserId, externalUserId);
resp.setMessage(responseDTO.getErrmsg());
resp.setCode(responseDTO.getErrcode());
return;
}
});
}
/**
* 获取以及同步的标签序列表 * 获取以及同步的标签序列表
*/ */
private QywxSyncTagFormatPojo listSyncTagItems(String wxEnterpriseId) { private QywxSyncTagFormatPojo listSyncTagItems(String wxEnterpriseId) {
...@@ -747,48 +702,6 @@ public class QywxTagApiServiceImpl implements QywxTagApiService { ...@@ -747,48 +702,6 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
memberTagService.saveOrUpdateMemberTagHB(enterpriseId, list, memberId); memberTagService.saveOrUpdateMemberTagHB(enterpriseId, list, memberId);
} }
/**
* 获取会员列表标签
*
* @param wxEnterpriseId
* @param enterpriseId
* @return
*/
private Set<String> listMemberTagItemIds(String wxEnterpriseId, String enterpriseId, String memberId) {
List<SearchComputeDTO> andList = new ArrayList<>();
SearchDataDTO memberIdDto = new SearchDataDTO(MemberDataEnum.member_id.getCode(), OperateEnum.OPERATE_CONTAIN.getValue(), memberId);
SearchComputeDTO memberIdCompute = new SearchComputeDTO("data", null, memberIdDto);
andList.add(memberIdCompute);
SearchComputeDTO searchComputeDTO = new SearchComputeDTO(OperateEnum.OPERATE_AND.getValue(), andList, null);
DynamicSearchDTO searchDTO = new DynamicSearchDTO();
searchDTO.setRecordNumber(1);
searchDTO.setEnterpriseId(enterpriseId);
searchDTO.setColumnCategoryCode("member");
searchDTO.setReturnFileds(MemberDataEnum.member_tag.getCode());
searchDTO.setSearchJson(searchComputeDTO.toJSONObject());
logger.info("searchJson:" + searchDTO.getSearchJson());
ESResponseQueryBatch queryDataBatch = esDataDynamicOperationApiService.queryDataBatch(searchDTO, false, null);
List<JSONObject> res = queryDataBatch.getRes();
if (org.apache.commons.collections.CollectionUtils.isEmpty(res)) {
return new HashSet<>();
}
JSONObject jsonObject = res.get(0);
String memberTags = jsonObject.getString(MemberDataEnum.member_tag.getCode());
if (StringUtils.isBlank(memberTags)) {
return null;
}
return Arrays.asList(memberTags).stream().collect(Collectors.toSet());
}
/** /**
* 获取企业微信的外部联系人的所有联系关系 * 获取企业微信的外部联系人的所有联系关系
......
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