TRX hai 1 ano
pai
achega
7fa816d22d

+ 0 - 9
src/main/java/com/zswl/dataservice/controller/user/UserController.java

@@ -50,15 +50,6 @@ public class UserController {
         return userService.getCurrentUserInfo();
     }
 
-    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
-    @Operation(summary = "重置用户密码", description = "")
-    @RequestMapping(value = "resetUserPassWord", method = {RequestMethod.GET})
-    public ResultContent<UserInfoModel> resetUserPassWord(
-            @Parameter(name = "id", description = "用户id", example = "")
-            @RequestParam("id") String id) {
-        return userService.resetUserPassWord(id);
-    }
-
     @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
     @Operation(summary = "修改当前用户基本信息", description = "")
     @RequestMapping(value = "updateUserInfo", method = {RequestMethod.POST})

+ 83 - 0
src/main/java/com/zswl/dataservice/controller/user/UserManagerController.java

@@ -0,0 +1,83 @@
+package com.zswl.dataservice.controller.user;
+
+import com.zswl.dataservice.model.user.UpdateUserPassWordParam;
+import com.zswl.dataservice.model.user.UserInfoModel;
+import com.zswl.dataservice.model.user.UserUpdateParam;
+import com.zswl.dataservice.service.mqtt.DeviceInfoService;
+import com.zswl.dataservice.service.user.impl.UserManagerServiceImpl;
+import com.zswl.dataservice.service.user.impl.UserServiceImpl;
+import com.zswl.dataservice.utils.result.ResultContent;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 用户管理 服务
+ *
+ * @author TRX
+ * @date 2024/3/21
+ */
+@RequestMapping("/user/userManager")
+@RestController
+@Validated
+@Tag(name = "用户管理")
+public class UserManagerController {
+
+    @Autowired
+    DeviceInfoService deviceInfoService;
+
+    @Autowired
+    UserServiceImpl userService;
+
+    @Autowired
+    UserManagerServiceImpl userManagerService;
+
+    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
+    @Operation(summary = "修改当前用户密码", description = "")
+    @RequestMapping(value = "updateUserPassWord", method = {RequestMethod.POST})
+    public ResultContent updateUserPassWord(@RequestBody UpdateUserPassWordParam param) {
+        Assert.hasText(param.getOldPass(), "原密码不能为空");
+        Assert.hasText(param.getPassWord(), "密码不能为空");
+        Assert.hasText(param.getConfirmPass(), "验证密码不能为空");
+        return userService.updateUserPassWord(param);
+    }
+
+    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
+    @Operation(summary = "得到当前用户信息", description = "")
+    @RequestMapping(value = "getCurrentUserInfo", method = {RequestMethod.GET})
+    public ResultContent<UserInfoModel> getCurrentUserInfo() {
+        return userService.getCurrentUserInfo();
+    }
+
+    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
+    @Operation(summary = "重置用户密码", description = "")
+    @RequestMapping(value = "resetUserPassWord", method = {RequestMethod.GET})
+    public ResultContent<UserInfoModel> resetUserPassWord(
+            @Parameter(name = "id", description = "用户id", example = "")
+            @RequestParam("id") String id) {
+        return userManagerService.resetUserPassWord(id);
+    }
+
+    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
+    @Operation(summary = "修改当前用户基本信息", description = "")
+    @RequestMapping(value = "updateUserInfo", method = {RequestMethod.POST})
+    public ResultContent<UserInfoModel> updateUserInfo(@RequestBody UserUpdateParam param) {
+        Assert.hasText(param.getUserName(), "userName不能为空");
+        return userService.updateUserInfo(param);
+    }
+
+    @Parameter(in = ParameterIn.HEADER, name = "accessToken", required = false, description = "accessToken")
+    @Operation(summary = "修改当前用户头像", description = "")
+    @RequestMapping(value = "updateUserHead", method = {RequestMethod.GET})
+    public ResultContent<UserInfoModel> updateUserHead(
+            @Parameter(name = "url", description = "头像地址", example = "")
+            @RequestParam("url") String url) {
+        return userService.updateUserHead(url);
+    }
+
+}

