From fa2212164e9f901edfbba41d4cf6ed0f75cdab08 Mon Sep 17 00:00:00 2001 From: ronger Date: Fri, 17 Dec 2021 20:16:43 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rymcu/forest/mapper/UserMapper.java | 7 +++++++ .../forest/service/impl/UserServiceImpl.java | 15 ++++++++++++--- src/main/java/mapper/UserMapper.xml | 3 +++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/rymcu/forest/mapper/UserMapper.java b/src/main/java/com/rymcu/forest/mapper/UserMapper.java index dc2d4c2..d2f42e8 100644 --- a/src/main/java/com/rymcu/forest/mapper/UserMapper.java +++ b/src/main/java/com/rymcu/forest/mapper/UserMapper.java @@ -158,4 +158,11 @@ public interface UserMapper extends Mapper { * @return */ boolean hasAdminPermission(@Param("email") String email); + + /** + * 验证账号是否重复 + * @param account + * @return + */ + Integer selectCountByAccount(@Param("account") String account); } \ No newline at end of file diff --git a/src/main/java/com/rymcu/forest/service/impl/UserServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/UserServiceImpl.java index 4fb3ca7..013522e 100644 --- a/src/main/java/com/rymcu/forest/service/impl/UserServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/UserServiceImpl.java @@ -65,9 +65,8 @@ public class UserServiceImpl extends AbstractService implements UserServic } else { user = new User(); String nickname = email.split("@")[0]; - nickname = checkNickname(nickname); - user.setNickname(nickname); - user.setAccount(nickname); + user.setNickname(checkNickname(nickname)); + user.setAccount(checkAccount(nickname)); user.setEmail(email); user.setPassword(Utils.entryptPassword(password)); user.setCreatedTime(new Date()); @@ -101,6 +100,16 @@ public class UserServiceImpl extends AbstractService implements UserServic return nickname; } + private String checkAccount(String account) { + account = formatNickname(account); + Integer result = userMapper.selectCountByAccount(account); + if (result > 0) { + StringBuilder stringBuilder = new StringBuilder(account); + return checkNickname(stringBuilder.append("_").append(System.currentTimeMillis()).toString()); + } + return account; + } + @Override public Map login(String account, String password) { Map map = new HashMap(1); diff --git a/src/main/java/mapper/UserMapper.xml b/src/main/java/mapper/UserMapper.xml index 4dc17f4..11b203c 100644 --- a/src/main/java/mapper/UserMapper.xml +++ b/src/main/java/mapper/UserMapper.xml @@ -116,5 +116,8 @@ select if(count(fur.id_role) = 0, false, true) from forest_user_role fur join forest_user fu on fur.id_user = fu.id where fu.email = #{email} and exists(select id_role from forest_role fr where instr(fr.input_code, 'admin') > 0 and fr.id = fur.id_role) + \ No newline at end of file