From b7d265fb12976b75e2a3b523288be72cc05fd73c Mon Sep 17 00:00:00 2001 From: landaiqing <3517283258@qq.com> Date: Tue, 23 Jul 2024 15:22:47 +0800 Subject: [PATCH] feat: update --- .../SchisandraAuthUserController.java | 10 +++ .../auth/common/utils/RandomNameUtils.java | 42 +++++++++++++ .../SchisandraAuthUserDomainService.java | 2 + .../SchisandraAuthUserDomainServiceImpl.java | 62 ++++++++++++------- .../service/SchisandraAuthUserService.java | 1 + .../impl/SchisandraAuthUserServiceImpl.java | 5 ++ 6 files changed, 98 insertions(+), 24 deletions(-) create mode 100644 schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RandomNameUtils.java diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java index 15d89cd..1b17932 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java @@ -455,4 +455,14 @@ public class SchisandraAuthUserController { return Result.ok(); } + @PostMapping("checkUserName") + public Result checkUserName(@RequestParam("userName") String userName) { + SchisandraAuthUserBO schisandraAuthUserBO = schisandraAuthUserDomainService.checkUserName(userName); + if (ObjectUtils.isEmpty(schisandraAuthUserBO)) { + return Result.ok(); + } + return Result.fail("用户名已存在!"); + + } + } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RandomNameUtils.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RandomNameUtils.java new file mode 100644 index 0000000..4dd8ce7 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RandomNameUtils.java @@ -0,0 +1,42 @@ +package com.schisandra.auth.common.utils; + +import java.util.Random; + +/** + * @Classname RandomNameUtils + * @BelongsProject: schisandra-cloud-storage + * @BelongsPackage: com.schisandra.auth.common.utils + * @Author: landaiqing + * @CreateTime: 2024-07-23 14:59 + * @Description: TODO + * @Version: 1.0 + */ +public class RandomNameUtils { + /** + * 随机获取英文+数字(用户名) + * + * @param engCode 小写英文的数量 + * @param numCode 数字的数量 + * @return + */ + public static String verifyUserName(int engCode, int numCode) { + //声明一个StringBuffer存储随机数 + StringBuffer sb = new StringBuffer(); + char[] englishCodeArray = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; + char[] numCodeArray = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; + Random random = new Random(); + //获取英文 + for (int i = 0; i < engCode; i++) { + char num = englishCodeArray[random.nextInt(englishCodeArray.length)]; + sb.append(num); + } + //获取数字 + for (int i = 0; i < numCode; i++) { + char num = numCodeArray[random.nextInt(numCodeArray.length)]; + sb.append(num); + } + return sb.toString(); + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java index f0b528e..5e53420 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java @@ -110,5 +110,7 @@ public interface SchisandraAuthUserDomainService { SchisandraAuthUser queryByPhone(String phone); Boolean wechatRegister(String appId, String openId, String clientId, HttpServletRequest httpServletRequest); + + SchisandraAuthUserBO checkUserName(String userName); } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java index e700403..0d78934 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java @@ -21,16 +21,20 @@ import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.*; +import java.util.LinkedList; +import java.util.List; import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static com.schisandra.auth.common.utils.RandomNameUtils.verifyUserName; + /** * 领域service实现了 * @@ -104,6 +108,7 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo @Override public Boolean register(SchisandraAuthUserBO schisandraAuthUserBO) { SchisandraAuthUser authUser = SchisandraAuthUserBOConverter.INSTANCE.convertBOToEntity(schisandraAuthUserBO); + authUser.setNickName(verifyUserName(4, 6)); Boolean insert = schisandraAuthUserService.insert(authUser); if (insert) { SchisandraAuthUserRoleBO schisandraAuthUserRoleBO = new SchisandraAuthUserRoleBO(); @@ -234,12 +239,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo * @date: 2024/6/27 下午2:58 */ @Override - public Boolean wechatRegister(String appId, String openId,String clientId, HttpServletRequest httpServletRequest) { - SchisandraSocialUser socialUser = schisandraSocialUserService.selectByOpenId(appId,openId); + public Boolean wechatRegister(String appId, String openId, String clientId, HttpServletRequest httpServletRequest) { + SchisandraSocialUser socialUser = schisandraSocialUserService.selectByOpenId(appId, openId); if (ObjectUtils.isNotEmpty(socialUser)) { String SocialUserId = socialUser.getId(); - SchisandraSocialUserAuth schisandraSocialUserAuth= schisandraSocialUserAuthService.queryBySocialUserId(SocialUserId); - if(ObjectUtils.isEmpty(schisandraSocialUserAuth)){ + SchisandraSocialUserAuth schisandraSocialUserAuth = schisandraSocialUserAuthService.queryBySocialUserId(SocialUserId); + if (ObjectUtils.isEmpty(schisandraSocialUserAuth)) { return false; } String userId = schisandraSocialUserAuth.getUserId(); @@ -248,22 +253,22 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo String ip = IPUtil.getIp(httpServletRequest); UserAgent userAgent = IPUtil.getUserAgent(httpServletRequest); String ip2region = IPUtil.getIp2region(ip); - SchisandraAuthAddress authAddress= schisandraAuthAddressService.queryByUserId(userId); + SchisandraAuthAddress authAddress = schisandraAuthAddressService.queryByUserId(userId); SchisandraAuthAddressBO schisandraAuthAddressBO = new SchisandraAuthAddressBO(); schisandraAuthAddressBO.setId(authAddress.getId()); schisandraAuthAddressBO.setAgent(userAgent.toString()); schisandraAuthAddressBO.setUserId(userId); schisandraAuthAddressBO.setIp(ip); - if(userAgent.getBrowser() != null) { + if (userAgent.getBrowser() != null) { schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString()); } - if(userAgent.getBrowserVersion() != null){ + if (userAgent.getBrowserVersion() != null) { schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString()); } schisandraAuthAddressBO.setLocation(ip2region); SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO); int insert = schisandraAuthAddressService.update(schisandraAuthAddress); - assert insert>0; + assert insert > 0; // redis存储用户角色与权限信息 userInfoPersistence(userId); @@ -271,9 +276,9 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); String jsonString = JSONObject.toJSONString(tokenInfo); String key = redisUtil.buildKey(WX_LOGIN_TOKEN, clientId); - redisUtil.setJsonNx(key, jsonString,5L, TimeUnit.MINUTES); + redisUtil.setJsonNx(key, jsonString, 5L, TimeUnit.MINUTES); return true; - }else{ + } else { // 插入社会用户信息表 SchisandraSocialUserBO socialUserBO = new SchisandraSocialUserBO(); socialUserBO.setUuid(appId); @@ -308,16 +313,16 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo schisandraAuthAddressBO.setAgent(userAgent.toString()); schisandraAuthAddressBO.setUserId(authUserId); schisandraAuthAddressBO.setIp(ip); - if(userAgent.getBrowser() != null) { + if (userAgent.getBrowser() != null) { schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString()); } - if(userAgent.getBrowserVersion() != null){ + if (userAgent.getBrowserVersion() != null) { schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString()); } schisandraAuthAddressBO.setLocation(ip2region); SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO); int insertIp = schisandraAuthAddressService.insert(schisandraAuthAddress); - assert insertIp>0; + assert insertIp > 0; // 建立社会用户与用户信息映射 @@ -351,11 +356,20 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); String jsonString = JSONObject.toJSONString(tokenInfo); String key = redisUtil.buildKey(WX_LOGIN_TOKEN, clientId); - redisUtil.setJsonNx(key, jsonString,5L, TimeUnit.MINUTES); + redisUtil.setJsonNx(key, jsonString, 5L, TimeUnit.MINUTES); return true; } } + @Override + public SchisandraAuthUserBO checkUserName(String userName) { + if (StringUtils.isEmpty(userName)) { + return null; + } + SchisandraAuthUser authUser = schisandraAuthUserService.checkUserName(userName); + SchisandraAuthUserBO schisandraAuthUserBO = SchisandraAuthUserBOConverter.INSTANCE.convertEntityToBO(authUser); + return schisandraAuthUserBO; + } /** @@ -373,8 +387,8 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo SchisandraSocialUser socialUser = schisandraSocialUserService.selectByUuidAndType(uuid, type); if (ObjectUtils.isNotEmpty(socialUser)) { - SchisandraSocialUserAuth schisandraSocialUserAuth= schisandraSocialUserAuthService.queryBySocialUserId(socialUser.getId()); - if(ObjectUtils.isEmpty(schisandraSocialUserAuth)){ + SchisandraSocialUserAuth schisandraSocialUserAuth = schisandraSocialUserAuthService.queryBySocialUserId(socialUser.getId()); + if (ObjectUtils.isEmpty(schisandraSocialUserAuth)) { return Result.fail(); } String userId = schisandraSocialUserAuth.getUserId(); @@ -407,22 +421,22 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo String ip = IPUtil.getIp(httpServletRequest); UserAgent userAgent = IPUtil.getUserAgent(httpServletRequest); String ip2region = IPUtil.getIp2region(ip); - SchisandraAuthAddress authAddress= schisandraAuthAddressService.queryByUserId(userId); + SchisandraAuthAddress authAddress = schisandraAuthAddressService.queryByUserId(userId); SchisandraAuthAddressBO schisandraAuthAddressBO = new SchisandraAuthAddressBO(); schisandraAuthAddressBO.setId(authAddress.getId()); schisandraAuthAddressBO.setAgent(userAgent.toString()); schisandraAuthAddressBO.setUserId(userId); schisandraAuthAddressBO.setIp(ip); - if(userAgent.getBrowser() != null) { + if (userAgent.getBrowser() != null) { schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString()); } - if(userAgent.getBrowserVersion() != null){ + if (userAgent.getBrowserVersion() != null) { schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString()); } schisandraAuthAddressBO.setLocation(ip2region); SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO); int insert = schisandraAuthAddressService.update(schisandraAuthAddress); - assert insert>0; + assert insert > 0; // redis存储用户角色与权限信息 @@ -485,16 +499,16 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo schisandraAuthAddressBO.setAgent(userAgent.toString()); schisandraAuthAddressBO.setUserId(authUserId); schisandraAuthAddressBO.setIp(ip); - if(userAgent.getBrowser() != null) { + if (userAgent.getBrowser() != null) { schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString()); } - if(userAgent.getBrowserVersion() != null){ + if (userAgent.getBrowserVersion() != null) { schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString()); } schisandraAuthAddressBO.setLocation(ip2region); SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO); int insertIp = schisandraAuthAddressService.insert(schisandraAuthAddress); - assert insertIp>0; + assert insertIp > 0; // 建立社会用户与用户信息映射 SchisandraSocialUserAuthBO socialUserAuthBO = new SchisandraSocialUserAuthBO(); diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraAuthUserService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraAuthUserService.java index b104719..2b46f03 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraAuthUserService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraAuthUserService.java @@ -57,4 +57,5 @@ public interface SchisandraAuthUserService { boolean updateUserPasswordByPhone(SchisandraAuthUser schisandraAuthUser); + SchisandraAuthUser checkUserName(String userName); } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraAuthUserServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraAuthUserServiceImpl.java index 10e389c..0dcdfc7 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraAuthUserServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraAuthUserServiceImpl.java @@ -105,5 +105,10 @@ public class SchisandraAuthUserServiceImpl implements SchisandraAuthUserService } + @Override + public SchisandraAuthUser checkUserName(String userName) { + return this.schisandraAuthUserDao.selectOneByCondition(SchisandraAuthUserTableDef.SCHISANDRA_AUTH_USER.USER_NAME.eq(userName)); + } + }