Commit 5167d595 by 墨竹

feat:会员关联修改

parent 7b13895a
......@@ -230,4 +230,18 @@ public interface ExternalClerkRelatedApiService {
* @date 2022-01-19 16:52:12
*/
List<ExternalClerkRelatedShortInfoDTO> listByMemberIdAndEnterpriseId(String memberId,String enterpriseId);
/**
* 根据wxuserid和会员unionid进行查询数据
*
* @param wxEnterpriseId wx企业标识
* @param wxUserId wx用户id
* @param unionid unionid
* @return {@link ExternalClerkRelatedDTO }
* @author mozhu
* @date 2022-03-11 15:23:13
*/
ExternalClerkRelatedDTO getByWxEnterpriseIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid);
}
......@@ -270,4 +270,18 @@ public interface MemberUnionidRelatedApiService {
*/
void addMemberUnionidWechatAccountByClerk(String res);
/**
* 根据unionid查询导购好友
*
* @param wxEnterpriseId wx企业标识
* @param wxUserId wx用户id
* @param unionid unionid
* @param selfExternalUserid 自外部用户标识
* @return {@link MemberUnionidRelatedDTO }
* @author mozhu
* @date 2022-03-11 15:41:09
*/
MemberUnionidRelatedDTO getByWxUserIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid,String selfExternalUserid);
}
......@@ -114,9 +114,10 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @param externalUserId
* @return
*/
TabHaobanExternalClerkRelated getExternalClerkByWxUserIdAncExternalUserId(
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxUserId") String wxUserId,
@Param("enterpriseId") String enterpriseId, @Param("externalUserId") String externalUserId);
TabHaobanExternalClerkRelated getExternalClerkByWxUserIdAncExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxUserId") String wxUserId,
@Param("enterpriseId") String enterpriseId,
@Param("externalUserId") String externalUserId);
/**
* 查询会员在企业下的好友关系
......@@ -306,4 +307,19 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @return {@link List}<{@link TabHaobanExternalClerkRelated}>
*/
List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxUserId") String wxUserId);
/**
* 根据wxuserid和会员unionid进行查询数据
*
* @param wxEnterpriseId wx企业标识
* @param wxUserId wx用户id
* @param unionid unionid
* @return {@link TabHaobanExternalClerkRelated }
* @author mozhu
* @date 2022-03-11 15:21:15
*/
TabHaobanExternalClerkRelated getByWxEnterpriseIdAndUnionId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxUserId") String wxUserId,
@Param("unionid") String unionid);
}
\ No newline at end of file
......@@ -31,7 +31,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.Objects;
/**
* desc:添加微信好友关系消息消费处理器
......@@ -115,7 +115,7 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
String serviceExternalUserid = qywxUserApiService.toServiceExternalUserid(bo.getCorpid(), bo.getSecret(), externalUserid);
logger.info("自建转换第三方返回:{}", serviceExternalUserid);
// 幂等
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByUnionId(wxEnterpriseId, wxUserId, dto.getUnionid());
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByWxUserIdAndUnionId(wxEnterpriseId, wxUserId, dto.getUnionid());
String memberUnionIdRelatedId;
if (Objects.isNull(exsitDTO)) {
dto.setMemberId(member.getMemberId());
......
package com.gic.haoban.manage.service.service;
import java.util.List;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import java.util.List;
public interface MemberUnionRelatedService {
MemberUnionidRelatedDTO getByUnionId(String wxEnterpriseId, String wxUserId, String unionid);
MemberUnionidRelatedDTO getByWxUserIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid);
MemberUnionidRelatedDTO getByMemberId(String wxUserId, String memberId);
......
package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
......@@ -14,6 +7,11 @@ import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.service.MemberUnionRelatedService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class MemberUnionRelatedServiceImpl implements MemberUnionRelatedService {
......@@ -22,7 +20,7 @@ public class MemberUnionRelatedServiceImpl implements MemberUnionRelatedService
private MemberUnionidRelatedMapper mapper;
@Override
public MemberUnionidRelatedDTO getByUnionId(String wxEnterpriseId, String wxUserId, String unionid) {
public MemberUnionidRelatedDTO getByWxUserIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid) {
return EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class, mapper.getByUnionId(wxEnterpriseId, wxUserId, unionid));
}
@Override
......
......@@ -449,6 +449,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
}
@Override
public ExternalClerkRelatedDTO getByWxEnterpriseIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByWxEnterpriseIdAndUnionId(wxEnterpriseId, wxUserId, unionid);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class,related);
}
/**
* 更新状态
*
......
......@@ -249,7 +249,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return null;
}
log.info("【查询会员】wxUserId={},unionid={}", staff.getWxUserId(), unionid);
return memberUnionRelatedService.getByUnionId(staff.getWxEnterpriseId(), staff.getWxUserId(), unionid);
return memberUnionRelatedService.getByWxUserIdAndUnionId(staff.getWxEnterpriseId(), staff.getWxUserId(), unionid);
}
@Override
......@@ -1491,7 +1491,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
+ "", wxUserId, wxEnterpriseId, name, createTime, unionId, externalUserId, memberId, storeId, enterpriseId, staffId, clerkId);
return "参数不对";
}
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByUnionId(wxEnterpriseId, wxUserId, unionId);
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByWxUserIdAndUnionId(wxEnterpriseId, wxUserId, unionId);
String uuid = "";
if (exsitDTO == null) {
exsitDTO = new MemberUnionidRelatedDTO();
......@@ -1864,6 +1864,21 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
externalClerkRelatedApiService.bindMemberIdExternalById(externalClerkRelated.getExternalClerkRelatedId(), enterpriseId, memberId, unionid);
}
@Override
public MemberUnionidRelatedDTO getByWxUserIdAndUnionId(String wxEnterpriseId, String wxUserId, String unionid, String selfExternalUserid) {
MemberUnionidRelatedDTO memberUnionidRelatedDTO = memberUnionRelatedService.getByWxUserIdAndUnionId(wxEnterpriseId, wxUserId, unionid);
//做一个修复逻辑,如果在我们表中有好友关联,但是自建好友外部联系人为空,更新数据
if (memberUnionidRelatedDTO != null &&
StringUtils.isBlank(memberUnionidRelatedDTO.getSelfExternalUserid())
&& StringUtils.isNotBlank(selfExternalUserid)) {
MemberUnionidRelatedDTO relatedDTO = new MemberUnionidRelatedDTO();
relatedDTO.setMemberUnionidRelatedId(memberUnionidRelatedDTO.getMemberUnionidRelatedId());
relatedDTO.setSelfExternalUserid(selfExternalUserid);
memberUnionRelatedService.update(relatedDTO);
}
return memberUnionidRelatedDTO;
}
/**
* 获取客户详情列表
*
......
......@@ -643,4 +643,16 @@
and wx_enterprise_id = #{wxEnterpriseId} and status_flag in(1,3,4)
</select>
<select id="getByWxEnterpriseIdAndUnionId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_external_clerk_related
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
and wx_enterprise_id = #{wxEnterpriseId}
and unionid = #{unionid}
and status_flag in(1,3,4)
order by update_time desc limit 1
</select>
</mapper>
\ No newline at end of file
......@@ -401,7 +401,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
}
/**
* 会员小程序-获取绑定信息
* 会员小程序-获取绑定信息(会员工具)
*
* @param externalUserid
* @param wxUserId
......@@ -411,25 +411,31 @@ public class WxEnterpriseInfoController extends WebBaseController {
@IgnoreLogin
@RequestMapping("get-send-message-info")
public HaobanResponse getMessageMember(String externalUserid, String wxUserId, String wxEnterpriseId, String gicEnterpriseId) {
logger.info("会员工具传入参数:externalUserid:{},wxUserId:{},wxEnterpriseId:{},gicEnterpriseId:{}", externalUserid, wxUserId, wxEnterpriseId, gicEnterpriseId);
if (StringUtils.isAnyBlank(externalUserid, wxUserId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
WxEnterpriseRelationDetailDTO enterpriseBindInfo = wxEnterpriseRelatedApiService.getEnterpriseBindInfo(wxEnterpriseId, gicEnterpriseId);
if (null == enterpriseBindInfo) {
logger.info("企业不存在没有绑定,wxEnterpriseId:{}", wxEnterpriseId);
return resultResponse(HaoBanErrCode.ERR_400002);
}
MemberUnionidRelatedDTO memberUnionidRelatedDTO = memberUnionidRelatedApiService.getBySelfExternalUserId(wxEnterpriseId, externalUserid);
if (null == memberUnionidRelatedDTO) {
logger.info("请刷新好友,wxEnterpriseId:{},externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId);
return resultResponse(HaoBanErrCode.ERR_11123);
ExternalUserDTO externalUserDTO = memberUnionidRelatedApiService.getCorpSelfExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserid);
if (externalUserDTO == null) {
logger.info("请先添加好友,企业微信未查询到该好友,externalUserid:{}", externalUserid);
return resultResponse(HaoBanErrCode.ERR_11126);
}
ExternalClerkRelatedDTO clerkRelatedDTO = externalClerkRelatedApiService.getExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, wxUserId, gicEnterpriseId, memberUnionidRelatedDTO.getExternalUserid());
String unionId = externalUserDTO.getUnionId();
ExternalClerkRelatedDTO clerkRelatedDTO = externalClerkRelatedApiService.getByWxEnterpriseIdAndUnionId(wxEnterpriseId, wxUserId, unionId);
if (clerkRelatedDTO == null) {
logger.info("该企业没有对应需要发送好友关系的信息,wxEnterpriseId:{},externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId);
return resultResponse(HaoBanErrCode.ERR_11123);
}
MemberUnionidRelatedDTO memberUnionidRelatedDTO = memberUnionidRelatedApiService.getByWxUserIdAndUnionId(wxEnterpriseId, wxUserId, unionId, externalUserid);
if (memberUnionidRelatedDTO == null) {
logger.info("该企业没有对应需要发送好友关系的信息,wxEnterpriseId:{},unionId:{},wxUserId:{}", wxEnterpriseId, unionId, wxUserId);
return resultResponse(HaoBanErrCode.ERR_11123);
}
MiniprogramSettingDTO settingDTO = wxEnterpriseApiService.getMiniprogramSettingByEid(wxEnterpriseId, gicEnterpriseId);
if (null == settingDTO) {
logger.info("该企业没有对应需要发送的小程序信息,wxEnterpriseId:{}", wxEnterpriseId);
......
......@@ -231,7 +231,10 @@ public enum HaoBanErrCode {
ERR_11125(11125, "该企业与gic在同一开平,无需手动关联好友会员"),
ERR_11126(11126, "请先添加好友,企业微信未查询到该好友"),
ERR_999(999, "操作失败"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
......
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