diff --git a/blog-admin/src/main/java/com/zyd/blog/controller/RestUserController.java b/blog-admin/src/main/java/com/zyd/blog/controller/RestUserController.java index 75587fb9bf544481dbcc10531533d751d4e2b1a9..578d2d96498ae70e7b7da7a831771e4525610808 100644 --- a/blog-admin/src/main/java/com/zyd/blog/controller/RestUserController.java +++ b/blog-admin/src/main/java/com/zyd/blog/controller/RestUserController.java @@ -3,12 +3,16 @@ package com.zyd.blog.controller; import com.github.pagehelper.PageInfo; import com.zyd.blog.business.annotation.BussinessLog; import com.zyd.blog.business.entity.User; +import com.zyd.blog.business.enums.FileUploadType; import com.zyd.blog.business.enums.ResponseStatus; import com.zyd.blog.business.service.SysUserRoleService; import com.zyd.blog.business.service.SysUserService; import com.zyd.blog.business.vo.UserConditionVO; +import com.zyd.blog.file.FileUploader; +import com.zyd.blog.file.entity.VirtualFile; import com.zyd.blog.framework.object.PageResult; import com.zyd.blog.framework.object.ResponseVO; +import com.zyd.blog.plugin.file.GlobalFileUploader; import com.zyd.blog.util.PasswordUtil; import com.zyd.blog.util.ResultUtil; import org.apache.shiro.authz.annotation.Logical; @@ -19,6 +23,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; /** * 用户管理 @@ -48,16 +53,16 @@ public class RestUserController { * 保存用户角色 * * @param userId - * @param roleIds - * 用户角色 - * 此处获取的参数的角色id是以 “,” 分隔的字符串 + * @param roleIds 用户角色 + * 此处获取的参数的角色id是以 “,” 分隔的字符串 * @return */ @RequiresPermissions("user:allotRole") @PostMapping("/saveUserRoles") @BussinessLog("分配用户角色") public ResponseVO saveUserRoles(Long userId, String roleIds) { - if (StringUtils.isEmpty(userId)) { + if (StringUtils.isEmpty(userId)) + { return ResultUtil.error("error"); } userRoleService.addUserRole(userId, roleIds); @@ -69,33 +74,112 @@ public class RestUserController { @BussinessLog("添加用户") public ResponseVO add(User user) { User u = userService.getByUserName(user.getUsername()); - if (u != null) { - return ResultUtil.error("该用户名["+user.getUsername()+"]已存在!请更改用户名"); + if (u != null) + { + return ResultUtil.error("该用户名[" + user.getUsername() + "]已存在!请更改用户名"); } - try { - user.setPassword(PasswordUtil.encrypt(user.getPassword(), user.getUsername())); + try + { + String password = user.getPassword(); + if (StringUtils.isEmpty(password)) + { + return ResultUtil.error("error"); + } + user.setPassword(PasswordUtil.encrypt(password, user.getUsername())); userService.insert(user); return ResultUtil.success("成功"); - } catch (Exception e) { + } + catch (Exception e) + { e.printStackTrace(); return ResultUtil.error("error"); } } + @RequiresPermissions("user:edit") + @PostMapping("/edit") + @BussinessLog("编辑用户") + public ResponseVO edit(User user) { + try + { + encryptPassword(user); + userService.updateSelective(user); + } + catch (Exception e) + { + e.printStackTrace(); + return ResultUtil.error("用户修改失败!"); + } + return ResultUtil.success(ResponseStatus.SUCCESS); + } + + @RequiresPermissions("user:edit") + @PostMapping("/addorupdate") + @BussinessLog("编辑用户") + public ResponseVO addOrUpdate(User user, MultipartFile file) { + VirtualFile virtualFile = this.saveFile(file); + try + { + if (virtualFile != null) + { + user.setAvatar(virtualFile.getFullFilePath()); + } + encryptPassword(user); + if (user.getId() != null) + { + userService.updateSelective(user); + } + else + { + userService.insert(user); + } + } + catch (Exception e) + { + e.printStackTrace(); + return ResultUtil.error("用户修改失败!"); + } + return ResultUtil.success(ResponseStatus.SUCCESS); + } + + private void encryptPassword(User user) throws Exception { + String password = user.getPassword(); + if (StringUtils.isEmpty(password)) + { + user.setPassword(null); + } + else + { + user.setPassword(PasswordUtil.encrypt(password, user.getUsername())); + } + } + + public VirtualFile saveFile(MultipartFile file) { + if (file != null) + { + FileUploader uploader = new GlobalFileUploader(); + return uploader.upload(file, FileUploadType.QRCODE.getPath(), true); + } + return null; + } + @RequiresPermissions(value = {"user:batchDelete", "user:delete"}, logical = Logical.OR) @PostMapping(value = "/remove") @BussinessLog("删除用户") public ResponseVO remove(Long[] ids) { - if (null == ids) { + if (null == ids) + { return ResultUtil.error(500, "请至少选择一条记录"); } - for (Long id : ids) { + for (Long id : ids) + { userService.removeByPrimaryKey(id); userRoleService.removeByUserId(id); } return ResultUtil.success("成功删除 [" + ids.length + "] 个用户"); } + @RequiresPermissions("user:get") @PostMapping("/get/{id}") @BussinessLog("获取用户详情") @@ -103,17 +187,5 @@ public class RestUserController { return ResultUtil.success(null, this.userService.getByPrimaryKey(id)); } - @RequiresPermissions("user:edit") - @PostMapping("/edit") - @BussinessLog("编辑用户") - public ResponseVO edit(User user) { - try { - userService.updateSelective(user); - } catch (Exception e) { - e.printStackTrace(); - return ResultUtil.error("用户修改失败!"); - } - return ResultUtil.success(ResponseStatus.SUCCESS); - } } diff --git a/blog-admin/src/main/resources/templates/user/list.ftl b/blog-admin/src/main/resources/templates/user/list.ftl index f4a7b6b553b2788258f2ba1af093f428e8795cd5..3752429ad5a3442d1c6611b8df493805c618260b 100644 --- a/blog-admin/src/main/resources/templates/user/list.ftl +++ b/blog-admin/src/main/resources/templates/user/list.ftl @@ -14,9 +14,7 @@
-<@addOrUpdateMOdal defaultTitle="添加用户"> - -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- + + + + + + <@footer> - + + }); + + \ No newline at end of file diff --git a/list_ftl.md b/list_ftl.md new file mode 100644 index 0000000000000000000000000000000000000000..fe37159f33363688cdd5b86ae2b035c33f6bef13 --- /dev/null +++ b/list_ftl.md @@ -0,0 +1,316 @@ +```ftl +<#include "/include/macros.ftl"> +<@header> +
+
+
+ <@breadcrumb> + + +
+
+
+ + +
+
+
+
+
+
+ + + +<@addOrUpdateMOdal defaultTitle="添加用户"> + +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + +<@footer> + + + + +``` \ No newline at end of file