Compare commits
13 Commits
96fdab94f7
...
860b109ebf
Author | SHA1 | Date | |
---|---|---|---|
860b109ebf | |||
65c06e8eef | |||
![]() |
56bfc0737f | ||
![]() |
dd16df0b88 | ||
![]() |
e19630f9cc | ||
![]() |
ee9e361130 | ||
![]() |
935003c126 | ||
![]() |
6e4f22170d | ||
![]() |
ce123e1858 | ||
![]() |
187fb59823 | ||
![]() |
789eea8d49 | ||
![]() |
f29c016405 | ||
![]() |
fbddeff093 |
@ -75,7 +75,8 @@ public class AuthControllerAspect {
|
|||||||
"&& !execution(* com.jsl.oa.controllers.IndexController.*(..)) " +
|
"&& !execution(* com.jsl.oa.controllers.IndexController.*(..)) " +
|
||||||
"&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " +
|
"&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " +
|
||||||
"&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderImage(..)) " +
|
"&& !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 {
|
public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable {
|
||||||
// 获取 HttpServletRequest 对象
|
// 获取 HttpServletRequest 对象
|
||||||
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
|
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
|
||||||
|
@ -63,7 +63,9 @@ public class ShiroConfiguration {
|
|||||||
filterChainDefinitionMap.put("/info/header-user/get", "anon"); // 信息接口允许匿名访问
|
filterChainDefinitionMap.put("/info/header-user/get", "anon"); // 信息接口允许匿名访问
|
||||||
filterChainDefinitionMap.put("/project/header/get", "anon"); // 信息接口允许匿名访问
|
filterChainDefinitionMap.put("/project/header/get", "anon"); // 信息接口允许匿名访问
|
||||||
filterChainDefinitionMap.put("/project/get", "anon"); // 信息接口允许匿名访问
|
filterChainDefinitionMap.put("/project/get", "anon"); // 信息接口允许匿名访问
|
||||||
|
filterChainDefinitionMap.put("/project/get/custom", "anon"); // 游客获取项目允许匿名访问
|
||||||
filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token)
|
filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token)
|
||||||
|
|
||||||
return filterChainDefinitionMap;
|
return filterChainDefinitionMap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,4 +25,6 @@ public class IndexController {
|
|||||||
newMap.put("timestamp", "构建时间:" + timestamp);
|
newMap.put("timestamp", "构建时间:" + timestamp);
|
||||||
return ResultUtil.success("欢迎使用JSL-OA系统,服务器处于正常状态", newMap);
|
return ResultUtil.success("欢迎使用JSL-OA系统,服务器处于正常状态", newMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,9 @@ public class NewsController {
|
|||||||
return newsService.newsAdd(newsAddVO, request);
|
return newsService.newsAdd(newsAddVO, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package com.jsl.oa.controllers;
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
|
import com.jsl.oa.model.voData.*;
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingEditVO;
|
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
|
||||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||||
import com.jsl.oa.services.ProjectService;
|
import com.jsl.oa.services.ProjectService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
@ -17,7 +15,6 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@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
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -54,6 +64,20 @@ public class ProjectController {
|
|||||||
return projectService.get(listAll,request,tags,isFinish);
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/project/add")
|
@PostMapping("/project/add")
|
||||||
@ -144,23 +166,43 @@ public class ProjectController {
|
|||||||
return projectService.projectAdd(request, projectAdd);
|
return projectService.projectAdd(request, projectAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目表进行,项目的修改
|
* @Description: 项目的修改
|
||||||
*
|
* @Date: 2024/3/10
|
||||||
* @param projectEdit
|
* @Param request:
|
||||||
* @param bindingResult
|
* @Param projectEdit:
|
||||||
* @return
|
* @Param bindingResult:
|
||||||
*/
|
* @Param projectId:
|
||||||
@PutMapping("/project/edit")
|
**/
|
||||||
public BaseResponse projectEdit(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
|
@PutMapping("/project/edit/{projectId}")
|
||||||
log.info("请求接口[PUT]: /project/edit");
|
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()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户获取所分到的项目模块
|
* 用户获取所分到的项目模块
|
||||||
*
|
*
|
||||||
|
@ -5,8 +5,12 @@ import com.jsl.oa.mapper.ProjectMapper;
|
|||||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||||
import com.jsl.oa.model.doData.ProjectDO;
|
import com.jsl.oa.model.doData.ProjectDO;
|
||||||
import com.jsl.oa.model.doData.ProjectUserDO;
|
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.doData.info.ProjectShowDO;
|
||||||
|
import com.jsl.oa.model.voData.ProjectEditVO;
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
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.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -29,13 +33,22 @@ public class ProjectDAO {
|
|||||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
|
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
log.info("\t\t> 从 MySQL 获取数据");
|
||||||
projectMapper.projectAdd(projectAdd);
|
projectMapper.projectAdd(projectAdd);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void projectEdit(ProjectInfoVO projectEdit) {
|
public void projectWorkAdd(ProjectWorkVO projectWorkVO) {
|
||||||
log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法");
|
log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法");
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
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) {
|
public boolean isExistProject(Long id) {
|
||||||
@ -109,10 +122,10 @@ public class ProjectDAO {
|
|||||||
log.info("\t> 执行 DAO 层 ProjectDAO.get 方法");
|
log.info("\t> 执行 DAO 层 ProjectDAO.get 方法");
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
log.info("\t\t> 从 MySQL 获取数据");
|
||||||
if(isFinish != null){
|
if(isFinish != null){
|
||||||
return projectMapper.getByIsfinish(isFinish);
|
return projectMapper.getByIsfinish(userId,isFinish);
|
||||||
}
|
}
|
||||||
if(tags != null && !tags.isEmpty()){
|
if(tags != null && !tags.isEmpty()){
|
||||||
return projectMapper.getByTags(tags);
|
return projectMapper.getByTags(userId,tags);
|
||||||
}
|
}
|
||||||
if(listAll == 0) {
|
if(listAll == 0) {
|
||||||
return projectMapper.get(userId);
|
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) {
|
public ProjectDO getByName(String name) {
|
||||||
log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法");
|
log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法");
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
log.info("\t\t> 从 MySQL 获取数据");
|
||||||
@ -174,4 +203,25 @@ public class ProjectDAO {
|
|||||||
return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId());
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,10 @@ package com.jsl.oa.mapper;
|
|||||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||||
import com.jsl.oa.model.doData.ProjectDO;
|
import com.jsl.oa.model.doData.ProjectDO;
|
||||||
import com.jsl.oa.model.doData.ProjectUserDO;
|
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.ProjectInfoVO;
|
||||||
|
import com.jsl.oa.model.voData.ProjectWorkVO;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -19,8 +20,13 @@ public interface ProjectMapper {
|
|||||||
",#{completeTime},#{deadline},#{status},#{isFinish})")
|
",#{completeTime},#{deadline},#{status},#{isFinish})")
|
||||||
void projectAdd(ProjectInfoVO projectAdd);
|
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}")
|
@Select("select * from organize_oa.oa_project where id=#{id}")
|
||||||
ProjectDO getProjectById(Long id);
|
ProjectDO getProjectById(Long id);
|
||||||
@ -43,21 +49,21 @@ public interface ProjectMapper {
|
|||||||
|
|
||||||
//@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" +
|
//@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" +
|
||||||
//"like concat('%',#{tags},'%')")
|
//"like concat('%',#{tags},'%')")
|
||||||
@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false")
|
@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id=#{userId}")
|
||||||
List<ProjectDO>getByIsfinish(Integer isFinish);
|
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);
|
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);
|
List<ProjectDO> get1(Long userId);
|
||||||
|
|
||||||
@Select("select * from organize_oa.oa_project where name=#{name}")
|
@Select("select * from organize_oa.oa_project where name=#{name}")
|
||||||
ProjectDO getByName(String 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);
|
boolean deleteProject(Long id);
|
||||||
|
|
||||||
@Insert("INSERT INTO organize_oa.oa_project_cutting (pid, name, tag, real_time) " +
|
@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}")
|
@Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
|
||||||
boolean updateUserForProjectUser(Long uid, Long id);
|
boolean updateUserForProjectUser(Long uid, Long id);
|
||||||
|
|
||||||
|
@Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}")
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.jsl.oa.model.doData;
|
package com.jsl.oa.model.doData;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@ -26,10 +27,15 @@ public class ProjectDO {
|
|||||||
private String name;
|
private String name;
|
||||||
private String file;
|
private String file;
|
||||||
private String description;
|
private String description;
|
||||||
private Integer is_delete;
|
private Integer isDelete;
|
||||||
private Integer is_finish;
|
private Integer isFinish;
|
||||||
private boolean status;
|
private boolean status;
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||||
private Timestamp beginTime;
|
private Timestamp beginTime;
|
||||||
|
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||||
private Timestamp completeTime;
|
private Timestamp completeTime;
|
||||||
|
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||||
private Timestamp deadline;
|
private Timestamp deadline;
|
||||||
}
|
}
|
||||||
|
27
src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java
Normal file
27
src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java
Normal 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;
|
||||||
|
}
|
29
src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java
Normal file
29
src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java
Normal 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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
30
src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java
Normal file
30
src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java
Normal 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;
|
||||||
|
}
|
@ -1,8 +1,6 @@
|
|||||||
package com.jsl.oa.services;
|
package com.jsl.oa.services;
|
||||||
|
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
|
import com.jsl.oa.model.voData.*;
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingEditVO;
|
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
|
||||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
|
||||||
@ -12,7 +10,7 @@ import java.util.List;
|
|||||||
public interface ProjectService {
|
public interface ProjectService {
|
||||||
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd);
|
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd);
|
||||||
|
|
||||||
BaseResponse projectEdit(HttpServletRequest request, ProjectInfoVO projectEdit);
|
BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId);
|
||||||
|
|
||||||
BaseResponse projectGetUserInCutting(Long uid);
|
BaseResponse projectGetUserInCutting(Long uid);
|
||||||
|
|
||||||
@ -37,4 +35,10 @@ public interface ProjectService {
|
|||||||
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
|
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
|
||||||
|
|
||||||
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
|
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
|
||||||
|
|
||||||
|
BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish);
|
||||||
|
|
||||||
|
BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);
|
||||||
|
|
||||||
|
BaseResponse tget(Integer id, List<String> tags, Integer isFinish);
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,10 @@ import com.jsl.oa.dao.UserDAO;
|
|||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||||
import com.jsl.oa.model.doData.ProjectDO;
|
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.UserDO;
|
||||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
|
import com.jsl.oa.model.voData.*;
|
||||||
import com.jsl.oa.model.voData.ProjectCuttingEditVO;
|
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
|
||||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||||
import com.jsl.oa.services.ProjectService;
|
import com.jsl.oa.services.ProjectService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
@ -21,7 +20,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
@ -33,10 +31,10 @@ import java.util.List;
|
|||||||
* <hr/>
|
* <hr/>
|
||||||
* 用于项目服务层的实现类
|
* 用于项目服务层的实现类
|
||||||
*
|
*
|
||||||
* @since v1.1.0
|
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
|
||||||
* @version v1.1.0
|
* @version v1.1.0
|
||||||
* @see com.jsl.oa.services.ProjectService
|
* @see com.jsl.oa.services.ProjectService
|
||||||
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
|
* @since v1.1.0
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@ -51,22 +49,56 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
@CheckUserHasPermission("project.add")
|
@CheckUserHasPermission("project.add")
|
||||||
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
|
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
|
||||||
projectDAO.projectAdd(projectAdd);
|
projectDAO.projectAdd(projectAdd);
|
||||||
return ResultUtil.success("添加成功");
|
return ResultUtil.success("添加成功");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CheckUserHasPermission("project.edit")
|
public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) {
|
||||||
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) {
|
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 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
|
||||||
//判断项目是否存在
|
|
||||||
if (projectDAO.isExistProject(projectEdit.getId())) {
|
|
||||||
projectDAO.projectEdit(projectEdit);
|
|
||||||
return ResultUtil.success("修改成功");
|
//判断用户是否为老师 或者 项目负责人
|
||||||
} else {
|
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
!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
|
@Override
|
||||||
@ -85,12 +117,12 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
@CheckUserHasPermission("project.cutting.user.add")
|
@CheckUserHasPermission("project.cutting.user.add")
|
||||||
public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) {
|
public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
|
||||||
if (userDAO.isExistUser(uid)) {
|
if (userDAO.isExistUser(uid)) {
|
||||||
projectDAO.projectAddUserForCutting(uid, pid);
|
projectDAO.projectAddUserForCutting(uid, pid);
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -186,30 +218,61 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
@Override
|
@Override
|
||||||
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
|
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.get 方法");
|
log.info("\t> 执行 Service 层 ProjectService.get 方法");
|
||||||
|
|
||||||
//获取用户
|
//获取用户
|
||||||
Long userId= Processing.getAuthHeaderToUserId(request);
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
//根据状态查询
|
//根据状态查询
|
||||||
if(isFinish != null){
|
if (isFinish != null) {
|
||||||
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
|
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||||
return ResultUtil.success(projectDOList);
|
return ResultUtil.success(projectDOList);
|
||||||
}
|
}
|
||||||
//根据标签查询
|
//根据标签查询
|
||||||
if(tags != null && !tags.isEmpty()){
|
if (tags != null && !tags.isEmpty()) {
|
||||||
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
|
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||||
return ResultUtil.success(projectDOList);
|
return ResultUtil.success(projectDOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断是否是老师(项目负责人)
|
//判断是否是老师(项目负责人)
|
||||||
if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){
|
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
|
||||||
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags,isFinish);
|
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||||
return ResultUtil.success(projectDOList);
|
return ResultUtil.success(projectDOList);
|
||||||
}else {
|
} else {
|
||||||
List<ProjectDO> projectDOList = projectDAO.get(userId,0,tags,isFinish);
|
listAll = 0;
|
||||||
|
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
|
||||||
return ResultUtil.success(projectDOList);
|
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
|
@Override
|
||||||
public BaseResponse getByName(String name) {
|
public BaseResponse getByName(String name) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
|
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
|
||||||
@ -221,65 +284,72 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CheckUserHasPermission("project.delete")
|
|
||||||
public BaseResponse projectDelete(HttpServletRequest request, Long id) {
|
public BaseResponse projectDelete(HttpServletRequest request, Long id) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
|
||||||
if (!projectDAO.projectDelete(id)) {
|
|
||||||
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
|
//判断用户是否为老师 或者 项目负责人 或管理员
|
||||||
} else {
|
if (!Processing.checkUserIsTeacher(request, roleMapper) &&
|
||||||
return ResultUtil.success();
|
!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
|
@Override
|
||||||
@CheckUserHasPermission("project.cutting.add")
|
@CheckUserHasPermission("project.cutting.add")
|
||||||
public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
|
public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
|
||||||
//赋值数据
|
//赋值数据
|
||||||
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
||||||
Processing.copyProperties(projectCuttingAddVO, projectCuttingDO);
|
Processing.copyProperties(projectCuttingAddVO, projectCuttingDO);
|
||||||
//根据pid检测项目是否存在
|
//根据pid检测项目是否存在
|
||||||
if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) {
|
if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) {
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//向数据库添加数据
|
//向数据库添加数据
|
||||||
projectDAO.projectCuttingAdd(projectCuttingDO);
|
projectDAO.projectCuttingAdd(projectCuttingDO);
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CheckUserHasPermission("project.cutting.edit")
|
@CheckUserHasPermission("project.cutting.edit")
|
||||||
public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) {
|
public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法");
|
||||||
//赋值数据
|
//赋值数据
|
||||||
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
|
||||||
Processing.copyProperties(projectCuttingEditVO, projectCuttingDO);
|
Processing.copyProperties(projectCuttingEditVO, projectCuttingDO);
|
||||||
//根据id检测项目模块是否存在
|
//根据id检测项目模块是否存在
|
||||||
if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) {
|
if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) {
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//向数据库添加数据
|
//向数据库添加数据
|
||||||
projectDAO.updateProjectCutting(projectCuttingDO);
|
projectDAO.updateProjectCutting(projectCuttingDO);
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CheckUserHasPermission("project.cutting.delete")
|
@CheckUserHasPermission("project.cutting.delete")
|
||||||
public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) {
|
public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法");
|
||||||
//检测新旧用户是否存在
|
//检测新旧用户是否存在
|
||||||
if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) {
|
if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) {
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//用户项目表是否含有对应记录
|
//用户项目表是否含有对应记录
|
||||||
if (!projectDAO.isExistProjectUser(pid, oldUid)) {
|
if (!projectDAO.isExistProjectUser(pid, oldUid)) {
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//更新数据
|
//更新数据
|
||||||
if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) {
|
if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) {
|
||||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||||
}
|
}
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,6 +257,12 @@ public class UserServiceImpl implements UserService {
|
|||||||
@Override
|
@Override
|
||||||
public BaseResponse userProfileGet(HttpServletRequest request) {
|
public BaseResponse userProfileGet(HttpServletRequest request) {
|
||||||
log.info("\t> 执行 Service 层 UserService.userProfileGet 方法");
|
log.info("\t> 执行 Service 层 UserService.userProfileGet 方法");
|
||||||
|
//判断用户是否为 老师 或 管理员
|
||||||
|
if(!Processing.checkUserIsAdmin(request,roleDAO.roleMapper) &&
|
||||||
|
!Processing.checkUserIsTeacher(request,roleDAO.roleMapper)){
|
||||||
|
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||||
|
}
|
||||||
|
|
||||||
// 获取用户Id
|
// 获取用户Id
|
||||||
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
||||||
UserProfileVo userProfileVo = new UserProfileVo();
|
UserProfileVo userProfileVo = new UserProfileVo();
|
||||||
@ -264,4 +270,6 @@ public class UserServiceImpl implements UserService {
|
|||||||
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
||||||
return ResultUtil.success(userProfileVo);
|
return ResultUtil.success(userProfileVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -193,6 +193,7 @@ public class Processing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static char getCharFromIndex(int index) {
|
private static char getCharFromIndex(int index) {
|
||||||
// 生成字符集合,可以根据需要自定义
|
// 生成字符集合,可以根据需要自定义
|
||||||
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
<if test="description != null and description != ''">
|
<if test="description != null and description != ''">
|
||||||
description = #{description},
|
description = #{description},
|
||||||
</if>
|
</if>
|
||||||
<if test="principal_id != null and principal_id != ''">
|
<if test="principalId != null and principalId != ''">
|
||||||
principal_id = #{principal_id},
|
principal_id = #{principalId},
|
||||||
</if>
|
</if>
|
||||||
<if test="tags != null and tags != ''">
|
<if test="tags != null and tags != ''">
|
||||||
tags = #{tags},
|
tags = #{tags},
|
||||||
@ -25,11 +25,11 @@
|
|||||||
<if test="file != null and file != ''">
|
<if test="file != null and file != ''">
|
||||||
file = #{file},
|
file = #{file},
|
||||||
</if>
|
</if>
|
||||||
<if test="begin_time != null and begin_time != ''">
|
<if test="beginTime != null and beginTime != ''">
|
||||||
begin_time = #{begin_time},
|
begin_time = #{beginTime},
|
||||||
</if>
|
</if>
|
||||||
<if test="complete_time != null and complete_time != ''">
|
<if test="completeTime != null and completeTime != ''">
|
||||||
complete_time = #{complete_time},
|
complete_time = #{completeTime},
|
||||||
</if>
|
</if>
|
||||||
<if test="deadline != null and deadline != ''">
|
<if test="deadline != null and deadline != ''">
|
||||||
deadline = #{deadline},
|
deadline = #{deadline},
|
||||||
@ -37,21 +37,43 @@
|
|||||||
<if test="status != null and status != ''">
|
<if test="status != null and status != ''">
|
||||||
status = #{status},
|
status = #{status},
|
||||||
</if>
|
</if>
|
||||||
<if test="is_finish != null and is_finish != ''">
|
<if test="isFinish != null and isFinish != ''">
|
||||||
is_finish = #{is_finish},
|
is_finish = #{isFinish},
|
||||||
</if>
|
</if>
|
||||||
<if test="is_delete != null and is_delete != ''">
|
<if test="isDelete != null and isDelete != ''">
|
||||||
is_delete = #{is_delete},
|
is_delete = #{isDelete},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="getByTags" resultType="com.jsl.oa.model.doData.ProjectDO">
|
<select id="getByTags" resultType="com.jsl.oa.model.doData.ProjectDO">
|
||||||
select * from organize_oa.oa_project where
|
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=",'%') and json_extract(tags,'$.tags')like concat('%',"
|
<foreach collection="tags" item="tag" separator=",'%') or json_extract(tags,'$.tags') like concat('%',"
|
||||||
open="json_extract(tags,'$.tags')like concat('%',"
|
open="('%," close=",'%')">
|
||||||
close=",'%') and is_delete=false">
|
#{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}
|
#{tag}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user