Browse Source

feat: 修改密码时记录日志

zhangying 9 months ago
parent
commit
0c32ea0669

+ 6 - 5
src/main/java/com/hz/employmentsite/controller/UserController.java

@@ -1,25 +1,26 @@
 package com.hz.employmentsite.controller;
 
+import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
 import com.hz.employmentsite.model.SysMenu;
-import com.hz.employmentsite.model.SysUser;
 import com.hz.employmentsite.services.service.AccountService;
 import com.hz.employmentsite.services.service.UserService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.DesUtils;
 import com.hz.employmentsite.util.JsonMapper;
 import com.hz.employmentsite.vo.DesModel;
-import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
+import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
-import lombok.Data;
 
 @RestController
 @RequestMapping(value = "/api/user")
@@ -74,14 +75,14 @@ public class UserController {
     }
 
     @PostMapping("updatePassword")
-    public BaseResponse<Integer> updatePassword(@RequestBody ReqUpdatePasswordVo data) throws Exception {
+    public BaseResponse<Integer> updatePassword(HttpServletRequest request, @RequestBody ReqUpdatePasswordVo data) throws Exception {
         String desDefault = desUtils.decoder(data.pwd_default.getToken(), dateUtils.DateToDateTime(dateUtils.StrToDate(data.pwd_default.getTm(), "yyyy/MM/dd HH:mm:ss")));
         String desConfirm = desUtils.decoder(data.pwd_confirm.getToken(), dateUtils.DateToDateTime(dateUtils.StrToDate(data.pwd_confirm.getTm(), "yyyy/MM/dd HH:mm:ss")));
 
         if (!desDefault.equals(desConfirm))
             throw new BaseException("","两次输入的密码不一致");
 
-        return RespGenerstor.success(userService.updatePassword(data.userID, desConfirm, accountService.getLoginUserID()));
+        return RespGenerstor.success(userService.updatePassword(request, data.userID, desConfirm, accountService.getLoginUserID()));
 
     }
 

+ 29 - 5
src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java

@@ -1,22 +1,26 @@
 package com.hz.employmentsite.services.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.enums.DataRangeEnum;
+import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.*;
 import com.hz.employmentsite.mapper.cquery.SysUserCQuery;
 import com.hz.employmentsite.model.*;
+import com.hz.employmentsite.services.service.AccountService;
 import com.hz.employmentsite.services.service.UserService;
 import com.hz.employmentsite.services.service.system.RoleService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.StringUtils;
+import com.hz.employmentsite.util.ip.IpUtils;
 import com.hz.employmentsite.vo.user.DataRange;
 import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.DigestUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -44,6 +48,12 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private RoleService roleService;
 
+    @Autowired
+    private AccountService accountService;
+
+    @Autowired
+    private SysLogMapper sysLogMapper;
+
     private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
 
     private String siteRoleId = "10a12f77-0958-4220-b9ce-07b9215046f2"; //驿站工作者
@@ -313,15 +323,29 @@ public class UserServiceImpl implements UserService {
         return sysUserMapper.updateByPrimaryKey(user);
     }
 
-    public Integer updatePassword(String userID, String newPassword, String updateBy) throws Exception {
+    public Integer updatePassword(HttpServletRequest request, String userID, String newPassword, String updateBy) throws Exception {
         SysUser user = sysUserMapper.selectByPrimaryKey(userID);
         if(newPassword.equals(user.getPassword())){
-            throw new Exception("新密码与旧密码不能相同");
+            throw new BaseException("100001", "新密码不能与旧密码相同");
         }
         user.setPassword(newPassword);
         user.setUpdateBy(updateBy);
         user.setUpdateTime(new Date());
-        return sysUserMapper.updateByPrimaryKey(user);
+        Integer result = sysUserMapper.updateByPrimaryKey(user);
+        // 记录日志
+        if (result > 0) {
+            SysLog sysLog = new SysLog();
+            sysLog.setLogID(UUID.randomUUID().toString());
+            sysLog.setPageName("用户列表");
+            sysLog.setPageUrl("/sys/permission/userslist/updatePassword");
+            sysLog.setActionName("修改密码");
+            sysLog.setUserID(accountService.getLoginUserID());
+            sysLog.setLogTime(new Date());
+            sysLog.setIPAddress(IpUtils.getIpAddr(request));
+            sysLog.setOperationData("修改了" + user.getName() + "(" + user.getLoginID() + ")" + "的登录密码");
+            sysLogMapper.insert(sysLog);
+        }
+        return result;
     }
 
     @Override

+ 3 - 3
src/main/java/com/hz/employmentsite/services/service/UserService.java

@@ -1,14 +1,14 @@
 package com.hz.employmentsite.services.service;
 
+import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.model.SysMenu;
 import com.hz.employmentsite.model.SysRole;
 import com.hz.employmentsite.model.SysUser;
-import com.hz.employmentsite.vo.baseSettings.InstitutionVo;
 import com.hz.employmentsite.vo.user.DataRange;
 import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
-import com.github.pagehelper.PageInfo;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
 
@@ -26,7 +26,7 @@ public interface UserService {
     SysUser addUser(String loginID,String userName,Integer userTypeID,String createBy);
     Integer updateUser(String userID,String userName,String createBy);
 
-    Integer updatePassword(String userID,String newPassword,String updateBy) throws Exception;
+    Integer updatePassword(HttpServletRequest request, String userID, String newPassword, String updateBy) throws Exception;
 
     List<SysMenu> getUserShortcutMenuList(String userID);