Compare commits

...

13 Commits

Author SHA1 Message Date
860b109ebf Upload
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-12 13:07:11 +08:00
65c06e8eef Merge remote-tracking branch 'origin/feature' 2024-03-12 13:04:54 +08:00
176yunxuan
56bfc0737f 游客查询标签状态
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-12 12:44:22 +08:00
176yunxuan
dd16df0b88 Merge remote-tracking branch 'origin/feature' into feature
# Conflicts:
#	src/main/java/com/jsl/oa/dao/ProjectDAO.java
2024-03-12 12:44:11 +08:00
176yunxuan
e19630f9cc 游客查询标签状态 2024-03-12 12:43:05 +08:00
xiangZr-hhh
ee9e361130 项目删除接口优化
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-12 11:29:52 +08:00
xiangZr-hhh
935003c126 用户信息获取接口添加角色控制
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
项目编辑、删除
2024-03-12 11:24:25 +08:00
176yunxuan
6e4f22170d 游客查询
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-11 22:08:10 +08:00
176yunxuan
ce123e1858 项目查询取消token验证
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-11 21:01:59 +08:00
176yunxuan
187fb59823 项目查询取消token验证
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-11 20:58:11 +08:00
176yunxuan
789eea8d49 子模块/子系统的查询和增加
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-11 19:04:59 +08:00
176yunxuan
f29c016405 Merge remote-tracking branch 'origin/feature' into feature
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-11 16:34:08 +08:00
176yunxuan
fbddeff093 优化项目标签和状态查询 2024-03-11 16:33:39 +08:00
16 changed files with 447 additions and 124 deletions

View File

@ -75,7 +75,8 @@ public class AuthControllerAspect {
"&& !execution(* com.jsl.oa.controllers.IndexController.*(..)) " +
"&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " +
"&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderImage(..)) " +
"&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))")
"&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))" +
"&& !execution(* com.jsl.oa.controllers.ProjectController.projectGetCustom(..))")
public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable {
// 获取 HttpServletRequest 对象
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();

View File

@ -63,7 +63,9 @@ public class ShiroConfiguration {
filterChainDefinitionMap.put("/info/header-user/get", "anon"); // 信息接口允许匿名访问
filterChainDefinitionMap.put("/project/header/get", "anon"); // 信息接口允许匿名访问
filterChainDefinitionMap.put("/project/get", "anon"); // 信息接口允许匿名访问
filterChainDefinitionMap.put("/project/get/custom", "anon"); // 游客获取项目允许匿名访问
filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token)
return filterChainDefinitionMap;
}
}

View File

@ -25,4 +25,6 @@ public class IndexController {
newMap.put("timestamp", "构建时间:" + timestamp);
return ResultUtil.success("欢迎使用JSL-OA系统服务器处于正常状态", newMap);
}
}

View File

@ -45,6 +45,9 @@ public class NewsController {
return newsService.newsAdd(newsAddVO, request);
}
}

View File

