Răsfoiți Sursa

部分新增查询需求

caozixuan 1 an în urmă
părinte
comite
01d82d9ddd

+ 2 - 0
install/mysql/upgrade/1.1.0.sql

@@ -0,0 +1,2 @@
+ALTER TABLE pm_user
+    ADD COLUMN password_count INT NOT NULL DEFAULT 0 COMMENT '密码修改次数' AFTER password;

+ 11 - 6
src/main/java/cn/com/qmth/print/manage/config/PmConstants.java

@@ -3,14 +3,19 @@ package cn.com.qmth.print.manage.config;
 import java.nio.charset.Charset;
 
 public interface PmConstants {
-	
-	public static String USER_SESSION_KEY_PREFIX="$USER_SESSION_";
-	
-	public static final long SYS_ROOT_ORG_ID=-1L;
-	
+
+    public static String USER_SESSION_KEY_PREFIX = "$USER_SESSION_";
+
+    public static final long SYS_ROOT_ORG_ID = -1L;
+
     public static final String CHARSET_NAME = "UTF-8";
 
     public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
-    
+
     public static final String MD5 = "MD5";
+
+    /**
+     * 默认密码
+     */
+    String DEFAULT_PASSWORD = "123456";
 }

+ 39 - 7
src/main/java/cn/com/qmth/print/manage/controller/UserController.java

@@ -1,24 +1,22 @@
 package cn.com.qmth.print.manage.controller;
 
+import cn.com.qmth.print.manage.config.PmConstants;
 import cn.com.qmth.print.manage.entity.UserEntity;
 import cn.com.qmth.print.manage.enums.RoleMeta;
 import cn.com.qmth.print.manage.service.PmSession;
 import cn.com.qmth.print.manage.service.UserService;
 import cn.com.qmth.print.manage.service.query.UserQuery;
-
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonNullFormatVisitor;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.core.exception.StatusException;
-
-import org.apache.commons.lang3.StringUtils;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.management.relation.Role;
 import java.io.IOException;
 import java.util.Date;
 import java.util.Objects;
@@ -65,11 +63,45 @@ public class UserController extends BaseController {
     public Object save(@RequestAttribute PmSession accessEntity, @RequestBody UserEntity user, @RequestParam(required = false) MultipartFile file) throws IOException {
         Long userId = getAccessUserId(accessEntity);
         UserEntity requestUser = userService.getById(userId);
-        if (Objects.isNull(requestUser)){
+        if (Objects.isNull(requestUser)) {
             throw new StatusException("当前用户不存在");
         }
         return userService.save(requestUser, user, file);
     }
 
-    // TODO: 2023/10/17 修改密码 初始化密码 
+    @ApiOperation(value = "修改用户密码", notes = "修改密码")
+    @RequestMapping(value = "/update_password", method = RequestMethod.POST)
+    @Transactional
+    public void updatePassword(@RequestAttribute PmSession accessEntity, @RequestParam String password) {
+        Long userId = getAccessUserId(accessEntity);
+        UserEntity requestUser = userService.getById(userId);
+        requestUser.setPassword(password);
+        requestUser.setPasswordCount(requestUser.getPasswordCount() + 1);
+        requestUser.setUpdaterId(userId);
+        requestUser.setUpdateTime(new Date());
+        userService.updateById(requestUser);
+    }
+
+
+    @ApiOperation(value = "重置用户密码", notes = "重置密码")
+    @RequestMapping(value = "/reset_password", method = RequestMethod.POST)
+    @Transactional
+    public void resetPassword(@RequestAttribute PmSession accessEntity, @RequestParam Long userId) {
+        Long requestUserId = getAccessUserId(accessEntity);
+        UserEntity requestUser = userService.getById(requestUserId);
+
+        if (!RoleMeta.ADMIN.equals(requestUser.getRole())) {
+            throw new StatusException("只有管理员能重置密码");
+        }
+
+        UserEntity db = userService.getById(userId);
+        if (Objects.isNull(db)) {
+            throw new StatusException("用户不存在");
+        }
+        db.setPassword(PmConstants.DEFAULT_PASSWORD);
+        db.setPasswordCount(db.getPasswordCount() + 1);
+        db.setUpdaterId(userId);
+        db.setUpdateTime(new Date());
+        userService.updateById(db);
+    }
 }

+ 10 - 1
src/main/java/cn/com/qmth/print/manage/entity/UserEntity.java

@@ -16,6 +16,8 @@ public class UserEntity extends AuditingEntity {
 
     private String password;
 
+    private Integer passwordCount;
+
     private boolean enable;
 
     private RoleMeta role;
@@ -44,6 +46,14 @@ public class UserEntity extends AuditingEntity {
         this.password = password;
     }
 
+    public Integer getPasswordCount() {
+        return passwordCount;
+    }
+
+    public void setPasswordCount(Integer passwordCount) {
+        this.passwordCount = passwordCount;
+    }
+
     public RoleMeta getRole() {
         return role;
     }
@@ -59,5 +69,4 @@ public class UserEntity extends AuditingEntity {
     public void setEnable(boolean enable) {
         this.enable = enable;
     }
-
 }