From 8a89ba02db5c19db669a5cf9bb7d443223bdfb71 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期二, 29 九月 2026 10:48:21 +0800
Subject: [PATCH] 会员管理及取消场地预约问题
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 101 insertions(+), 15 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 1842ca3..e90f9a7 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,5 +1,6 @@
package com.dsh.guns.modular.system.controller.system;
+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;
@@ -7,6 +8,7 @@
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;
@@ -29,14 +31,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
+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.*;
@@ -84,8 +85,61 @@
return "/password.html" ;
}
+ @RequestMapping(value = "/agreeMent", method = RequestMethod.GET)
+ public String agreeMent(Model model) {
-// // todo 短信验证码
+
+ return "/tAgreementDriver.html" ;
+ }
+
+//
+// @Autowired
+// private IUserService userService;
+ @PostMapping("/updatePassword")
+ @ResponseBody
+// @ResponseBody
+ public ResultUtil update(String username, String sms_code, String password, String passwordS) {
+ if (ToolUtil.isEmpty(username) || ToolUtil.isEmpty(sms_code)
+ || ToolUtil.isEmpty(password) || ToolUtil.isEmpty(passwordS)) {
+ return ResultUtil.error("账号、验证码和新密码不能为空");
+ }
+
+ String newPassword = AESUtils.decrypt(password);
+ String confirmedPassword = AESUtils.decrypt(passwordS);
+ if (ToolUtil.isEmpty(newPassword) || ToolUtil.isEmpty(newPassword.trim())) {
+ return ResultUtil.error("新密码无效");
+ }
+ if (!newPassword.equals(confirmedPassword)) {
+ return ResultUtil.error("两次输入的新密码不一致");
+ }
+
+ 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)
+ .ne("status", 3));
+ if (user == null) {
+ return ResultUtil.error("该账号未注册", "");
+ }
+// if (User.getState() == 2) {
+// return ResultUtil.error("您的账号已被冻结", "");
+// }
+// if (User.getCode() == null) {
+// User.setCode(UUIDUtil.getNumberRandom(16));
+// }
+ user.setPassword(MD5.md5(newPassword));
+ if (!userService.updateById(user)) {
+ return ResultUtil.error("密码修改失败,请稍后重试");
+ }
+ return ResultUtil.success();
+
+// return "/login.html";
+ }
+
+
+
// @ResponseBody
// @PostMapping("/getSMSCode")
// public String getSMSCode( String phone) {
@@ -104,8 +158,8 @@
//// }
// }
-// @Autowired
-// private RedisUtil redisUtil;
+ @Autowired
+ private RedisUtil redisUtil;
// /**
// * 点击登录执行的动作
// */
@@ -136,16 +190,30 @@
if(null == user){
return "/login.html";
}
- List<String> roleList = Arrays.asList(user.getRoleid().split(","));
- if (roleList == null || roleList.size() == 0) {
- model.addAttribute("tips", "该用户没有角色,无法登陆");
+ List<String> roleList = new ArrayList<>();
+ if (user.getRoleid() != null) {
+ for (String roleId : user.getRoleid().split(",")) {
+ String trimmedRoleId = roleId.trim();
+ if (trimmedRoleId.matches("\\d+")) {
+ try {
+ Integer.valueOf(trimmedRoleId);
+ roleList.add(trimmedRoleId);
+ } catch (NumberFormatException ignored) {
+ // 跳过超出 Integer 范围的脏角色数据。
+ }
+ }
+ }
+ }
+ if (roleList.isEmpty()) {
+ model.addAttribute("tips", "该用户没有有效角色,无法登录");
return "/login.html";
}
Integer language = UserExt.getLanguage();
List<MenuNode> menus = menuService.getMenusByRoleIds(roleList);
List<MenuNode> titles = MenuNode.buildTitle(menus);
- List<String> resUrlsByRoleId = menuService.getResUrlsByRoleId(Integer.valueOf(roleList.get(0)));
+ Integer primaryRoleId = Integer.valueOf(roleList.get(0));
+ List<String> resUrlsByRoleId = menuService.getResUrlsByRoleId(primaryRoleId);
CacheUtil.menus.put(user.getAccount(), resUrlsByRoleId);
if (SinataUtil.isEmpty(user)){
@@ -158,7 +226,11 @@
model.addAttribute("titles", titles);
- Role role = roleService.getBaseMapper().selectById(roleList.get(0));
+ Role role = roleService.getBaseMapper().selectById(primaryRoleId);
+ if (role == null) {
+ model.addAttribute("tips", "该用户角色不存在,无法登录");
+ return "/login.html";
+ }
User byId = userService.getById(user.getId());
//获取用户头像 Obtain user profile
@@ -177,6 +249,7 @@
return "/index.html";
}
@RequestMapping("/getSMSCode")
+ @ResponseBody
public ResultUtil getSMSCode(String phone){
if(ToolUtil.isEmpty(phone)){
return ResultUtil.paranErr("phone");
@@ -258,7 +331,23 @@
// }
//验证验证码是否正确
//Verify if the verification code is correct.
+
+ 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);
+ if (user == null) {
+ model.addAttribute("tips", "该账号不存在");
+ return "/login.html";
+ }
password = AESUtils.decrypt(password);
String s = MD5.md5(password);
if(!user.getPassword().equals(s)){
@@ -273,7 +362,6 @@
return "/login.html";
}
-
GetTokenRequest tokenRequest = new GetTokenRequest();
tokenRequest.setUsername(username);
tokenRequest.setPassword(password);
@@ -285,7 +373,6 @@
super.getSession().setAttribute("language",language);
return REDIRECT + "/";
}
-
/**
* 退出登录
*/
@@ -294,5 +381,4 @@
deleteAllCookie();
return REDIRECT + "/login";
}
-
}
--
Gitblit v1.7.1