TRX 1 年之前
父节点
当前提交
f13613ae25

+ 12 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/base/UserIdModel.java

@@ -0,0 +1,12 @@
+package com.zhongshu.card.client.model.base;
+
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/6/5
+ */
+@Data
+public class UserIdModel {
+    private String userId;
+}

+ 28 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/PassWordModel.java

@@ -0,0 +1,28 @@
+package com.zhongshu.card.client.model.org;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/6/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PassWordModel {
+
+    @Schema(description = "用户ID", hidden = true)
+    private String userId;
+
+    @Schema(description = "原密码")
+    private String oldPass;
+
+    @Schema(description = "密码")
+    private String passWord;
+
+    @Schema(description = "验证密码")
+    private String confirmPass;
+}

+ 7 - 4
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/UserAccountService.java

@@ -1,10 +1,8 @@
 package com.zhongshu.card.client.service.org;
 
 import com.zhongshu.card.client.model.base.AuthTypeParam;
-import com.zhongshu.card.client.model.org.UserCountAddParam;
-import com.zhongshu.card.client.model.org.UserCountDetailsModel;
-import com.zhongshu.card.client.model.org.UserCountModel;
-import com.zhongshu.card.client.model.org.UserCountSearchParam;
+import com.zhongshu.card.client.model.base.UserIdModel;
+import com.zhongshu.card.client.model.org.*;
 import com.zhongshu.card.client.ret.ResultContent;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -22,6 +20,11 @@ public interface UserAccountService {
     @RequestMapping(value = "update", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
     ResultContent update(@RequestBody UserCountAddParam param);
 
+    ResultContent updatePassWord(PassWordModel param);
+
+    // 重置用户密码(默认密码)
+    ResultContent resetPassWord(UserIdModel param);
+
     ResultContent<UserCountDetailsModel> getCurrentDetail(AuthTypeParam param);
 
     ResultContent<UserCountModel> getUserDetail(String userId);

+ 46 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/UserController.java

@@ -0,0 +1,46 @@
+package com.zhongshu.card.server.core.controller.org;
+
+import com.github.microservice.auth.security.annotations.ResourceAuth;
+import com.github.microservice.auth.security.helper.AuthHelper;
+import com.github.microservice.auth.security.type.AuthType;
+import com.zhongshu.card.client.model.base.AuthTypeParam;
+import com.zhongshu.card.client.model.org.OrganizationModel;
+import com.zhongshu.card.client.model.org.OrganizationUserSearch;
+import com.zhongshu.card.client.model.org.UserCountDetailsModel;
+import com.zhongshu.card.client.ret.ResultContent;
+import com.zhongshu.card.client.service.org.OrganizationService;
+import com.zhongshu.card.client.service.org.UserAccountService;
+import com.zhongshu.card.client.utils.type.UserState;
+import com.zhongshu.card.server.core.service.org.IndexService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/6/4
+ */
+@RestController
+@RequestMapping("user")
+@Tag(name = "用户管理")
+public class UserController {
+
+    @Autowired
+    IndexService indexService;
+
+    @Autowired
+    OrganizationService organizationService;
+
+    @Autowired
+    AuthHelper authHelper;
+
+    @Autowired
+    UserAccountService userAccountService;
+
+}

+ 18 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/UserInfoController.java

@@ -5,10 +5,8 @@ import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.helper.AuthHelper;
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.AuthTypeParam;
-import com.zhongshu.card.client.model.org.LoginParam;
-import com.zhongshu.card.client.model.org.OrganizationModel;
-import com.zhongshu.card.client.model.org.OrganizationUserSearch;
-import com.zhongshu.card.client.model.org.UserCountDetailsModel;
+import com.zhongshu.card.client.model.base.UserIdModel;
+import com.zhongshu.card.client.model.org.*;
 import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.ret.ResultState;
 import com.zhongshu.card.client.service.org.OrganizationService;
@@ -60,6 +58,22 @@ public class UserInfoController {
         return userAccountService.getCurrentDetail(param);
     }
 
+    @ResourceAuth(value = "user",type = AuthType.User)
+    @Operation(summary = "修改当前用户密码", description = "修改当前用户密码")
+    @RequestMapping(value = {"updatePassWord"}, method = {RequestMethod.POST})
+    public ResultContent<UserCountDetailsModel> updatePassWord(@RequestBody PassWordModel param) {
+        param.setUserId(authHelper.getCurrentUser().getUserId());
+        return userAccountService.updatePassWord(param);
+    }
+
+    @ResourceAuth(value = "user",type = AuthType.User)
+    @Operation(summary = "重置用户密码", description = "重置用户密码")
+    @RequestMapping(value = {"resetPassWord"}, method = {RequestMethod.POST})
+    public ResultContent<UserCountDetailsModel> resetPassWord(@RequestBody UserIdModel param) {
+        param.setUserId(authHelper.getCurrentUser().getUserId());
+        return userAccountService.resetPassWord(param);
+    }
+
     @ResourceAuth(value = "user",type = AuthType.User)
     @Operation(summary = "查询用户加入的平台数据列表", description = "查询用户加入的 平台数据列表")
     @RequestMapping(value = {"getUserPlatform"}, method = {RequestMethod.GET})

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/UserAccount.java

@@ -29,10 +29,10 @@ public class UserAccount extends SuperMain {
     private String userId;
 
     @Schema(description = "登录名")
+    @Indexed(unique = true)
     private String loginName;
 
     @Schema(description = "用户手机号")
-    @Indexed(unique = true)
     private String phone;
 
     @Schema(description = "姓名")

+ 60 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/UserAccountServiceImpl.java

@@ -1,8 +1,11 @@
 package com.zhongshu.card.server.core.service.org;
 
+import com.github.microservice.auth.client.content.ResultState;
+import com.github.microservice.auth.client.service.UserService;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.zhongshu.card.client.model.base.AuthTypeParam;
+import com.zhongshu.card.client.model.base.UserIdModel;
 import com.zhongshu.card.client.model.org.*;
 import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.ret.ResultMessage;
@@ -11,6 +14,7 @@ import com.zhongshu.card.client.service.org.UserAccountService;
 import com.zhongshu.card.client.utils.type.Sex;
 import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
+import com.zhongshu.card.server.core.dataConfig.CardDefault;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.service.base.SuperService;
@@ -23,6 +27,7 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
 
 import java.io.Serializable;
 import java.util.List;
@@ -42,6 +47,9 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
     @Autowired
     OrganizationService organizationService;
 
+    @Autowired
+    UserService userService;
+
     @Override
     public ResultContent update(UserCountAddParam param) {
         UserAccount userCount = new UserAccount();
@@ -51,9 +59,51 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
                 return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getUserId()));
             }
         }
