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.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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,4 +25,6 @@ public class IndexController {
|
|||
newMap.put("timestamp", "构建时间:" + timestamp);
|
||||
return ResultUtil.success("欢迎使用JSL-OA系统,服务器处于正常状态", newMap);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -45,6 +45,9 @@ public class NewsController {
|
|||
return newsService.newsAdd(newsAddVO, request);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户获取所分到的项目模块
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
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;
|
||||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -193,6 +193,7 @@ public class Processing {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static char getCharFromIndex(int index) {
|
||||
// 生成字符集合,可以根据需要自定义
|
||||
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user