Kaynağa Gözat

更新 UserPageController

reghao 6 ay önce
ebeveyn
işleme
291d9585f5

+ 0 - 100
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/UserController.java

@@ -1,100 +0,0 @@
-package cn.reghao.devops.mgr.admin.controller;
-
-import cn.reghao.devops.mgr.admin.model.dto.UpdatePasswordDto;
-import cn.reghao.devops.mgr.admin.model.dto.CreateAccountDto;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.devops.mgr.admin.model.dto.AccountProfile;
-import cn.reghao.devops.mgr.admin.model.dto.AccountRole;
-import cn.reghao.devops.mgr.admin.service.AccountService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2021-04-04 21:24:18
- */
-@Api(tags = "用户接口")
-@RequestMapping("/api/rbac/user")
-@RestController
-public class UserController {
-    private final AccountService accountService;
-
-    public UserController(AccountService accountService) {
-        this.accountService = accountService;
-    }
-
-    @ApiOperation(value = "修改个人头像", notes = "N")
-    @PostMapping(value = "/avatar", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String userAvatar(MultipartFile file) {
-        return WebResult.failWithMsg("接口未实现");
-    }
-
-    @ApiOperation(value = "修改个人信息", notes = "N")
-    @PostMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String editUserInfo(@Validated AccountProfile accountProfile) {
-        accountService.updateAccountProfile(accountProfile);
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "修改个人密码", notes = "N")
-    @PostMapping(value = "/passwd/update", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String editPasswd(UpdatePasswordDto updatePasswordDto) {
-        return WebResult.failWithMsg("接口未实现");
-    }
-
-    @ApiOperation(value = "创建用户", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
-    public String createUser(@Validated CreateAccountDto createAccountDto) {
-        Result result = accountService.createAccount(createAccountDto);
-        return WebResult.result(result);
-    }
-
-    @ApiOperation(value = "批量创建用户", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/batch", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String batchAdd(MultipartFile file) {
-        return WebResult.failWithMsg("接口未实现");
-    }
-
-    @ApiOperation(value = "删除用户", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @DeleteMapping(value = "/delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteAccount(@PathVariable("id") Integer userId) {
-        Result result = accountService.deleteAccount(userId);
-        return WebResult.result(result);
-    }
-
-    @ApiOperation(value = "修改用户密码", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/passwd", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String modifyPassword(@NotNull Integer id, @NotNull String newPassword) {
-        accountService.updateAccountPassword(id, newPassword);
-        return WebResult.success();
-    }
-
-    @ApiOperation(value = "分配用户角色", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/role", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String assignRole(@Validated AccountRole accountRole) {
-        Result result = accountService.updateAccountRole(accountRole);
-        return WebResult.result(result);
-    }
-
-    @ApiOperation(value = "启用/禁用用户", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/status/{userId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String updateAccountStatus(@PathVariable("userId") Integer userId) {
-        //userIds.forEach(userId -> accountService.updateAccountStatus(userId, enable));
-        return WebResult.failWithMsg("接口未实现");
-    }
-}

+ 85 - 0
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/page/UserPageController.java

@@ -1,5 +1,9 @@
 package cn.reghao.devops.mgr.admin.controller.page;
 
+import cn.reghao.devops.mgr.admin.model.dto.AccountProfile;
+import cn.reghao.devops.mgr.admin.model.dto.AccountRole;
+import cn.reghao.devops.mgr.admin.model.dto.CreateAccountDto;
+import cn.reghao.devops.mgr.admin.model.dto.UpdatePasswordDto;
 import cn.reghao.devops.mgr.admin.model.po.User;
 import cn.reghao.devops.mgr.admin.model.vo.RoleVO;
 import cn.reghao.devops.mgr.admin.model.vo.UserVO;
@@ -7,16 +11,22 @@ import cn.reghao.devops.mgr.admin.service.AccountService;
 import cn.reghao.devops.mgr.admin.service.AccountSessionService;
 import cn.reghao.devops.mgr.admin.service.RoleService;
 import cn.reghao.devops.mgr.admin.service.UserContext;
+import cn.reghao.jutil.jdk.result.Result;
+import cn.reghao.jutil.jdk.result.WebResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
+import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.validation.constraints.NotNull;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -123,4 +133,79 @@ public class UserPageController {
         model.addAttribute("authRoles", userRoles);
         return "/admin/user/role";
     }
+
+    @ApiOperation(value = "修改个人头像", notes = "N")
+    @PostMapping(value = "/avatar", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String userAvatar(MultipartFile file) {
+        return WebResult.failWithMsg("接口未实现");
+    }
+
+    @ApiOperation(value = "修改个人信息", notes = "N")
+    @PostMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String editUserInfo(@Validated AccountProfile accountProfile) {
+        accountService.updateAccountProfile(accountProfile);
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "修改个人密码", notes = "N")
+    @PostMapping(value = "/passwd/update", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String editPasswd(UpdatePasswordDto updatePasswordDto) {
+        return WebResult.failWithMsg("接口未实现");
+    }
+
+    @ApiOperation(value = "创建用户", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String createUser(@Validated CreateAccountDto createAccountDto) {
+        Result result = accountService.createAccount(createAccountDto);
+        return WebResult.result(result);
+    }
+
+    @ApiOperation(value = "批量创建用户", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/batch", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String batchAdd(MultipartFile file) {
+        return WebResult.failWithMsg("接口未实现");
+    }
+
+    @ApiOperation(value = "删除用户", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @DeleteMapping(value = "/delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String deleteAccount(@PathVariable("id") Integer userId) {
+        Result result = accountService.deleteAccount(userId);
+        return WebResult.result(result);
+    }
+
+    @ApiOperation(value = "修改用户密码", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/passwd", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String modifyPassword(@NotNull Integer id, @NotNull String newPassword) {
+        accountService.updateAccountPassword(id, newPassword);
+        return WebResult.success();
+    }
+
+    @ApiOperation(value = "分配用户角色", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/role", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String assignRole(@Validated AccountRole accountRole) {
+        Result result = accountService.updateAccountRole(accountRole);
+        return WebResult.result(result);
+    }
+
+    @ApiOperation(value = "启用/禁用用户", notes = "N")
+    @PreAuthorize("hasRole('ROLE_ADMIN')")
+    @PostMapping(value = "/status/{userId}", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String updateAccountStatus(@PathVariable("userId") Integer userId) {
+        //userIds.forEach(userId -> accountService.updateAccountStatus(userId, enable));
+        return WebResult.failWithMsg("接口未实现");
+    }
 }

+ 1 - 1
mgr/src/main/resources/templates/admin/user/add.html

@@ -3,7 +3,7 @@
 <head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/api/rbac/user}">
+    <form th:action="@{/rbac/user}">
         <div class="layui-form-item">
             <label class="layui-form-label required">登录名</label>
             <div class="layui-input-inline">

+ 3 - 3
mgr/src/main/resources/templates/admin/user/index.html

@@ -31,7 +31,7 @@
                             <i class="fa fa-plus"></i> 添加
                         </button>
                         <!--<button class="layui-btn upload-file" data-title=""
-                                name="file[]" th:attr="up-url=@{/api/rbac/user/batch}" data-size="auto">
+                                name="file[]" th:attr="up-url=@{/rbac/user/batch}" data-size="auto">
                             <i class="fa fa-plus"></i> 批量添加
                         </button>-->
                     </div>
@@ -73,9 +73,9 @@
                         <a class="open-popup" data-title="详细信息" th:attr="data-url=@{'/rbac/user/detail/'+${item.userId}}"
                            data-size="640,480" href="#">详细</a>
                         <a class="ajax-post" th:attr="data-msg='确定要禁用帐号 '+ ${item.username}"
-                           th:href="@{'/api/rbac/user/status/' + ${item.userId}}">禁用</a>
+                           th:href="@{'/rbac/user/status/' + ${item.userId}}">禁用</a>
                         <a class="ajax-delete" th:attr="data-msg='确定要删除帐号 '+ ${item.username}"
-                           th:href="@{'/api/rbac/user/delete/' + ${item.userId}}">删除</a>
+                           th:href="@{'/rbac/user/delete/' + ${item.userId}}">删除</a>
                     </td>
                 </tr>
                 </tbody>

+ 1 - 1
mgr/src/main/resources/templates/admin/user/passwd.html

@@ -4,7 +4,7 @@
 </head>
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/api/rbac/user/passwd}">
+    <form th:action="@{/rbac/user/passwd}">
         <input type="hidden" name="id" th:value="${id}"/>
         <div class="layui-form-item">
             <label class="layui-form-label">新密码</label>

+ 1 - 1
mgr/src/main/resources/templates/admin/user/role.html

@@ -20,7 +20,7 @@
 </head>
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/api/rbac/user/role}">
+    <form th:action="@{/rbac/user/role}">
         <input type="hidden" name="userId" th:value="${id}"/>
         <div class="layui-form-item">
             <div class="layui-input-block">

+ 2 - 2
mgr/src/main/resources/templates/admin/user/userinfo.html

@@ -7,7 +7,7 @@
     <div class="user-info">
         <div class="user-avatar-box">
             <img class="user-avatar" th:src="@{${user.avatarUrl}}" alt="头像">
-            <span class="edit-avatar" th:attr="data-url=@{/api/rbac/user/avatar}">修改头像</span>
+            <span class="edit-avatar" th:attr="data-url=@{/rbac/user/avatar}">修改头像</span>
         </div>
         <ul class="detail-info">
             <li>账号:<span th:text="${user.username}" th:title="${user.username}"></span></li>
@@ -21,7 +21,7 @@
             <li>邮箱:<span th:text="${user.email}" th:title="${user.email}"></span></li>
         </ul>
     </div>
-    <form class="user-edit" th:action="@{/api/rbac/user/update}">
+    <form class="user-edit" th:action="@{/rbac/user/update}">
         <input type="hidden" name="userId" th:value="${user.id}"/>
         <div class="layui-form-item">
             <label class="layui-form-label">显示名</label>

+ 1 - 1
mgr/src/main/resources/templates/admin/user/userpasswd.html

@@ -4,7 +4,7 @@
 </head>
 <body>
 <div class="layui-form timo-compile">
-    <form th:action="@{/api/rbac/user/passwd/update}">
+    <form th:action="@{/rbac/user/passwd/update}">
         <div class="layui-form-item">
             <label class="layui-form-label">旧密码</label>
             <div class="layui-input-inline">