+ 4 - 0
src/main/java/com/zswl/dataservice/domain/user/Role.java

@@ -1,6 +1,7 @@
 package com.zswl.dataservice.domain.user;
 
 import com.zswl.dataservice.domain.base.SuperEntity;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.type.RoleDefaultType;
 import com.zswl.dataservice.type.RoleType;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -39,6 +40,9 @@ public class Role extends SuperEntity {
     @Indexed
     private Boolean isAdmin = Boolean.FALSE;
 
+    @Schema(description = "状态")
+    private DataState state = DataState.Enable;
+
     @Schema(description = "角色权限列表")
     @Indexed
     private Set<String> auth;

+ 13 - 0
src/main/java/com/zswl/dataservice/domain/user/User.java

@@ -8,8 +8,12 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.DBRef;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author TRX
  * @date 2024/3/20
@@ -61,4 +65,13 @@ public class User extends SuperEntity {
 
     @Schema(description = "最后登录时间")
     private Long lastLoginTime;
+
+    @Schema(description = "角色信息")
+    @DBRef(lazy = true)
+    private List<Role> roles = new ArrayList<>();
+
+    @Schema(description = "部门信息")
+    @DBRef(lazy = true)
+    private List<Department> departments = new ArrayList<>();
+
 }

+ 4 - 0
src/main/java/com/zswl/dataservice/model/user/RoleAddParam.java

@@ -1,6 +1,7 @@
 package com.zswl.dataservice.model.user;
 
 import com.zswl.dataservice.model.baseParam.SuperParam;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.type.RoleDefaultType;
 import com.zswl.dataservice.type.RoleType;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -22,4 +23,7 @@ public class RoleAddParam extends SuperParam {
 
     @Schema(description = "默认角色的类型")
     RoleDefaultType roleDefaultType;
+
+    @Schema(description = "状态")
+    private DataState state = DataState.Enable;
 }

+ 16 - 3
src/main/java/com/zswl/dataservice/model/user/RoleModel.java

@@ -1,6 +1,7 @@
 package com.zswl.dataservice.model.user;
 
 import com.zswl.dataservice.model.baseParam.SuperModel;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.type.RoleType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -24,9 +25,6 @@ public class RoleModel extends SuperModel {
 
     private String roleTypeStr;
 
-    @Schema(description = "角色权限列表")
-    private Set<String> auth;
-
     public String getRoleTypeStr() {
         if (roleType != null) {
             return roleType.getRemark();
@@ -34,6 +32,21 @@ public class RoleModel extends SuperModel {
         return "";
     }
 
+    @Schema(description = "状态")
+    private DataState state = DataState.Enable;
+
+    private String stateStr;
+
+    public String getStateStr() {
+        if (state != null) {
+            return state.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "角色权限列表")
+    private Set<String> auth;
+
     @Schema(description = "是否管理角色")
     private Boolean isAdmin = Boolean.FALSE;
 }

+ 42 - 0
src/main/java/com/zswl/dataservice/model/user/UserCountParam.java

@@ -0,0 +1,42 @@
+package com.zswl.dataservice.model.user;
+
+import com.zswl.dataservice.domain.user.Department;
+import com.zswl.dataservice.domain.user.Role;
+import com.zswl.dataservice.model.baseParam.SuperParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/6/20
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserCountParam extends SuperParam {
+
+    @Schema(description = "用户名")
+    private String userName;
+
+    @Schema(description = "头像")
+    private String headUrl;
+
+    @Schema(description = "电话号码")
+    private String phone;
+
+    @Schema(description = "密码")
+    private String passWord;
+
+    @Schema(description = "角色信息")
+    private List<String> roles = new ArrayList<>();
+
+    @Schema(description = "部门信息")
+    private List<String> departments = new ArrayList<>();
+}

+ 12 - 0
src/main/java/com/zswl/dataservice/model/user/UserInfoModel.java

@@ -1,5 +1,7 @@
 package com.zswl.dataservice.model.user;
 
+import com.zswl.dataservice.domain.user.Department;
+import com.zswl.dataservice.domain.user.Role;
 import com.zswl.dataservice.model.baseParam.SuperModel;
 import com.zswl.dataservice.type.UserState;
 import com.zswl.dataservice.type.UserType;
@@ -7,6 +9,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author TRX
@@ -40,4 +46,10 @@ public class UserInfoModel extends SuperModel {
 
     @Schema(description = "最后登录时间")
     private Long lastLoginTime;
+
+    @Schema(description = "角色信息")
+    private List<RoleModel> roles = new ArrayList<>();
+
+    @Schema(description = "部门信息")
+    private List<DepartmentModel> departments = new ArrayList<>();
 }

+ 4 - 0
src/main/java/com/zswl/dataservice/service/user/impl/RoleServiceImpl.java

@@ -7,6 +7,7 @@ import com.zswl.dataservice.model.user.RoleAddParam;
 import com.zswl.dataservice.model.user.RoleModel;
 import com.zswl.dataservice.model.user.RoleSearchParam;
 import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.type.RoleType;
 import com.zswl.dataservice.utils.bean.BeanUtils;
 import com.zswl.dataservice.utils.page.PageEntityUtil;
@@ -53,6 +54,9 @@ public class RoleServiceImpl extends SuperService {
         if (param.getSort() == null) {
             param.setSort(1L);
         }
+        if (param.getState() == null) {
+            param.setState(DataState.Enable);
+        }
         Role nameRole = roleDao.findTopByName(param.getName());
         Role codeRole = roleDao.findTopByCode(param.getCode());
         initDefaultUser(param);

+ 46 - 0
src/main/java/com/zswl/dataservice/service/user/impl/UserManagerServiceImpl.java

@@ -0,0 +1,46 @@
+package com.zswl.dataservice.service.user.impl;
+
+import com.zswl.dataservice.config.SystemDefaultConfig;
+import com.zswl.dataservice.dao.UserDao;
+import com.zswl.dataservice.domain.user.User;
+import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.type.ResultState;
+import com.zswl.dataservice.utils.result.ResultContent;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户管理
+ *
+ * @author TRX
+ * @date 2024/6/20
+ */
+@Slf4j
+@Service
+public class UserManagerServiceImpl extends SuperService {
+
+    @Autowired
+    private UserDao userDao;
+
+
+    /**
+     * 重置用户密码
+     *
+     * @param id
+     * @return
+     */
+    public ResultContent resetUserPassWord(String id) {
+        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+        User user = userDao.findTopById(id);
+        if (ObjectUtils.isEmpty(user)) {
+            return ResultContent.buildFail(String.format(ResultState.UserNotExists.getRemark()));
+        }
+        user.setPassWord(passwordEncoder.encode(SystemDefaultConfig.defaultPassWord));
+        return ResultContent.buildSuccess();
+    }
+
+}

+ 0 - 17
src/main/java/com/zswl/dataservice/service/user/impl/UserServiceImpl.java

@@ -72,7 +72,6 @@ public class UserServiceImpl extends SuperService implements UserService {
             user.setUserState(UserState.Enable);
             user.setPhone("");
             user.setHeadUrl("");
-
             userDao.save(user);
         } else {
             log.info("admin 用户已存在");
@@ -127,22 +126,6 @@ public class UserServiceImpl extends SuperService implements UserService {
         return ResultContent.buildSuccess(model);
     }
 
-    /**
-     * 重置用户密码
-     *
-     * @param id
-     * @return
-     */
-    public ResultContent resetUserPassWord(String id) {
-        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
-        User user = userDao.findTopById(id);
-        if (ObjectUtils.isEmpty(user)) {
-            return ResultContent.buildFail(String.format(ResultState.UserNotExists.getRemark()));
-        }
-        user.setPassWord(passwordEncoder.encode(SystemDefaultConfig.defaultPassWord));
-        return ResultContent.buildSuccess();
-    }
-
     public ResultContent updateUserInfo(UserUpdateParam param) {
         User user = userDao.findTopById(getCurrentUserId());
         if (ObjectUtils.isEmpty(user)) {