Explorar o código

fix 修改公众号推送重复插入用户数据

zoujiajian %!s(int64=3) %!d(string=hai) anos
pai
achega
5778ed9b7e

+ 1 - 0
netflix-service/src/main/java/com/cyksj/redis/RedisService.java

@@ -599,6 +599,7 @@ public class RedisService {
         CMS_USER_KEY("cms:user:%s:", "user缓存前缀", 60 * 60 * 24L * 7),
         CMS_USER_ROLE_KEY("cms:user:role:%s:", "user角色缓存前缀", 60 * 60 * 24L * 7),
         CMS_USER_PERMISSION_KEY("cms:user:permission:%s:", "user权限缓存前缀", 60 * 60 * 24L * 7),
+        REPEAT_USER_KEY("repeat_user_key:%s:", "重复用户插入key", 60l),
         ;
 
         private String name;

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/gzh/factory/EventMsgService.java

@@ -135,6 +135,10 @@ public class EventMsgService implements GzhMsgService {
 					.setHeadimgurl(Constant.DEFAULT_HEAD_IMG);
 			user.setOpenId(openId);
 			user.setUnionid(info.getUnionid());
+			//重复插入
+			if (!redisService.setNx(RedisService.key.REPEAT_USER_KEY.getNameFormat(user.getUnionid()), user.getUnionid(), RedisService.key.REPEAT_USER_KEY.getTimeout())) {
+				return false;
+			}
 			userMapper.insert(user);
 			Long userId = user.getId();
 			if (gzhDto != null) {