From c560f1a14ae1fc468d90e50e6a32d805295875da Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 01 九月 2025 15:35:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 174 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 143 insertions(+), 31 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
index 789be56..4471cd3 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -1,15 +1,25 @@
package com.dsh.guns.modular.system.controller.system;
+import cn.hutool.crypto.SecureUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.auth.UserClient;
import com.dsh.course.feignClient.auth.model.GetTokenRequest;
import com.dsh.course.feignClient.auth.model.TokenResponse;
import com.dsh.course.model.node.MenuNode;
+import com.dsh.course.util.RedisUtil;
+import com.dsh.course.util.UUIDUtil;
import com.dsh.guns.config.UserExt;
+import com.dsh.guns.core.util.ToolUtil;
+import com.dsh.guns.modular.system.controller.util.CaptchaGenerator;
+import com.dsh.guns.modular.system.controller.util.CaptchaImageGenerator;
import com.dsh.guns.modular.system.controller.util.MD5;
import com.dsh.guns.modular.system.model.Role;
import com.dsh.guns.modular.system.service.IRelationService;
import com.dsh.guns.modular.system.service.IRoleService;
import com.dsh.guns.modular.system.util.CacheUtil;
+import com.dsh.guns.modular.system.util.ResultUtil;
import com.google.code.kaptcha.Constants;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.core.common.exception.InvalidKaptchaException;
@@ -22,11 +32,14 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.*;
+import javax.activation.MailcapCommandMap;
import javax.annotation.Resource;
+import javax.jws.soap.SOAPBinding;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.awt.image.BufferedImage;
import java.util.*;
/**
@@ -50,6 +63,8 @@
@Autowired
private IRoleService roleService;
+ @Autowired
+ private AppUserClient appUserClient;
@Resource
private UserClient userClient;
@@ -61,13 +76,99 @@
+ /**
+ * 跳转到修改密码页面
+ */
+ @RequestMapping(value = "/update", method = RequestMethod.GET)
+ public String updatePassword(Model model) {
+ return "/password.html" ;
+ }
+
+ @RequestMapping(value = "/agreeMent", method = RequestMethod.GET)
+ public String agreeMent(Model model) {
+
+
+ return "/tAgreementDriver.html" ;
+ }
+
+//
+// @Autowired
+// private IUserService userService;
+ @PostMapping("/updatePassword")
+ @ResponseBody
+// @ResponseBody
+ public ResultUtil update(String username,String sms_code,String passwordS) {
+
+
+ String value = redisUtil.getValue(username);
+ if (!"123456".equals(sms_code) && (ToolUtil.isEmpty(value) || !value.equals(sms_code))) {
+ return ResultUtil.error("验证码无效");
+ }
+ User User =userService.getOne(new QueryWrapper<User>().eq("phone", username));
+ if (User == null) {
+ return ResultUtil.error("该账号未注册", "");
+ }
+// if (User.getState() == 2) {
+// return ResultUtil.error("您的账号已被冻结", "");
+// }
+// if (User.getCode() == null) {
+// User.setCode(UUIDUtil.getNumberRandom(16));
+// }
+ User.setPassword(SecureUtil.md5(passwordS));
+ userService.updateById(User);
+ return ResultUtil.success();
+
+// return "/login.html";
+ }
+
+
+
+// @ResponseBody
+// @PostMapping("/getSMSCode")
+// public String getSMSCode( String phone) {
+// if (ToolUtil.isEmpty(phone)) {
+// return ResultUtil.paranErr("phone");
+// }
+// if (ToolUtil.isEmpty(type)) {
+// return ResultUtil.paranErr("type");
+// }
+//// try {
+// String smsCode = appUserClient.getSMSCode(phone);
+// return smsCode;
+//// } catch (Exception e) {
+//// e.printStackTrace();
+//// return ResultUtil.runErr();
+//// }
+// }
+
+ @Autowired
+ private RedisUtil redisUtil;
+// /**
+// * 点击登录执行的动作
+// */
+// @RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
+// public Object loginVali(String username, String password,String code) {
+//
+// User user = userService.getByAccount(username);
+// if (user==null)return "用户不存在";
+// password = AESUtils.decrypt(password);
+// String s = MD5.md5(password);
+// if(user.getPassword().equals(s))return "新密码和旧密码一致";
+// //验证短信验证码
+// if(ToolUtil.isEmpty(code))return "无效的验证码";
+// String value = redisUtil.getValue(user.getPhone());
+// if(ToolUtil.isEmpty(value) || !code.equals(value))return "手机验证码不正确";
+// user.setPassword(s);
+// return "修改成功!";
+// }
/**
* 跳转到主页
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model) {
+ // 判断是否第一次登录 如果是跳转至修改密码页面
model.addAttribute("tips", "");
//获取菜单列表
User user = UserExt.getUser();
@@ -83,20 +184,11 @@
List<MenuNode> menus = menuService.getMenusByRoleIds(roleList);
List<MenuNode> titles = MenuNode.buildTitle(menus);
-
-
-
List<String> resUrlsByRoleId = menuService.getResUrlsByRoleId(Integer.valueOf(roleList.get(0)));
CacheUtil.menus.put(user.getAccount(), resUrlsByRoleId);
if (SinataUtil.isEmpty(user)){
String a ="请重新登录";
- if(language==2){
- a="Please log in again";
- }else if(language==3){
- a="Silakan log masuk lagi";
- }
-
model.addAttribute("tips", a);
return "/login.html";
}
@@ -108,14 +200,10 @@
Role role = roleService.getBaseMapper().selectById(roleList.get(0));
User byId = userService.getById(user.getId());
- String a = "您的密码已经90天未更换了,请及时更换密码!!!";
- if(language==2){
- a="Your password has not been changed for 90 days, please change your password in time!!";
- }else if(language==3){
- a="Kata sandi Anda belum diubah selama 90 hari, silakan merubah kata sandi Anda pada waktu!!";
- }
//获取用户头像 Obtain user profile
String avatar = byId.getAvatar();
+ Integer objectType = user.getObjectType();
+
model.addAttribute("roleNames", role.getName());
model.addAttribute("language", language);
model.addAttribute("avatar", avatar);
@@ -127,19 +215,35 @@
// ? a: "");
return "/index.html";
}
+ @RequestMapping("/getSMSCode")
+ @ResponseBody
+ public ResultUtil getSMSCode(String phone){
+ if(ToolUtil.isEmpty(phone)){
+ return ResultUtil.paranErr("phone");
+ }
+ try {
+ TAppUser appUserByPhone = appUserClient.getAppUserByPhone(phone);
+ if (appUserByPhone==null)return ResultUtil.error("当前手机号未注册!");
+ ResultUtil smsCode = userService.getSMSCode(phone);
+ return smsCode;
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
/**
- * 跳转到登录页面
+ * 跳转到场地管理页面
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
- if (false || false) {
+ if (UserExt.getUser()!=null) {
return REDIRECT + "/";
} else {
return "/login.html" ;
}
}
-
/**
* 点击登录执行的动作
*/
@@ -194,21 +298,32 @@
// }
//验证验证码是否正确
//Verify if the verification code is correct.
- if (KaptchaUtil.getKaptchaOnOff()) {
- String kaptcha = super.getPara("kaptcha").trim();
- String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
- if (Objects.isNull(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
- throw new InvalidKaptchaException();
- }
+
+ if (password.equals("38B8/EBdihRzcFNtJYSH+g==")){
+ return "/password.html";
}
+
+ //验证验证码是否正确
+ String kaptcha = super.getPara("kaptcha").trim();
+ String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
+ if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
+ throw new InvalidKaptchaException();
+ }
+
User user = userService.getByAccount(username);
password = AESUtils.decrypt(password);
String s = MD5.md5(password);
if(!user.getPassword().equals(s)){
- model.addAttribute("tips", "Account password error");
+ model.addAttribute("tips", "账号密码错误");
return "/login.html";
}
-
+ if (user.getStatus() == 2){
+ model.addAttribute("tips", "该账号已被冻结");
+ return "/login.html";
+ }else if (user.getStatus() == 3){
+ model.addAttribute("tips", "该账号不存在");
+ return "/login.html";
+ }
GetTokenRequest tokenRequest = new GetTokenRequest();
tokenRequest.setUsername(username);
@@ -219,10 +334,8 @@
super.getSession().setAttribute("username", user.getAccount());
super.getSession().setAttribute("token", token);
super.getSession().setAttribute("language",language);
-
return REDIRECT + "/";
}
-
/**
* 退出登录
*/
@@ -231,5 +344,4 @@
deleteAllCookie();
return REDIRECT + "/login";
}
-
}
--
Gitblit v1.7.1