Compare commits
14 Commits
fb5a8c06f6
...
3d7f457ef3
Author | SHA1 | Date | |
---|---|---|---|
3d7f457ef3 | |||
aa9efbcc8b | |||
05ccc3fdd8 | |||
![]() |
55cd033a7e | ||
5a57ea4b1c | |||
383de6766f | |||
381de9d54b | |||
061d469c17 | |||
a375bdee78 | |||
5f0e58ab06 | |||
![]() |
b994aeefd8 | ||
![]() |
365f2dfa67 | ||
![]() |
3e0652034e | ||
![]() |
3ca0bed1e1 |
23
mysql/oa_project_child.sql
Normal file
23
mysql/oa_project_child.sql
Normal file
@ -0,0 +1,23 @@
|
||||
USE organize_oa;
|
||||
|
||||
create table oa_project_child
|
||||
(
|
||||
id bigint unsigned auto_increment comment '项目id'
|
||||
primary key,
|
||||
project_id bigint unsigned not null comment '主要项目id',
|
||||
name varchar(100) not null comment '项目名称',
|
||||
principal_id bigint unsigned not null comment '项目负责人',
|
||||
description json null comment '项目描述(技术选择,描述)',
|
||||
cycle int unsigned not null comment '项目周期',
|
||||
work_load int unsigned default '1' not null comment '工作量(人天)',
|
||||
files json null comment '子项目文件',
|
||||
complete_time date null comment '完成时间',
|
||||
created_at timestamp default CURRENT_TIMESTAMP not null comment '创建时间',
|
||||
updated_at timestamp null comment '更新时间',
|
||||
is_delete tinyint(1) default 0 not null comment '项目是否删除',
|
||||
constraint oa_project_child_oa_user_id_fk
|
||||
foreign key (principal_id) references oa_user (id)
|
||||
on update cascade
|
||||
)
|
||||
comment '项目表';
|
||||
|
21
mysql/oa_project_modules.sql
Normal file
21
mysql/oa_project_modules.sql
Normal file
@ -0,0 +1,21 @@
|
||||
USE organize_oa;
|
||||
|
||||
create table oa_project_modules
|
||||
(
|
||||
id bigint unsigned auto_increment comment '模块id'
|
||||
primary key,
|
||||
project_child_id bigint unsigned not null comment '子项目id',
|
||||
name varchar(100) not null comment '模块名称',
|
||||
principal_id bigint unsigned not null comment '模块负责人',
|
||||
description json null comment '项目描述(技术选择,描述)',
|
||||
work_load int unsigned default '1' not null comment '工作量(人天)',
|
||||
complete_time datetime null comment '完成时间',
|
||||
created_at timestamp default CURRENT_TIMESTAMP not null comment '创建时间',
|
||||
updated_at timestamp null comment '更新时间',
|
||||
is_delete tinyint(1) default 0 not null comment '项目是否删除',
|
||||
constraint oa_project_modules_oa_user_id_fk
|
||||
foreign key (principal_id) references oa_user (id)
|
||||
on update cascade
|
||||
)
|
||||
comment '模块表';
|
||||
|
@ -39,7 +39,7 @@ public class JslOrganizeInternalOaRunnerApplication implements SmartInitializing
|
||||
public void afterSingletonsInstantiated() {
|
||||
// 获取数据库中的 SecurityKey
|
||||
try {
|
||||
SafeConstants.SECRET_KEY = infoMapper.getSecurityKey().getData();
|
||||
SafeConstants.setSecretKey(infoMapper.getSecurityKey().getData());
|
||||
} catch (NullPointerException exception) {
|
||||
// 生成密钥
|
||||
String key = Processing.generateKey(System.currentTimeMillis());
|
||||
@ -53,7 +53,7 @@ public class JslOrganizeInternalOaRunnerApplication implements SmartInitializing
|
||||
.setData(json)
|
||||
.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||
infoMapper.insertSecurityKey(configDO);
|
||||
SafeConstants.SECRET_KEY = key;
|
||||
SafeConstants.setSecretKey(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,8 +43,8 @@ import java.util.Objects;
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class AnnotationsAspect {
|
||||
private final RoleDAO roleDAO;
|
||||
private final UserMapper userMapper;
|
||||
private final RoleDAO roleDAO;
|
||||
private final PermissionDAO permissionDAO;
|
||||
|
||||
/**
|
||||
@ -91,12 +91,12 @@ public class AnnotationsAspect {
|
||||
} else {
|
||||
log.info("\t> 用户权限不足,检查是否是管理员");
|
||||
// 检查用户是管理员
|
||||
RoleUserDO roleUserDO = roleDAO.roleMapper
|
||||
RoleUserDO roleUserDO = roleDAO
|
||||
.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||
if (roleUserDO == null) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin");
|
||||
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
|
||||
if (roleUserDO.getRid().equals(roleDO.getId())) {
|
||||
return pjp.proceed();
|
||||
} else {
|
||||
|
@ -1,5 +1,12 @@
|
||||
package com.jsl.oa.common.constant;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
public class SafeConstants {
|
||||
public static String SECRET_KEY;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private static String secretKey;
|
||||
|
||||
}
|
||||
|
@ -178,7 +178,8 @@ public class AuthController {
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return authService.authChangePassword(userChangePasswordVO, request);
|
||||
return authService.
|
||||
authChangePassword((UserChangePasswordVO) request, (HttpServletRequest) userChangePasswordVO);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <h1>消息控制器</h1>
|
||||
@ -59,11 +59,12 @@ public class MessageController {
|
||||
* @return 消息列表
|
||||
*/
|
||||
@GetMapping("/message/get")
|
||||
public BaseResponse messageGet(@RequestParam(defaultValue = "1") Long page,
|
||||
@RequestParam(defaultValue = "10") Long pageSize,
|
||||
HttpServletRequest request,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
|
||||
public BaseResponse messageGet(
|
||||
@RequestParam(required = false, defaultValue = "1") Integer page,
|
||||
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime begin,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime end,
|
||||
HttpServletRequest request) {
|
||||
log.info("请求接口[GET]:/message/get");
|
||||
String token = request.getHeader("Authorization").replace("Bearer ", "");
|
||||
Long uid = JwtUtil.getUserId(token);
|
||||
@ -74,33 +75,18 @@ public class MessageController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有消息列表
|
||||
*
|
||||
* @param page 页码
|
||||
* @param pageSize 每页条数
|
||||
* @param request 请求对象
|
||||
* @param begin 开始日期
|
||||
* @param end 结束日期
|
||||
* @param uid 用户id
|
||||
* @return 消息列表
|
||||
*/
|
||||
@GetMapping("/message/get/all")
|
||||
public BaseResponse messageGetAll(@RequestParam(defaultValue = "1") Long page,
|
||||
@RequestParam(defaultValue = "10") Long pageSize,
|
||||
HttpServletRequest request,
|
||||
@RequestParam Long uid,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
|
||||
log.info("请求接口[GET]:/message/get/all");
|
||||
@GetMapping("/message/get/id")
|
||||
public BaseResponse messageGetById(
|
||||
@RequestParam Long id,
|
||||
HttpServletRequest request) {
|
||||
log.info("请求接口[GET]:/message/get/id");
|
||||
String token = request.getHeader("Authorization").replace("Bearer ", "");
|
||||
Long loginId = JwtUtil.getUserId(token);
|
||||
if (loginId == null) {
|
||||
Long uid = JwtUtil.getUserId(token);
|
||||
if (uid == null) {
|
||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||
} else {
|
||||
return messageService.messageGetAll(request, begin, end, page, pageSize, loginId, uid);
|
||||
return messageService.messageGetById(id, uid);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,11 @@ public class PermissionController {
|
||||
* @return {@link BaseResponse} 对象,包含操作结果。
|
||||
*/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.jsl.oa.controllers;
|
||||
|
||||
import com.jsl.oa.model.vodata.ProjectCuttingAddVO;
|
||||
import com.jsl.oa.model.vodata.ProjectCuttingEditVO;
|
||||
import com.jsl.oa.model.vodata.ProjectEditVO;
|
||||
import com.jsl.oa.model.vodata.ProjectInfoVO;
|
||||
import com.jsl.oa.model.vodata.ProjectWorkVO;
|
||||
import com.jsl.oa.model.vodata.business.info.ProjectShowVO;
|
||||
import com.jsl.oa.services.ProjectService;
|
||||
@ -51,17 +50,10 @@ public class ProjectController {
|
||||
return projectService.getHeader(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id 获取项目 id
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/get/id")
|
||||
public BaseResponse projectGetById(@RequestParam Integer id) {
|
||||
return projectService.getById(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param id 获取项目 id
|
||||
* @param id 要查询的 id
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/getwork/id")
|
||||
@ -69,19 +61,28 @@ public class ProjectController {
|
||||
return projectService.getWorkById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id 要查询项目的 id
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/get/id")
|
||||
public BaseResponse projectGetById(@RequestParam Integer id) {
|
||||
return projectService.getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 游客获取项目
|
||||
*
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/get/custom")
|
||||
public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id,
|
||||
public BaseResponse projectGetCustom(
|
||||
@RequestParam(required = false) List<String> tags,
|
||||
@RequestParam(required = false) List<Integer> isFinish,
|
||||
@RequestParam(required = false) List<String> isFinish,
|
||||
@RequestParam(required = false, defaultValue = "1") Integer page,
|
||||
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
|
||||
log.info("请求接口[GET]: /project/all/get");
|
||||
return projectService.tget(id, tags, isFinish, page, pageSize);
|
||||
log.info("请求接口[GET]: /project/get/custom");
|
||||
return projectService.tGet(tags, isFinish, page, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,31 +91,31 @@ public class ProjectController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/get")
|
||||
public BaseResponse projectGet(@RequestParam(required = false) Integer listAll,
|
||||
public BaseResponse projectGet(
|
||||
@RequestParam(required = false) List<String> tags,
|
||||
@RequestParam(required = false) List<Integer> isFinish,
|
||||
@RequestParam(required = false) List<String> isFinish,
|
||||
@RequestParam(required = false, defaultValue = "1") Integer page,
|
||||
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest request) {
|
||||
log.info("请求接口[GET]: /project/get");
|
||||
return projectService.get(listAll, request, tags, isFinish, page, pageSize);
|
||||
return projectService.get(request, tags, isFinish, page, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* 我管理的查询
|
||||
* 我管理的页面的项目查询
|
||||
*
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/work/get")
|
||||
public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll,
|
||||
@GetMapping("/project/child/get")
|
||||
public BaseResponse projectWorkGet(
|
||||
@RequestParam(required = false) List<String> tags,
|
||||
@RequestParam(required = false) List<Integer> isFinish,
|
||||
@RequestParam(required = false) List<String> isFinish,
|
||||
@RequestParam(required = false) Integer is,
|
||||
@RequestParam(required = false, defaultValue = "1") Integer page,
|
||||
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest request) {
|
||||
log.info("请求接口[GET]: /project/work/get");
|
||||
return projectService.workget(listAll, request, tags, isFinish, is, page, pageSize);
|
||||
return projectService.workGet(request, tags, isFinish, is, page, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -140,7 +141,9 @@ public class ProjectController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -160,7 +163,10 @@ public class ProjectController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@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,
|
||||
@RequestBody @Validated ProjectEditVO projectEdit,
|
||||
@NotNull BindingResult bindingResult,
|
||||
HttpServletRequest request) {
|
||||
log.info("请求接口[PUT]: /project/header/edit/{projectId}");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -177,13 +183,37 @@ public class ProjectController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return projectService.projecWorktAdd(request, projectWorkVO);
|
||||
return projectService.projectWorkAdd(request, projectWorkVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 项目添加
|
||||
*
|
||||
* @param request 请求
|
||||
* @param projectInfoVO 项目信息
|
||||
* @param bindingResult 参数校验
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
|
||||
@PostMapping("/project/add")
|
||||
public BaseResponse projectAdd(HttpServletRequest request,
|
||||
@RequestBody @Validated ProjectInfoVO projectInfoVO,
|
||||
@NotNull BindingResult bindingResult) {
|
||||
log.info("请求接口[POST]: /project/add");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return ResultUtil.success(projectService.projectAdd(request, projectInfoVO));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -196,39 +226,6 @@ public class ProjectController {
|
||||
return projectService.projectPrincipalGet();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户获取所分到的项目模块
|
||||
*
|
||||
* @param uid 用户 id
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@GetMapping("/project/cut/user")
|
||||
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
|
||||
log.info("请求接口[GET]: /project/cut/user");
|
||||
// 判断是否有参数错误
|
||||
if (uid == null) {
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||
}
|
||||
return projectService.projectGetUserInCutting(uid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 给某用户分配项目模块
|
||||
*
|
||||
* @param uid 用户 id
|
||||
* @param pid 项目 id
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@PostMapping("/project/cut/user/add")
|
||||
public BaseResponse projectAddUserForCutting(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long pid) {
|
||||
log.info("请求接口[Post]: /project/cut/user/add");
|
||||
// 判断是否有参数错误
|
||||
if (uid == null || pid == null) {
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||
}
|
||||
return projectService.projectAddUserForCutting(request, uid, pid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除某项目记录
|
||||
*
|
||||
@ -244,51 +241,6 @@ public class ProjectController {
|
||||
return projectService.projectDelete(request, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目轮播图
|
||||
*
|
||||
* @param request 请求
|
||||
* @param projectCuttingAddVO 项目轮播图信息
|
||||
* @param bindingResult 参数校验
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@PostMapping("/project/cut/add")
|
||||
public BaseResponse projectCuttingAdd(HttpServletRequest request, @RequestBody @Validated ProjectCuttingAddVO projectCuttingAddVO, @NotNull BindingResult bindingResult) {
|
||||
log.info("请求接口[Post]: /project/cut/add");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return projectService.addProjectCutting(request, projectCuttingAddVO);
|
||||
}
|
||||
|
||||
|
||||
@PutMapping("/project/cut/edit")
|
||||
public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) {
|
||||
log.info("请求接口[Put]: /project/cut/edit");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return projectService.editProjectCutting(request, projectCuttingEditVO);
|
||||
}
|
||||
|
||||
@PutMapping("/project/cut/user/to")
|
||||
public BaseResponse projectToOtherUserForCutting(
|
||||
HttpServletRequest request,
|
||||
@RequestParam Long oldUid,
|
||||
@RequestParam Long pid,
|
||||
@RequestParam Long newUid
|
||||
) {
|
||||
log.info("请求接口[Put]: /project/cut/user/to");
|
||||
// 判断是否有参数错误
|
||||
if (oldUid == null || pid == null || newUid == null) {
|
||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
|
||||
}
|
||||
return projectService.projectToOtherUserForCutting(request, oldUid, pid, newUid);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/project/file")
|
||||
public BaseResponse getProjectFile(HttpServletRequest request, @RequestParam Long projectId) {
|
||||
log.info("请求接口[Get]: /project/file");
|
||||
|
41
src/main/java/com/jsl/oa/controllers/ReviewController.java
Normal file
41
src/main/java/com/jsl/oa/controllers/ReviewController.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,11 @@ public class RoleController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@PutMapping("/role/edit")
|
||||
public BaseResponse roleEdit(HttpServletRequest request, @RequestBody @Validated RoleEditVO roleEditVO, @NotNull BindingResult bindingResult) {
|
||||
public BaseResponse roleEdit(
|
||||
@RequestBody @Validated RoleEditVO roleEditVO,
|
||||
@NotNull BindingResult bindingResult,
|
||||
HttpServletRequest request
|
||||
) {
|
||||
log.info("请求接口[PUT]: /role/edit");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -89,7 +93,7 @@ public class RoleController {
|
||||
/**
|
||||
* 用户权限授予
|
||||
*
|
||||
* @return
|
||||
* @return baseResponse
|
||||
*/
|
||||
@PostMapping("role/user/add")
|
||||
public BaseResponse roleAddUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
|
||||
@ -104,7 +108,7 @@ public class RoleController {
|
||||
/**
|
||||
* 用户权限删除
|
||||
*
|
||||
* @return
|
||||
* @return baseResponse
|
||||
*/
|
||||
@DeleteMapping("role/user/remove")
|
||||
public BaseResponse roleRemoveUser(HttpServletRequest request, @RequestParam Long uid) {
|
||||
@ -116,15 +120,17 @@ public class RoleController {
|
||||
return roleService.roleRemoveUser(request, uid);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 添加用户权限
|
||||
* @Date: 2024/1/19
|
||||
* @Param request:
|
||||
* @Param uid:
|
||||
**/
|
||||
* <h2>角色添加</h2>
|
||||
* <hr/>
|
||||
* 角色添加接口
|
||||
*/
|
||||
@PostMapping("role/add")
|
||||
public BaseResponse addRole(HttpServletRequest request, @RequestBody @Validated RoleAddVo roleAddVO, @NotNull BindingResult bindingResult) throws ClassCopyException {
|
||||
public BaseResponse addRole(
|
||||
@RequestBody @Validated RoleAddVo roleAddVO,
|
||||
@NotNull BindingResult bindingResult,
|
||||
HttpServletRequest request
|
||||
) throws ClassCopyException {
|
||||
log.info("请求接口[POST]: /role/add");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -133,14 +139,11 @@ public class RoleController {
|
||||
return roleService.addRole(request, roleAddVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 改变用户角色权限信息
|
||||
* @Date: 2024/1/20
|
||||
* @Param request:
|
||||
* @Param uid: 用户id
|
||||
* @Param rid: 角色id
|
||||
**/
|
||||
* <h2>角色用户修改</h2>
|
||||
* <hr/>
|
||||
* 角色用户修改接口
|
||||
*/
|
||||
@PutMapping("role/user/change")
|
||||
public BaseResponse roleChangeUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
|
||||
log.info("请求接口[POST]: /role/user/change");
|
||||
|
@ -77,7 +77,10 @@ public class UserController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -100,7 +103,13 @@ public class UserController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@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(
|
||||
@RequestParam @Nullable String id,
|
||||
@RequestParam @Nullable String username,
|
||||
@RequestParam @Nullable String email,
|
||||
@RequestParam @Nullable String phone,
|
||||
@NotNull HttpServletRequest request
|
||||
) {
|
||||
log.info("请求接口[GET]: /user/current");
|
||||
// 检查数据是否有问题
|
||||
if (id != null && !id.isEmpty()) {
|
||||
@ -119,12 +128,15 @@ public class UserController {
|
||||
}
|
||||
}
|
||||
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 userService.userCurrent(id, username, email, phone, request);
|
||||
return userService.userCurrent(request, id, username, email, phone);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -136,8 +148,11 @@ public class UserController {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
@PostMapping("/user/current/all")
|
||||
public BaseResponse userCurrentAll(@RequestBody @Validated UserAllCurrentVO userAllCurrentVO,
|
||||
HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||
public BaseResponse userCurrentAll(
|
||||
@RequestBody @Validated UserAllCurrentVO userAllCurrentVO,
|
||||
@NotNull BindingResult bindingResult,
|
||||
HttpServletRequest request
|
||||
) {
|
||||
log.info("请求接口[POST]: /user/current/all");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -154,7 +169,11 @@ public class UserController {
|
||||
* @Param bindingResult:
|
||||
**/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
@ -170,7 +189,11 @@ public class UserController {
|
||||
* @Param bindingResult:
|
||||
**/
|
||||
@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");
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
|
@ -52,8 +52,7 @@ public class PermissionDAO {
|
||||
roleRedisUtil.setData(BusinessConstants.NONE, uid.toString(), gson.toJson(getPermissionForString), 1440);
|
||||
} else {
|
||||
log.info("\t\t> 从 Redis 获取数据");
|
||||
getPermissionForString = gson.fromJson(permissionRedisString, new TypeToken<List<String>>() {
|
||||
}.getType());
|
||||
getPermissionForString = gson.fromJson(permissionRedisString, new TypeToken<List<String>>() { }.getType());
|
||||
}
|
||||
return getPermissionForString;
|
||||
}
|
||||
@ -69,16 +68,43 @@ public class PermissionDAO {
|
||||
getPermissionForString = new ArrayList<>();
|
||||
forPermissionToBuildString(permissionList, getPermissionForString);
|
||||
// 存入 Redis
|
||||
roleRedisUtil
|
||||
.setData(BusinessConstants.ALL_PERMISSION, "string", gson.toJson(getPermissionForString), 1440);
|
||||
roleRedisUtil.setData(
|
||||
BusinessConstants.ALL_PERMISSION,
|
||||
"string",
|
||||
gson.toJson(getPermissionForString),
|
||||
1440);
|
||||
} else {
|
||||
log.info("\t\t> 从 Redis 获取数据");
|
||||
getPermissionForString = gson.fromJson(getRedisData, new TypeToken<List<String>>() {
|
||||
}.getType());
|
||||
getPermissionForString = gson.fromJson(getRedisData, new TypeToken<List<String>>() { }.getType());
|
||||
}
|
||||
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>
|
||||
* <hr/>
|
||||
@ -89,8 +115,7 @@ public class PermissionDAO {
|
||||
*/
|
||||
private void forPermissionToBuildString(
|
||||
@NotNull List<PermissionDO> permissionList,
|
||||
List<String> getPermissionForString
|
||||
) {
|
||||
List<String> getPermissionForString) {
|
||||
for (PermissionDO permission : permissionList) {
|
||||
// 寻找是否存在父亲
|
||||
StringBuilder permissionString = new StringBuilder();
|
||||
|
@ -1,11 +1,8 @@
|
||||
package com.jsl.oa.dao;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.jsl.oa.mapper.ProjectMapper;
|
||||
import com.jsl.oa.model.dodata.ProjectCuttingDO;
|
||||
import com.jsl.oa.model.dodata.ProjectDO;
|
||||
import com.jsl.oa.model.dodata.ProjectUserDO;
|
||||
import com.jsl.oa.model.dodata.ProjectWorkDO;
|
||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||
import com.jsl.oa.model.dodata.info.ProjectShowDO;
|
||||
import com.jsl.oa.model.vodata.ProjectEditVO;
|
||||
import com.jsl.oa.model.vodata.ProjectInfoVO;
|
||||
@ -34,12 +31,11 @@ public class ProjectDAO {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
|
||||
|
||||
projectMapper.projectAdd(projectAdd);
|
||||
}
|
||||
|
||||
public void projectWorkAdd(ProjectWorkVO projectWorkVO) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法");
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectWorkAdd 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
projectMapper.projectWorkAdd(projectWorkVO);
|
||||
}
|
||||
@ -61,18 +57,6 @@ public class ProjectDAO {
|
||||
return projectMapper.getProjectById(id) != null;
|
||||
}
|
||||
|
||||
public List<ProjectCuttingDO> projectGetUserInCutting(Long uid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectGetUserInCutting 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.projectGetUserInCutting(uid);
|
||||
}
|
||||
|
||||
public void projectAddUserForCutting(Long uid, Long pid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectAddUserForCutting 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
projectMapper.projectAddUserInCutting(uid, pid);
|
||||
}
|
||||
|
||||
public ProjectShowDO getHeader() {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.getHeader 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
@ -101,13 +85,14 @@ public class ProjectDAO {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.sortProject 方法");
|
||||
for (int i = 0; i < projectShowDO.getData().size(); i++) {
|
||||
for (int j = 0; j < projectShowDO.getData().size(); j++) {
|
||||
ProjectShowDO.DataDO dataDO = projectShowDO.getData().get(i);
|
||||
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);
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
@ -130,7 +115,7 @@ public class ProjectDAO {
|
||||
return projectMapper.getProjectById(id);
|
||||
}
|
||||
|
||||
public List<ProjectDO> get(Long userId, Integer listAll, List<String> tags, List<Integer> isFinish) {
|
||||
public List<ProjectDO> get(Long userId, List<String> tags, List<String> isFinish) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.get 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
@ -143,15 +128,12 @@ public class ProjectDAO {
|
||||
return projectMapper.getByIsfinish(userId, isFinish);
|
||||
}
|
||||
|
||||
if (listAll == 0) {
|
||||
return projectMapper.get(userId);
|
||||
} else {
|
||||
return projectMapper.get1(userId);
|
||||
}
|
||||
return projectMapper.get(userId);
|
||||
|
||||
}
|
||||
|
||||
public List<ProjectDO> workget(Long userId, Integer listAll, List<String> tags, List<Integer> isFinish, Integer is) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法");
|
||||
public List<ProjectDO> workget(Long userId, List<String> tags, List<String> isFinish, Integer is) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.workGet 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
return projectMapper.workgetByTags(userId, tags, is, isFinish);
|
||||
@ -160,12 +142,8 @@ public class ProjectDAO {
|
||||
if (isFinish != null && !isFinish.isEmpty()) {
|
||||
return projectMapper.workgetByIsfinish(userId, isFinish, is);
|
||||
}
|
||||
return projectMapper.workget(userId, is);
|
||||
|
||||
if (listAll == 0) {
|
||||
return projectMapper.workget(userId, is);
|
||||
} else {
|
||||
return projectMapper.workget1(userId, is);
|
||||
}
|
||||
}
|
||||
|
||||
public ProjectDO getByName(String name) {
|
||||
@ -180,46 +158,12 @@ public class ProjectDAO {
|
||||
return projectMapper.deleteProject(id);
|
||||
}
|
||||
|
||||
public void projectCuttingAdd(ProjectCuttingDO projectCuttingDO) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectCuttingAdd 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
projectMapper.projectCuttingAdd(projectCuttingDO);
|
||||
}
|
||||
|
||||
public boolean isExistProjectById(Long id) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectById 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.getProjectById(id) != null;
|
||||
}
|
||||
|
||||
public boolean updateProjectCutting(ProjectCuttingDO projectCuttingDO) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.updateProjectCutting 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.projectCuttingUpdate(projectCuttingDO);
|
||||
}
|
||||
|
||||
public boolean isExistProjectCutting(Long id) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectCutting 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.getProjectCuttingById(id) != null;
|
||||
}
|
||||
|
||||
public boolean isExistProjectUser(Long pid, Long uid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectUse 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.getProjectUserByPidAndUid(pid, uid) != null;
|
||||
}
|
||||
|
||||
public boolean updateUserForProjectUserByPidAndUid(Long pid, Long oldUid, Long newUid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.updateUserForProjectUserByPidAndUid 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
ProjectUserDO projectUserDO = projectMapper.getProjectUserByPidAndUid(pid, oldUid);
|
||||
if (projectUserDO == null) {
|
||||
return false;
|
||||
}
|
||||
log.info("\t\t> 从 MySQL 更新数据");
|
||||
return projectMapper.updateUserForProjectUser(newUid, projectUserDO.getId());
|
||||
}
|
||||
|
||||
public boolean isPrincipalUser(Long uid, Long projectId) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");
|
||||
@ -229,7 +173,7 @@ public class ProjectDAO {
|
||||
}
|
||||
|
||||
|
||||
public List<ProjectDO> tget(Integer id, List<Integer> isFinish, List<String> tags) {
|
||||
public List<ProjectDO> tget(List<String> isFinish, List<String> tags) {
|
||||
log.info("DAO层tget");
|
||||
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
@ -239,13 +183,29 @@ public class ProjectDAO {
|
||||
if (isFinish != null && !isFinish.isEmpty()) {
|
||||
return projectMapper.tgetByIsfinish(isFinish);
|
||||
}
|
||||
|
||||
return projectMapper.tget(id);
|
||||
return projectMapper.getAllProject();
|
||||
}
|
||||
|
||||
public ProjectWorkDO getProjectWorkerById(Long id) {
|
||||
public ProjectModuleDO getProjectWorkerById(Long 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<ProjectModuleDO> getAllSubsystemByUserId(Long uid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubsystemByUserId 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.getAllSubsystemByUserId(uid);
|
||||
}
|
||||
|
||||
public List<ProjectModuleDO> getAllSubmoduleByUserId(Long uid) {
|
||||
log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubmoduleByUserId 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return projectMapper.getAllSubmoduleByUserId(uid);
|
||||
}
|
||||
|
||||
}
|
||||
|
49
src/main/java/com/jsl/oa/dao/ReviewDAO.java
Normal file
49
src/main/java/com/jsl/oa/dao/ReviewDAO.java
Normal 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 "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ import java.util.List;
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class RoleDAO {
|
||||
public final RoleMapper roleMapper;
|
||||
private final RoleMapper roleMapper;
|
||||
private final Gson gson;
|
||||
private final RoleRedisUtil<String> roleRedisUtil;
|
||||
|
||||
@ -26,7 +26,12 @@ public class RoleDAO {
|
||||
log.info("\t> 执行 DAO 层 RoleDAO.addRoleUser 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
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) {
|
||||
@ -82,8 +87,7 @@ public class RoleDAO {
|
||||
public RoleDO getRoleNameByUid(Long uid) {
|
||||
log.info("\t> 执行 DAO 层 RoleDAO.getRoleNameByUid 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
RoleDO roleDO = roleMapper.getRoleById(getRoleUserByUid(uid).getRid());
|
||||
return roleDO;
|
||||
return roleMapper.getRoleById(getRoleUserByUid(uid).getRid());
|
||||
}
|
||||
|
||||
|
||||
@ -122,7 +126,12 @@ public class RoleDAO {
|
||||
log.info("\t> 执行 DAO 层 RoleDAO.roleChangeUser 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
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;
|
||||
} else {
|
||||
return false;
|
||||
@ -140,4 +149,14 @@ public class RoleDAO {
|
||||
return gson.fromJson(getRedisData, RoleUserDO.class);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色名获取角色信息
|
||||
*
|
||||
* @param roleName 角色名
|
||||
* @return 角色信息
|
||||
*/
|
||||
public RoleDO getRoleByRoleName(String roleName) {
|
||||
return roleMapper.getRoleByRoleName(roleName);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package com.jsl.oa.dao;
|
||||
import com.google.gson.Gson;
|
||||
import com.jsl.oa.common.constant.BusinessConstants;
|
||||
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.vodata.UserAllCurrentVO;
|
||||
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
|
||||
* @since v1.1.0
|
||||
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@ -49,11 +51,13 @@ public class UserDAO {
|
||||
*/
|
||||
public UserDO getUserInfoByUsername(String username) {
|
||||
log.info("\t> 执行 DAO 层 UserDAO.getUserInfoByUsername 方法");
|
||||
UserDO userDO;
|
||||
UserDO userDO = null;
|
||||
// 从 Redis 获取数据
|
||||
// TODO: 10000-Redis: 从 Redis 获取数据
|
||||
// 从数据库获取用户信息
|
||||
userDO = userMapper.getUserInfoByUsername(username);
|
||||
if (userDO == null) {
|
||||
userDO = userMapper.getUserInfoByUsername(username);
|
||||
}
|
||||
return userDO;
|
||||
}
|
||||
|
||||
@ -112,7 +116,7 @@ public class UserDAO {
|
||||
/**
|
||||
* 用户账号锁定
|
||||
*
|
||||
* @param id 用户id
|
||||
* @param id
|
||||
*/
|
||||
public void userLock(Long id, Long isLock) {
|
||||
log.info("\t> 执行 DAO 层 UserDAO.userLock 方法");
|
||||
@ -133,7 +137,8 @@ public class UserDAO {
|
||||
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
|
||||
userCurrentBackVO.setUsers(new ArrayList<>())
|
||||
.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;
|
||||
|
||||
}
|
||||
@ -145,16 +150,17 @@ public class UserDAO {
|
||||
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
|
||||
userCurrentBackVO.setUsers(new ArrayList<>())
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds a new user to the database.
|
||||
*
|
||||
* @param userDO The UserDO object containing the user's information.
|
||||
* @return True if the user is successfully added, false otherwise.
|
||||
* @return
|
||||
* @Description 用户添加
|
||||
* @Date: 2024/1/16
|
||||
* @Param userDO: user 数据库表实体类
|
||||
*/
|
||||
public boolean userAdd(UserDO userDO) {
|
||||
log.info("\t> 执行 DAO 层 userAdd 方法");
|
||||
@ -168,14 +174,12 @@ public class UserDAO {
|
||||
userMapper.updateUser(userDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <h2>用户名获取用户信息</h2>
|
||||
* <hr/>
|
||||
* 根据用户名获取用户信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @return {@link UserDO}
|
||||
*/
|
||||
* @Description 根据username检测用户是否重复
|
||||
* @Date: 2024/1/16
|
||||
* @Param username: 用户名
|
||||
**/
|
||||
public Boolean isRepeatUser(String username) {
|
||||
log.info("\t> 执行 DAO 层 isRepeatUser 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
@ -184,21 +188,22 @@ public class UserDAO {
|
||||
|
||||
|
||||
/**
|
||||
* 通过用户编号获取用户信息
|
||||
*
|
||||
* @param userNum 用户编号
|
||||
* @return UserDO
|
||||
*/
|
||||
* @Description 检测用户工号是否重复
|
||||
* @Date 2024/1/18
|
||||
* @Param userNum:
|
||||
**/
|
||||
public Boolean isRepeatUserNum(String userNum) {
|
||||
return userMapper.getUserByUserNum(userNum) != null;
|
||||
if (userMapper.getUserByUserNum(userNum) != null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 Id 获取用户信息
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return UserDO
|
||||
*/
|
||||
* @Description 根据用户id获取用户数据
|
||||
* @Date 2024/1/17
|
||||
* @Param userId
|
||||
**/
|
||||
public UserDO getUserById(Long userId) {
|
||||
log.info("\t> 执行 DAO 层 getUserById 方法");
|
||||
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() {
|
||||
log.info("\t> 执行 DAO 层 getRecommendUser 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
@ -223,4 +256,10 @@ public class UserDAO {
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return userMapper.getUserByPhone(phone);
|
||||
}
|
||||
|
||||
public Long getUsersCount() {
|
||||
log.info("\t> 执行 DAO 层 getUsersCount 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return userMapper.getUsersCount();
|
||||
}
|
||||
}
|
||||
|
@ -54,8 +54,7 @@ public class ProcessException {
|
||||
|
||||
@ExceptionHandler(value = MissingServletRequestParameterException.class)
|
||||
public ResponseEntity<BaseResponse> businessMissingServletRequestParameterException(
|
||||
MissingServletRequestParameterException e
|
||||
) {
|
||||
MissingServletRequestParameterException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return ResponseEntity
|
||||
.status(400)
|
||||
@ -100,8 +99,7 @@ public class ProcessException {
|
||||
*/
|
||||
@ExceptionHandler(value = MethodArgumentTypeMismatchException.class)
|
||||
public ResponseEntity<BaseResponse> businessMethodArgumentTypeMismatchException(
|
||||
@NotNull MethodArgumentTypeMismatchException e
|
||||
) {
|
||||
@NotNull MethodArgumentTypeMismatchException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return ResultUtil.error("ServerInternalError", 50002, "服务器内部错误");
|
||||
}
|
||||
|
@ -1,11 +1,13 @@
|
||||
package com.jsl.oa.mapper;
|
||||
|
||||
import com.jsl.oa.model.dodata.MessageDO;
|
||||
import com.jsl.oa.model.vodata.MessageAddVO;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -13,17 +15,18 @@ import java.util.List;
|
||||
public interface MessageMapper {
|
||||
|
||||
@Update("UPDATE organize_oa.oa_message "
|
||||
+ "SET `read` = 1, deleted_at = CURRENT_TIMESTAMP "
|
||||
+ "SET `is_delete` = 1, deleted_at = CURRENT_TIMESTAMP "
|
||||
+ "WHERE id = #{mid}")
|
||||
boolean deleteMessage(Long mid);
|
||||
|
||||
@Select("SELECT * FROM organize_oa.oa_message where id = #{mid}")
|
||||
MessageDO getMessageById(Long mid);
|
||||
|
||||
@Select("select count(*) from organize_oa.oa_message where uid = #{uid}")
|
||||
Long count(Long uid);
|
||||
@Select("select * from organize_oa.oa_message where uid = #{uid} and is_delete = 0 "
|
||||
+ "and created_at between #{begin} and #{end}")
|
||||
List<MessageDO> page(LocalDateTime begin, LocalDateTime end, Long uid);
|
||||
|
||||
@Select("select * from organize_oa.oa_message where uid = #{uid}")
|
||||
//and created_at between #{begin} and #{end} limit #{start},#{pageSize}")
|
||||
List<MessageDO> page(LocalDate begin, LocalDate end, Long uid, Long start, Long pageSize);
|
||||
@Insert("insert into organize_oa.oa_message (uid, title, text, sid) "
|
||||
+ "values(#{uid},#{title},#{text},#{sid})")
|
||||
void messageAdd(MessageAddVO messageAddVO);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.jsl.oa.mapper;
|
||||
|
||||
import com.jsl.oa.model.dodata.ProjectWorkDO;
|
||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
@ -11,9 +11,10 @@ import java.util.List;
|
||||
public interface ModuleMapper {
|
||||
|
||||
|
||||
List<ProjectWorkDO> getByProjectId(Integer projectId, Long userId, int is);
|
||||
|
||||
List<ProjectWorkDO> getBySysId(Integer sysId, Long userId, int is);
|
||||
List<ProjectModuleDO> getByProjectId(Integer projectId, Long userId, int is);
|
||||
|
||||
List<ProjectModuleDO> getBySysId(Integer sysId, Long userId, int is);
|
||||
|
||||
@Select("select principal_id from organize_oa.oa_project where id=#{projectId}")
|
||||
Long getPidByProjectid(Integer projectId);
|
||||
@ -25,7 +26,7 @@ public interface ModuleMapper {
|
||||
void deleteMoudule(Long id);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_work where pid=#{id} and is_delete=0 and type=1 ")
|
||||
List<ProjectWorkDO> getAllMoudleByPid(Long id);
|
||||
List<ProjectModuleDO> getAllMoudleByPid(Long id);
|
||||
|
||||
@Select("select principal_id from organize_oa.oa_project where id=(select project_id "
|
||||
+ "from organize_oa.oa_project_work where oa_project_work.id = #{sysId})")
|
||||
|
@ -1,9 +1,7 @@
|
||||
package com.jsl.oa.mapper;
|
||||
|
||||
import com.jsl.oa.model.dodata.ProjectCuttingDO;
|
||||
import com.jsl.oa.model.dodata.ProjectChildDO;
|
||||
import com.jsl.oa.model.dodata.ProjectDO;
|
||||
import com.jsl.oa.model.dodata.ProjectUserDO;
|
||||
import com.jsl.oa.model.dodata.ProjectWorkDO;
|
||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||
import com.jsl.oa.model.vodata.ProjectInfoVO;
|
||||
import com.jsl.oa.model.vodata.ProjectWorkSimpleVO;
|
||||
import com.jsl.oa.model.vodata.ProjectWorkVO;
|
||||
@ -12,16 +10,17 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ProjectMapper {
|
||||
|
||||
@Insert("insert into organize_oa.oa_project "
|
||||
+ "(name, description, principal_id, cycle,file,complete_time,"
|
||||
+ "deadline,status,is_finish,tags,work_load) "
|
||||
+ "value (#{name},#{description},#{principalId},#{cycle},#{file}"
|
||||
+ ",#{completeTime},#{deadline},#{status},#{isFinish},#{tags},#{workLoad})")
|
||||
+ "(name, description, principal_id, cycle,files,complete_time,"
|
||||
+ "dead_line,status,tags,work_load) "
|
||||
+ "value (#{name},#{description},#{principalId},#{cycle},#{files}"
|
||||
+ ",#{completeTime},#{deadLine},#{status},#{tags},#{workLoad})")
|
||||
void projectAdd(ProjectInfoVO projectAdd);
|
||||
|
||||
@Insert("insert into organize_oa.oa_project_work (project_id, pid, name, principal_id,"
|
||||
@ -38,12 +37,8 @@ public interface ProjectMapper {
|
||||
@Select("select * from organize_oa.oa_project where id=#{id}")
|
||||
ProjectDO tgetProjectById(Integer id);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_work where principal_id=#{uid}")
|
||||
//"(select id from organize_oa.oa_project_work where id in)")
|
||||
List<ProjectCuttingDO> projectGetUserInCutting(Long uid);
|
||||
|
||||
@Insert("update organize_oa.oa_project_work set principal_id =#{uid} where id=#{pid}")
|
||||
void projectAddUserInCutting(Long uid, Long pid);
|
||||
@Select("select * from organize_oa.oa_project where is_delete=false")
|
||||
List<ProjectDO> getAllProject();
|
||||
|
||||
@Select("select data from organize_oa.oa_config where value='project_show'")
|
||||
String getHeader();
|
||||
@ -51,17 +46,15 @@ public interface ProjectMapper {
|
||||
@Insert("insert into organize_oa.oa_config(value, data, created_at)value ('project_show',null,NOW())")
|
||||
void insertProjectShow();
|
||||
|
||||
@Update("UPDATE organize_oa.oa_config"
|
||||
+ " SET data = #{setProjectShow}, updated_at = CURRENT_TIMESTAMP "
|
||||
+ " WHERE value = 'project_show'"
|
||||
)
|
||||
@Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow},"
|
||||
+ " updated_at = CURRENT_TIMESTAMP WHERE value = 'project_show'")
|
||||
boolean setProjectShow(String setProjectShow);
|
||||
|
||||
List<ProjectDO> getByIsfinish(Long userId, List<Integer> isFinish);
|
||||
List<ProjectDO> getByIsfinish(Long userId, List<String> isFinish);
|
||||
|
||||
List<ProjectDO> getByTags(Long userId, List<String> tags, List<Integer> isFinish);
|
||||
List<ProjectDO> getByTags(Long userId, List<String> tags, List<String> isFinish);
|
||||
|
||||
@Select("select * from organize_oa.oa_project where is_delete=false and status=1 and principal_id=#{userId}")
|
||||
@Select("select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId}")
|
||||
List<ProjectDO> get(Long userId);
|
||||
|
||||
@Select("select * from organize_oa.oa_project where status =1 and principal_id=#{userId}")
|
||||
@ -73,29 +66,9 @@ public interface ProjectMapper {
|
||||
@Update("UPDATE organize_oa.oa_project SET is_delete = 1 where id=#{id}")
|
||||
boolean deleteProject(Long id);
|
||||
|
||||
@Insert("INSERT INTO organize_oa.oa_project_cutting (pid, name, tag, real_time) "
|
||||
+ "VALUES (#{pid}, #{name}, #{tag}, #{realTime})")
|
||||
void projectCuttingAdd(ProjectCuttingDO projectCuttingDO);
|
||||
List<ProjectDO> workgetByIsfinish(Long userId, List<String> isFinish, Integer is);
|
||||
|
||||
@Update("UPDATE organize_oa.oa_project_cutting SET name = #{name}, "
|
||||
+ "tag = #{tag}, engineering = #{engineering}, estimated_time = #{estimatedTime}, "
|
||||
+ "real_time = #{realTime}, updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
|
||||
boolean projectCuttingUpdate(ProjectCuttingDO projectCuttingDO);
|
||||
|
||||
@Select("SELECT * FROM organize_oa.oa_project_cutting WHERE id = #{id}")
|
||||
ProjectCuttingDO getProjectCuttingById(Long id);
|
||||
|
||||
@Select("SELECT * FROM organize_oa.oa_project_user WHERE pid = #{pid} AND uid = #{uid}")
|
||||
ProjectUserDO getProjectUserByPidAndUid(Long pid, Long uid);
|
||||
|
||||
@Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{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}")
|
||||
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<String> isFinish);
|
||||
|
||||
//@Select("select * from organize_oa.oa_project where id in(select project_id from " +
|
||||
//"organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId} and type=0)")
|
||||
@ -107,19 +80,44 @@ public interface ProjectMapper {
|
||||
|
||||
List<ProjectDO> tget(Integer id);
|
||||
|
||||
List<ProjectDO> tgetByIsfinish(List<Integer> isFinish);
|
||||
List<ProjectDO> tgetByIsfinish(List<String> isFinish);
|
||||
|
||||
List<ProjectDO> tgetBytags(List<String> tags, List<Integer> isFinish);
|
||||
List<ProjectDO> tgetBytags(List<String> tags, List<String> isFinish);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_work where id=#{id}")
|
||||
@Select("select * from organize_oa.oa_project_child where id=#{id}")
|
||||
ProjectWorkSimpleVO getWorkById(Integer id);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_modules where id=#{id}")
|
||||
ProjectModuleDO getModuleById(Integer id);
|
||||
|
||||
@Select("select principal_id from organize_oa.oa_project_work where id=#{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_modules where project_child_id=#{id} "
|
||||
+ "AND is_delete = 0")
|
||||
Long getPid(Integer id);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_work where id=#{id}")
|
||||
ProjectWorkDO getProjectWorkById(Long id);
|
||||
@Select("select * from organize_oa.oa_project_work where id=#{id} "
|
||||
+ "AND is_delete = 0")
|
||||
ProjectModuleDO getProjectWorkById(Long id);
|
||||
|
||||
@Select("select principal_id from organize_oa.oa_project_child where project_id=#{id}")
|
||||
List <Long> getMemberByProjectId(Integer id);
|
||||
|
||||
@Select("select principal_id from organize_oa.oa_project_modules where project_child_id=#{id}")
|
||||
List <Long> getMemberBySystemId(Integer id);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_modules "
|
||||
+ "where DATE(deadline) = DATE(#{threeDayLater}) and status = 0")
|
||||
List<ProjectModuleDO> getProjectWorkByTime(LocalDateTime threeDayLater);
|
||||
|
||||
List<ProjectModuleDO> getAllSubmoduleByUserId(Long uid);
|
||||
|
||||
List<ProjectDO> getProjectByPrincipalUser(Long uid);
|
||||
|
||||
List<ProjectModuleDO> getAllSubsystemByUserId(Long uid);
|
||||
|
||||
@Select("select * from organize_oa.oa_project_child where "
|
||||
+ "DATE (created_at) = DATE (#{threeDaysLater}) and status = 0")
|
||||
List<ProjectChildDO> getProjectChildByTime(LocalDateTime threeDaysLater);
|
||||
}
|
||||
|
28
src/main/java/com/jsl/oa/mapper/ReviewMapper.java
Normal file
28
src/main/java/com/jsl/oa/mapper/ReviewMapper.java
Normal file
@ -0,0 +1,28 @@
|
||||
package com.jsl.oa.mapper;
|
||||
|
||||
import com.jsl.oa.model.dodata.ReviewDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
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);
|
||||
|
||||
|
||||
}
|
@ -30,7 +30,8 @@ public interface RoleMapper {
|
||||
@Select("SELECT * FROM organize_oa.oa_role ORDER BY id DESC")
|
||||
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);
|
||||
|
||||
@Update("UPDATE organize_oa.oa_role_user SET rid = #{rid},updated_at = current_timestamp WHERE uid = #{uid}")
|
||||
|
@ -37,7 +37,9 @@ public interface UserMapper {
|
||||
@Update("UPDATE organize_oa.oa_user SET is_delete = true ,updated_at = CURRENT_TIMESTAMP WHERE id = #{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);
|
||||
|
||||
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{id}")
|
||||
@ -77,11 +79,12 @@ public interface UserMapper {
|
||||
List<UserDO> getRecommendUser();
|
||||
|
||||
|
||||
@Update("UPDATE organize_oa.oa_user " +
|
||||
"SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, " +
|
||||
"signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, " +
|
||||
"description = #{description} ,updated_at = current_timestamp " +
|
||||
"WHERE id = #{id}")
|
||||
@Update("UPDATE organize_oa.oa_user "
|
||||
+ "SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, "
|
||||
+ "signature = #{signature}, sex = #{sex}, "
|
||||
+ "avatar = #{avatar}, nickname = #{nickname}, "
|
||||
+ "description = #{description} ,updated_at = current_timestamp "
|
||||
+ "WHERE id = #{id}")
|
||||
void updateUser(UserDO userDO);
|
||||
|
||||
@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")
|
||||
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 " +
|
||||
"on oa_user.id = oa_role_user.uid join organize_oa.oa_role on oa_role_user.rid = oa_role.id")
|
||||
@Select("select oa_user.id,oa_user.username,"
|
||||
+ "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();
|
||||
}
|
||||
|
@ -22,9 +22,10 @@ public class MessageDO {
|
||||
|
||||
private Long id;
|
||||
private Long uid;
|
||||
private Long sid;
|
||||
private String title;
|
||||
private String text;
|
||||
private Short read;
|
||||
private Integer isDelete;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp deletedAt;
|
||||
|
||||
|
@ -14,8 +14,9 @@ import java.util.List;
|
||||
* @since v1.1.0
|
||||
* @version v1.1.0
|
||||
* @author 176yunxuan
|
||||
* @param <R> 对类型的泛型处理
|
||||
* @param <R>
|
||||
*/
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
16
src/main/java/com/jsl/oa/model/dodata/ProjectCuttingDO.java → src/main/java/com/jsl/oa/model/dodata/ProjectChildDO.java
Executable file → Normal file
16
src/main/java/com/jsl/oa/model/dodata/ProjectCuttingDO.java → src/main/java/com/jsl/oa/model/dodata/ProjectChildDO.java
Executable file → Normal file
@ -18,19 +18,17 @@ import java.sql.Timestamp;
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class ProjectCuttingDO {
|
||||
public class ProjectChildDO {
|
||||
private Long id;
|
||||
private Long principalId;
|
||||
private Long projectId;
|
||||
private Long pid;
|
||||
private Long workLoad;
|
||||
private Long cycle;
|
||||
private Integer workLoad;
|
||||
private Integer cycle;
|
||||
private String name;
|
||||
private String description;
|
||||
private Integer is_delete;
|
||||
private Integer is_finish;
|
||||
private Integer status;
|
||||
private boolean type;
|
||||
private Timestamp beginTime;
|
||||
private Integer isDelete;
|
||||
private String files;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp completeTime;
|
||||
private Timestamp updatedAt;
|
||||
}
|
@ -23,20 +23,19 @@ public class ProjectDO {
|
||||
private Long id;
|
||||
private Long principalId;
|
||||
private String tags;
|
||||
private Long cycle;
|
||||
private Integer cycle;
|
||||
private String name;
|
||||
private String file;
|
||||
private String description;
|
||||
private Integer isDelete;
|
||||
private Integer isFinish;
|
||||
private Long workLoad;
|
||||
private Integer status;
|
||||
private Integer workLoad;
|
||||
private String status;
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||
private Timestamp beginTime;
|
||||
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||
private Timestamp completeTime;
|
||||
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||
private Timestamp deadline;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp updatedAt;
|
||||
}
|
||||
|
@ -9,19 +9,15 @@ import java.sql.Timestamp;
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class ProjectWorkDO {
|
||||
public class ProjectModuleDO {
|
||||
private Long id;
|
||||
private Long pid;
|
||||
private Long projectId;
|
||||
private Long projectChildId;
|
||||
private Long principalId;
|
||||
private Integer cycle;
|
||||
private Integer workLoad;
|
||||
private Integer type;
|
||||
private String name;
|
||||
private String description;
|
||||
private String name;
|
||||
private Integer isDelete;
|
||||
private Integer isFinish;
|
||||
private boolean status;
|
||||
private Timestamp beginTime;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp updatedAt;
|
||||
private Timestamp completeTime;
|
||||
}
|
52
src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
Normal file
52
src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
|
18
src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java
Normal file
18
src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java
Normal file
@ -0,0 +1,18 @@
|
||||
package com.jsl.oa.model.vodata;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class MessageAddVO {
|
||||
private String text;
|
||||
private String title;
|
||||
private Long uid;
|
||||
private Long sid;
|
||||
private String type;
|
||||
private Integer toId;
|
||||
|
||||
}
|
17
src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java
Normal file
17
src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.jsl.oa.model.vodata;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class MessageGetVO {
|
||||
private String text;
|
||||
private String title;
|
||||
private Timestamp createdAt;
|
||||
private String senderName;
|
||||
|
||||
}
|
@ -20,10 +20,10 @@ public class ProjectInfoVO {
|
||||
@NotNull(message = "工作量不能为空")
|
||||
private Long workLoad;
|
||||
private String tags;
|
||||
private String file;
|
||||
private String files;
|
||||
private Timestamp beginTime;
|
||||
private Timestamp completeTime;
|
||||
private Timestamp deadline;
|
||||
private Integer status;
|
||||
private Integer isFinish;
|
||||
private Timestamp deadLine;
|
||||
private String status;
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import lombok.experimental.Accessors;
|
||||
public class ProjectSimpleVO {
|
||||
private String name;
|
||||
private String principalUser;
|
||||
private Integer isFinish;
|
||||
private String description;
|
||||
private Long cycle;
|
||||
private Long workLoad;
|
||||
|
47
src/main/java/com/jsl/oa/model/vodata/ReviewVO.java
Normal file
47
src/main/java/com/jsl/oa/model/vodata/ReviewVO.java
Normal 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;
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.jsl.oa.model.vodata;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
@Getter
|
||||
@Data
|
||||
public class UserAddVO {
|
||||
|
||||
@NotBlank(message = "用户名不能为空")
|
||||
@ -20,7 +20,8 @@ public class UserAddVO {
|
||||
private String address;
|
||||
|
||||
@NotBlank(message = "电话不能为空")
|
||||
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误")
|
||||
@Pattern(regexp = "^(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;
|
||||
|
||||
@NotBlank(message = "邮箱不能为空")
|
||||
|
@ -21,7 +21,8 @@ public class UserEditVO {
|
||||
|
||||
private String address;
|
||||
|
||||
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误")
|
||||
@Pattern(regexp = "^(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;
|
||||
|
||||
@Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", message = "邮箱格式错误")
|
||||
|
@ -27,10 +27,10 @@ public class UserRegisterVO {
|
||||
@NotBlank(message = "家乡不能为空")
|
||||
private String address;
|
||||
|
||||
@Pattern(
|
||||
regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",
|
||||
message = "电话格式错误"
|
||||
)
|
||||
@NotBlank(message = "电话不能为空")
|
||||
@Pattern(regexp =
|
||||
"^(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;
|
||||
|
||||
@NotBlank(message = "邮箱不能为空")
|
||||
|
@ -33,7 +33,6 @@ public interface InfoService {
|
||||
*
|
||||
* @param request 请求
|
||||
* @param carouselVO 轮播图VO
|
||||
* @param id 轮播图ID
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO);
|
||||
|
@ -3,7 +3,7 @@ package com.jsl.oa.services;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <h1>消息服务接口</h1>
|
||||
@ -18,15 +18,24 @@ public interface MessageService {
|
||||
|
||||
BaseResponse messageDelete(Long mid, HttpServletRequest request);
|
||||
|
||||
BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid);
|
||||
BaseResponse messageGet(
|
||||
LocalDateTime begin,
|
||||
LocalDateTime end,
|
||||
Integer page,
|
||||
Integer pageSize,
|
||||
Long uid);
|
||||
|
||||
BaseResponse messageGetAll(
|
||||
HttpServletRequest request,
|
||||
LocalDate begin,
|
||||
LocalDate end,
|
||||
Long page,
|
||||
Long pageSize,
|
||||
Long loginId,
|
||||
Long uid
|
||||
);
|
||||
void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid,
|
||||
HttpServletRequest request);
|
||||
void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid, Long isPass,
|
||||
HttpServletRequest request);
|
||||
void messageAdd(Integer pId, Integer type, Integer systemId,
|
||||
HttpServletRequest request);
|
||||
void messageAdd(Integer pId, Integer systmeId, Integer moddleId, Integer type,
|
||||
HttpServletRequest request);
|
||||
void messageAdd(Integer pId, Integer systemId, Integer moddleId);
|
||||
|
||||
void messageRemind();
|
||||
|
||||
BaseResponse messageGetById(Long id, Long uid);
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.jsl.oa.services;
|
||||
|
||||
import com.jsl.oa.model.vodata.*;
|
||||
import com.jsl.oa.model.vodata.ProjectEditVO;
|
||||
import com.jsl.oa.model.vodata.ProjectInfoVO;
|
||||
import com.jsl.oa.model.vodata.ProjectWorkVO;
|
||||
import com.jsl.oa.model.vodata.business.info.ProjectShowVO;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
|
||||
@ -8,14 +10,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
public interface ProjectService {
|
||||
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd);
|
||||
|
||||
BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId);
|
||||
|
||||
BaseResponse projectGetUserInCutting(Long uid);
|
||||
|
||||
BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid);
|
||||
|
||||
BaseResponse getHeader(Integer id);
|
||||
|
||||
BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO);
|
||||
@ -24,23 +21,30 @@ public interface ProjectService {
|
||||
|
||||
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(
|
||||
HttpServletRequest request,
|
||||
List<String> tags,
|
||||
List<String> isFinish,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
|
||||
BaseResponse getByName(String name);
|
||||
|
||||
BaseResponse projectDelete(HttpServletRequest request, List<Long> id);
|
||||
|
||||
BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO);
|
||||
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectVO);
|
||||
|
||||
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
|
||||
BaseResponse workGet(
|
||||
HttpServletRequest request,
|
||||
List<String> tags,
|
||||
List<String> isFinish,
|
||||
Integer is,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
|
||||
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
|
||||
BaseResponse projectWorkAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);
|
||||
|
||||
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 tget(Integer id, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize);
|
||||
BaseResponse tGet(List<String> tags, List<String> isFinish, Integer page, Integer pageSize);
|
||||
|
||||
BaseResponse projectFileGet(HttpServletRequest request, Long projectId);
|
||||
|
||||
|
12
src/main/java/com/jsl/oa/services/ReviewService.java
Normal file
12
src/main/java/com/jsl/oa/services/ReviewService.java
Normal 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);
|
||||
|
||||
}
|
@ -16,9 +16,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||
* @since v1.1.0
|
||||
*/
|
||||
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);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
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.UserAllCurrentVO;
|
||||
import com.jsl.oa.model.vodata.UserEditProfileVO;
|
||||
@ -17,6 +18,15 @@ import javax.servlet.http.HttpServletRequest;
|
||||
* @since v1.1.0
|
||||
*/
|
||||
public interface UserService {
|
||||
/**
|
||||
* <h2>根据用户名获取用户信息</h2>
|
||||
* <hr/>
|
||||
* 该方法用于根据用户名获取用户信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @return 用户信息
|
||||
*/
|
||||
UserDO getUserInfoByUsername(String username);
|
||||
|
||||
/**
|
||||
* <h2>用户账号删除</h2>
|
||||
@ -71,7 +81,7 @@ public interface UserService {
|
||||
* @param phone 手机号
|
||||
* @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);
|
||||
|
@ -4,6 +4,7 @@ import com.jsl.oa.annotations.CheckUserAbleToUse;
|
||||
import com.jsl.oa.common.constant.BusinessConstants;
|
||||
import com.jsl.oa.dao.PermissionDAO;
|
||||
import com.jsl.oa.dao.RoleDAO;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.mapper.UserMapper;
|
||||
import com.jsl.oa.model.dodata.RoleUserDO;
|
||||
import com.jsl.oa.model.dodata.UserDO;
|
||||
@ -39,6 +40,7 @@ import java.util.regex.Pattern;
|
||||
@RequiredArgsConstructor
|
||||
public class AuthServiceImpl implements AuthService {
|
||||
private final UserMapper userMapper;
|
||||
private final RoleMapper roleMapper;
|
||||
private final RoleDAO roleDAO;
|
||||
private final PermissionDAO permissionDAO;
|
||||
|
||||
@ -273,7 +275,7 @@ public class AuthServiceImpl implements AuthService {
|
||||
getPermissionForString = permissionDAO.getPermission(userDO.getId());
|
||||
}
|
||||
// 获取用户角色
|
||||
RoleUserDO getUserRole = roleDAO.roleMapper.getRoleUserByUid(userDO.getId());
|
||||
RoleUserDO getUserRole = roleDAO.getRoleUserByUid(userDO.getId());
|
||||
if (getUserRole == null) {
|
||||
getUserRole = new RoleUserDO();
|
||||
getUserRole.setRid(0L)
|
||||
|
@ -2,8 +2,8 @@ package com.jsl.oa.services.impl;
|
||||
|
||||
import com.jsl.oa.annotations.CheckUserHasPermission;
|
||||
import com.jsl.oa.dao.InfoDAO;
|
||||
import com.jsl.oa.dao.RoleDAO;
|
||||
import com.jsl.oa.dao.UserDAO;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.model.dodata.UserDO;
|
||||
import com.jsl.oa.model.dodata.info.CarouselDO;
|
||||
import com.jsl.oa.model.vodata.UserProfileVo;
|
||||
@ -36,9 +36,9 @@ import java.util.List;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class InfoServiceImpl implements InfoService {
|
||||
private final RoleMapper roleMapper;
|
||||
private final InfoDAO infoDAO;
|
||||
private final UserDAO userDAO;
|
||||
private final RoleDAO roleDAO;
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("info.image.add")
|
||||
@ -131,7 +131,7 @@ public class InfoServiceImpl implements InfoService {
|
||||
public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) {
|
||||
log.info("\t> 执行 Service 层 InfoService.delHeaderImage 方法");
|
||||
// 用户权限校验
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取轮播图信息
|
||||
@ -154,7 +154,7 @@ public class InfoServiceImpl implements InfoService {
|
||||
public BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType) {
|
||||
log.info("\t> 执行 Service 层 InfoService.editSettingHeaderImage 方法");
|
||||
// 用户权限校验
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取轮播图信息
|
||||
|
@ -1,26 +1,23 @@
|
||||
package com.jsl.oa.services.impl;
|
||||
|
||||
|
||||
import com.jsl.oa.annotations.CheckUserAbleToUse;
|
||||
import com.jsl.oa.annotations.CheckUserHasPermission;
|
||||
import com.jsl.oa.dao.UserDAO;
|
||||
import com.jsl.oa.mapper.MessageMapper;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.mapper.ProjectMapper;
|
||||
import com.jsl.oa.model.dodata.MessageDO;
|
||||
import com.jsl.oa.model.dodata.PageBeanDO;
|
||||
import com.jsl.oa.model.dodata.ProjectChildDO;
|
||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||
import com.jsl.oa.model.vodata.MessageAddVO;
|
||||
import com.jsl.oa.model.vodata.MessageGetVO;
|
||||
import com.jsl.oa.services.MessageService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
import com.jsl.oa.utils.ErrorCode;
|
||||
import com.jsl.oa.utils.JwtUtil;
|
||||
import com.jsl.oa.utils.ResultUtil;
|
||||
import com.jsl.oa.utils.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* <h1>消息服务层实现类</h1>
|
||||
* <hr/>
|
||||
@ -36,10 +33,11 @@ import java.util.List;
|
||||
public class MessageServiceImpl implements MessageService {
|
||||
|
||||
private final MessageMapper messageMapper;
|
||||
private final RoleMapper roleMapper;
|
||||
private final UserDAO userDAO;
|
||||
private final ProjectMapper projectMapper;
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("message.delete")
|
||||
@CheckUserAbleToUse
|
||||
public BaseResponse messageDelete(Long mid, HttpServletRequest request) {
|
||||
//获取消息数据
|
||||
MessageDO messageDO = messageMapper.getMessageById(mid);
|
||||
@ -55,56 +53,323 @@ public class MessageServiceImpl implements MessageService {
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
@SuppressWarnings("checkstyle:Regexp")
|
||||
@Override
|
||||
@CheckUserAbleToUse
|
||||
public BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid) {
|
||||
//1.记录总数据数
|
||||
Long count = messageMapper.count(uid);
|
||||
|
||||
//2.获取分页数据列表
|
||||
public BaseResponse messageGet(LocalDateTime beginTime,
|
||||
LocalDateTime endTime,
|
||||
Integer page,
|
||||
Integer pageSize,
|
||||
Long uid) {
|
||||
//默认获取时间为最近30天
|
||||
if (begin == null) {
|
||||
begin = LocalDate.now();
|
||||
end = begin.minusDays(30);
|
||||
if (beginTime == null) {
|
||||
endTime = LocalDateTime.now();
|
||||
beginTime = endTime.minusDays(30);
|
||||
}
|
||||
Long start = (page - 1) * pageSize;
|
||||
List<MessageDO> empList = messageMapper.page(begin, end, uid, start, pageSize);
|
||||
List<MessageDO> messageDOList = messageMapper.page(beginTime, endTime, uid);
|
||||
//封装返回数据
|
||||
List<MessageGetVO> messageGetVOList = new ArrayList<>();
|
||||
for (MessageDO messageDO : messageDOList) {
|
||||
MessageGetVO messageGetVO1 = new MessageGetVO();
|
||||
messageGetVO1.setText(messageDO.getText());
|
||||
messageGetVO1.setTitle(messageDO.getTitle());
|
||||
messageGetVO1.setCreatedAt(messageDO.getCreatedAt());
|
||||
if (messageDO.getSid() != null) {
|
||||
messageGetVO1.setSenderName(userDAO.getUserById(messageDO.getSid()).getUsername());
|
||||
}
|
||||
messageGetVOList.add(messageGetVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<MessageGetVO> pageData = messageGetVOList.subList(start,
|
||||
Math.min(end, messageGetVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
|
||||
//3.封装PageBean对象
|
||||
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, empList);
|
||||
return ResultUtil.success(pageBean);
|
||||
/**
|
||||
* 添加指派消息
|
||||
*
|
||||
* @param pId 项目id
|
||||
* @param systemId 系统id
|
||||
* @param moddleId 模块id
|
||||
* @param uid 用户id
|
||||
* @param request
|
||||
*/
|
||||
@Override
|
||||
public void messageAdd(
|
||||
Integer pId,
|
||||
Integer systemId,
|
||||
Integer moddleId,
|
||||
Long uid,
|
||||
HttpServletRequest request) {
|
||||
// 拿到token,获取发送人id
|
||||
String token = request.getHeader("Authorization").replace("Bearer ", "");
|
||||
Long sid = JwtUtil.getUserId(token);
|
||||
// 获取发送人名字,项目名,子系统名,子模块名
|
||||
String senderName = userDAO.getUserById(sid).getUsername();
|
||||
String projectName = projectMapper.tgetProjectById(pId).getName();
|
||||
String systemName = projectMapper.getWorkById(systemId).getName();
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setSid(sid);
|
||||
messageAddVO.setUid(uid);
|
||||
messageAddVO.setTitle("指派消息");
|
||||
if (moddleId == null) {
|
||||
messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统给您");
|
||||
} else {
|
||||
String moddleName = projectMapper.getModuleById(moddleId).getName();
|
||||
messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统的" + moddleName + "子模块给您");
|
||||
}
|
||||
messageAddVO.setType("跳转审批页");
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加审批消息
|
||||
*
|
||||
* @param pId 项目id
|
||||
* @param systemId 系统id
|
||||
* @param moddleId 模块id
|
||||
* @param uid 用户id
|
||||
* @param isPass 是否通过 1:通过 0:未通过
|
||||
* @param request
|
||||
*/
|
||||
@Override
|
||||
public void messageAdd(
|
||||
Integer pId,
|
||||
Integer systemId,
|
||||
Integer moddleId,
|
||||
Long uid,
|
||||
Long isPass,
|
||||
HttpServletRequest request) {
|
||||
// 获取发送人名字,项目名,子系统名,子模块名
|
||||
String projectName = projectMapper.tgetProjectById(pId).getName();
|
||||
String systemName = projectMapper.getWorkById(systemId).getName();
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(uid);
|
||||
messageAddVO.setTitle("审批消息");
|
||||
String moddleName = projectMapper.getModuleById(moddleId).getName();
|
||||
if (isPass == 1) {
|
||||
messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人已通过");
|
||||
} else {
|
||||
messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人未通过");
|
||||
}
|
||||
messageAddVO.setType("消息详情");
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加项目变动消息
|
||||
* @param pId 项目id
|
||||
* @param type 类型 1:上传文档 2:修改状态 3:修改负责人
|
||||
* @param systemId 系统id
|
||||
* @param request
|
||||
*/
|
||||
@Override
|
||||
public void messageAdd(
|
||||
Integer pId,
|
||||
Integer type,
|
||||
Integer systemId,
|
||||
HttpServletRequest request) {
|
||||
// 获取项目名,负责人名
|
||||
String projectName = projectMapper.tgetProjectById(pId).getName();
|
||||
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
|
||||
String systemName = projectMapper.getWorkById(systemId).getName();
|
||||
// 添加消息
|
||||
// 1:上传文档 2:修改状态 3:修改负责人
|
||||
List<Long> uidList = projectMapper.getMemberByProjectId(pId);
|
||||
for (Long uid : uidList) {
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(uid);
|
||||
messageAddVO.setTitle("项目变动消息");
|
||||
if (type == 3) {
|
||||
messageAddVO.setText("项目负责人" + senderName + "调整了" + systemName + "子系统的负责人");
|
||||
} else if (type == 2) {
|
||||
messageAddVO.setText("项目负责人" + senderName + "修改了" + projectName + "项目的状态");
|
||||
} else if (type == 1) {
|
||||
messageAddVO.setText("项目负责人" + senderName + "上传了文档到" + projectName + "项目");
|
||||
}
|
||||
messageAddVO.setType("跳转项目页");
|
||||
messageAddVO.setToId(pId);
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加子系统变动消息
|
||||
*
|
||||
* @param pId 项目id
|
||||
* @param systmeId 系统id
|
||||
* @param moddleId 模块id
|
||||
* @param type 类型 1:删除模块 2:修改简介 3:修改周期
|
||||
* @param request
|
||||
*/
|
||||
@Override
|
||||
public void messageAdd(
|
||||
Integer pId,
|
||||
Integer systmeId,
|
||||
Integer moddleId,
|
||||
Integer type,
|
||||
HttpServletRequest request) {
|
||||
// 获取项目名,负责人名
|
||||
String projectName = projectMapper.tgetProjectById(pId).getName();
|
||||
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
|
||||
String systemName = projectMapper.getWorkById(systmeId).getName();
|
||||
String moddleName = projectMapper.getModuleById(moddleId).getName();
|
||||
// 添加消息
|
||||
// 1:删除模块 2:修改简介 3:修改周期
|
||||
if (type == 1) {
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectMapper.getPid(moddleId));
|
||||
messageAddVO.setTitle("子系统变动消息");
|
||||
messageAddVO.setText("项目经理" + senderName + "删除了" + projectName + "项目的"
|
||||
+ systemName + "系统的" + moddleName + "模块");
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
} else {
|
||||
List<Long> uidList = projectMapper.getMemberBySystemId(systmeId);
|
||||
for (Long uid : uidList) {
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(uid);
|
||||
messageAddVO.setTitle("子系统变动消息");
|
||||
if (type == 2) {
|
||||
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
|
||||
+ systemName + "系统的简介说明");
|
||||
} else if (type == 3) {
|
||||
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
|
||||
+ systemName + "系统的系统周期/工作量");
|
||||
}
|
||||
messageAddVO.setType("跳转系统页");
|
||||
messageAddVO.setToId(systmeId);
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加成员填写日报消息
|
||||
*
|
||||
* @param pId 项目id
|
||||
* @param systemId 系统id
|
||||
* @param moddleId 模块id
|
||||
*/
|
||||
@Override
|
||||
public void messageAdd(
|
||||
Integer pId,
|
||||
Integer systemId,
|
||||
Integer moddleId) {
|
||||
// 获取项目名,系统名,模块名,负责人名
|
||||
String projectName = projectMapper.tgetProjectById(pId).getName();
|
||||
String systemName = projectMapper.getWorkById(systemId).getName();
|
||||
String moddleName = projectMapper.getModuleById(moddleId).getName();
|
||||
String principalName = userDAO.getUserById(projectMapper.getPid(moddleId)).getUsername();
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectMapper.getPid(systemId));
|
||||
messageAddVO.setTitle("日报消息");
|
||||
messageAddVO.setText(projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人" + principalName
|
||||
+ "刚刚填写了日报");
|
||||
messageAddVO.setType("跳转日报页");
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加提醒消息
|
||||
* 系统/模块到期提醒
|
||||
*/
|
||||
@Override
|
||||
public void messageRemind() {
|
||||
// 当前时间
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 三天后时间
|
||||
LocalDateTime threeDaysLater = now.plusDays(3);
|
||||
// 七天后时间
|
||||
LocalDateTime sevenDaysLater = now.plusDays(7);
|
||||
// 获取三天后到期的模块
|
||||
List<ProjectModuleDO> projectWorkDOList = projectMapper.getProjectWorkByTime(threeDaysLater);
|
||||
// 获取七天后到期的模块
|
||||
List<ProjectModuleDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater);
|
||||
if (!projectWorkDOList1.isEmpty()) {
|
||||
for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectWorkDO.getPrincipalId());
|
||||
messageAddVO.setTitle("提醒消息");
|
||||
String projectName = projectMapper
|
||||
.tgetProjectById(projectMapper.getWorkById(projectWorkDO.getProjectChildId().intValue())
|
||||
.getProjectId().intValue()).getName();
|
||||
|
||||
String systemName = projectMapper.getWorkById(projectWorkDO.getProjectChildId().intValue()).getName();
|
||||
String moddleName = projectWorkDO.getName();
|
||||
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块"
|
||||
+ "还有七天就要到期了,请及时处理");
|
||||
messageAddVO.setType("跳转模块页");
|
||||
messageAddVO.setToId(projectWorkDO.getId().intValue());
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
}
|
||||
if (!projectWorkDOList.isEmpty()) {
|
||||
for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectWorkDO.getPrincipalId());
|
||||
messageAddVO.setTitle("提醒消息");
|
||||
String projectName = projectMapper
|
||||
.tgetProjectById(projectMapper.getWorkById(projectWorkDO.getProjectChildId().intValue())
|
||||
.getPrincipalId().intValue()).getName();
|
||||
|
||||
String systemName = projectMapper.getWorkById(projectWorkDO.getProjectChildId().intValue()).getName();
|
||||
String moddleName = projectWorkDO.getName();
|
||||
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块"
|
||||
+ "还有三天就要到期了,请及时处理");
|
||||
messageAddVO.setType("跳转模块页");
|
||||
messageAddVO.setToId(projectWorkDO.getId().intValue());
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
}
|
||||
|
||||
// 获取七天后到期的系统
|
||||
List<ProjectChildDO> projectChildDOList = projectMapper.getProjectChildByTime(sevenDaysLater);
|
||||
if (!projectChildDOList.isEmpty()) {
|
||||
for (ProjectChildDO projectChildDO : projectChildDOList) {
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectChildDO.getPrincipalId());
|
||||
messageAddVO.setTitle("提醒消息");
|
||||
String projectName = projectMapper.tgetProjectById(projectChildDO.getProjectId().intValue()).getName();
|
||||
String systemName = projectChildDO.getName();
|
||||
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统还有七天就要到期了,请及时处理");
|
||||
messageAddVO.setType("跳转系统页");
|
||||
messageAddVO.setToId(projectChildDO.getId().intValue());
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
}
|
||||
// 获取三天后到期的系统
|
||||
List<ProjectChildDO> projectChildDOList1 = projectMapper.getProjectChildByTime(threeDaysLater);
|
||||
if (!projectChildDOList1.isEmpty()) {
|
||||
for (ProjectChildDO projectChildDO : projectChildDOList1) {
|
||||
// 添加消息
|
||||
MessageAddVO messageAddVO = new MessageAddVO();
|
||||
messageAddVO.setUid(projectChildDO.getPrincipalId());
|
||||
messageAddVO.setTitle("提醒消息");
|
||||
String projectName = projectMapper.tgetProjectById(projectChildDO.getProjectId().intValue()).getName();
|
||||
String systemName = projectChildDO.getName();
|
||||
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统还有三天就要到期了,请及时处理");
|
||||
messageAddVO.setType("跳转系统页");
|
||||
messageAddVO.setToId(projectChildDO.getId().intValue());
|
||||
messageMapper.messageAdd(messageAddVO);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("message.get")
|
||||
public BaseResponse messageGetAll(
|
||||
HttpServletRequest request,
|
||||
LocalDate begin,
|
||||
LocalDate end,
|
||||
Long page,
|
||||
Long pageSize,
|
||||
Long loginId,
|
||||
Long uid
|
||||
) {
|
||||
log.info("请求接口服务层");
|
||||
//1.记录总数据数
|
||||
Long count = messageMapper.count(uid);
|
||||
|
||||
//2.获取分页数据列表
|
||||
//默认获取时间为最近30天
|
||||
if (begin == null) {
|
||||
begin = LocalDate.now();
|
||||
end = begin.minusDays(30);
|
||||
}
|
||||
Long start = (page - 1) * pageSize;
|
||||
List<MessageDO> messageDOList = messageMapper.page(begin, end, uid, start, pageSize);
|
||||
|
||||
//3.封装PageBean对象
|
||||
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, messageDOList);
|
||||
return ResultUtil.success(pageBean);
|
||||
public BaseResponse messageGetById(Long id, Long uid) {
|
||||
return ResultUtil.success(messageMapper.getMessageById(id));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
package com.jsl.oa.services.impl;
|
||||
|
||||
import com.jsl.oa.dao.ModuleDAO;
|
||||
import com.jsl.oa.dao.ProjectDAO;
|
||||
import com.jsl.oa.dao.RoleDAO;
|
||||
import com.jsl.oa.dao.UserDAO;
|
||||
import com.jsl.oa.mapper.ModuleMapper;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.model.dodata.ProjectWorkDO;
|
||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||
import com.jsl.oa.model.vodata.ProjectWorkAndNameVO;
|
||||
import com.jsl.oa.services.ModuleService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
@ -24,11 +23,10 @@ import java.util.List;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ModuleServiceImpl implements ModuleService {
|
||||
private final RoleMapper roleMapper;
|
||||
private final ModuleDAO moduleDAO;
|
||||
private final ProjectDAO projectDAO;
|
||||
private final ModuleMapper moduleMapper;
|
||||
private final UserDAO userDAO;
|
||||
private final RoleDAO roleDAO;
|
||||
|
||||
@Override
|
||||
public BaseResponse getByProjectId(Integer projectId, HttpServletRequest request) {
|
||||
@ -44,7 +42,7 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
is = 0;
|
||||
}
|
||||
|
||||
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is);
|
||||
List<ProjectModuleDO> projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is);
|
||||
return ResultUtil.success(projectWorkDOList);
|
||||
}
|
||||
|
||||
@ -63,10 +61,10 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
is = 0;
|
||||
}
|
||||
|
||||
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getBySysId(sysId, userId, is);
|
||||
List<ProjectModuleDO> projectWorkDOList = moduleMapper.getBySysId(sysId, userId, is);
|
||||
// 封装VO类
|
||||
List<ProjectWorkAndNameVO> projectWorkAndNameVOS = new ArrayList<>();
|
||||
for (ProjectWorkDO projectWorkDO : projectWorkDOList) {
|
||||
for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
|
||||
ProjectWorkAndNameVO projectWorkAndNameVO = new ProjectWorkAndNameVO();
|
||||
Processing.copyProperties(projectWorkDO, projectWorkAndNameVO);
|
||||
// 添加负责人和子系统名称
|
||||
@ -83,9 +81,8 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
|
||||
@Override
|
||||
public BaseResponse deleteById(HttpServletRequest request, Long id) {
|
||||
|
||||
// 检测是否为管理员
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
|
||||
@ -97,9 +94,9 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
// 删除子模块方法
|
||||
public void deleteMoudule(Long id) {
|
||||
//获取所有父Id=id的子模块
|
||||
List<ProjectWorkDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id);
|
||||
List<ProjectModuleDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id);
|
||||
|
||||
for (ProjectWorkDO workDO : projectWorkDOS) {
|
||||
for (ProjectModuleDO workDO : projectWorkDOS) {
|
||||
deleteMoudule(workDO.getId());
|
||||
}
|
||||
|
||||
|
@ -5,11 +5,10 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jsl.oa.annotations.CheckUserHasPermission;
|
||||
import com.jsl.oa.dao.ProjectDAO;
|
||||
import com.jsl.oa.dao.RoleDAO;
|
||||
import com.jsl.oa.dao.UserDAO;
|
||||
import com.jsl.oa.mapper.ProjectMapper;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.mapper.UserMapper;
|
||||
import com.jsl.oa.model.dodata.ProjectCuttingDO;
|
||||
import com.jsl.oa.model.dodata.ProjectDO;
|
||||
import com.jsl.oa.model.dodata.UserDO;
|
||||
import com.jsl.oa.model.dodata.info.ProjectShowDO;
|
||||
@ -48,10 +47,10 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
private final UserMapper userMapper;
|
||||
private final ProjectMapper projectMapper;
|
||||
private final RoleMapper roleMapper;
|
||||
private final ProjectDAO projectDAO;
|
||||
private final UserDAO userDAO;
|
||||
private final ObjectMapper objectMapper;
|
||||
private final RoleDAO roleDAO;
|
||||
|
||||
@Override
|
||||
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
|
||||
@ -73,7 +72,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
tag = new StringBuilder(tag.substring(0, tag.length() - 2));
|
||||
}
|
||||
projectAdd.setTags(open + tag + close);
|
||||
projectAdd.setFile("{\"URI\":\"" + projectAdd.getFile() + "\"}");
|
||||
projectAdd.setFiles("{\"URI\":\"" + projectAdd.getFiles() + "\"}");
|
||||
|
||||
|
||||
projectDAO.projectAdd(projectAdd);
|
||||
@ -81,78 +80,36 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) {
|
||||
public BaseResponse projectWorkAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法");
|
||||
//获取用户id
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
//是否是增加子系统
|
||||
if (projectWorkVO.getType() == 0) {
|
||||
//是否是老师
|
||||
if (Processing.checkUserIsTeacher(request, roleMapper)) {
|
||||
if (Processing.checkUserIsTeacher(request, roleDAO)) {
|
||||
projectDAO.projectWorkAdd(projectWorkVO);
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
}//增加子模块
|
||||
else {
|
||||
} else {
|
||||
//是否是子系统的负责人
|
||||
if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) {
|
||||
projectDAO.projectWorkAdd(projectWorkVO);
|
||||
} else return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
}
|
||||
|
||||
return ResultUtil.success("添加成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse tget(Integer id, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.tget 方法");
|
||||
//根据id查询
|
||||
if (id != null) {
|
||||
ProjectDO projectDO = projectMapper.tgetProjectById(id);
|
||||
ProjectSimpleVO projectSimpleVO = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO, projectDO, userDAO, objectMapper);
|
||||
return ResultUtil.success(projectSimpleVO);
|
||||
}
|
||||
public BaseResponse tGet(List<String> tags, List<String> isFinish, Integer page, Integer pageSize) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.tGet 方法");
|
||||
|
||||
//根据标签查询
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
|
||||
List<ProjectDO> projectDOList = projectDAO.tget(isFinish, tags);
|
||||
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
|
||||
//根据状态查询
|
||||
if (isFinish != null && !isFinish.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
|
||||
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
|
||||
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
@ -165,6 +122,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -231,8 +189,8 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
|
||||
//判断用户是否为老师 或者 项目负责人
|
||||
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
|
||||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
|
||||
if (!Processing.checkUserIsTeacher(request, roleDAO)
|
||||
|| !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
|
||||
@ -246,30 +204,6 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("project.cutting.user.get")
|
||||
public BaseResponse projectGetUserInCutting(Long uid) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectGetUserInCutting 方法");
|
||||
if (userDAO.isExistUser(uid)) {
|
||||
List<ProjectCuttingDO> projectCuttingDOList = projectDAO.projectGetUserInCutting(uid);
|
||||
return ResultUtil.success(projectCuttingDOList);
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("project.cutting.user.add")
|
||||
public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
|
||||
if (userDAO.isExistUser(uid)) {
|
||||
projectDAO.projectAddUserForCutting(uid, pid);
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse getHeader(Integer id) {
|
||||
log.info("\t> 执行 Service 层 InfoService.getHeader 方法");
|
||||
@ -361,14 +295,20 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) {
|
||||
public BaseResponse get(
|
||||
HttpServletRequest request,
|
||||
List<String> tags,
|
||||
List<String> isFinish,
|
||||
Integer page,
|
||||
Integer pageSize
|
||||
) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.get 方法");
|
||||
|
||||
//获取用户
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
//根据标签查询
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, tags, isFinish);
|
||||
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
@ -386,40 +326,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
//根据状态查询
|
||||
if (isFinish != null && !isFinish.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
|
||||
|
||||
//判断是否是老师(项目负责人)
|
||||
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
} else {
|
||||
listAll = 0;
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||
List<ProjectDO> projectDOList = projectDAO.get(userId, tags, isFinish);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
@ -433,82 +340,38 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
return ResultUtil.success(projectMapper.get(userId));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
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 方法");
|
||||
|
||||
public BaseResponse workGet(
|
||||
HttpServletRequest request,
|
||||
List<String> tags,
|
||||
List<String> isFinish,
|
||||
Integer is,
|
||||
Integer page,
|
||||
Integer pageSize
|
||||
) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.workGet 方法");
|
||||
//获取用户
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
|
||||
//根据标签查询
|
||||
if (tags != null && !tags.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
List<ProjectDO> projectDOList = projectDAO.workget(userId, tags, isFinish, is);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
|
||||
//根据状态查询
|
||||
if (isFinish != null && !isFinish.isEmpty()) {
|
||||
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
return ResultUtil.success(pageData);
|
||||
|
||||
|
||||
//判断是否是老师(项目负责人)
|
||||
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
|
||||
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
} else {
|
||||
listAll = 0;
|
||||
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
|
||||
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
|
||||
for (ProjectDO projectDO : projectDOList) {
|
||||
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
|
||||
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
|
||||
projectSimpleVOList.add(projectSimpleVO1);
|
||||
}
|
||||
//分页返回
|
||||
int start = (page - 1) * pageSize;
|
||||
int end = start + pageSize;
|
||||
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
|
||||
Math.min(end, projectSimpleVOList.size()));
|
||||
return ResultUtil.success(pageData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -527,7 +390,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
|
||||
|
||||
//判断用户是否为老师 或者 项目负责人
|
||||
if (!Processing.checkUserIsTeacher(request, roleMapper)) {
|
||||
if (!Processing.checkUserIsTeacher(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
|
||||
@ -541,57 +404,4 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("project.cutting.add")
|
||||
public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
|
||||
//赋值数据
|
||||
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
||||
Processing.copyProperties(projectCuttingAddVO, projectCuttingDO);
|
||||
//根据pid检测项目是否存在
|
||||
if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) {
|
||||
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
||||
}
|
||||
//向数据库添加数据
|
||||
projectDAO.projectCuttingAdd(projectCuttingDO);
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("project.cutting.edit")
|
||||
public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法");
|
||||
//赋值数据
|
||||
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
||||
Processing.copyProperties(projectCuttingEditVO, projectCuttingDO);
|
||||
//根据id检测项目模块是否存在
|
||||
if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) {
|
||||
return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST);
|
||||
}
|
||||
//向数据库添加数据
|
||||
projectDAO.updateProjectCutting(projectCuttingDO);
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@CheckUserHasPermission("project.cutting.delete")
|
||||
public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) {
|
||||
log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法");
|
||||
//检测新旧用户是否存在
|
||||
if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) {
|
||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||
}
|
||||
//用户项目表是否含有对应记录
|
||||
if (!projectDAO.isExistProjectUser(pid, oldUid)) {
|
||||
return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST);
|
||||
}
|
||||
//更新数据
|
||||
if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) {
|
||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||
}
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
118
src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
Normal file
118
src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
Normal 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.ProjectModuleDO;
|
||||
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 (ProjectModuleDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) {
|
||||
//查询每个项目下所有的审核信息
|
||||
List<ReviewDO> reviewDOS = reviewMapper.
|
||||
selectReviewFromSubsystem(projectWorkDO.getId());
|
||||
//封装VO类
|
||||
reviewData.addAll(encapsulateArrayClass(reviewDOS));
|
||||
}
|
||||
|
||||
|
||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||
for (ProjectModuleDO 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
@CheckUserHasPermission("role.add")
|
||||
public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) {
|
||||
log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法");
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
roleDAO.addRoleUser(uid, rid);
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
@ -57,7 +57,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
|
||||
public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) {
|
||||
log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法");
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
roleDAO.delRoleUser(uid);
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
@ -77,7 +77,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
|
||||
}
|
||||
//检测用户权限是否为管理员
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
if (roleDAO.roleChangeUser(uid, rid)) {
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
@ -92,7 +92,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
public BaseResponse roleGet(HttpServletRequest request, String id) {
|
||||
log.info("\t> 执行 Service 层 RoleService.roleGet 方法");
|
||||
// 检查用户权限
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取 Role 权限组
|
||||
@ -119,7 +119,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) {
|
||||
log.info("\t> 执行 Service 层 RoleService.roleEdit 方法");
|
||||
// 检查用户权限
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取 Role 相关信息
|
||||
@ -143,7 +143,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
public BaseResponse roleDelete(HttpServletRequest request, Long id) {
|
||||
log.info("\t> 执行 Service 层 RoleService.roleDelete 方法");
|
||||
// 检查用户权限
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取 Role 相关信息
|
||||
@ -165,7 +165,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
public BaseResponse addRole(HttpServletRequest request, RoleAddVo roleAddVO) throws ClassCopyException {
|
||||
log.info("\t> 执行 Service 层 RoleService.addRole 方法");
|
||||
// 检查用户权限
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 检查权限名称是否重复
|
||||
|
@ -41,17 +41,21 @@ import java.util.regex.Pattern;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UserServiceImpl implements UserService {
|
||||
|
||||
private final UserDAO userDAO;
|
||||
private final RoleDAO roleDAO;
|
||||
private final PermissionDAO permissionDAO;
|
||||
|
||||
@Override
|
||||
public UserDO getUserInfoByUsername(String username) {
|
||||
return userDAO.getUserInfoByUsername(username);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse userDelete(HttpServletRequest request, Long id) {
|
||||
log.info("\t> 执行 Service 层 UserService.userDelete 方法");
|
||||
//判断用户是否存在
|
||||
if (userDAO.isExistUser(id)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 用户是否已删除
|
||||
@ -69,7 +73,7 @@ public class UserServiceImpl implements UserService {
|
||||
@Override
|
||||
public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) {
|
||||
log.info("\t> 执行 Service 层 UserService.userLock 方法");
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
//判断用户是否存在
|
||||
@ -127,15 +131,14 @@ public class UserServiceImpl implements UserService {
|
||||
return ResultUtil.success(userCurrentBackVO);
|
||||
}
|
||||
|
||||
@SuppressWarnings("checkstyle:NestedIfDepth")
|
||||
@Override
|
||||
@CheckUserAbleToUse
|
||||
public BaseResponse userCurrent(
|
||||
String id,
|
||||
String username,
|
||||
String email,
|
||||
String phone,
|
||||
HttpServletRequest request
|
||||
) {
|
||||
public BaseResponse userCurrent(HttpServletRequest request,
|
||||
String id,
|
||||
String username,
|
||||
String email,
|
||||
String phone) {
|
||||
log.info("\t> 执行 Service 层 UserService.userCurrent 方法");
|
||||
if (id == null && username == null && email == null && phone == null) {
|
||||
// Token获取信息
|
||||
@ -159,7 +162,7 @@ public class UserServiceImpl implements UserService {
|
||||
if (roleUserDO == null) {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin");
|
||||
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
|
||||
if (!roleUserDO.getRid().equals(roleDO.getId())) {
|
||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||
}
|
||||
@ -192,7 +195,7 @@ public class UserServiceImpl implements UserService {
|
||||
public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) {
|
||||
log.info("\t> 执行 Service 层 UserService.userAdd 方法");
|
||||
// 检测用户是否为管理员
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
//如果用户不重复,添加用户
|
||||
@ -230,7 +233,7 @@ public class UserServiceImpl implements UserService {
|
||||
public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) {
|
||||
log.info("\t> 执行 Service 层 userEdit 方法");
|
||||
// 检测用户是否为管理员
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
//根据id获取用户信息
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.jsl.oa.services.timese;
|
||||
|
||||
|
||||
import com.jsl.oa.services.MessageService;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
public class MessageTimeTask {
|
||||
@Resource
|
||||
private MessageService messageService;
|
||||
|
||||
// 每天0点执行一次
|
||||
@Scheduled(cron = "0 0 0 * * ?")
|
||||
public void messageRemind() {
|
||||
messageService.messageRemind();
|
||||
}
|
||||
}
|
@ -51,7 +51,8 @@ public enum ErrorCode {
|
||||
PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"),
|
||||
PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"),
|
||||
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;
|
||||
|
@ -34,7 +34,7 @@ public class JwtUtil {
|
||||
* @return 返回生成的Token
|
||||
*/
|
||||
public static String generateToken(@NotNull Long userId) {
|
||||
Key key = Keys.hmacShaKeyFor(SafeConstants.SECRET_KEY.getBytes());
|
||||
Key key = Keys.hmacShaKeyFor(SafeConstants.getSecretKey().getBytes());
|
||||
return Jwts.builder()
|
||||
.setSubject(userId.toString())
|
||||
.setExpiration(new java.util.Date(System.currentTimeMillis() + EXPIRATION_TIME))
|
||||
@ -71,7 +71,7 @@ public class JwtUtil {
|
||||
* @return 返回获取到的用户名
|
||||
*/
|
||||
public static Long getUserId(String token) {
|
||||
Key key = Keys.hmacShaKeyFor(SafeConstants.SECRET_KEY.getBytes());
|
||||
Key key = Keys.hmacShaKeyFor(SafeConstants.getSecretKey().getBytes());
|
||||
Jws<Claims> claimsJws = Jwts.parserBuilder()
|
||||
.setSigningKey(key)
|
||||
.build()
|
||||
|
@ -7,7 +7,6 @@ import com.jsl.oa.dao.PermissionDAO;
|
||||
import com.jsl.oa.dao.RoleDAO;
|
||||
import com.jsl.oa.dao.UserDAO;
|
||||
import com.jsl.oa.exception.ClassCopyException;
|
||||
import com.jsl.oa.mapper.RoleMapper;
|
||||
import com.jsl.oa.model.dodata.*;
|
||||
import com.jsl.oa.model.vodata.PermissionContentVo;
|
||||
import com.jsl.oa.model.vodata.ProjectSimpleVO;
|
||||
@ -166,13 +165,12 @@ public class Processing {
|
||||
* 该方法用于检查用户是否是管理员,类型封装后字节返回结果
|
||||
*
|
||||
* @param request 请求
|
||||
* @param roleMapper RoleMapper
|
||||
* @return 如果为 true 是管理员,false 不是管理员
|
||||
*/
|
||||
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
|
||||
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleDAO roleDAO) {
|
||||
RoleUserDO roleUserDO = roleDAO.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||
if (roleUserDO != null) {
|
||||
RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
|
||||
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
|
||||
return roleUserDO.getRid().equals(roleDO.getId());
|
||||
} else {
|
||||
return false;
|
||||
@ -183,13 +181,12 @@ public class Processing {
|
||||
* 检查用户是否是老师
|
||||
*
|
||||
* @param request 请求
|
||||
* @param roleMapper RoleMapper
|
||||
* @return 如果为 true 是老师,false 不是老师
|
||||
*/
|
||||
public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
|
||||
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||
public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleDAO roleDAO) {
|
||||
RoleUserDO roleUserDO = roleDAO.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||
if (roleUserDO != null) {
|
||||
RoleDO roleDO = roleMapper.getRoleByRoleName("teacher");
|
||||
RoleDO roleDO = roleDAO.getRoleByRoleName("teacher");
|
||||
return roleUserDO.getRid().equals(roleDO.getId());
|
||||
} else {
|
||||
return false;
|
||||
@ -211,11 +208,10 @@ public class Processing {
|
||||
* @param <S> 源对象的类型。
|
||||
* @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> void copyProperties(@NotNull S source, @NotNull T target) throws ClassCopyException {
|
||||
Class<?> sourceClass = source.getClass();
|
||||
Class<?> targetClass = target.getClass();
|
||||
|
||||
@ -254,26 +250,23 @@ public class Processing {
|
||||
} catch (IllegalAccessException ignored) {
|
||||
throw new ClassCopyException();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 将性别转为字符形式
|
||||
* @Date: 2024/1/18
|
||||
**/
|
||||
* <h2>获取性别</h2>
|
||||
* <hr/>
|
||||
* 用于获取性别
|
||||
*
|
||||
* @param sex 性别ID
|
||||
* @return 返回中文性别
|
||||
*/
|
||||
@Contract(pure = true)
|
||||
public static @NotNull String getSex(short sex) {
|
||||
if (sex == 0) {
|
||||
return "保密";
|
||||
switch (sex) {
|
||||
case 1: return "男";
|
||||
case 2: return "女";
|
||||
default: return "保密";
|
||||
}
|
||||
if (sex == 1) {
|
||||
return "男";
|
||||
}
|
||||
if (sex == 2) {
|
||||
return "女";
|
||||
}
|
||||
return " ";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -285,10 +278,7 @@ public class Processing {
|
||||
* @return {@link BaseResponse}
|
||||
*/
|
||||
public static @NotNull UserCurrentBackVO.UserCurrent returnUserInfo(
|
||||
@NotNull UserDO userDO,
|
||||
RoleDAO roleDAO,
|
||||
PermissionDAO permissionDAO
|
||||
) {
|
||||
@NotNull UserDO userDO, RoleDAO roleDAO, PermissionDAO permissionDAO) {
|
||||
UserCurrentBackVO.UserCurrent userCurrent = new UserCurrentBackVO.UserCurrent();
|
||||
// 获取用户角色
|
||||
RoleUserDO getUserRole = roleDAO.getRoleUserByUid(userDO.getId());
|
||||
@ -308,29 +298,30 @@ public class Processing {
|
||||
// 获取权限列表信息
|
||||
getPermissionForString = permissionDAO.getPermission(userDO.getId());
|
||||
}
|
||||
userCurrent.setUser(new UserCurrentBackVO.ReturnUser()
|
||||
.setId(userDO.getId())
|
||||
.setJobId(userDO.getJobId())
|
||||
.setUsername(userDO.getUsername())
|
||||
.setAddress(userDO.getAddress())
|
||||
.setPhone(userDO.getPhone())
|
||||
.setEmail(userDO.getEmail())
|
||||
.setAge(userDO.getAge())
|
||||
.setSignature(userDO.getSignature())
|
||||
.setAvatar(userDO.getAvatar())
|
||||
.setNickname(userDO.getNickname())
|
||||
.setSex(userDO.getSex())
|
||||
.setEnabled(userDO.getEnabled())
|
||||
.setAccountNoExpired(userDO.getAccountNoExpired())
|
||||
.setCredentialsNoExpired(userDO.getCredentialsNoExpired())
|
||||
.setRecommend(userDO.getRecommend())
|
||||
.setAccountNoLocked(userDO.getAccountNoLocked())
|
||||
.setDescription(userDO.getDescription())
|
||||
.setCreatedAt(userDO.getCreatedAt())
|
||||
.setUpdatedAt(userDO.getUpdatedAt())
|
||||
.setIsDelete(userDO.getIsDelete()))
|
||||
.setRole(new UserCurrentBackVO.ReturnUserRole().setRid(getUserRole.getRid()))
|
||||
.setPermission(getPermissionForString);
|
||||
userCurrent.setUser(new UserCurrentBackVO.ReturnUser().
|
||||
setId(userDO.getId()).
|
||||
setJobId(userDO.getJobId()).
|
||||
setUsername(userDO.getUsername()).
|
||||
setAddress(userDO.getAddress()).
|
||||
setPhone(userDO.getPhone()).
|
||||
setEmail(userDO.getEmail()).
|
||||
setAge(userDO.getAge()).
|
||||
setSignature(userDO.getSignature()).
|
||||
setAvatar(userDO.getAvatar()).
|
||||
setNickname(userDO.getNickname()).
|
||||
setSex(userDO.getSex()).
|
||||
setEnabled(userDO.getEnabled()).
|
||||
setAccountNoExpired(userDO.getAccountNoExpired()).
|
||||
setCredentialsNoExpired(userDO.getCredentialsNoExpired()).
|
||||
setRecommend(userDO.getRecommend()).
|
||||
setAccountNoLocked(userDO.getAccountNoLocked()).
|
||||
setDescription(userDO.getDescription()).
|
||||
setCreatedAt(userDO.getCreatedAt()).
|
||||
setUpdatedAt(userDO.getUpdatedAt()).
|
||||
setIsDelete(userDO.getIsDelete())).
|
||||
setRole(new UserCurrentBackVO.ReturnUserRole().
|
||||
setRid(getUserRole.getRid())).
|
||||
setPermission(getPermissionForString);
|
||||
return userCurrent;
|
||||
}
|
||||
|
||||
@ -356,14 +347,17 @@ public class Processing {
|
||||
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.setName(projectDO.getName());
|
||||
projectSimpleVO.setTags(projectDO.getTags());
|
||||
projectSimpleVO.setCycle(projectDO.getCycle());
|
||||
projectSimpleVO.setIsFinish(projectDO.getIsFinish());
|
||||
projectSimpleVO.setWorkLoad(projectDO.getWorkLoad());
|
||||
projectSimpleVO.setCycle(Long.valueOf(projectDO.getCycle()));
|
||||
projectSimpleVO.setWorkLoad(Long.valueOf(projectDO.getWorkLoad()));
|
||||
projectSimpleVO.setPrincipalUser(userDAO.getUserById(projectDO.getPrincipalId()).getUsername());
|
||||
// 解析JSON字符串
|
||||
JsonNode rootNode = null;
|
||||
@ -432,4 +426,39 @@ public class Processing {
|
||||
|
||||
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 "其他";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
|
||||
* @see com.jsl.oa.common.constant.BusinessConstants
|
||||
* @see com.jsl.oa.config.redis.RedisOperating
|
||||
* @author xiao_lfeng
|
||||
* @param <R> 泛型
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
|
@ -1,5 +1,5 @@
|
||||
maven:
|
||||
timestamp: @buildDate@
|
||||
timestamp: 2024/3/10
|
||||
spring:
|
||||
profiles:
|
||||
active: @profile.active@
|
@ -5,14 +5,14 @@
|
||||
|
||||
<mapper namespace="com.jsl.oa.mapper.ModuleMapper">
|
||||
|
||||
<select id="getByProjectId" resultType="com.jsl.oa.model.dodata.ProjectWorkDO">
|
||||
<select id="getByProjectId" resultType="com.jsl.oa.model.dodata.ProjectModuleDO">
|
||||
select * from organize_oa.oa_project_work where project_id=#{projectId} and type=0
|
||||
<if test="is != 1 ">
|
||||
and (principal_id=#{userId} or principal_id is null)
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getBySysId" resultType="com.jsl.oa.model.dodata.ProjectWorkDO">
|
||||
<select id="getBySysId" resultType="com.jsl.oa.model.dodata.ProjectModuleDO">
|
||||
select * from organize_oa.oa_project_work where pid=#{sysId} and type=1
|
||||
<if test="is != 1 ">
|
||||
and (principal_id=#{userId} or principal_id is null)
|
||||
|
@ -49,10 +49,10 @@
|
||||
|
||||
<select id="getByTags" resultType="com.jsl.oa.model.dodata.ProjectDO">
|
||||
<if test="tags != null">
|
||||
select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and status=1 and
|
||||
select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and
|
||||
|
||||
<if test="isFinish != null and isFinish.size() > 0">
|
||||
is_finish in
|
||||
status in
|
||||
<foreach collection="isFinish" item="Finish" separator="," open="(" close=") and">
|
||||
#{Finish}
|
||||
</foreach>
|
||||
@ -67,7 +67,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getByIsfinish" resultType="com.jsl.oa.model.dodata.ProjectDO">
|
||||
select * from organize_oa.oa_project where is_delete=false and principal_id =#{userId} and status=1 and is_finish in
|
||||
select * from organize_oa.oa_project where is_delete=false and principal_id =#{userId} and status in
|
||||
<foreach collection="isFinish" item="Finish" separator="," open="(" close=")">
|
||||
#{Finish}
|
||||
</foreach>
|
||||
@ -80,10 +80,10 @@
|
||||
<if test="is != null">
|
||||
(principal_id = #{userId} and is_delete=false) or
|
||||
</if>
|
||||
id in(select project_id from organize_oa.oa_project_work
|
||||
where is_delete=false and (principal_id=#{userId} ) and
|
||||
id in(select project_id from organize_oa.oa_project_child
|
||||
where is_delete=false and principal_id=#{userId} ) and
|
||||
<if test="isFinish != null and isFinish.size() > 0">
|
||||
is_finish in
|
||||
oa_project.status in
|
||||
<foreach collection="isFinish" item="Finish" separator="," open="(" close=") and">
|
||||
#{Finish}
|
||||
</foreach>
|
||||
@ -102,7 +102,7 @@
|
||||
<if test="is != null">
|
||||
(principal_id = #{userId} and is_delete=false) or
|
||||
</if>
|
||||
id in(select project_id from organize_oa.oa_project_work where is_delete=false and (principal_id=#{userId}) and is_finish in
|
||||
id in(select project_id from organize_oa.oa_project_child where is_delete=false and (principal_id=#{userId}) and oa_project.status in
|
||||
<foreach collection="isFinish" item="Finish" separator="," open="(" close="))">
|
||||
#{Finish}
|
||||
</foreach>
|
||||
@ -113,7 +113,7 @@
|
||||
<if test="is != null">
|
||||
(principal_id = #{userId} and is_delete=false) or
|
||||
</if>
|
||||
id in(select project_id from organize_oa.oa_project_work where is_delete=false and principal_id=#{userId})
|
||||
id in(select project_id from organize_oa.oa_project_child where is_delete=false and principal_id=#{userId})
|
||||
</select>
|
||||
|
||||
<select id="workget1" resultType="com.jsl.oa.model.dodata.ProjectDO">
|
||||
@ -130,9 +130,9 @@
|
||||
</select>
|
||||
|
||||
<select id="tgetBytags" resultType="com.jsl.oa.model.dodata.ProjectDO">
|
||||
select * from organize_oa.oa_project where is_delete=false and status=1 and
|
||||
select * from organize_oa.oa_project where is_delete=false and
|
||||
<if test="isFinish != null and isFinish.size() > 0">
|
||||
is_finish in
|
||||
oa_project.status in
|
||||
<foreach collection="isFinish" item="Finish" separator="," open="(" close=") and">
|
||||
#{Finish}
|
||||
</foreach>
|
||||
|
Loading…
x
Reference in New Issue
Block a user