@ -1,8 +1,6 @@
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.ProjectInfoVO;
import com.jsl.oa.model.voData.*;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
@ -17,7 +15,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
@Slf4j
@ -41,7 +38,20 @@ public class ProjectController {
}
/**
* 全部项目的信息获取(打开项目页)
* 游客获取项目
* @return
*/
@GetMapping("/project/get/custom")
public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) Integer isFinish){
log.info("请求接口[GET]: /project/all/get");
return projectService.tget(id,tags,isFinish);
}
/**
* 我负责的界面的获取项目
*
* @return
*/
@ -54,6 +64,20 @@ public class ProjectController {
return projectService.get(listAll,request,tags,isFinish);
}
/**
* 子模块子系统的查询
*
* @return
*/
@GetMapping("/project/work/get")
public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) Integer isFinish,
HttpServletRequest request) {
log.info("请求接口[GET]: /project/work/get");
return projectService.workget(listAll, request, tags, isFinish);
}
/**
* 单个项目的详细
* 项目轮播图
@ -130,8 +154,6 @@ public class ProjectController {
/**
* 项目表进行项目增加
*
* @param projectAdd
* @param bindingResult
* @return
*/
@PostMapping("/project/add")
@ -144,23 +166,43 @@ public class ProjectController {
return projectService.projectAdd(request, projectAdd);
}
/**
* 项目表进行项目的修改
*
* @param projectEdit
* @param bindingResult
* @return
*/
@PutMapping("/project/edit")
public BaseResponse projectEdit(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/edit");
* @Description: 项目的修改
* @Date: 2024/3/10
* @Param request:
* @Param projectEdit:
* @Param bindingResult:
* @Param projectId:
**/
@PutMapping("/project/edit/{projectId}")
public BaseResponse projectEditById(HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult, @PathVariable("projectId") Long projectId) {
log.info("请求接口[PUT]: /project/edit/{projectId}");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projectEdit(request, projectEdit);
return projectService.projectEdit(request, projectEdit,projectId);
}
/**
* 子系统子模块的增加
* @param request
* @param bindingResult
* @return
*/
@PostMapping("/project/work/add")
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.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projecWorktAdd(request, projectWorkVO);
}
/**
* 用户获取所分到的项目模块
*

View File

@ -5,8 +5,12 @@ 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.info.ProjectShowDO;
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.utils.Processing;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
@ -29,13 +33,22 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectAdd(projectAdd);
}
public void projectEdit(ProjectInfoVO projectEdit) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法");
public void projectWorkAdd(ProjectWorkVO projectWorkVO) {
log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectEdit(projectEdit);
projectMapper.projectWorkAdd(projectWorkVO);
}
public ProjectDO projectEdit(@NotNull ProjectEditVO projectEdit, Long projectId) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法");
log.info("\t\t> 从 MySQL 更新数据");
ProjectDO projectDO = new ProjectDO();
Processing.copyProperties(projectEdit,projectDO);
projectMapper.projectEdit(projectDO);
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectById(projectId);
}
public boolean isExistProject(Long id) {
@ -109,10 +122,10 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.get 方法");
log.info("\t\t> 从 MySQL 获取数据");
if(isFinish != null){
return projectMapper.getByIsfinish(isFinish);
return projectMapper.getByIsfinish(userId,isFinish);
}
if(tags != null && !tags.isEmpty()){
return projectMapper.getByTags(tags);
return projectMapper.getByTags(userId,tags);
}
if(listAll == 0) {
return projectMapper.get(userId);
@ -121,6 +134,22 @@ public class ProjectDAO {
}
}
public List<ProjectWorkDO> workget(Long userId, Integer listAll, List<String> tags, Integer isFinish) {
log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法");
log.info("\t\t> 从 MySQL 获取数据");
if(isFinish != null){
return projectMapper.workgetByIsfinish(userId,isFinish);
}
if(tags != null && !tags.isEmpty()){
return projectMapper.workgetByTags(userId,tags);
}
if(listAll == 0) {
return projectMapper.workget(userId);
}else {
return projectMapper.workget1(userId);
}
}
public ProjectDO getByName(String name) {
log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法");
log.info("\t\t> 从 MySQL 获取数据");
@ -174,4 +203,25 @@ public class ProjectDAO {
return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId());
}
public boolean isPrincipalUser(Long uid,Long projectId){
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
ProjectDO projectDO = projectMapper.getProjectById(projectId);
if(uid == projectDO.getPrincipalId()){
return true;
}
return false;
}
public List<ProjectDO> tget(Integer id, List<String> tags, Integer isFinish) {
log.info("DAO层");
if(isFinish != null){
return projectMapper.tgetByIsfinish(isFinish);
}
if(tags != null && !tags.isEmpty()){
return projectMapper.tgetByTags(tags);
}
return projectMapper.tget(id);
}
}

View File

@ -3,9 +3,10 @@ package com.jsl.oa.mapper;
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.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.ProjectWorkVO;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -19,8 +20,13 @@ public interface ProjectMapper {
",#{completeTime},#{deadline},#{status},#{isFinish})")
void projectAdd(ProjectInfoVO projectAdd);
@Insert("insert into organize_oa.oa_project_work (project_id, pid, name, principal_id," +
" work_load, description, cycle, complete_time, type, is_finish,status) " +
"value (#{projectId},#{pid},#{name},#{principalId},#{workLoad}," +
"#{description},#{cycle},#{completeTime},#{type},#{isFinish},#{status})")
void projectWorkAdd(ProjectWorkVO projectWorkVO);
void projectEdit(ProjectInfoVO projectEdit);
void projectEdit(ProjectDO projectEdit);
@Select("select * from organize_oa.oa_project where id=#{id}")
ProjectDO getProjectById(Long id);
@ -43,21 +49,21 @@ public interface ProjectMapper {
//@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" +
//"like concat('%',#{tags},'%')")
@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false")
List<ProjectDO>getByIsfinish(Integer isFinish);
@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id=#{userId}")
List<ProjectDO>getByIsfinish(Long userId,Integer isFinish);
List<ProjectDO>getByTags(List<String> tags);
List<ProjectDO>getByTags(Long userId,List<String> tags);
@Select("select * from organize_oa.oa_project where is_delete=false and status =1")
@Select("select * from organize_oa.oa_project where is_delete=false and status=1 and principal_id=#{userId}")
List<ProjectDO> get(Long userId);
@Select("select * from organize_oa.oa_project where status =1 and status=1")
@Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}")
List<ProjectDO> get1(Long userId);
@Select("select * from organize_oa.oa_project where name=#{name}")
ProjectDO getByName(String name);
@Delete("DELETE FROM organize_oa.oa_project where id=#{id}")
@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) " +
@ -77,4 +83,24 @@ public interface ProjectMapper {
@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<ProjectWorkDO> workgetByIsfinish(Long userId, Integer isFinish);
List<ProjectWorkDO> workgetByTags(Long userId, List<String> tags);
@Select("select * from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId}")
List<ProjectWorkDO> workget(Long userId);
@Select("select * from organize_oa.oa_project_work where is_delete =true and status=1 and principal_id=#{userId}")
List<ProjectWorkDO> workget1(Long userId);
//@Select("select * from organize_oa.oa_project where is_delete=false and status=1")
List<ProjectDO> tget(Integer id);
@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false")
List<ProjectDO> tgetByIsfinish(Integer isFinish);
List<ProjectDO> tgetByTags(List<String> tags);
}

View File

@ -1,5 +1,6 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
@ -26,10 +27,15 @@ public class ProjectDO {
private String name;
private String file;
private String description;
private Integer is_delete;
private Integer is_finish;
private Integer isDelete;
private Integer isFinish;
private boolean 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;
}

View File

@ -0,0 +1,27 @@
package com.jsl.oa.model.doData;
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 ProjectWorkDO {
private Long id;
private Long pid;
private Long projectId;
private Long principalId;
private Integer cycle;
private Integer workLoad;
private Integer type;
private String name;
private String description;
private Integer isDelete;
private Integer isFinish;
private boolean status;
private Timestamp beginTime;
private Timestamp completeTime;
}

View File

@ -0,0 +1,29 @@
package com.jsl.oa.model.voData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.Getter;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Data
public class ProjectEditVO {
private String name;
private Long principalId;
private String tags;
private Long cycle;
private String file;
private String description;
private Integer isFinish;
private boolean status;
private Timestamp beginTime;
private Timestamp completeTime;
private Timestamp deadline;
}

View File

@ -0,0 +1,30 @@
package com.jsl.oa.model.voData;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Data
public class ProjectWorkVO {
private Long pid;
@NotNull(message = "项目id不能为空")
private Long projectId;
@NotNull(message = "负责人id不能为空")
private Long principalId;
@NotNull(message = "周期不能为空")
private Integer cycle;
private Integer workLoad;
@NotNull(message = "类型不能为空")
private Integer type;
@NotNull(message = "名字不能为空")
private String name;
private String description;
private Integer isDelete;
private Integer isFinish;
private Integer status;
private Timestamp beginTime;
private Timestamp completeTime;
}

View File

@ -1,8 +1,6 @@
package com.jsl.oa.services;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectCuttingEditVO;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.*;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.utils.BaseResponse;
@ -12,7 +10,7 @@ import java.util.List;
public interface ProjectService {
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd);
BaseResponse projectEdit(HttpServletRequest request, ProjectInfoVO projectEdit);
BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId);
BaseResponse projectGetUserInCutting(Long uid);
@ -37,4 +35,10 @@ public interface ProjectService {
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish);
BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);
BaseResponse tget(Integer id, List<String> tags, Integer isFinish);
}

View File

@ -6,11 +6,10 @@ import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectCuttingEditVO;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.*;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
@ -21,7 +20,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
@ -33,10 +31,10 @@ import java.util.List;
* <hr/>
* 用于项目服务层的实现类
*
* @since v1.1.0
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
* @version v1.1.0
* @see com.jsl.oa.services.ProjectService
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
* @since v1.1.0
*/
@Slf4j
@Service
@ -51,22 +49,56 @@ public class ProjectServiceImpl implements ProjectService {
@CheckUserHasPermission("project.add")
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
projectDAO.projectAdd(projectAdd);
return ResultUtil.success("添加成功");
projectDAO.projectAdd(projectAdd);
return ResultUtil.success("添加成功");
}
@Override
@CheckUserHasPermission("project.edit")
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) {
public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) {
log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法");
projectDAO.projectWorkAdd(projectWorkVO);
return ResultUtil.success("添加成功");
}
@Override
public BaseResponse tget(Integer id, List<String> tags, Integer isFinish) {
log.info("\t> 执行 Service 层 ProjectService.tget 方法");
//根据状态查询
if(isFinish != null){
List<ProjectDO> projectDOList = projectDAO.tget(id,tags,isFinish);
return ResultUtil.success(projectDOList);
}
//根据标签查询
if(tags != null && !tags.isEmpty()){
List<ProjectDO> projectDOList = projectDAO.tget(id,tags,isFinish);
return ResultUtil.success(projectDOList);
}
List<ProjectDO> projectDOList = projectDAO.tget(id,tags,isFinish);
return ResultUtil.success(projectDOList);
}
@Override
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) {
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
//判断项目是否存在
if (projectDAO.isExistProject(projectEdit.getId())) {
projectDAO.projectEdit(projectEdit);
return ResultUtil.success("修改成功");
} else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
//判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
//判断项目是否存在
if (projectDAO.isExistProject(projectId)) {
//更新数据
return ResultUtil.success(projectDAO.projectEdit(projectEdit,projectId));
} else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
}
@Override
@ -85,12 +117,12 @@ public class ProjectServiceImpl implements ProjectService {
@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);
}
if (userDAO.isExistUser(uid)) {
projectDAO.projectAddUserForCutting(uid, pid);
return ResultUtil.success();
} else {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
}
@Override
@ -186,30 +218,61 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
log.info("\t> 执行 Service 层 ProjectService.get 方法");
//获取用户
Long userId= Processing.getAuthHeaderToUserId(request);
Long userId = Processing.getAuthHeaderToUserId(request);
//根据状态查询
if(isFinish != null){
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
if (isFinish != null) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
return ResultUtil.success(projectDOList);
}
//根据标签查询
if(tags != null && !tags.isEmpty()){
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
if (tags != null && !tags.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
return ResultUtil.success(projectDOList);
}
//判断是否是老师(项目负责人)
if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
return ResultUtil.success(projectDOList);
}else {
List<ProjectDO> projectDOList = projectDAO.get(userId,0,tags,isFinish);
} else {
listAll = 0;
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
return ResultUtil.success(projectDOList);
}
}
@Override
public BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
log.info("\t> 执行 Service 层 ProjectService.workget 方法");
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
//根据状态查询
if (isFinish != null) {
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish);
return ResultUtil.success(projectWorkDOList);
}
//根据标签查询
if (tags != null && !tags.isEmpty()) {
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish);
return ResultUtil.success(projectWorkDOList);
}
//判断是否是老师(项目负责人)
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish);
return ResultUtil.success(projectWorkDOList);
} else {
listAll = 0;
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish);
return ResultUtil.success(projectWorkDOList);
}
}
@Override
public BaseResponse getByName(String name) {
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
@ -221,65 +284,72 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("project.delete")
public BaseResponse projectDelete(HttpServletRequest request, Long id) {
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
if (!projectDAO.projectDelete(id)) {
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
} else {
return ResultUtil.success();
}
//判断用户是否为老师 或者 项目负责人 或管理员
if (!Processing.checkUserIsTeacher(request, roleMapper) &&
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id)
&& !Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
if (!projectDAO.projectDelete(id)) {
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
} else {
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();
//赋值数据
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();
//赋值数据
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();
//检测新旧用户是否存在
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();
}

View File

@ -257,6 +257,12 @@ public class UserServiceImpl implements UserService {
@Override
public BaseResponse userProfileGet(HttpServletRequest request) {
log.info("\t> 执行 Service 层 UserService.userProfileGet 方法");
//判断用户是否为 老师 管理员
if(!Processing.checkUserIsAdmin(request,roleDAO.roleMapper) &&
!Processing.checkUserIsTeacher(request,roleDAO.roleMapper)){
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
// 获取用户Id
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
UserProfileVo userProfileVo = new UserProfileVo();
@ -264,4 +270,6 @@ public class UserServiceImpl implements UserService {
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
return ResultUtil.success(userProfileVo);
}
}

View File

@ -193,6 +193,7 @@ public class Processing {
}
}
private static char getCharFromIndex(int index) {
// 生成字符集合可以根据需要自定义
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

View File

@ -13,8 +13,8 @@
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="principal_id != null and principal_id != ''">
principal_id = #{principal_id},
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
<if test="tags != null and tags != ''">
tags = #{tags},
@ -25,11 +25,11 @@
<if test="file != null and file != ''">
file = #{file},
</if>
<if test="begin_time != null and begin_time != ''">
begin_time = #{begin_time},
<if test="beginTime != null and beginTime != ''">
begin_time = #{beginTime},
</if>
<if test="complete_time != null and complete_time != ''">
complete_time = #{complete_time},
<if test="completeTime != null and completeTime != ''">
complete_time = #{completeTime},
</if>
<if test="deadline != null and deadline != ''">
deadline = #{deadline},
@ -37,21 +37,43 @@
<if test="status != null and status != ''">
status = #{status},
</if>
<if test="is_finish != null and is_finish != ''">
is_finish = #{is_finish},
<if test="isFinish != null and isFinish != ''">
is_finish = #{isFinish},
</if>
<if test="is_delete != null and is_delete != ''">
is_delete = #{is_delete},
<if test="isDelete != null and isDelete != ''">
is_delete = #{isDelete},
</if>
</set>
where id = #{id}
</update>
<select id="getByTags" resultType="com.jsl.oa.model.doData.ProjectDO">
select * from organize_oa.oa_project where
<foreach collection="tags" item="tag" separator=",'%') and json_extract(tags,'$.tags')like concat('%',"
open="json_extract(tags,'$.tags')like concat('%',"
close=",'%') and is_delete=false">
select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and json_extract(tags,'$.tags') like concat
<foreach collection="tags" item="tag" separator=",'%') or json_extract(tags,'$.tags') like concat('%',"
open="('%," close=",'%')">
#{tag}
</foreach>
</select>
<select id="workgetByTags" resultType="com.jsl.oa.model.doData.ProjectWorkDO">
select * from organize_oa.oa_project_work where is_delete=false and principal_id=#{userId} and json_extract(tags,'$.tags') like concat
<foreach collection="tags" item="tag" separator=",'%') or json_extract(tags,'$.tags') like concat('%',"
open="('%'," close=",'%')">
#{tag}
</foreach>
</select>
<select id="tget" resultType="com.jsl.oa.model.doData.ProjectDO">
select * from organize_oa.oa_project where is_delete=false
<if test="id != null">
and id=#{id}
</if>
</select>
<select id="tgetByTags" resultType="com.jsl.oa.model.doData.ProjectDO">
select * from organize_oa.oa_project where is_delete=false and json_extract(tags,'$.tags') like concat
<foreach collection="tags" item="tag" separator=",'%') or json_extract(tags,'$.tags') like concat('%',"
open="('%'," close=",'%')">
#{tag}
</foreach>
</select>