Merge branch 'feature'
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
This commit is contained in:
commit
01173e9cfc
52
src/main/java/com/jsl/oa/controllers/TagController.java
Normal file
52
src/main/java/com/jsl/oa/controllers/TagController.java
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
|
import com.jsl.oa.services.TagService;
|
||||||
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagController
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @author xiao_lfeng
|
||||||
|
* @version v1.0.0
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/tags")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class TagController {
|
||||||
|
private final TagService tagService;
|
||||||
|
|
||||||
|
@GetMapping("/project/list")
|
||||||
|
public BaseResponse getTagsProjectList(
|
||||||
|
@RequestParam(required = false) String page,
|
||||||
|
@RequestParam(required = false) String limit,
|
||||||
|
@RequestParam(required = false) String order
|
||||||
|
) {
|
||||||
|
log.info("[Controller] 请求 getProjectList 接口");
|
||||||
|
// 处理默认数据
|
||||||
|
if (page == null || !Pattern.matches("^[0-9]+$", page) || Integer.parseInt(page) < 1) {
|
||||||
|
page = "1";
|
||||||
|
}
|
||||||
|
if (limit == null || !Pattern.matches("^[0-9]+$", limit) || Integer.parseInt(limit) < 1) {
|
||||||
|
limit = "20";
|
||||||
|
}
|
||||||
|
if ((!"asc".equals(order) && !"desc".equals(order))) {
|
||||||
|
order = "id asc";
|
||||||
|
} else {
|
||||||
|
order = "id " + order;
|
||||||
|
}
|
||||||
|
// 业务操作
|
||||||
|
return tagService.getTagsProjectList(Integer.valueOf(page), Integer.valueOf(limit), order);
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
|
@ -207,10 +208,7 @@ public class ProjectDAO {
|
||||||
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");
|
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
log.info("\t\t> 从 MySQL 获取数据");
|
||||||
ProjectDO projectDO = projectMapper.getProjectById(projectId);
|
ProjectDO projectDO = projectMapper.getProjectById(projectId);
|
||||||
if(uid == projectDO.getPrincipalId()){
|
return Objects.equals(uid, projectDO.getPrincipalId());
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
41
src/main/java/com/jsl/oa/dao/TagDAO.java
Normal file
41
src/main/java/com/jsl/oa/dao/TagDAO.java
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
package com.jsl.oa.dao;
|
||||||
|
|
||||||
|
import com.jsl.oa.mapper.TagMapper;
|
||||||
|
import com.jsl.oa.model.doData.TagProjectDO;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagDAO
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
* @version v1.0.0
|
||||||
|
* @author xiao_lfeng
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Repository
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class TagDAO {
|
||||||
|
private final TagMapper tagMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标签列表
|
||||||
|
* <hr/>
|
||||||
|
* 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
|
||||||
|
*
|
||||||
|
* @param page 页码
|
||||||
|
* @param limit 每页数量
|
||||||
|
* @param order 排序
|
||||||
|
*/
|
||||||
|
public ArrayList<TagProjectDO> getTagsProjectList(Integer page, Integer limit, String order) {
|
||||||
|
log.info("[DAO] 请求 getTagsProjectList 接口");
|
||||||
|
// 获取标签列表
|
||||||
|
page = (page - 1) * limit;
|
||||||
|
return (ArrayList<TagProjectDO>) tagMapper.getTagsProjectList(order, limit, page);
|
||||||
|
}
|
||||||
|
}
|
32
src/main/java/com/jsl/oa/mapper/TagMapper.java
Normal file
32
src/main/java/com/jsl/oa/mapper/TagMapper.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package com.jsl.oa.mapper;
|
||||||
|
|
||||||
|
import com.jsl.oa.model.doData.TagProjectDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagMapper
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
* @version v1.0.0
|
||||||
|
* @author xiao_lfeng
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface TagMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标签列表
|
||||||
|
* <hr/>
|
||||||
|
* 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
|
||||||
|
*
|
||||||
|
* @param page 页码
|
||||||
|
* @param limit 每页数量
|
||||||
|
* @param order 排序
|
||||||
|
*/
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_project_tags ORDER BY ${order} LIMIT #{limit} OFFSET #{page}")
|
||||||
|
List<TagProjectDO> getTagsProjectList(String order, Integer limit, Integer page);
|
||||||
|
}
|
24
src/main/java/com/jsl/oa/model/doData/TagProjectDO.java
Normal file
24
src/main/java/com/jsl/oa/model/doData/TagProjectDO.java
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package com.jsl.oa.model.doData;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagProjectDO
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
* @version v1.0.0
|
||||||
|
* @author xiao_lfeng
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TagProjectDO {
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
private Long pid;
|
||||||
|
private Timestamp createdAt;
|
||||||
|
private Timestamp updatedAt;
|
||||||
|
private Boolean isDelete;
|
||||||
|
}
|
25
src/main/java/com/jsl/oa/services/TagService.java
Normal file
25
src/main/java/com/jsl/oa/services/TagService.java
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package com.jsl.oa.services;
|
||||||
|
|
||||||
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagService
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
* @version v1.0.0
|
||||||
|
* @author xiao_lfeng
|
||||||
|
*/
|
||||||
|
public interface TagService {
|
||||||
|
/**
|
||||||
|
* 获取标签列表
|
||||||
|
* <hr/>
|
||||||
|
* 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
|
||||||
|
*
|
||||||
|
* @param page 页码
|
||||||
|
* @param limit 每页数量
|
||||||
|
* @return BaseResponse 返回标签列表
|
||||||
|
*/
|
||||||
|
BaseResponse getTagsProjectList(Integer page, Integer limit, String order);
|
||||||
|
}
|
|
@ -72,7 +72,6 @@ public class ProjectServiceImpl implements ProjectService {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//判断用户是否为老师 或者 项目负责人
|
//判断用户是否为老师 或者 项目负责人
|
||||||
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
|
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
|
||||||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
|
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
|
||||||
|
@ -82,7 +81,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||||
//判断项目是否存在
|
//判断项目是否存在
|
||||||
if (projectDAO.isExistProject(projectId)) {
|
if (projectDAO.isExistProject(projectId)) {
|
||||||
//更新数据
|
//更新数据
|
||||||
return ResultUtil.success(projectDAO.projectEdit(projectEdit,projectId));
|
return ResultUtil.success(projectDAO.projectEdit(projectEdit, projectId));
|
||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
@ -278,7 +277,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||||
//判断用户是否为老师 或者 项目负责人 或管理员
|
//判断用户是否为老师 或者 项目负责人 或管理员
|
||||||
if (!Processing.checkUserIsTeacher(request, roleMapper) &&
|
if (!Processing.checkUserIsTeacher(request, roleMapper) &&
|
||||||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id)
|
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id)
|
||||||
&& !Processing.checkUserIsAdmin(request, roleMapper)) {
|
&& !Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
45
src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java
Normal file
45
src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
package com.jsl.oa.services.impl;
|
||||||
|
|
||||||
|
import com.jsl.oa.dao.TagDAO;
|
||||||
|
import com.jsl.oa.model.doData.TagProjectDO;
|
||||||
|
import com.jsl.oa.services.TagService;
|
||||||
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TagServiceImpl
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
|
||||||
|
*
|
||||||
|
* @since v1.0.0-SNAPSHOT
|
||||||
|
* @version v1.0.0
|
||||||
|
* @author xiao_lfeng
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class TagServiceImpl implements TagService {
|
||||||
|
private final TagDAO tagDAO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标签列表
|
||||||
|
* <hr/>
|
||||||
|
* 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
|
||||||
|
*
|
||||||
|
* @param page 页码
|
||||||
|
* @param limit 每页数量
|
||||||
|
* @return BaseResponse 返回标签列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public BaseResponse getTagsProjectList(Integer page, Integer limit, String order) {
|
||||||
|
log.info("[Service] 请求 getTagsProjectList 接口");
|
||||||
|
// 获取标签列表
|
||||||
|
ArrayList<TagProjectDO> getTagList = tagDAO.getTagsProjectList(page, limit, order);
|
||||||
|
return ResultUtil.success(getTagList);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user