Ver código fonte

fix 重复用户数据授权容错

zoujiajian 3 anos atrás
pai
commit
eb77a141a4

+ 12 - 4
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -113,14 +113,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             } else {
                 // 查询用户是否存在
                 user = Optional.ofNullable(
-                        this.getOne(new LambdaQueryWrapper<User>().eq(User::getUnionid, unionId)))
-                        .orElseGet(() -> this.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, openId)));
+                        this.getOne(new LambdaQueryWrapper<User>().eq(User::getUnionid, unionId)
+                                .orderByAsc(User::getId)
+                                .last("limit 1")))
+                        .orElseGet(() -> this.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, openId)
+                                .orderByAsc(User::getId)
+                                .last("limit 1")));
             }
         } else {
             // 查询用户是否存在
             user = Optional.ofNullable(
-                    this.getOne(new LambdaQueryWrapper<User>().eq(User::getUnionid, unionId)))
-                    .orElseGet(() -> this.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, openId)));
+                    this.getOne(new LambdaQueryWrapper<User>().eq(User::getUnionid, unionId)
+                            .orderByAsc(User::getId)
+                            .last("limit 1")))
+                    .orElseGet(() -> this.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, openId)
+                            .orderByAsc(User::getId)
+                            .last("limit 1")));
         }
         return user;
     }