From ae9bfd2d66f68a553786ac78b12f4390e65e4e09 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 24 十一月 2023 18:30:18 +0800
Subject: [PATCH] 后台bug修改

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java |   66 ++++++++++++++++++++++++++++----
 1 files changed, 57 insertions(+), 9 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 620978e..2b8a8d2 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,10 +1,14 @@
 package com.dsh.guns.modular.system.controller.system;
 
+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.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;
@@ -12,6 +16,7 @@
 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;
@@ -24,6 +29,7 @@
 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;
 
@@ -54,6 +60,8 @@
     @Autowired
     private IRoleService roleService;
 
+    @Autowired
+    private AppUserClient appUserClient;
     @Resource
     private UserClient userClient;
 
@@ -65,8 +73,33 @@
 
 
 
+    /**
+     * 跳转到修改密码页面
+     */
+    @PostMapping("/update")
+    public String updatePassword(Model model) {
+        return "/password.html" ;
+    }
+    @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 "修改成功!";
+    }
     /**
      * 跳转到主页
      */
@@ -118,6 +151,21 @@
 //                        || user.getPassWordUpdate().getTime() + 7776000000L <= System.currentTimeMillis()
 //                        ? a: "");
         return "/index.html";
+    }
+    @RequestMapping("/getSMSCode")
+    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();
+        }
     }
 
 
@@ -179,20 +227,20 @@
             f++;
             loginFailures.put(username, f);
         }
-
+        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)) {
+                model.addAttribute("tips", "验证码错误");
+                return "/login.html";
+            }
+        }
 //        if (f > 5 && (System.currentTimeMillis() - t) <= (30 * 60 * 1000)) {
 //            model.addAttribute("tips", "登录次数过多,请等30分钟再试!");
 //            return "/login.html";
 //        }
         //验证验证码是否正确
         //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();
-            }
-        }
         User user = userService.getByAccount(username);
         password = AESUtils.decrypt(password);
         String s = MD5.md5(password);

--
Gitblit v1.7.1