feat:增加新业务功能获取审核列表
Some checks failed
代码检查 / 代码检查 (pull_request) Failing after 21s

This commit is contained in:
xiangZr-hhh 2024-04-11 17:27:34 +08:00
parent fb5a8c06f6
commit 365f2dfa67
37 changed files with 741 additions and 192 deletions

View File

@ -4,6 +4,8 @@ import com.jsl.oa.annotations.CheckUserAbleToUse;
import com.jsl.oa.annotations.CheckUserHasPermission; import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.PermissionDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.RoleDO; import com.jsl.oa.model.dodata.RoleDO;
import com.jsl.oa.model.dodata.RoleUserDO; import com.jsl.oa.model.dodata.RoleUserDO;
@ -43,8 +45,11 @@ import java.util.Objects;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AnnotationsAspect { public class AnnotationsAspect {
private final RoleDAO roleDAO;
private final UserMapper userMapper; private final UserMapper userMapper;
private final RoleMapper roleMapper;
private final RoleDAO roleDAO;
private final UserDAO userDAO;
private final PermissionDAO permissionDAO; private final PermissionDAO permissionDAO;
/** /**
@ -91,12 +96,12 @@ public class AnnotationsAspect {
} else { } else {
log.info("\t> 用户权限不足,检查是否是管理员"); log.info("\t> 用户权限不足,检查是否是管理员");
// 检查用户是管理员 // 检查用户是管理员
RoleUserDO roleUserDO = roleDAO.roleMapper RoleUserDO roleUserDO = roleMapper
.getRoleUserByUid(Processing.getAuthHeaderToUserId(request)); .getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO == null) { if (roleUserDO == null) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin"); RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
if (roleUserDO.getRid().equals(roleDO.getId())) { if (roleUserDO.getRid().equals(roleDO.getId())) {
return pjp.proceed(); return pjp.proceed();
} else { } else {
@ -127,7 +132,7 @@ public class AnnotationsAspect {
// 获取用户信息 // 获取用户信息
Long userId = Processing.getAuthHeaderToUserId(request); Long userId = Processing.getAuthHeaderToUserId(request);
UserDO userDO = userMapper.getUserById(userId); UserDO userDO =userMapper.getUserById(userId);
// 用户不存在 // 用户不存在
if (userDO == null) { if (userDO == null) {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST); return ResultUtil.error(ErrorCode.USER_NOT_EXIST);

View File

@ -1,5 +1,7 @@
package com.jsl.oa.common.constant; package com.jsl.oa.common.constant;
public class SafeConstants { public class SafeConstants {
public static String SECRET_KEY; public static String SECRET_KEY;
} }

View File

@ -178,7 +178,8 @@ public class AuthController {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
} }
return authService.authChangePassword(userChangePasswordVO, request); return authService.
authChangePassword((UserChangePasswordVO) request, (HttpServletRequest) userChangePasswordVO);
} }
/** /**

View File

@ -88,7 +88,8 @@ public class PermissionController {
* @return {@link BaseResponse} 对象包含操作结果 * @return {@link BaseResponse} 对象包含操作结果
*/ */
@PutMapping("/permission/edit") @PutMapping("/permission/edit")
public BaseResponse permissionEdit(@RequestBody @Validated PermissionEditVO permissionEditVo, BindingResult bindingResult, HttpServletRequest request) { public BaseResponse permissionEdit(@RequestBody @Validated PermissionEditVO permissionEditVo,
BindingResult bindingResult, HttpServletRequest request) {
log.info("请求接口[PUT]: /permission/edit"); log.info("请求接口[PUT]: /permission/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {

View File

@ -140,7 +140,8 @@ public class ProjectController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PostMapping("/project/header/add") @PostMapping("/project/header/add")
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) { public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO,
HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/header/add"); log.info("请求接口[POST]: /project/header/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -160,7 +161,9 @@ public class ProjectController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PutMapping("/project/header/edit/{projectId}") @PutMapping("/project/header/edit/{projectId}")
public BaseResponse projectEditById(@RequestParam Long projectId, HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult) { public BaseResponse projectEditById(@RequestParam Long projectId,
HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit,
@NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/edit/{projectId}"); log.info("请求接口[PUT]: /project/header/edit/{projectId}");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -177,7 +180,9 @@ public class ProjectController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PostMapping("/project/work/add") @PostMapping("/project/work/add")
public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) { public BaseResponse projectWorkAdd(HttpServletRequest request,
@RequestBody @Validated ProjectWorkVO projectWorkVO,
@NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/work/add"); log.info("请求接口[POST]: /project/work/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -220,7 +225,9 @@ public class ProjectController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PostMapping("/project/cut/user/add") @PostMapping("/project/cut/user/add")
public BaseResponse projectAddUserForCutting(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long pid) { public BaseResponse projectAddUserForCutting(HttpServletRequest request,
@RequestParam Long uid,
@RequestParam Long pid) {
log.info("请求接口[Post]: /project/cut/user/add"); log.info("请求接口[Post]: /project/cut/user/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (uid == null || pid == null) { if (uid == null || pid == null) {
@ -253,7 +260,9 @@ public class ProjectController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PostMapping("/project/cut/add") @PostMapping("/project/cut/add")
public BaseResponse projectCuttingAdd(HttpServletRequest request, @RequestBody @Validated ProjectCuttingAddVO projectCuttingAddVO, @NotNull BindingResult bindingResult) { public BaseResponse projectCuttingAdd(HttpServletRequest request,
@RequestBody @Validated ProjectCuttingAddVO projectCuttingAddVO,
@NotNull BindingResult bindingResult) {
log.info("请求接口[Post]: /project/cut/add"); log.info("请求接口[Post]: /project/cut/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -264,7 +273,9 @@ public class ProjectController {
@PutMapping("/project/cut/edit") @PutMapping("/project/cut/edit")
public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) { public BaseResponse projectCuttingEdit(HttpServletRequest request,
@RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO,
@NotNull BindingResult bindingResult) {
log.info("请求接口[Put]: /project/cut/edit"); log.info("请求接口[Put]: /project/cut/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -274,12 +285,8 @@ public class ProjectController {
} }
@PutMapping("/project/cut/user/to") @PutMapping("/project/cut/user/to")
public BaseResponse projectToOtherUserForCutting( public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, @RequestParam Long oldUid,
HttpServletRequest request, @RequestParam Long pid, @RequestParam Long newUid) {
@RequestParam Long oldUid,
@RequestParam Long pid,
@RequestParam Long newUid
) {
log.info("请求接口[Put]: /project/cut/user/to"); log.info("请求接口[Put]: /project/cut/user/to");
// 判断是否有参数错误 // 判断是否有参数错误
if (oldUid == null || pid == null || newUid == null) { if (oldUid == null || pid == null || newUid == null) {

View File

@ -0,0 +1,41 @@
package com.jsl.oa.controllers;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* 审核控制器
*
* @author xiangZr-hhh
* @version 1.1.0
* @since 1.1.0
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ReviewController {
// 审核服务
private final ReviewService reviewService;
/**
* @Description: 获取我的审核列表
* @Date: 2024/4/11
* @Param request:
**/
@GetMapping("/review/getMyReview")
public BaseResponse getUserReview(@RequestParam Long projectId, HttpServletRequest request) {
log.info("请求接口[GET]: /review/getMyReview");
return reviewService.getUserReview(projectId, request);
}
}

View File

@ -58,7 +58,8 @@ public class RoleController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PutMapping("/role/edit") @PutMapping("/role/edit")
public BaseResponse roleEdit(HttpServletRequest request, @RequestBody @Validated RoleEditVO roleEditVO, @NotNull BindingResult bindingResult) { public BaseResponse roleEdit(HttpServletRequest request,
@RequestBody @Validated RoleEditVO roleEditVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /role/edit"); log.info("请求接口[PUT]: /role/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -124,7 +125,9 @@ public class RoleController {
* @Param uid: * @Param uid:
**/ **/
@PostMapping("role/add") @PostMapping("role/add")
public BaseResponse addRole(HttpServletRequest request, @RequestBody @Validated RoleAddVo roleAddVO, @NotNull BindingResult bindingResult) throws ClassCopyException { public BaseResponse addRole(HttpServletRequest request,
@RequestBody @Validated RoleAddVo roleAddVO,
@NotNull BindingResult bindingResult) throws ClassCopyException {
log.info("请求接口[POST]: /role/add"); log.info("请求接口[POST]: /role/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {

View File

@ -77,7 +77,8 @@ public class UserController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@PutMapping("/user/profile/edit") @PutMapping("/user/profile/edit")
public BaseResponse userEditProfile(@RequestBody @Validated UserEditProfileVO userEditProfileVO, BindingResult bindingResult) { public BaseResponse userEditProfile(@RequestBody @Validated UserEditProfileVO userEditProfileVO,
BindingResult bindingResult) {
log.info("请求接口[PUT]: /user/profile/edit"); log.info("请求接口[PUT]: /user/profile/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -100,7 +101,11 @@ public class UserController {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
@GetMapping("/user/current") @GetMapping("/user/current")
public BaseResponse userCurrent(HttpServletRequest request, @RequestParam @Nullable String id, @RequestParam @Nullable String username, @RequestParam @Nullable String email, @RequestParam @Nullable String phone) { public BaseResponse userCurrent(HttpServletRequest request,
@RequestParam @Nullable String id,
@RequestParam @Nullable String username,
@RequestParam @Nullable String email,
@RequestParam @Nullable String phone) {
log.info("请求接口[GET]: /user/current"); log.info("请求接口[GET]: /user/current");
// 检查数据是否有问题 // 检查数据是否有问题
if (id != null && !id.isEmpty()) { if (id != null && !id.isEmpty()) {
@ -119,12 +124,13 @@ public class UserController {
} }
} }
if (phone != null && !phone.isEmpty()) { if (phone != null && !phone.isEmpty()) {
if (!Pattern.matches("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", phone)) { if (!Pattern.matches("^(13[0-9]|14[01456879]|15[0-35-9]|"
+ "16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", phone)) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "手机格式不正确"); return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "手机格式不正确");
} }
} }
// 检查是否出现错误 // 检查是否出现错误
return userService.userCurrent(id, username, email, phone, request); return userService.userCurrent(request, id, username, email, phone);
} }
/** /**
@ -154,7 +160,9 @@ public class UserController {
* @Param bindingResult: * @Param bindingResult:
**/ **/
@PostMapping("/user/add") @PostMapping("/user/add")
public BaseResponse userAdd(@RequestBody @Validated UserAddVO userAddVo, BindingResult bindingResult, HttpServletRequest request) { public BaseResponse userAdd(@RequestBody @Validated UserAddVO userAddVo,
BindingResult bindingResult,
HttpServletRequest request) {
log.info("请求接口[POST]: /user/add"); log.info("请求接口[POST]: /user/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
@ -170,7 +178,9 @@ public class UserController {
* @Param bindingResult: * @Param bindingResult:
**/ **/
@PutMapping("/user/edit") @PutMapping("/user/edit")
public BaseResponse userEdit(@RequestBody @Validated UserEditVO userEditVO, BindingResult bindingResult, HttpServletRequest request) { public BaseResponse userEdit(@RequestBody @Validated UserEditVO userEditVO,
BindingResult bindingResult,
HttpServletRequest request) {
log.info("请求接口[PUT]: /user/edit"); log.info("请求接口[PUT]: /user/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {

View File

@ -52,8 +52,7 @@ public class PermissionDAO {
roleRedisUtil.setData(BusinessConstants.NONE, uid.toString(), gson.toJson(getPermissionForString), 1440); roleRedisUtil.setData(BusinessConstants.NONE, uid.toString(), gson.toJson(getPermissionForString), 1440);
} else { } else {
log.info("\t\t> 从 Redis 获取数据"); log.info("\t\t> 从 Redis 获取数据");
getPermissionForString = gson.fromJson(permissionRedisString, new TypeToken<List<String>>() { getPermissionForString = gson.fromJson(permissionRedisString, new TypeToken<List<String>>() { }.getType());
}.getType());
} }
return getPermissionForString; return getPermissionForString;
} }
@ -69,16 +68,43 @@ public class PermissionDAO {
getPermissionForString = new ArrayList<>(); getPermissionForString = new ArrayList<>();
forPermissionToBuildString(permissionList, getPermissionForString); forPermissionToBuildString(permissionList, getPermissionForString);
// 存入 Redis // 存入 Redis
roleRedisUtil roleRedisUtil.setData(
.setData(BusinessConstants.ALL_PERMISSION, "string", gson.toJson(getPermissionForString), 1440); BusinessConstants.ALL_PERMISSION,
"string",
gson.toJson(getPermissionForString),
1440);
} else { } else {
log.info("\t\t> 从 Redis 获取数据"); log.info("\t\t> 从 Redis 获取数据");
getPermissionForString = gson.fromJson(getRedisData, new TypeToken<List<String>>() { getPermissionForString = gson.fromJson(getRedisData, new TypeToken<List<String>>() { }.getType());
}.getType());
} }
return getPermissionForString; return getPermissionForString;
} }
public List<PermissionDO> getRootPermission() {
log.info("\t> 执行 DAO 层 PermissionDAO.getRootPermission 方法");
String getRedisData = roleRedisUtil.getData(BusinessConstants.ALL_PERMISSION, "all");
if (getRedisData == null) {
log.info("\t\t> 从 MySQL 获取数据");
List<PermissionDO> permissionList = permissionMapper.getAllPermission();
if (!permissionList.isEmpty()) {
List<PermissionDO> getPermissionList = new ArrayList<>();
for (PermissionDO permission : permissionList) {
if (permission.getPid() == null) {
getPermissionList.add(permission);
}
}
roleRedisUtil.setData(BusinessConstants.ALL_PERMISSION, "all", gson.toJson(getPermissionList), 1440);
return getPermissionList;
} else {
return null;
}
} else {
log.info("\t\t> 从 Redis 获取数据");
return gson.fromJson(getRedisData, new TypeToken<List<PermissionDO>>() {
}.getType());
}
}
/** /**
* <h2>获取全部权限信息</h2> * <h2>获取全部权限信息</h2>
* <hr/> * <hr/>
@ -89,8 +115,7 @@ public class PermissionDAO {
*/ */
private void forPermissionToBuildString( private void forPermissionToBuildString(
@NotNull List<PermissionDO> permissionList, @NotNull List<PermissionDO> permissionList,
List<String> getPermissionForString List<String> getPermissionForString) {
) {
for (PermissionDO permission : permissionList) { for (PermissionDO permission : permissionList) {
// 寻找是否存在父亲 // 寻找是否存在父亲
StringBuilder permissionString = new StringBuilder(); StringBuilder permissionString = new StringBuilder();

View File

@ -34,7 +34,6 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectAdd(projectAdd); projectMapper.projectAdd(projectAdd);
} }
@ -101,13 +100,14 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.sortProject 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.sortProject 方法");
for (int i = 0; i < projectShowDO.getData().size(); i++) { for (int i = 0; i < projectShowDO.getData().size(); i++) {
for (int j = 0; j < projectShowDO.getData().size(); j++) { for (int j = 0; j < projectShowDO.getData().size(); j++) {
ProjectShowDO.DataDO dataDO = projectShowDO.getData().get(i);
if ("desc".equals(projectShowDO.getOrder())) { if ("desc".equals(projectShowDO.getOrder())) {
if (dataDO.getDisplayOrder() > projectShowDO.getData().get(j).getDisplayOrder()) { if (projectShowDO.getData().get(i).getDisplayOrder()
> projectShowDO.getData().get(j).getDisplayOrder()) {
Collections.swap(projectShowDO.getData(), i, j); Collections.swap(projectShowDO.getData(), i, j);
} }
} else { } else {
if (dataDO.getDisplayOrder() < projectShowDO.getData().get(j).getDisplayOrder()) { if (projectShowDO.getData().get(i).getDisplayOrder()
< projectShowDO.getData().get(j).getDisplayOrder()) {
Collections.swap(projectShowDO.getData(), i, j); Collections.swap(projectShowDO.getData(), i, j);
} }
} }
@ -150,7 +150,11 @@ public class ProjectDAO {
} }
} }
public List<ProjectDO> workget(Long userId, Integer listAll, List<String> tags, List<Integer> isFinish, Integer is) { public List<ProjectDO> workget(Long userId,
Integer listAll,
List<String> tags,
List<Integer> isFinish,
Integer is) {
log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
if (tags != null && !tags.isEmpty()) { if (tags != null && !tags.isEmpty()) {
@ -247,5 +251,22 @@ public class ProjectDAO {
return projectMapper.getProjectWorkById(id); return projectMapper.getProjectWorkById(id);
} }
public List<ProjectDO> getProjectByPrincipalUser(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.getProjectFromUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectByPrincipalUser(uid);
}
public List<ProjectWorkDO> getAllSubsystemByUserId(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubsystemByUserId 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getAllSubsystemByUserId(uid);
}
public List<ProjectWorkDO> getAllSubmoduleByUserId(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubmoduleByUserId 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getAllSubmoduleByUserId(uid);
}
} }

View File

@ -0,0 +1,49 @@
package com.jsl.oa.dao;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.mapper.ReviewMapper;
import com.jsl.oa.model.dodata.ReviewDO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* ReviewDAO
* <hr/>
* 用于处理审核相关的请求, 包括获取审核列表编辑审核信息等
*
* @author zrx_hhh
* @version v1.0.0
* @since v1.0.0-SNAPSHOT
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class ReviewDAO {
private final ReviewMapper reviewMapper;
private final ProjectMapper projectMapper;
public List<ReviewDO> getPrincipalUserReview(Long pid) {
return reviewMapper.selectAllReviewFromProject(pid);
}
public String getNameBySubproject(Long subId) {
if (subId != null) {
return projectMapper.getProjectWorkById(subId).getName();
}
if (subId == null) {
return "";
}
return "";
}
}

View File

@ -18,7 +18,7 @@ import java.util.List;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class RoleDAO { public class RoleDAO {
public final RoleMapper roleMapper; private final RoleMapper roleMapper;
private final Gson gson; private final Gson gson;
private final RoleRedisUtil<String> roleRedisUtil; private final RoleRedisUtil<String> roleRedisUtil;
@ -26,7 +26,8 @@ public class RoleDAO {
log.info("\t> 执行 DAO 层 RoleDAO.addRoleUser 方法"); log.info("\t> 执行 DAO 层 RoleDAO.addRoleUser 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
roleMapper.roleAddUser(uid, rid); roleMapper.roleAddUser(uid, rid);
roleRedisUtil.setData(BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120); roleRedisUtil.setData(
BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120);
} }
public void delRoleUser(Long uid) { public void delRoleUser(Long uid) {
@ -122,7 +123,8 @@ public class RoleDAO {
log.info("\t> 执行 DAO 层 RoleDAO.roleChangeUser 方法"); log.info("\t> 执行 DAO 层 RoleDAO.roleChangeUser 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
if (roleMapper.roleChangeUser(uid, rid)) { if (roleMapper.roleChangeUser(uid, rid)) {
roleRedisUtil.setData(BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120); roleRedisUtil.setData(
BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120);
return true; return true;
} else { } else {
return false; return false;
@ -140,4 +142,6 @@ public class RoleDAO {
return gson.fromJson(getRedisData, RoleUserDO.class); return gson.fromJson(getRedisData, RoleUserDO.class);
} }
} }
} }

View File

@ -3,6 +3,8 @@ package com.jsl.oa.dao;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jsl.oa.common.constant.BusinessConstants; import com.jsl.oa.common.constant.BusinessConstants;
import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.RoleDO;
import com.jsl.oa.model.dodata.RoleUserDO;
import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.dodata.UserDO;
import com.jsl.oa.model.vodata.UserAllCurrentVO; import com.jsl.oa.model.vodata.UserAllCurrentVO;
import com.jsl.oa.model.vodata.UserCurrentBackVO; import com.jsl.oa.model.vodata.UserCurrentBackVO;
@ -23,9 +25,9 @@ import java.util.List;
* 用于用户的增删改查,以及用户权限的获取,用户信息的获取,用户信息的修改,用户信息的删除,用户信息的锁定,用户信息的解锁,用户信息的添加,用户信息的 * 用于用户的增删改查,以及用户权限的获取,用户信息的获取,用户信息的修改,用户信息的删除,用户信息的锁定,用户信息的解锁,用户信息的添加,用户信息的
* 编辑等 * 编辑等
* *
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
* @version v1.1.0 * @version v1.1.0
* @since v1.1.0 * @since v1.1.0
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
*/ */
@Slf4j @Slf4j
@Component @Component
@ -49,11 +51,13 @@ public class UserDAO {
*/ */
public UserDO getUserInfoByUsername(String username) { public UserDO getUserInfoByUsername(String username) {
log.info("\t> 执行 DAO 层 UserDAO.getUserInfoByUsername 方法"); log.info("\t> 执行 DAO 层 UserDAO.getUserInfoByUsername 方法");
UserDO userDO; UserDO userDO = null;
// Redis 获取数据 // Redis 获取数据
// TODO: 10000-Redis: Redis 获取数据 // TODO: 10000-Redis: Redis 获取数据
// 从数据库获取用户信息 // 从数据库获取用户信息
if (userDO == null) {
userDO = userMapper.getUserInfoByUsername(username); userDO = userMapper.getUserInfoByUsername(username);
}
return userDO; return userDO;
} }
@ -112,7 +116,7 @@ public class UserDAO {
/** /**
* 用户账号锁定 * 用户账号锁定
* *
* @param id 用户id * @param id
*/ */
public void userLock(Long id, Long isLock) { public void userLock(Long id, Long isLock) {
log.info("\t> 执行 DAO 层 UserDAO.userLock 方法"); log.info("\t> 执行 DAO 层 UserDAO.userLock 方法");
@ -133,7 +137,8 @@ public class UserDAO {
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO(); UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
userCurrentBackVO.setUsers(new ArrayList<>()) userCurrentBackVO.setUsers(new ArrayList<>())
.setCount(userMapper.getUsersCount()); .setCount(userMapper.getUsersCount());
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO))); userCurrentDO
.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
return userCurrentBackVO; return userCurrentBackVO;
} }
@ -145,16 +150,17 @@ public class UserDAO {
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO(); UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
userCurrentBackVO.setUsers(new ArrayList<>()) userCurrentBackVO.setUsers(new ArrayList<>())
.setCount(userMapper.getUsersCount()); .setCount(userMapper.getUsersCount());
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO))); userCurrentDO
.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
return userCurrentBackVO; return userCurrentBackVO;
} }
/** /**
* Adds a new user to the database. * @return
* * @Description 用户添加
* @param userDO The UserDO object containing the user's information. * @Date: 2024/1/16
* @return True if the user is successfully added, false otherwise. * @Param userDO: user 数据库表实体类
*/ */
public boolean userAdd(UserDO userDO) { public boolean userAdd(UserDO userDO) {
log.info("\t> 执行 DAO 层 userAdd 方法"); log.info("\t> 执行 DAO 层 userAdd 方法");
@ -168,14 +174,12 @@ public class UserDAO {
userMapper.updateUser(userDO); userMapper.updateUser(userDO);
} }
/** /**
* <h2>用户名获取用户信息</h2> * @Description 根据username检测用户是否重复
* <hr/> * @Date: 2024/1/16
* 根据用户名获取用户信息 * @Param username: 用户名
* **/
* @param username 用户名
* @return {@link UserDO}
*/
public Boolean isRepeatUser(String username) { public Boolean isRepeatUser(String username) {
log.info("\t> 执行 DAO 层 isRepeatUser 方法"); log.info("\t> 执行 DAO 层 isRepeatUser 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
@ -184,21 +188,22 @@ public class UserDAO {
/** /**
* 通过用户编号获取用户信息 * @Description 检测用户工号是否重复
* * @Date 2024/1/18
* @param userNum 用户编号 * @Param userNum:
* @return UserDO **/
*/
public Boolean isRepeatUserNum(String userNum) { public Boolean isRepeatUserNum(String userNum) {
return userMapper.getUserByUserNum(userNum) != null; if (userMapper.getUserByUserNum(userNum) != null) {
return true;
}
return false;
} }
/** /**
* 通过 Id 获取用户信息 * @Description 根据用户id获取用户数据
* * @Date 2024/1/17
* @param userId 用户id * @Param userId
* @return UserDO **/
*/
public UserDO getUserById(Long userId) { public UserDO getUserById(Long userId) {
log.info("\t> 执行 DAO 层 getUserById 方法"); log.info("\t> 执行 DAO 层 getUserById 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
@ -206,6 +211,34 @@ public class UserDAO {
} }
/**
* @Description 根据用户id查询对应用户权限
* @Date 2024/1/18
* @Param uid:用户id
**/
public RoleUserDO getRoleFromUser(Long uid) {
log.info("\t> 执行 DAO 层 getRoleFromUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
return userMapper.getRoleIdByUserId(uid);
}
/**
* @Description 检验用户权限是否为管理员
* @Date 2024/1/18
* @Param null:用户id
**/
public Boolean isManagerByRoleId(Long roleId) {
log.info("\t> 执行 DAO 层 isManagerByRoleId 方法");
log.info("\t\t> 从 MySQL 获取数据");
RoleDO role = userMapper.getRoleById(roleId);
if (role == null) {
return false;
}
return "admin".equals(role.getRoleName());
}
public List<UserDO> getRecommendUser() { public List<UserDO> getRecommendUser() {
log.info("\t> 执行 DAO 层 getRecommendUser 方法"); log.info("\t> 执行 DAO 层 getRecommendUser 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
@ -223,4 +256,10 @@ public class UserDAO {
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
return userMapper.getUserByPhone(phone); return userMapper.getUserByPhone(phone);
} }
public Long getUsersCount() {
log.info("\t> 执行 DAO 层 getUsersCount 方法");
log.info("\t\t> 从 MySQL 获取数据");
return userMapper.getUsersCount();
}
} }

View File

@ -54,8 +54,7 @@ public class ProcessException {
@ExceptionHandler(value = MissingServletRequestParameterException.class) @ExceptionHandler(value = MissingServletRequestParameterException.class)
public ResponseEntity<BaseResponse> businessMissingServletRequestParameterException( public ResponseEntity<BaseResponse> businessMissingServletRequestParameterException(
MissingServletRequestParameterException e MissingServletRequestParameterException e) {
) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
return ResponseEntity return ResponseEntity
.status(400) .status(400)
@ -100,8 +99,7 @@ public class ProcessException {
*/ */
@ExceptionHandler(value = MethodArgumentTypeMismatchException.class) @ExceptionHandler(value = MethodArgumentTypeMismatchException.class)
public ResponseEntity<BaseResponse> businessMethodArgumentTypeMismatchException( public ResponseEntity<BaseResponse> businessMethodArgumentTypeMismatchException(
@NotNull MethodArgumentTypeMismatchException e @NotNull MethodArgumentTypeMismatchException e) {
) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
return ResultUtil.error("ServerInternalError", 50002, "服务器内部错误"); return ResultUtil.error("ServerInternalError", 50002, "服务器内部错误");
} }

View File

@ -11,6 +11,7 @@ import java.util.List;
public interface ModuleMapper { public interface ModuleMapper {
List<ProjectWorkDO> getByProjectId(Integer projectId, Long userId, int is); List<ProjectWorkDO> getByProjectId(Integer projectId, Long userId, int is);
List<ProjectWorkDO> getBySysId(Integer sysId, Long userId, int is); List<ProjectWorkDO> getBySysId(Integer sysId, Long userId, int is);

View File

@ -51,12 +51,15 @@ public interface ProjectMapper {
@Insert("insert into organize_oa.oa_config(value, data, created_at)value ('project_show',null,NOW())") @Insert("insert into organize_oa.oa_config(value, data, created_at)value ('project_show',null,NOW())")
void insertProjectShow(); void insertProjectShow();
@Update("UPDATE organize_oa.oa_config" @Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow},"
+ " SET data = #{setProjectShow}, updated_at = CURRENT_TIMESTAMP " + " updated_at = CURRENT_TIMESTAMP WHERE value = 'project_show'")
+ " WHERE value = 'project_show'"
)
boolean setProjectShow(String setProjectShow); boolean setProjectShow(String setProjectShow);
//@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" +
//"like concat('%',#{tags},'%')")
//@Select("select * from organize_oa.oa_project where is_finish=#{isFinish}
// and is_delete=false and principal_id=#{userId}")
List<ProjectDO> getByIsfinish(Long userId, List<Integer> isFinish); List<ProjectDO> getByIsfinish(Long userId, List<Integer> isFinish);
List<ProjectDO> getByTags(Long userId, List<String> tags, List<Integer> isFinish); List<ProjectDO> getByTags(Long userId, List<String> tags, List<Integer> isFinish);
@ -92,7 +95,9 @@ public interface ProjectMapper {
boolean updateUserForProjectUser(Long uid, Long id); boolean updateUserForProjectUser(Long uid, Long id);
//@Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}") //@Select("select * from organize_oa.oa_project_work
// where is_finish=#{isFinish} and is_delete=false
// and principal_id =#{userId}")
List<ProjectDO> workgetByIsfinish(Long userId, List<Integer> isFinish, Integer is); List<ProjectDO> workgetByIsfinish(Long userId, List<Integer> isFinish, Integer is);
List<ProjectDO> workgetByTags(Long userId, List<String> tags, Integer is, List<Integer> isFinish); List<ProjectDO> workgetByTags(Long userId, List<String> tags, Integer is, List<Integer> isFinish);
@ -117,9 +122,23 @@ public interface ProjectMapper {
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}") @Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
Long getPirIdbyWorkid(Long pid); Long getPirIdbyWorkid(Long pid);
@Select("select principal_id from organize_oa.oa_project_work where id=#{id}") @Select("select principal_id from organize_oa.oa_project_work where id=#{id} AND"
+ "is_delete = 0")
Long getPid(Integer id); Long getPid(Integer id);
@Select("select * from organize_oa.oa_project_work where id=#{id}") @Select("select * from organize_oa.oa_project_work where id=#{id}"
+ "AND is_delete = 0")
ProjectWorkDO getProjectWorkById(Long id); ProjectWorkDO getProjectWorkById(Long id);
@Select("SELECT * FROM organize_oa.oa_project where principal_id = #{uid} "
+ "AND is_delete = 0")
List<ProjectDO> getProjectByPrincipalUser(Long uid);
@Select("SELECT * FROM organize_oa.oa_project_work where principal_id = #{uid} "
+ "AND is_delete = 0 AND category = 0")
List<ProjectWorkDO> getAllSubsystemByUserId(Long uid);
@Select("SELECT * FROM organize_oa.oa_project_work where principal_id = #{uid}"
+ "AND is_delete = 0 AND category = 1")
List<ProjectWorkDO> getAllSubmoduleByUserId(Long uid);
} }

View File

@ -0,0 +1,27 @@
package com.jsl.oa.mapper;
import com.jsl.oa.model.dodata.ReviewDO;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface ReviewMapper {
@Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId}"
+ "AND is_delete = 0")
List<ReviewDO> selectAllReviewFromProject(Long projectId);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
+ "project_subsystem_id = #{subsystemId} AND is_delete = 0")
List<ReviewDO> selectReviewFromSubsystem(Long subsystemId);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
+ "project_submodule_id = #{subsystemId} AND is_delete = 0")
List<ReviewDO> selectReviewFromSubmodule(Long submoduleId);
@Select("SELECT * FROM organize_oa.oa_review WHERE id = #{id} AND is_delete = 0")
ReviewDO selectReviewById(Long id);
}

View File

@ -30,7 +30,8 @@ public interface RoleMapper {
@Select("SELECT * FROM organize_oa.oa_role ORDER BY id DESC") @Select("SELECT * FROM organize_oa.oa_role ORDER BY id DESC")
List<RoleDO> getRole(); List<RoleDO> getRole();
@Update("UPDATE organize_oa.oa_role SET role_name=#{roleName},display_name=#{displayName},updated_at=CURRENT_TIMESTAMP WHERE id=#{id}") @Update("UPDATE organize_oa.oa_role SET role_name=#{roleName},"
+ "display_name=#{displayName},updated_at=CURRENT_TIMESTAMP WHERE id=#{id}")
boolean roleEdit(RoleDO getRole); boolean roleEdit(RoleDO getRole);
@Update("UPDATE organize_oa.oa_role_user SET rid = #{rid},updated_at = current_timestamp WHERE uid = #{uid}") @Update("UPDATE organize_oa.oa_role_user SET rid = #{rid},updated_at = current_timestamp WHERE uid = #{uid}")

View File

@ -37,7 +37,9 @@ public interface UserMapper {
@Update("UPDATE organize_oa.oa_user SET is_delete = true ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id}") @Update("UPDATE organize_oa.oa_user SET is_delete = true ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
void userDelete(Long id); void userDelete(Long id);
@Update("UPDATE organize_oa.oa_user SET account_no_locked = #{isLock} ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ") @Update("UPDATE organize_oa.oa_user "
+ "SET account_no_locked = #{isLock} "
+ ", updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ")
void userLock(Long id, Long isLock); void userLock(Long id, Long isLock);
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{id}") @Select("SELECT * FROM organize_oa.oa_user WHERE id = #{id}")
@ -77,11 +79,12 @@ public interface UserMapper {
List<UserDO> getRecommendUser(); List<UserDO> getRecommendUser();
@Update("UPDATE organize_oa.oa_user " + @Update("UPDATE organize_oa.oa_user "
"SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, " + + "SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, "
"signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, " + + "signature = #{signature}, sex = #{sex}, "
"description = #{description} ,updated_at = current_timestamp " + + "avatar = #{avatar}, nickname = #{nickname}, "
"WHERE id = #{id}") + "description = #{description} ,updated_at = current_timestamp "
+ "WHERE id = #{id}")
void updateUser(UserDO userDO); void updateUser(UserDO userDO);
@Select("SELECT * FROM organize_oa.oa_user WHERE email = #{email}") @Select("SELECT * FROM organize_oa.oa_user WHERE email = #{email}")
@ -96,7 +99,8 @@ public interface UserMapper {
@Select("SELECT COUNT(*) FROM organize_oa.oa_user") @Select("SELECT COUNT(*) FROM organize_oa.oa_user")
Long getUsersCount(); Long getUsersCount();
@Select("select oa_user.id,oa_user.username,oa_role.role_name from organize_oa.oa_user join organize_oa.oa_role_user " + @Select("select oa_user.id,oa_user.username,"
"on oa_user.id = oa_role_user.uid join organize_oa.oa_role on oa_role_user.rid = oa_role.id") + "oa_role.role_name from organize_oa.oa_user join organize_oa.oa_role_user "
+ "on oa_user.id = oa_role_user.uid join organize_oa.oa_role on oa_role_user.rid = oa_role.id")
List<PrincipalSelectVO> getPrincipal(); List<PrincipalSelectVO> getPrincipal();
} }

View File

@ -14,8 +14,8 @@ import java.util.List;
* @since v1.1.0 * @since v1.1.0
* @version v1.1.0 * @version v1.1.0
* @author 176yunxuan * @author 176yunxuan
* @param <R> 对类型的泛型处理
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor

View File

@ -27,8 +27,8 @@ public class ProjectCuttingDO {
private Long cycle; private Long cycle;
private String name; private String name;
private String description; private String description;
private Integer is_delete; private Integer isDelete;
private Integer is_finish; private Integer isFinish;
private Integer status; private Integer status;
private boolean type; private boolean type;
private Timestamp beginTime; private Timestamp beginTime;

View File

@ -0,0 +1,52 @@
package com.jsl.oa.model.dodata;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* <h1>oa_review 数据表</h1>
* <hr/>
* 映射 oa_permission 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReviewDO {
//主键
private Long id;
//申请名称
private String name;
//申请理由
private String content;
//申请者用户id
private Long senderId;
//审核者用户id
private Long recipientId;
//审核类别0子系统1子模块
private Integer category;
//申请的项目id
private Long projectId;
//申请的子系统id
private Long projectSubsystemId;
//申请的子模块id
private Long projectSubmoduleId;
//申请时间
private Date applicationTime;
//审核时间
private Date reviewTime;
//审核结果0未通过1通过2未审批
private Integer reviewResult;
//是否删除0未删除1已删除
private Integer isDelete;
}

View File

@ -0,0 +1,47 @@
package com.jsl.oa.model.vodata;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
public class ReviewVO {
private Long id;
//申请名称
private String name;
//申请理由
private String content;
//申请者用户id
private Long senderId;
//审请者用户名称
private String senderName;
//审核者用户id
private Long recipientId;
//审核者用户名称
private String recipientName;
//审核类别子系统 子模块
private String category;
//申请的项目id
private Long projectId;
//申请的项目名称
private String projectName;
//申请的子系统id
private Long projectSubsystemId;
//申请的子系统名称
private String subsystemName;
//申请的子模块id
private Long projectSubmoduleId;
//申请的模块名称
private String submoduleName;
//申请时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date applicationTime;
//审核结果0未通过1通过2未审批
private String result;
}

View File

@ -27,10 +27,10 @@ public class UserRegisterVO {
@NotBlank(message = "家乡不能为空") @NotBlank(message = "家乡不能为空")
private String address; private String address;
@Pattern( @NotBlank(message = "电话不能为空")
regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", @Pattern(regexp =
message = "电话格式错误" "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",
) message = "电话格式错误")
private String phone; private String phone;
@NotBlank(message = "邮箱不能为空") @NotBlank(message = "邮箱不能为空")

View File

@ -33,7 +33,6 @@ public interface InfoService {
* *
* @param request 请求 * @param request 请求
* @param carouselVO 轮播图VO * @param carouselVO 轮播图VO
* @param id 轮播图ID
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO); BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO);

View File

@ -24,7 +24,12 @@ public interface ProjectService {
BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id); BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id);
BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize); BaseResponse get(Integer listAll,
HttpServletRequest request,
List<String> tags,
List<Integer> isFinish,
Integer page,
Integer pageSize);
BaseResponse getByName(String name); BaseResponse getByName(String name);
@ -36,7 +41,13 @@ public interface ProjectService {
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid); BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer is, Integer page, Integer pageSize); BaseResponse workget(Integer listAll,
HttpServletRequest request,
List<String> tags,
List<Integer> isFinish,
Integer is,
Integer page,
Integer pageSize);
BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);

View File

@ -0,0 +1,12 @@
package com.jsl.oa.services;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
public interface ReviewService {
BaseResponse getUserReview(Long projectId, HttpServletRequest request);
}

View File

@ -16,9 +16,9 @@ import javax.servlet.http.HttpServletRequest;
* @since v1.1.0 * @since v1.1.0
*/ */
public interface RoleService { public interface RoleService {
BaseResponse roleAddUser(HttpServletRequest request,Long uid, Long rid); BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid);
BaseResponse roleRemoveUser(HttpServletRequest request,Long uid); BaseResponse roleRemoveUser(HttpServletRequest request, Long uid);
BaseResponse roleGet(HttpServletRequest request, String id); BaseResponse roleGet(HttpServletRequest request, String id);

View File

@ -1,5 +1,6 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.dodata.UserDO;
import com.jsl.oa.model.vodata.UserAddVO; import com.jsl.oa.model.vodata.UserAddVO;
import com.jsl.oa.model.vodata.UserAllCurrentVO; import com.jsl.oa.model.vodata.UserAllCurrentVO;
import com.jsl.oa.model.vodata.UserEditProfileVO; import com.jsl.oa.model.vodata.UserEditProfileVO;
@ -17,6 +18,15 @@ import javax.servlet.http.HttpServletRequest;
* @since v1.1.0 * @since v1.1.0
*/ */
public interface UserService { public interface UserService {
/**
* <h2>根据用户名获取用户信息</h2>
* <hr/>
* 该方法用于根据用户名获取用户信息
*
* @param username 用户名
* @return 用户信息
*/
UserDO getUserInfoByUsername(String username);
/** /**
* <h2>用户账号删除</h2> * <h2>用户账号删除</h2>
@ -71,7 +81,7 @@ public interface UserService {
* @param phone 手机号 * @param phone 手机号
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
BaseResponse userCurrent(String id, String username, String email, String phone, HttpServletRequest request); BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone);
BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request); BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request);

View File

@ -4,6 +4,7 @@ import com.jsl.oa.annotations.CheckUserAbleToUse;
import com.jsl.oa.common.constant.BusinessConstants; import com.jsl.oa.common.constant.BusinessConstants;
import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.PermissionDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.RoleUserDO; import com.jsl.oa.model.dodata.RoleUserDO;
import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.dodata.UserDO;
@ -39,6 +40,7 @@ import java.util.regex.Pattern;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AuthServiceImpl implements AuthService { public class AuthServiceImpl implements AuthService {
private final UserMapper userMapper; private final UserMapper userMapper;
private final RoleMapper roleMapper;
private final RoleDAO roleDAO; private final RoleDAO roleDAO;
private final PermissionDAO permissionDAO; private final PermissionDAO permissionDAO;
@ -273,7 +275,7 @@ public class AuthServiceImpl implements AuthService {
getPermissionForString = permissionDAO.getPermission(userDO.getId()); getPermissionForString = permissionDAO.getPermission(userDO.getId());
} }
// 获取用户角色 // 获取用户角色
RoleUserDO getUserRole = roleDAO.roleMapper.getRoleUserByUid(userDO.getId()); RoleUserDO getUserRole = roleMapper.getRoleUserByUid(userDO.getId());
if (getUserRole == null) { if (getUserRole == null) {
getUserRole = new RoleUserDO(); getUserRole = new RoleUserDO();
getUserRole.setRid(0L) getUserRole.setRid(0L)

View File

@ -93,12 +93,13 @@ public class ProjectServiceImpl implements ProjectService {
} else { } else {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
}//增加子模块 } else {
else {
//是否是子系统的负责人 //是否是子系统的负责人
if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) { if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) {
projectDAO.projectWorkAdd(projectWorkVO); projectDAO.projectWorkAdd(projectWorkVO);
} else return ResultUtil.error(ErrorCode.NOT_PERMISSION); } else {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
} }
return ResultUtil.success("添加成功"); return ResultUtil.success("添加成功");
@ -231,8 +232,8 @@ public class ProjectServiceImpl implements ProjectService {
//判断用户是否为老师 或者 项目负责人 //判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper) || if (!Processing.checkUserIsTeacher(request, roleMapper)
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { || !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
@ -361,7 +362,10 @@ public class ProjectServiceImpl implements ProjectService {
} }
@Override @Override
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) { public BaseResponse get(Integer listAll,
HttpServletRequest request,
List<String> tags, List<Integer> isFinish,
Integer page, Integer pageSize) {
log.info("\t> 执行 Service 层 ProjectService.get 方法"); log.info("\t> 执行 Service 层 ProjectService.get 方法");
//获取用户 //获取用户
@ -437,7 +441,11 @@ public class ProjectServiceImpl implements ProjectService {
} }
@Override @Override
public BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer is, Integer page, Integer pageSize) { public BaseResponse workget(Integer listAll,
HttpServletRequest request,
List<String> tags,
List<Integer> isFinish,
Integer is, Integer page, Integer pageSize) {
log.info("\t> 执行 Service 层 ProjectService.workget 方法"); log.info("\t> 执行 Service 层 ProjectService.workget 方法");
//获取用户 //获取用户

View File

@ -0,0 +1,118 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.ReviewDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.ReviewMapper;
import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.dodata.ReviewDO;
import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class ReviewServiceImpl implements ReviewService {
private final UserDAO userDAO;
private final ReviewDAO reviewDAO;
private final ProjectDAO projectDAO;
private final UserMapper userMapper;
private final ReviewMapper reviewMapper;
@Override
public BaseResponse getUserReview(Long projectId, HttpServletRequest request) {
log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法");
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
//存储审核数据的数组
List<ReviewVO> reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewMapper.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewMapper.
selectReviewFromSubsystem(projectWorkDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
}
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewMapper.
selectReviewFromSubmodule(projectWorkDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
}
return ResultUtil.success(reviewData);
}
/**
* @Description: 封装审核的VO类
* @Date: 2024/4/11
* @Param reviewDOS:
**/
public List<ReviewVO> encapsulateArrayClass(List<ReviewDO> reviewDOS) {
// 定义封装类结果集数组
List<ReviewVO> resultData = new ArrayList<>();
for (ReviewDO reviewDO : reviewDOS) {
ReviewVO reviewVO = new ReviewVO();
// 现将相同的属性赋值
Processing.copyProperties(reviewDO, reviewVO);
// 赋值其他属性
reviewVO.setCategory(Processing.turnReviewCategory(reviewDO.getCategory()))
.setSenderName(userMapper.getUserById(reviewDO.getSenderId()).getNickname())
.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname())
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
.setSubsystemName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubsystemId()))
.setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()))
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()));
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
}
return resultData;
}
}

View File

@ -4,6 +4,7 @@ import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO; import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.exception.ClassCopyException; import com.jsl.oa.exception.ClassCopyException;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.dodata.RoleDO; import com.jsl.oa.model.dodata.RoleDO;
import com.jsl.oa.model.vodata.RoleAddVo; import com.jsl.oa.model.vodata.RoleAddVo;
import com.jsl.oa.model.vodata.RoleEditVO; import com.jsl.oa.model.vodata.RoleEditVO;
@ -41,11 +42,13 @@ public class RoleServiceImpl implements RoleService {
private final RoleDAO roleDAO; private final RoleDAO roleDAO;
private final UserDAO userDAO; private final UserDAO userDAO;
private final RoleMapper roleMapper;
@Override @Override
@CheckUserHasPermission("role.add") @CheckUserHasPermission("role.add")
public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) { public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) {
log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法"); log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (Processing.checkUserIsAdmin(request, roleMapper)) {
roleDAO.addRoleUser(uid, rid); roleDAO.addRoleUser(uid, rid);
return ResultUtil.success(); return ResultUtil.success();
} else { } else {
@ -57,7 +60,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) { public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) {
log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法"); log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (Processing.checkUserIsAdmin(request, roleMapper)) {
roleDAO.delRoleUser(uid); roleDAO.delRoleUser(uid);
return ResultUtil.success(); return ResultUtil.success();
} else { } else {
@ -77,7 +80,7 @@ public class RoleServiceImpl implements RoleService {
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES); return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
} }
//检测用户权限是否为管理员 //检测用户权限是否为管理员
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (Processing.checkUserIsAdmin(request, roleMapper)) {
if (roleDAO.roleChangeUser(uid, rid)) { if (roleDAO.roleChangeUser(uid, rid)) {
return ResultUtil.success(); return ResultUtil.success();
} else { } else {
@ -92,7 +95,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleGet(HttpServletRequest request, String id) { public BaseResponse roleGet(HttpServletRequest request, String id) {
log.info("\t> 执行 Service 层 RoleService.roleGet 方法"); log.info("\t> 执行 Service 层 RoleService.roleGet 方法");
// 检查用户权限 // 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
// 获取 Role 权限组 // 获取 Role 权限组
@ -119,7 +122,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) { public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) {
log.info("\t> 执行 Service 层 RoleService.roleEdit 方法"); log.info("\t> 执行 Service 层 RoleService.roleEdit 方法");
// 检查用户权限 // 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
// 获取 Role 相关信息 // 获取 Role 相关信息
@ -143,7 +146,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleDelete(HttpServletRequest request, Long id) { public BaseResponse roleDelete(HttpServletRequest request, Long id) {
log.info("\t> 执行 Service 层 RoleService.roleDelete 方法"); log.info("\t> 执行 Service 层 RoleService.roleDelete 方法");
// 检查用户权限 // 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
// 获取 Role 相关信息 // 获取 Role 相关信息
@ -165,7 +168,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse addRole(HttpServletRequest request, RoleAddVo roleAddVO) throws ClassCopyException { public BaseResponse addRole(HttpServletRequest request, RoleAddVo roleAddVO) throws ClassCopyException {
log.info("\t> 执行 Service 层 RoleService.addRole 方法"); log.info("\t> 执行 Service 层 RoleService.addRole 方法");
// 检查用户权限 // 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
// 检查权限名称是否重复 // 检查权限名称是否重复

View File

@ -5,7 +5,8 @@ import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.PermissionDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO; import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.model.dodata.RoleDO; import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.dodata.RoleUserDO; import com.jsl.oa.model.dodata.RoleUserDO;
import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.dodata.UserDO;
import com.jsl.oa.model.vodata.*; import com.jsl.oa.model.vodata.*;
@ -22,8 +23,6 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
@ -42,16 +41,22 @@ import java.util.regex.Pattern;
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserServiceImpl implements UserService { public class UserServiceImpl implements UserService {
private final RoleMapper roleMapper;
private final UserDAO userDAO; private final UserDAO userDAO;
private final RoleDAO roleDAO; private final RoleDAO roleDAO;
private final PermissionDAO permissionDAO; private final PermissionDAO permissionDAO;
@Override
public UserDO getUserInfoByUsername(String username) {
return userDAO.getUserInfoByUsername(username);
}
@Override @Override
public BaseResponse userDelete(HttpServletRequest request, Long id) { public BaseResponse userDelete(HttpServletRequest request, Long id) {
log.info("\t> 执行 Service 层 UserService.userDelete 方法"); log.info("\t> 执行 Service 层 UserService.userDelete 方法");
//判断用户是否存在 //判断用户是否存在
if (userDAO.isExistUser(id)) { if (userDAO.isExistUser(id)) {
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
// 用户是否已删除 // 用户是否已删除
@ -69,7 +74,7 @@ public class UserServiceImpl implements UserService {
@Override @Override
public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) { public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) {
log.info("\t> 执行 Service 层 UserService.userLock 方法"); log.info("\t> 执行 Service 层 UserService.userLock 方法");
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
//判断用户是否存在 //判断用户是否存在
@ -127,15 +132,14 @@ public class UserServiceImpl implements UserService {
return ResultUtil.success(userCurrentBackVO); return ResultUtil.success(userCurrentBackVO);
} }
@SuppressWarnings("checkstyle:NestedIfDepth")
@Override @Override
@CheckUserAbleToUse @CheckUserAbleToUse
public BaseResponse userCurrent( public BaseResponse userCurrent(HttpServletRequest request,
String id, String id,
String username, String username,
String email, String email,
String phone, String phone) {
HttpServletRequest request
) {
log.info("\t> 执行 Service 层 UserService.userCurrent 方法"); log.info("\t> 执行 Service 层 UserService.userCurrent 方法");
if (id == null && username == null && email == null && phone == null) { if (id == null && username == null && email == null && phone == null) {
// Token获取信息 // Token获取信息
@ -148,22 +152,14 @@ public class UserServiceImpl implements UserService {
} else { } else {
// 检查是否是管理员用户 // 检查是否是管理员用户
Long userId = Processing.getAuthHeaderToUserId(request); Long userId = Processing.getAuthHeaderToUserId(request);
if (userId != null) { if (userId != null && !permissionDAO.getPermission(userId).contains("user.current")) {
List<String> getPermission = permissionDAO.getPermission(userId);
// 匹配权限
if (!getPermission.contains("user.current")) {
log.info("\t> 用户权限不足,检查是否是管理员"); log.info("\t> 用户权限不足,检查是否是管理员");
// 检查用户是管理员
RoleUserDO roleUserDO = roleDAO RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
.getRoleUserByUid(Objects.requireNonNull(Processing.getAuthHeaderToUserId(request)));
if (roleUserDO == null) { if (roleUserDO == null || !roleUserDO.getRid().equals(roleMapper.getRoleByRoleName("admin").getId())) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin");
if (!roleUserDO.getRid().equals(roleDO.getId())) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
}
} else { } else {
return ResultUtil.error(ErrorCode.TOKEN_NOT_EXIST); return ResultUtil.error(ErrorCode.TOKEN_NOT_EXIST);
} }
@ -192,7 +188,7 @@ public class UserServiceImpl implements UserService {
public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) { public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) {
log.info("\t> 执行 Service 层 UserService.userAdd 方法"); log.info("\t> 执行 Service 层 UserService.userAdd 方法");
// 检测用户是否为管理员 // 检测用户是否为管理员
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
//如果用户不重复添加用户 //如果用户不重复添加用户
@ -230,7 +226,7 @@ public class UserServiceImpl implements UserService {
public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) { public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) {
log.info("\t> 执行 Service 层 userEdit 方法"); log.info("\t> 执行 Service 层 userEdit 方法");
// 检测用户是否为管理员 // 检测用户是否为管理员
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
//根据id获取用户信息 //根据id获取用户信息

View File

@ -51,7 +51,8 @@ public enum ErrorCode {
PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"), PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"),
PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"), PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"),
PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"), PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"),
PROJECT_FILE_JSON_ERROR("ProjectFileJsonError", 40019, "项目文件json格式错误"); PROJECT_FILE_JSON_ERROR("ProjectFileJsonError", 40019, "项目文件json格式错误"),
PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户");
private final String output; private final String output;

View File

@ -182,9 +182,9 @@ public class Processing {
/** /**
* 检查用户是否是老师 * 检查用户是否是老师
* *
* @param request 请求 * @param request
* @param roleMapper RoleMapper * @param roleMapper
* @return 如果为 true 是老师false 不是老师 * @return
*/ */
public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleMapper roleMapper) { public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request)); RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
@ -205,16 +205,11 @@ public class Processing {
/** /**
* 将属性从源对象复制到目标对象 * @Description: VO类与实体类属性赋值
* * @Date: 2024/1/18
* @param <T> 目标对象的类型 * @Param source:
* @param <S> 源对象的类型 * @Param dest:
* @param source 从中复制属性的源对象 **/
* @param target 属性将复制到的目标对象
* @return 复制属性后的目标对象
* @throws ClassCopyException 如果在复制过程中出现错误
*/
@Contract(pure = true)
public static <T, S> T copyProperties(@NotNull S source, @NotNull T target) throws ClassCopyException { public static <T, S> T copyProperties(@NotNull S source, @NotNull T target) throws ClassCopyException {
Class<?> sourceClass = source.getClass(); Class<?> sourceClass = source.getClass();
Class<?> targetClass = target.getClass(); Class<?> targetClass = target.getClass();
@ -285,10 +280,7 @@ public class Processing {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
public static @NotNull UserCurrentBackVO.UserCurrent returnUserInfo( public static @NotNull UserCurrentBackVO.UserCurrent returnUserInfo(
@NotNull UserDO userDO, @NotNull UserDO userDO, RoleDAO roleDAO, PermissionDAO permissionDAO) {
RoleDAO roleDAO,
PermissionDAO permissionDAO
) {
UserCurrentBackVO.UserCurrent userCurrent = new UserCurrentBackVO.UserCurrent(); UserCurrentBackVO.UserCurrent userCurrent = new UserCurrentBackVO.UserCurrent();
// 获取用户角色 // 获取用户角色
RoleUserDO getUserRole = roleDAO.getRoleUserByUid(userDO.getId()); RoleUserDO getUserRole = roleDAO.getRoleUserByUid(userDO.getId());
@ -308,29 +300,30 @@ public class Processing {
// 获取权限列表信息 // 获取权限列表信息
getPermissionForString = permissionDAO.getPermission(userDO.getId()); getPermissionForString = permissionDAO.getPermission(userDO.getId());
} }
userCurrent.setUser(new UserCurrentBackVO.ReturnUser() userCurrent.setUser(new UserCurrentBackVO.ReturnUser().
.setId(userDO.getId()) setId(userDO.getId()).
.setJobId(userDO.getJobId()) setJobId(userDO.getJobId()).
.setUsername(userDO.getUsername()) setUsername(userDO.getUsername()).
.setAddress(userDO.getAddress()) setAddress(userDO.getAddress()).
.setPhone(userDO.getPhone()) setPhone(userDO.getPhone()).
.setEmail(userDO.getEmail()) setEmail(userDO.getEmail()).
.setAge(userDO.getAge()) setAge(userDO.getAge()).
.setSignature(userDO.getSignature()) setSignature(userDO.getSignature()).
.setAvatar(userDO.getAvatar()) setAvatar(userDO.getAvatar()).
.setNickname(userDO.getNickname()) setNickname(userDO.getNickname()).
.setSex(userDO.getSex()) setSex(userDO.getSex()).
.setEnabled(userDO.getEnabled()) setEnabled(userDO.getEnabled()).
.setAccountNoExpired(userDO.getAccountNoExpired()) setAccountNoExpired(userDO.getAccountNoExpired()).
.setCredentialsNoExpired(userDO.getCredentialsNoExpired()) setCredentialsNoExpired(userDO.getCredentialsNoExpired()).
.setRecommend(userDO.getRecommend()) setRecommend(userDO.getRecommend()).
.setAccountNoLocked(userDO.getAccountNoLocked()) setAccountNoLocked(userDO.getAccountNoLocked()).
.setDescription(userDO.getDescription()) setDescription(userDO.getDescription()).
.setCreatedAt(userDO.getCreatedAt()) setCreatedAt(userDO.getCreatedAt()).
.setUpdatedAt(userDO.getUpdatedAt()) setUpdatedAt(userDO.getUpdatedAt()).
.setIsDelete(userDO.getIsDelete())) setIsDelete(userDO.getIsDelete())).
.setRole(new UserCurrentBackVO.ReturnUserRole().setRid(getUserRole.getRid())) setRole(new UserCurrentBackVO.ReturnUserRole().
.setPermission(getPermissionForString); setRid(getUserRole.getRid())).
setPermission(getPermissionForString);
return userCurrent; return userCurrent;
} }
@ -356,7 +349,11 @@ public class Processing {
return userDOS; return userDOS;
} }
public static void projectTosimply(ProjectSimpleVO projectSimpleVO, ProjectDO projectDO, UserDAO userDAO, ObjectMapper objectMapper) { public static void projectTosimply(
ProjectSimpleVO projectSimpleVO,
ProjectDO projectDO,
UserDAO userDAO,
ObjectMapper objectMapper) {
projectSimpleVO.setId(projectDO.getId()); projectSimpleVO.setId(projectDO.getId());
projectSimpleVO.setName(projectDO.getName()); projectSimpleVO.setName(projectDO.getName());
@ -432,4 +429,39 @@ public class Processing {
return vo; return vo;
} }
/**
* @Description: 转换审核的类别属性为字符串
* @Date: 2024/4/11
* @Param category:
**/
public static String turnReviewCategory(Integer category) {
switch (category) {
case 0:
return "子系统";
case 1:
return "模块";
default:
return "其他";
}
}
public static String turnReviewResult(Integer result) {
switch (result) {
case 0:
return "已拒绝";
case 1:
return "已审批";
case 2:
return "待审核";
default:
return "其他";
}
}
} }

View File

@ -1,5 +1,5 @@
maven: maven:
timestamp: @buildDate@ timestamp: 2024/3/10
spring: spring:
profiles: profiles:
active: @profile.active@ active: @profile.active@