-
         // 在授权中心添加用户
+        return ResultContent.buildSuccess();
+    }
 
+    /**
+     * 当前用户修改密码
+     *
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent updatePassWord(PassWordModel param) {
+        Assert.hasText(param.getOldPass(), "密码不能为空");
+        Assert.hasText(param.getPassWord(), "新密码不能为空");
+        Assert.hasText(param.getConfirmPass(), "验证密码不能为空");
+        if (!param.getPassWord().equals(param.getConfirmPass())) {
+            return ResultContent.buildFail(String.format("密码和验证密码不一致"));
+        }
+        com.github.microservice.auth.client.content.ResultContent<Void> resultContent = userService.checkLoginPassword(param.getUserId(), param.getOldPass());
+        if (resultContent.getState() == ResultState.Success) {
+            com.github.microservice.auth.client.content.ResultContent<Void> resultContent1 = userService.updateLoginPassword(param.getUserId(), param.getPassWord());
+            if (resultContent1.getState() != ResultState.Success) {
+                return ResultContent.buildFail(resultContent1.getMsg());
+            }
+        } else {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
+        return ResultContent.buildSuccess();
+    }
+
+    /**
+     * 重置密码
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent resetPassWord(UserIdModel param) {
+        UserAccount userCount = userCountDao.findTopByUserId(param.getUserId());
+        if (ObjectUtils.isEmpty(userCount)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getUserId()));
+        }
+        com.github.microservice.auth.client.content.ResultContent<Void> resultContent = userService.updateLoginPassword(param.getUserId(), CardDefault.DEFAULT_PASSWORD);
+        if (resultContent.getState() != ResultState.Success) {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
         return ResultContent.buildSuccess();
     }
 
@@ -85,6 +135,7 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
 
     /**
      * 得到当前的用户信息 (包含机构信息)
+     *
      * @param param
      * @return
      */
@@ -109,6 +160,7 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
 
     /**
      * 得到用户信息
+     *
      * @param userId
      * @return
      */
@@ -121,6 +173,13 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
         return ResultContent.buildSuccess(model);
     }
 
+    /**
+     * 分页查询所有用户
+     *
+     * @param param
+     * @param pageable
+     * @return
+     */
     @Override
     public ResultContent<Page<UserCountModel>> list(UserCountSearchParam param, Pageable pageable) {
         Page<UserAccount> page = userCountDao.page(pageable, param);