Merge branch 'feature'
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good

This commit is contained in:
筱锋xiao_lfeng 2024-03-12 21:05:39 +08:00
commit 01173e9cfc
8 changed files with 223 additions and 7 deletions

View 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);
}
}

View File

@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@Slf4j
@Component
@ -207,10 +208,7 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
ProjectDO projectDO = projectMapper.getProjectById(projectId);
if(uid == projectDO.getPrincipalId()){
return true;
}
return false;
return Objects.equals(uid, projectDO.getPrincipalId());
}

View 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);
}
}

View 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);
}

View 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;
}

View 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);
}

View File

@ -72,7 +72,6 @@ public class ProjectServiceImpl implements ProjectService {
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
//判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
@ -82,7 +81,7 @@ public class ProjectServiceImpl implements ProjectService {
//判断项目是否存在
if (projectDAO.isExistProject(projectId)) {
//更新数据
return ResultUtil.success(projectDAO.projectEdit(projectEdit,projectId));
return ResultUtil.success(projectDAO.projectEdit(projectEdit, projectId));
} else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
@ -278,7 +277,7 @@ public class ProjectServiceImpl implements ProjectService {
//判断用户是否为老师 或者 项目负责人 或管理员
if (!Processing.checkUserIsTeacher(request, roleMapper) &&
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id)
&& !Processing.checkUserIsAdmin(request, roleMapper)) {
&& !Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}

View 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);
}
}