Commit 5913e2cd by 徐高华

Merge branch 'feature/xgh/bug/0415' into 'master'

Feature/xgh/bug/0415

See merge request !1697
parents 8621f41f 768f3570
...@@ -18,7 +18,7 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -18,7 +18,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record); int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByClerkIdAndExternalUserId(@Param("clerkId") String clerkId, int selectByClerkIdAndExternalUserId(@Param("clerkId") String clerkId,
@Param("externalUserId") String externalUserId); @Param("externalUserId") String externalUserId);
int delByUserIdAndExternalUserId(@Param("externalUserId") String externalUserId , @Param("staffId") String staffId); int delByUserIdAndExternalUserId(@Param("externalUserId") String externalUserId , @Param("staffId") String staffId);
......
...@@ -89,15 +89,24 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -89,15 +89,24 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
public void insert(TabHaobanExternalClerkRelated related) { public void insert(TabHaobanExternalClerkRelated related) {
String clerkId = related.getClerkId(); String clerkId = related.getClerkId();
String externalUserId = related.getExternalUserId(); String externalUserId = related.getExternalUserId();
TabHaobanExternalClerkRelated tab = mapper.selectByClerkIdAndExternalUserId(clerkId, externalUserId); String lockKey = "addExternalUser:"+externalUserId+clerkId ;
if (tab == null) { int num1 = mapper.selectByClerkIdAndExternalUserId(clerkId, externalUserId);
if(num1 > 0) {
return ;
}
RedisUtil.lock(lockKey,2L);
int num2 = mapper.selectByClerkIdAndExternalUserId(clerkId, externalUserId);
logger.info("好友数={},{},{}",num1,num2,externalUserId);
if (num2 == 0) {
String uuId = StringUtil.randomUUID(); String uuId = StringUtil.randomUUID();
Date now = new Date() ;
related.setStatusFlag(related.getStatusFlag() != null ? related.getStatusFlag() : 1); related.setStatusFlag(related.getStatusFlag() != null ? related.getStatusFlag() : 1);
related.setExternalClerkRelatedId(uuId); related.setExternalClerkRelatedId(uuId);
related.setCreateTime(new Date()); related.setCreateTime(now);
related.setUpdateTime(new Date()); related.setUpdateTime(now);
mapper.insertSelective(related); mapper.insertSelective(related);
} }
RedisUtil.unlock(lockKey);
} }
@Override @Override
......
...@@ -630,6 +630,17 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -630,6 +630,17 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if(null != hmId) { if(null != hmId) {
this.hmQrcodeApiService.updateAddNumById(hmId, hyClerkId); this.hmQrcodeApiService.updateAddNumById(hmId, hyClerkId);
} }
// 并发控制
String cacheKey = "qwAddLog"+externalUserId+staffId ;
if(null != RedisUtil.getCache(cacheKey)) {
return;
}
String lockKey = cacheKey+"lock" ;
RedisUtil.lock(lockKey,2L);
if(null != RedisUtil.getCache(cacheKey)) {
return;
}
RedisUtil.setCache(cacheKey,1,5L);
//设置会员标签 //设置会员标签
this.setMemberTag(enterpriseId, memberLabelId, memberId); this.setMemberTag(enterpriseId, memberLabelId, memberId);
//加好友增加数量 //加好友增加数量
...@@ -648,6 +659,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -648,6 +659,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
wxUserAddLogQDTO.setClerkId(hyClerkId); wxUserAddLogQDTO.setClerkId(hyClerkId);
wxUserAddLogQDTO.setAddWay(dto.getAddWay()); wxUserAddLogQDTO.setAddWay(dto.getAddWay());
this.wxUserAddLogService.save(wxUserAddLogQDTO); this.wxUserAddLogService.save(wxUserAddLogQDTO);
RedisUtil.unlock(lockKey);
if(StringUtils.isNotBlank(memberId)) { if(StringUtils.isNotBlank(memberId)) {
this.groupChatService.matchGicMember(wxEnterpriseId, enterpriseId, memberId, externalUserId); this.groupChatService.matchGicMember(wxEnterpriseId, enterpriseId, memberId, externalUserId);
} }
......
...@@ -226,9 +226,9 @@ ...@@ -226,9 +226,9 @@
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR} where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</update> </update>
<select id="selectByClerkIdAndExternalUserId" resultMap="BaseResultMap" parameterType="java.lang.String"> <select id="selectByClerkIdAndExternalUserId" resultType="int" parameterType="java.lang.String">
select select
<include refid="Base_Column_List"/> count(*)
from tab_haoban_external_clerk_related from tab_haoban_external_clerk_related
where clerk_id = #{clerkId,jdbcType=VARCHAR} where clerk_id = #{clerkId,jdbcType=VARCHAR}
and external_user_id = #{externalUserId} and external_user_id = #{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