Commit 36103da9 by xugaojun

触发好友关联,代码优化

parent d82cc6ef
......@@ -71,6 +71,7 @@ public class EnterpriseController extends WebBaseController {
private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open";
private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock";
private static final String MEMBER_RELATE_ENT_OPE_KEY = "mbr:rel:ope:%s:string";
private static final int OPEN = 1;
private static final int CLOSE = 0;
......@@ -133,6 +134,8 @@ public class EnterpriseController extends WebBaseController {
page = queryClose(pageInfo, keyword, gicContactHelper, version, wxEnterpriseIdInList, wxEnterpriseIdSetInCache, loginUserId);
}
doProcessOpenSendMass(page.getResult());
pageResult.setList(page.getResult());
pageResult.setPageNum(page.getCurrentPage());
pageResult.setPages(page.getPages());
......@@ -142,6 +145,20 @@ public class EnterpriseController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1, pageResult);
}
private void doProcessOpenSendMass(List<YwWxEnterpriseDTO> list) {
if (CollectionUtil.isEmpty(list)) {
return;
}
list.forEach(one -> {
String wxEnterpriseId = one.getWxEnterpriseId();
String key = String.format(MEMBER_RELATE_ENT_OPE_KEY, wxEnterpriseId);
Object cache = RedisUtil.getCache(key);
if (Objects.nonNull(cache)) {
one.setOpenMassFlag(Boolean.FALSE);
}
});
}
private List<String> listWxEnterpriseIdByEnterpriseName(String gicEnterpriseName) {
if (StringUtils.isEmpty(gicEnterpriseName)) {
return Collections.emptyList();
......@@ -405,6 +422,16 @@ public class EnterpriseController extends WebBaseController {
*/
@RequestMapping("/send-stock-member-relation-message")
public HaobanResponse sendMass(String wxEnterpriseId) {
if (StringUtils.isEmpty(wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
// 处理缓存
String key = String.format(MEMBER_RELATE_ENT_OPE_KEY, wxEnterpriseId);
String cacheString = RedisUtil.getCache(key, String.class);
if (StringUtils.isNotEmpty(cacheString)) {
return resultResponse(HaoBanErrCode.ERR_40001);
}
RedisUtil.setCache(key, "1", 60 * 60 * 24 * 7L);
// 异步调用
groupSendOperateApiService.sendStockMemberRelationMessage(wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_1);
......
......@@ -80,6 +80,8 @@ public enum HaoBanErrCode {
ERR_30001(30001,"已存在同步任务, 无法关闭"),
ERR_40001(40001,"企业已操作会员关联, 请7天后重试"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
private int code;
......
......@@ -34,9 +34,10 @@ import java.util.Objects;
/**
* desc:添加微信好友关系消息消费处理器
* 逻辑来源:
* @see MemberUnionidRelatedApiService#addMemberUnionidRelatedNew(com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO)
*
* @author: YongEn
* @date: 2022/2/16
* @see MemberUnionidRelatedApiService#addMemberUnionidRelatedNew(com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO)
**/
@Component
public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProcessor<String, MemberUnionRelatedBO> {
......@@ -58,10 +59,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
@Autowired
private ExternalClerkRelatedService externalClerkRelatedService;
@Autowired
private ClerkService clerkService;
@Autowired
private PowerService powerService;
@Autowired
private MemberService memberService;
@Override
......@@ -116,13 +113,13 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
}
// 幂等
TabHaobanExternalClerkRelated haobanExternalClerkRelated = externalClerkRelatedService.getByParams(dto.getWxUserId(), wxEnterpriseId, dto.getExternalName(), dto.getAddCreateTime());
if (haobanExternalClerkRelated == null){
if (haobanExternalClerkRelated == null) {
logger.info("已经存在好友关系");
return;
}
MemberDTO member = memberService.getMemberByUnionid(dto.getUnionid(),enterpriseId);
MemberDTO member = memberService.getMemberByUnionid(dto.getUnionid(), enterpriseId);
if (member == null) {
logger.info("生产会员memnerid失败:{}", dto.getUnionid());
logger.info("会员信息不存在unionId:{}", dto.getUnionid());
return;
}
String relationKey = SecureUtil.md5(staffId + externalUserid);
......
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