diff --git a/src/main/java/com/jsl/oa/controllers/RoleController.java b/src/main/java/com/jsl/oa/controllers/RoleController.java
index 39ed16e..bb530a4 100755
--- a/src/main/java/com/jsl/oa/controllers/RoleController.java
+++ b/src/main/java/com/jsl/oa/controllers/RoleController.java
@@ -1,15 +1,20 @@
package com.jsl.oa.controllers;
+import com.jsl.oa.model.voData.RoleEditVO;
import com.jsl.oa.services.RoleService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
+import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
-import org.springframework.lang.Nullable;
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
-import javax.validation.constraints.NotNull;
/**
*
角色控制器
@@ -20,6 +25,7 @@ import javax.validation.constraints.NotNull;
* @see RoleService
* @since v1.1.0
*/
+@Slf4j
@RestController
@RequiredArgsConstructor
public class RoleController {
@@ -35,9 +41,30 @@ public class RoleController {
*/
@GetMapping("/role/get")
public BaseResponse roleGet(HttpServletRequest request, @RequestParam @Nullable String id) {
+ log.info("请求接口[GET]: /role/get");
return roleService.roleGet(request, id);
}
+ /**
+ * 角色编辑
+ *
+ * 角色编辑接口
+ *
+ * @param request 请求
+ * @param roleEditVO 角色编辑VO
+ * @param bindingResult 参数校验结果
+ * @return {@link BaseResponse}
+ */
+ @PutMapping("/role/edit")
+ public BaseResponse roleEdit(HttpServletRequest request, @RequestBody @Validated RoleEditVO roleEditVO, @NotNull BindingResult bindingResult) {
+ log.info("请求接口[PUT]: /role/edit");
+ // 判断是否有参数错误
+ if (bindingResult.hasErrors()) {
+ return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
+ }
+ return roleService.roleEdit(request, roleEditVO);
+ }
+
/**
* 用户权限授予
*
@@ -45,11 +72,12 @@ public class RoleController {
*/
@PostMapping("role/user/add")
public BaseResponse roleAddUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
+ log.info("请求接口[POST]: /role/user/add");
// 判断是否有参数错误
if (uid == null || rid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
- return roleService.roleAddUser(request,uid, rid);
+ return roleService.roleAddUser(request, uid, rid);
}
/**
@@ -58,11 +86,12 @@ public class RoleController {
* @return
*/
@DeleteMapping("role/user/remove")
- public BaseResponse roleRemoveUser(HttpServletRequest request,@RequestParam Long uid) {
+ public BaseResponse roleRemoveUser(HttpServletRequest request, @RequestParam Long uid) {
+ log.info("请求接口[POST]: /role/user/remove");
// 判断是否有参数错误
if (uid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
- return roleService.roleRemoveUser(request,uid);
+ return roleService.roleRemoveUser(request, uid);
}
}
diff --git a/src/main/java/com/jsl/oa/dao/RoleDAO.java b/src/main/java/com/jsl/oa/dao/RoleDAO.java
index 8f1eed1..7292eec 100644
--- a/src/main/java/com/jsl/oa/dao/RoleDAO.java
+++ b/src/main/java/com/jsl/oa/dao/RoleDAO.java
@@ -21,13 +21,21 @@ public class RoleDAO {
roleMapper.roleRemoveUser(uid);
}
- public List getRoleById(String id) {
+ public List getRolesById(String id) {
ArrayList getRoleList = new ArrayList<>();
getRoleList.add(roleMapper.getRoleById(Long.valueOf(id)));
return getRoleList;
}
+ public RoleDO getRoleById(Long id) {
+ return roleMapper.getRoleById(id);
+ }
+
public List getRole() {
return roleMapper.getRole();
}
+
+ public boolean roleEdit(RoleDO getRole) {
+ return roleMapper.roleEdit(getRole);
+ }
}
diff --git a/src/main/java/com/jsl/oa/exception/ProcessException.java b/src/main/java/com/jsl/oa/exception/ProcessException.java
index de91c09..c9da1a2 100755
--- a/src/main/java/com/jsl/oa/exception/ProcessException.java
+++ b/src/main/java/com/jsl/oa/exception/ProcessException.java
@@ -17,19 +17,19 @@ public class ProcessException {
@ExceptionHandler(value = HttpRequestMethodNotSupportedException.class)
public ResponseEntity businessMethodNotAllowedException() {
- log.debug("请求方法错误");
+ log.warn("请求方法错误");
return ResultUtil.error("MethodNotAllowed", 405, "请求方法错误");
}
@ExceptionHandler(value = DuplicateKeyException.class)
public ResponseEntity businessDuplicateKeyException(@NotNull DuplicateKeyException e) {
- log.debug(e.getMessage(), e);
+ log.warn(e.getMessage(), e);
return ResultUtil.error("DuplicateEntry", 400, "数据重复/外键约束");
}
@ExceptionHandler(value = HttpMessageNotReadableException.class)
public ResponseEntity businessHttpMessageNotReadableException(HttpMessageNotReadableException e) {
- log.debug(e.getMessage(), e);
+ log.warn(e.getMessage(), e);
return ResultUtil.error("HttpMessageNotReadable", 400, "请求参数错误");
}
diff --git a/src/main/java/com/jsl/oa/mapper/RoleMapper.java b/src/main/java/com/jsl/oa/mapper/RoleMapper.java
index 970a919..778a14a 100644
--- a/src/main/java/com/jsl/oa/mapper/RoleMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/RoleMapper.java
@@ -2,10 +2,7 @@ package com.jsl.oa.mapper;
import com.jsl.oa.model.doData.RoleDO;
import com.jsl.oa.model.doData.RoleUserDO;
-import org.apache.ibatis.annotations.Delete;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.*;
import java.util.List;
@@ -13,7 +10,7 @@ import java.util.List;
public interface RoleMapper {
@Insert("insert into organize_oa.oa_role_user (uid, rid) VALUE (#{uid},#{rid})")
- void roleAddUser(Long uid,Long rid);
+ void roleAddUser(Long uid, Long rid);
@Delete("delete from organize_oa.oa_role_user where uid=#{uid}")
void roleRemoveUser(Long uid);
@@ -29,4 +26,7 @@ public interface RoleMapper {
@Select("SELECT * FROM organize_oa.oa_role ORDER BY id DESC")
List getRole();
+
+ @Update("UPDATE organize_oa.oa_role SET role_name=#{roleName},display_name=#{displayName} WHERE id=#{id}")
+ boolean roleEdit(RoleDO getRole);
}
diff --git a/src/main/java/com/jsl/oa/model/doData/RoleDO.java b/src/main/java/com/jsl/oa/model/doData/RoleDO.java
index 04148c3..68f5c05 100755
--- a/src/main/java/com/jsl/oa/model/doData/RoleDO.java
+++ b/src/main/java/com/jsl/oa/model/doData/RoleDO.java
@@ -19,6 +19,7 @@ import java.sql.Timestamp;
public class RoleDO {
private Long id;
private String roleName;
+ private String displayName;
private Timestamp createdAt;
private Timestamp updatedAt;
}
diff --git a/src/main/java/com/jsl/oa/model/voData/RoleEditVO.java b/src/main/java/com/jsl/oa/model/voData/RoleEditVO.java
new file mode 100644
index 0000000..c5f77d4
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/voData/RoleEditVO.java
@@ -0,0 +1,25 @@
+package com.jsl.oa.model.voData;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+/**
+ * 角色编辑VO
+ *
+ * 角色编辑VO,用于接收角色编辑请求
+ *
+ * @version v1.1.0
+ * @author 筱锋xiao_lfeng
+ * @since v1.1.0
+ */
+@Data
+public class RoleEditVO {
+ private Long id;
+ @NotBlank
+ @Pattern(regexp = "^[a-zA-Z0-9_]{3,20}$", message = "角色名只能为3-16位的字母、数字、下划线组成")
+ private String name;
+ @NotBlank
+ private String displayName;
+}
diff --git a/src/main/java/com/jsl/oa/services/RoleService.java b/src/main/java/com/jsl/oa/services/RoleService.java
index 908b4d6..1c4479c 100644
--- a/src/main/java/com/jsl/oa/services/RoleService.java
+++ b/src/main/java/com/jsl/oa/services/RoleService.java
@@ -1,5 +1,6 @@
package com.jsl.oa.services;
+import com.jsl.oa.model.voData.RoleEditVO;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
@@ -18,4 +19,6 @@ public interface RoleService {
BaseResponse roleRemoveUser(HttpServletRequest request,Long uid);
BaseResponse roleGet(HttpServletRequest request, String id);
+
+ BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO);
}
diff --git a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java
index b7956fb..4fb8853 100644
--- a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java
@@ -1,8 +1,8 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.dao.RoleDAO;
-import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.model.doData.RoleDO;
+import com.jsl.oa.model.voData.RoleEditVO;
import com.jsl.oa.services.RoleService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
@@ -47,7 +47,7 @@ public class RoleServiceImpl implements RoleService {
ArrayList getRoleList;
if (id != null && !id.isEmpty()) {
if (Pattern.matches("^[0-9]+$", id)) {
- getRoleList = (ArrayList) roleDAO.getRoleById(id);
+ getRoleList = (ArrayList) roleDAO.getRolesById(id);
} else {
ArrayList error = new ArrayList<>();
error.add("id 只能为数字");
@@ -60,4 +60,28 @@ public class RoleServiceImpl implements RoleService {
// 返回数据
return ResultUtil.success(getRoleList);
}
+
+ @Override
+ public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) {
+ // 检查用户权限
+ if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
+ return ResultUtil.error(ErrorCode.NOT_ADMIN);
+ }
+ // 获取 Role 相关信息
+ RoleDO getRole = roleDAO.getRoleById(roleEditVO.getId());
+ // 判断是否存在该 Role
+ if (getRole != null) {
+ // 替换 Role 信息
+ getRole.setRoleName(roleEditVO.getName())
+ .setDisplayName(roleEditVO.getDisplayName());
+ // 更新 Role 信息
+ if (roleDAO.roleEdit(getRole)) {
+ return ResultUtil.success();
+ } else {
+ return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
+ }
+ } else {
+ return ResultUtil.error(ErrorCode.ROLE_NOT_FOUNDED);
+ }
+ }
}
diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java
index a32dd5d..4b6fd17 100755
--- a/src/main/java/com/jsl/oa/utils/ErrorCode.java
+++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java
@@ -21,6 +21,7 @@ public enum ErrorCode {
NOT_ADMIN("NotAdmin", 40300, "不是管理员"),
EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40300, "请使用邮箱登陆"),
PASSWORD_NOT_SAME("PasswordNotSame", 40301, "两次密码不一致"),
+ ROLE_NOT_FOUNDED("RoleNotFounded", 40400, "角色不存在"),
DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"),
DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"),
DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"),
diff --git a/src/main/java/com/jsl/oa/utils/ResultUtil.java b/src/main/java/com/jsl/oa/utils/ResultUtil.java
index 99c6636..4f53121 100755
--- a/src/main/java/com/jsl/oa/utils/ResultUtil.java
+++ b/src/main/java/com/jsl/oa/utils/ResultUtil.java
@@ -10,48 +10,48 @@ public class ResultUtil {
@Contract(" -> new")
public static @NotNull BaseResponse success() {
- log.debug("请求接口成功");
+ log.info("请求接口成功[200] 不含数据");
return new BaseResponse("Success", 200, "操作成功", null);
}
@Contract("_ -> new")
public static @NotNull BaseResponse success(String message) {
- log.debug("请求接口成功");
+ log.info(message + "[200]");
return new BaseResponse("Success", 200, message, null);
}
@Contract(value = "_ -> new", pure = true)
public static @NotNull BaseResponse success(Object data) {
- log.debug("请求接口成功");
+ log.info("请求接口成功[200] 带数据");
return new BaseResponse("Success", 200, "操作成功", data);
}
@Contract(value = "_, _ -> new", pure = true)
public static @NotNull BaseResponse success(String message, Object data) {
- log.debug("请求接口成功");
+ log.info(message + "[200] 带数据");
return new BaseResponse("Success", 200, message, data);
}
@Contract("_ -> new")
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode) {
- log.debug("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage());
+ log.info("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage());
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage());
}
@Contract("_, _ -> new")
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode, Object data) {
- log.debug("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage());
+ log.info("请求接口错误[" + errorCode.getCode() + "] " + errorCode.getMessage());
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), data);
}
@Contract(value = "_, _, _, _ -> new", pure = true)
public static @NotNull BaseResponse error(String output, Integer code, String message, Object data) {
- log.debug("请求接口错误[" + code + "] " + message);
+ log.info("请求接口错误[" + code + "] " + message);
return new BaseResponse(output, code, message, data);
}
public static @NotNull ResponseEntity error(String output, Integer code, String message) {
- log.debug("请求接口错误[" + code + "] " + message);
+ log.info("请求接口错误[" + code + "] " + message);
return ResponseEntity.status(code)
.body(new BaseResponse(output, code, message));
}