From 9a61aeb568c6e0221ebef9f890063f70a52a0d05 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Wed, 3 Sep 2025 14:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/CaptchaController.java | 2 +- .../controller/common/CommonController.java | 2 +- .../controller/monitor/CacheController.java | 2 +- .../controller/monitor/ServerController.java | 2 +- .../monitor/SysLogininforController.java | 2 +- .../monitor/SysOperlogController.java | 2 +- .../monitor/SysUserOnlineController.java | 2 +- .../system/SysConfigController.java | 2 +- .../controller/system/SysDeptController.java | 2 +- .../system/SysDictDataController.java | 2 +- .../system/SysDictTypeController.java | 2 +- .../controller/system/SysIndexController.java | 2 +- .../controller/system/SysLoginController.java | 27 ++++- .../controller/system/SysMenuController.java | 2 +- .../system/SysNoticeController.java | 2 +- .../controller/system/SysPostController.java | 2 +- .../system/SysProfileController.java | 2 +- .../system/SysRegisterController.java | 2 +- .../controller/system/SysRoleController.java | 2 +- .../controller/system/SysUserController.java | 2 +- .../controller/tool/TestController.java | 2 +- .../core/config/SwaggerConfig.java | 2 +- bonus-common/pom.xml | 11 +- .../common/core/domain/model/LoginBody.java | 51 ++------- .../com/bonus/common/utils/PhoneUtils.java | 102 ++++++++++++++++++ .../framework/config/SecurityConfig.java | 2 +- .../web/service/LoginUserService.java | 61 +++++++++++ .../web/service/SysLoginService.java | 82 ++++++++++++++ .../web/service/UserDetailsServiceImpl.java | 7 +- .../bonus/system/mapper/SysUserMapper.java | 7 ++ .../bonus/system/service/ISysUserService.java | 2 + .../service/impl/SysUserServiceImpl.java | 12 +++ .../resources/mapper/system/SysUserMapper.xml | 9 +- 33 files changed, 339 insertions(+), 76 deletions(-) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/common/CaptchaController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/common/CommonController.java (99%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/monitor/CacheController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/monitor/ServerController.java (93%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/monitor/SysLogininforController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/monitor/SysOperlogController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/monitor/SysUserOnlineController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysConfigController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysDeptController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysDictDataController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysDictTypeController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysIndexController.java (93%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysLoginController.java (80%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysMenuController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysNoticeController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysPostController.java (98%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysProfileController.java (99%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysRegisterController.java (96%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysRoleController.java (99%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/system/SysUserController.java (99%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/controller/tool/TestController.java (99%) rename bonus-base/src/main/java/com/bonus/{waterdesign => base}/core/config/SwaggerConfig.java (99%) create mode 100644 bonus-common/src/main/java/com/bonus/common/utils/PhoneUtils.java create mode 100644 bonus-framework/src/main/java/com/bonus/framework/web/service/LoginUserService.java diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CaptchaController.java b/bonus-base/src/main/java/com/bonus/base/controller/common/CaptchaController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CaptchaController.java rename to bonus-base/src/main/java/com/bonus/base/controller/common/CaptchaController.java index 3c18f7d..7513e82 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CaptchaController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/common/CaptchaController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.common; +package com.bonus.base.controller.common; import java.awt.image.BufferedImage; import java.io.IOException; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CommonController.java b/bonus-base/src/main/java/com/bonus/base/controller/common/CommonController.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CommonController.java rename to bonus-base/src/main/java/com/bonus/base/controller/common/CommonController.java index c1db426..461ef59 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/common/CommonController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/common/CommonController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.common; +package com.bonus.base.controller.common; import java.util.ArrayList; import java.util.List; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/CacheController.java b/bonus-base/src/main/java/com/bonus/base/controller/monitor/CacheController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/CacheController.java rename to bonus-base/src/main/java/com/bonus/base/controller/monitor/CacheController.java index 0c1d69d..2701ed5 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/CacheController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/monitor/CacheController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.monitor; +package com.bonus.base.controller.monitor; import java.util.ArrayList; import java.util.Collection; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/ServerController.java b/bonus-base/src/main/java/com/bonus/base/controller/monitor/ServerController.java similarity index 93% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/ServerController.java rename to bonus-base/src/main/java/com/bonus/base/controller/monitor/ServerController.java index de775eb..1b37ba2 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/ServerController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/monitor/ServerController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.monitor; +package com.bonus.base.controller.monitor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysLogininforController.java b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysLogininforController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysLogininforController.java rename to bonus-base/src/main/java/com/bonus/base/controller/monitor/SysLogininforController.java index 2ba4fab..0ac0814 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysLogininforController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysLogininforController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.monitor; +package com.bonus.base.controller.monitor; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysOperlogController.java b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysOperlogController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysOperlogController.java rename to bonus-base/src/main/java/com/bonus/base/controller/monitor/SysOperlogController.java index 1b8de59..9c1d205 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysOperlogController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysOperlogController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.monitor; +package com.bonus.base.controller.monitor; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysUserOnlineController.java b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysUserOnlineController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysUserOnlineController.java rename to bonus-base/src/main/java/com/bonus/base/controller/monitor/SysUserOnlineController.java index 72af35c..906be76 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/monitor/SysUserOnlineController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/monitor/SysUserOnlineController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.monitor; +package com.bonus.base.controller.monitor; import java.util.ArrayList; import java.util.Collection; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysConfigController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysConfigController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysConfigController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysConfigController.java index d3aff08..06ff705 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysConfigController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysConfigController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDeptController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDeptController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDeptController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysDeptController.java index 0211388..372d284 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDeptController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDeptController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import org.apache.commons.lang3.ArrayUtils; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictDataController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDictDataController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictDataController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysDictDataController.java index ea555c1..4eab38f 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictDataController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDictDataController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.ArrayList; import java.util.List; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictTypeController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDictTypeController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictTypeController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysDictTypeController.java index 9e084c7..e2ca414 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysDictTypeController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysDictTypeController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysIndexController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysIndexController.java similarity index 93% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysIndexController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysIndexController.java index 5c8ba38..b458bfb 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysIndexController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysIndexController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysLoginController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java similarity index 80% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysLoginController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java index 3bdccb6..be2b112 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysLoginController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysLoginController.java @@ -1,7 +1,8 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import java.util.Set; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -39,6 +40,16 @@ public class SysLoginController @Autowired private TokenService tokenService; + + @PostMapping("/sendPhone") + public AjaxResult sendPhone(@RequestBody String phone) { + // 下发短信 + AjaxResult ajax= loginService.sendPhone(phone); + + return ajax; + } + + /** * 登录方法 * @@ -46,12 +57,18 @@ public class SysLoginController * @return 结果 */ @PostMapping("/login") - public AjaxResult login(@RequestBody LoginBody loginBody) - { + public AjaxResult login(@RequestBody LoginBody loginBody) { + String token; AjaxResult ajax = AjaxResult.success(); + if("2".equals(loginBody.getLoginType())){ + token = loginService.login(loginBody.getUsername(), loginBody.getCode()); + }else{ + token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + loginBody.getUuid()); + } + // 生成令牌 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), - loginBody.getUuid()); + ajax.put(Constants.TOKEN, token); return ajax; } diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysMenuController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysMenuController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysMenuController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysMenuController.java index f8dafbb..48fc84a 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysMenuController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysMenuController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysNoticeController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysNoticeController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysNoticeController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysNoticeController.java index 56f186e..3572fbb 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysNoticeController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysNoticeController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysPostController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysPostController.java similarity index 98% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysPostController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysPostController.java index e8d15e1..613b815 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysPostController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysPostController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysProfileController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysProfileController.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysProfileController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysProfileController.java index 4047738..0e50cea 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysProfileController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysProfileController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRegisterController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysRegisterController.java similarity index 96% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRegisterController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysRegisterController.java index 6ff67ee..325b9ff 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRegisterController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysRegisterController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRoleController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysRoleController.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRoleController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysRoleController.java index fc959b6..4cc1273 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysRoleController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysRoleController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysUserController.java b/bonus-base/src/main/java/com/bonus/base/controller/system/SysUserController.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysUserController.java rename to bonus-base/src/main/java/com/bonus/base/controller/system/SysUserController.java index 32ba3ca..c8ed096 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/system/SysUserController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/system/SysUserController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.system; +package com.bonus.base.controller.system; import java.util.List; import java.util.stream.Collectors; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/controller/tool/TestController.java b/bonus-base/src/main/java/com/bonus/base/controller/tool/TestController.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/controller/tool/TestController.java rename to bonus-base/src/main/java/com/bonus/base/controller/tool/TestController.java index a3ae3f4..452525a 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/controller/tool/TestController.java +++ b/bonus-base/src/main/java/com/bonus/base/controller/tool/TestController.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.controller.tool; +package com.bonus.base.controller.tool; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/bonus-base/src/main/java/com/bonus/waterdesign/core/config/SwaggerConfig.java b/bonus-base/src/main/java/com/bonus/base/core/config/SwaggerConfig.java similarity index 99% rename from bonus-base/src/main/java/com/bonus/waterdesign/core/config/SwaggerConfig.java rename to bonus-base/src/main/java/com/bonus/base/core/config/SwaggerConfig.java index f6925ad..22b889b 100644 --- a/bonus-base/src/main/java/com/bonus/waterdesign/core/config/SwaggerConfig.java +++ b/bonus-base/src/main/java/com/bonus/base/core/config/SwaggerConfig.java @@ -1,4 +1,4 @@ -package com.bonus.waterdesign.core.config; +package com.bonus.base.core.config; import java.util.ArrayList; import java.util.List; diff --git a/bonus-common/pom.xml b/bonus-common/pom.xml index e6a3102..86ec578 100644 --- a/bonus-common/pom.xml +++ b/bonus-common/pom.xml @@ -16,7 +16,11 @@ - + + cn.hutool + hutool-all + 5.8.22 + org.springframework @@ -118,6 +122,11 @@ javax.servlet javax.servlet-api + + org.projectlombok + lombok + provided + diff --git a/bonus-common/src/main/java/com/bonus/common/core/domain/model/LoginBody.java b/bonus-common/src/main/java/com/bonus/common/core/domain/model/LoginBody.java index 1ca044c..75ecd51 100644 --- a/bonus-common/src/main/java/com/bonus/common/core/domain/model/LoginBody.java +++ b/bonus-common/src/main/java/com/bonus/common/core/domain/model/LoginBody.java @@ -1,12 +1,20 @@ package com.bonus.common.core.domain.model; +import lombok.Data; + /** * 用户登录对象 * * @author ruoyi */ -public class LoginBody -{ +@Data +public class LoginBody { + /** + * 登录方式 + * 1账号密码登录 + * 2验证码登录 + */ + private String loginType; /** * 用户名 */ @@ -21,49 +29,10 @@ public class LoginBody * 验证码 */ private String code; - /** * 唯一标识 */ private String uuid; - public String getUsername() - { - return username; - } - public void setUsername(String username) - { - this.username = username; - } - - public String getPassword() - { - return password; - } - - public void setPassword(String password) - { - this.password = password; - } - - public String getCode() - { - return code; - } - - public void setCode(String code) - { - this.code = code; - } - - public String getUuid() - { - return uuid; - } - - public void setUuid(String uuid) - { - this.uuid = uuid; - } } diff --git a/bonus-common/src/main/java/com/bonus/common/utils/PhoneUtils.java b/bonus-common/src/main/java/com/bonus/common/utils/PhoneUtils.java new file mode 100644 index 0000000..15ccb30 --- /dev/null +++ b/bonus-common/src/main/java/com/bonus/common/utils/PhoneUtils.java @@ -0,0 +1,102 @@ +package com.bonus.common.utils; + +import cn.hutool.http.HttpRequest; +import com.sun.org.apache.bcel.internal.generic.NEW; +import org.hibernate.validator.internal.util.StringHelper; + +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +/** + * 第三方依赖 + * + * cn.hutool + * hutool-all + * 5.8.22 + * + * 手机 短信 下发工具类 + * @author 黑子 + */ +public class PhoneUtils { + + /** + * 短信验证码 发送地址 及账号 + */ + public static String url="http://api.ktsms.cn/sms_token?ddtkey=bonus&secretkey=KtyBns@Admin2023!"; + + public static final String STRING_OK = "ok"; + /** + * 验证码时长 + * 分钟 + */ + public static final String TIMES = "5"; + + /** + * 系统平台名称 + */ + public static final String SYSTEM_NAME = "博诺思公共微服务平台"; + + /** + * 短信签名 + */ + public static final String PHONE_HEAD = "【博诺思】"; + + /** + * 发送短信验证吗 + * @param phone 手机号码 + * @param msg 消息内容 + * 如果msg不传 会使用默认值 + * @return + */ + public static Map sendPhoneMsg(String phone, String msg){ + Map map=new HashMap<>(4); + map.put("phone",phone); + if (!isValidPhoneNumber(phone)) { + map.put("code","201"); + map.put("msg","手机号格式错误,请输入11位数字号码"); + } + + StringBuilder sb=new StringBuilder(); + sb.append(url).append("&mobile=").append(phone); + sb.append("&content="); + if(StringHelper.isNullOrEmptyString(msg)){ + String code = getSixBitCode(); + map.put("captcha",code); + sb.append(PHONE_HEAD); + sb.append("您正在进行短信验证,验证码:").append(code).append(",请在").append(TIMES).append("分钟内完成验证,切勿将验证码泄漏于他人。"); + map.put("times",TIMES); + sb.append("发送时间:").append(DateUtils.getTime()).append("。("); + sb.append(SYSTEM_NAME).append(")"); + }else{ + sb.append(msg); + } + String body = HttpRequest.post(sb.toString()).execute(false).body(); + if (body == null || !body.contains(STRING_OK)) { + map.put("code","201"); + map.put("msg","短信发送失败"); + }else{ + ; map.put("code","200"); + map.put("msg","发送成功"); + } + + return map; + } + + + public static boolean isValidPhoneNumber(String phoneNumber) { + // 定义中国的手机号正则表达式 + String regex = "^1[3-9]\\d{9}$"; + return phoneNumber.matches(regex); + } + + + + private static String getSixBitCode() { + //随机数 + Random random = new Random(); + return String.valueOf(random.nextInt(900000) + 100000); + } + + +} diff --git a/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java b/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java index b3c6780..d4d9fdd 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java +++ b/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ public class SecurityConfig .authorizeHttpRequests((requests) -> { permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/login", "/register", "/captchaImage").permitAll() + requests.antMatchers("/login", "/sendPhone","/register", "/captchaImage").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() diff --git a/bonus-framework/src/main/java/com/bonus/framework/web/service/LoginUserService.java b/bonus-framework/src/main/java/com/bonus/framework/web/service/LoginUserService.java new file mode 100644 index 0000000..9f4e9ce --- /dev/null +++ b/bonus-framework/src/main/java/com/bonus/framework/web/service/LoginUserService.java @@ -0,0 +1,61 @@ +package com.bonus.framework.web.service; + +import com.bonus.common.core.domain.entity.SysUser; +import com.bonus.common.core.domain.model.LoginUser; +import com.bonus.common.enums.UserStatus; +import com.bonus.common.exception.ServiceException; +import com.bonus.common.utils.MessageUtils; +import com.bonus.common.utils.StringUtils; +import com.bonus.system.service.ISysUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +/** + * @author 黑子 + * 用户登录 + */ +@Service +public class LoginUserService { + private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class); + + @Autowired + private ISysUserService userService; + + @Autowired + private SysPasswordService passwordService; + + @Autowired + private SysPermissionService permissionService; + + public LoginUser loadUserByUsername(String username) throws UsernameNotFoundException + { + SysUser user = userService.selectUserByUserName(username); + if (StringUtils.isNull(user)) + { + log.info("登录用户:{} 不存在.", username); + throw new ServiceException(MessageUtils.message("登录用户不存在")); + } + else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) + { + log.info("登录用户:{} 已被删除.", username); + throw new ServiceException(MessageUtils.message("登录用户已被删除")); + } + else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) + { + log.info("登录用户:{} 已被停用.", username); + throw new ServiceException(MessageUtils.message("登录用户已被删除")); + } + + passwordService.validate(user); + return createLoginUser(user); + } + + public LoginUser createLoginUser(SysUser user) + { + return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + } +} diff --git a/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java b/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java index 00710e6..3562278 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java +++ b/bonus-framework/src/main/java/com/bonus/framework/web/service/SysLoginService.java @@ -1,11 +1,15 @@ package com.bonus.framework.web.service; import javax.annotation.Resource; + +import com.bonus.common.core.domain.AjaxResult; +import com.bonus.common.utils.PhoneUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import com.bonus.common.constant.CacheConstants; import com.bonus.common.constant.Constants; @@ -29,6 +33,10 @@ import com.bonus.framework.security.context.AuthenticationContextHolder; import com.bonus.system.service.ISysConfigService; import com.bonus.system.service.ISysUserService; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.TimeUnit; + /** * 登录校验方法 * @@ -52,6 +60,11 @@ public class SysLoginService @Autowired private ISysConfigService configService; + @Autowired + LoginUserService loginUserService; + + public static Integer TIMES=2; + /** * 登录验证 * @@ -95,11 +108,39 @@ public class SysLoginService } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + //记录登录信息 recordLoginInfo(loginUser.getUserId()); // 生成token return tokenService.createToken(loginUser); } + /** + * 手机验证码登录 + * @param code + * @return + */ + public String login(String phone, String code) { + if(StringUtils.isEmpty(phone)){ + throw new ServiceException("请输入正确的手机号!"); + } + if(StringUtils.isEmpty(code)){ + throw new ServiceException("验证码不正确!"); + } + String data=redisCache.getCacheObject("code_"+phone); + if(StringUtils.isEmpty(data)){ + throw new ServiceException("验证码已过期!"); + }else { + if(data.equals(code)){ + throw new ServiceException("验证码不正确!"); + } + } + //执行登录方法 + LoginUser loginUser= loginUserService.loadUserByUsername(phone); + ////记录登录信息 + recordLoginInfo(loginUser.getUserId()); + // 生成token + return tokenService.createToken(loginUser); + } /** * 校验验证码 * @@ -178,4 +219,45 @@ public class SysLoginService sysUser.setLoginDate(DateUtils.getNowDate()); userService.updateUserProfile(sysUser); } + + /** + * 下发短信 + * @param phone + * @return + */ + public AjaxResult sendPhone(String phone) { + //验证手机手机号是否存在 + String thisUser=userService.getUserInfo(phone); + if(!phone.equals(thisUser)){ + AjaxResult ajax = AjaxResult.error(); + ajax.put("msg", "手机号不存在或手机号不正确"); + return ajax; + } + StringBuilder sb=new StringBuilder(); + String code=getSixBitCode(); + sb.append("【博诺思】验证码:").append(code).append(",验证码有效期").append(TIMES).append("分钟,切勿将验证码泄漏于他人。"); + sb.append("发送时间:").append(DateUtils.getTime()); + sb.append("。(安徽博诺思公共微服务平台)"); + Map map= PhoneUtils.sendPhoneMsg(phone,sb.toString()); + if ("200".equals(map.get("code"))){ + AjaxResult ajax = AjaxResult.success(); + redisCache.setCacheObject("code_"+phone,code,TIMES, TimeUnit.MINUTES); + ajax.put("times", TIMES); + ajax.put("msg", "发送成功"); + return ajax; + }else{ + AjaxResult ajax = AjaxResult.error(); + ajax.put("times", TIMES); + ajax.put("msg", "发送失败,请检查网络!"); + return ajax; + } + + } + + private static String getSixBitCode() { + //随机数 + Random random = new Random(); + return String.valueOf(random.nextInt(900000) + 100000); + } + } diff --git a/bonus-framework/src/main/java/com/bonus/framework/web/service/UserDetailsServiceImpl.java b/bonus-framework/src/main/java/com/bonus/framework/web/service/UserDetailsServiceImpl.java index df2c8ac..b44e2bb 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/web/service/UserDetailsServiceImpl.java +++ b/bonus-framework/src/main/java/com/bonus/framework/web/service/UserDetailsServiceImpl.java @@ -41,21 +41,20 @@ public class UserDetailsServiceImpl implements UserDetailsService if (StringUtils.isNull(user)) { log.info("登录用户:{} 不存在.", username); - throw new ServiceException(MessageUtils.message("user.not.exists")); + throw new ServiceException(MessageUtils.message("登录用户不存在")); } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { log.info("登录用户:{} 已被删除.", username); - throw new ServiceException(MessageUtils.message("user.password.delete")); + throw new ServiceException(MessageUtils.message("登录用户已被删除")); } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { log.info("登录用户:{} 已被停用.", username); - throw new ServiceException(MessageUtils.message("user.blocked")); + throw new ServiceException(MessageUtils.message("登录用户已被删除")); } passwordService.validate(user); - return createLoginUser(user); } diff --git a/bonus-system/src/main/java/com/bonus/system/mapper/SysUserMapper.java b/bonus-system/src/main/java/com/bonus/system/mapper/SysUserMapper.java index 906e0d2..7e24d22 100644 --- a/bonus-system/src/main/java/com/bonus/system/mapper/SysUserMapper.java +++ b/bonus-system/src/main/java/com/bonus/system/mapper/SysUserMapper.java @@ -124,4 +124,11 @@ public interface SysUserMapper * @return 结果 */ public SysUser checkEmailUnique(String email); + + /** + * 查询人员信息数据 + * @param phone + */ + + String getUserInfo(@Param("phone") String phone); } diff --git a/bonus-system/src/main/java/com/bonus/system/service/ISysUserService.java b/bonus-system/src/main/java/com/bonus/system/service/ISysUserService.java index 74a2fcc..8034172 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/ISysUserService.java +++ b/bonus-system/src/main/java/com/bonus/system/service/ISysUserService.java @@ -203,4 +203,6 @@ public interface ISysUserService * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + String getUserInfo(String phone); } diff --git a/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java b/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java index da6dd7b..53f4505 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java +++ b/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java @@ -547,4 +547,16 @@ public class SysUserServiceImpl implements ISysUserService } return successMsg.toString(); } + + + + @Override + public String getUserInfo(String phone) { + try{ + return userMapper.getUserInfo(phone); + }catch (Exception e){ + log.error(e.toString(), e); + } + return null; + } } diff --git a/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml b/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml index 9f40e22..13211e2 100644 --- a/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -122,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 - - + + + insert into sys_user( user_id, dept_id,