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"