diff --git a/src/main/java/com/jsl/oa/controllers/TagController.java b/src/main/java/com/jsl/oa/controllers/TagController.java
new file mode 100644
index 0000000..bbc7a62
--- /dev/null
+++ b/src/main/java/com/jsl/oa/controllers/TagController.java
@@ -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
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @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);
+ }
+}
diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java
index 088226d..1104d33 100644
--- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java
@@ -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());
}
diff --git a/src/main/java/com/jsl/oa/dao/TagDAO.java b/src/main/java/com/jsl/oa/dao/TagDAO.java
new file mode 100644
index 0000000..462e385
--- /dev/null
+++ b/src/main/java/com/jsl/oa/dao/TagDAO.java
@@ -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
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @since v1.0.0-SNAPSHOT
+ * @version v1.0.0
+ * @author xiao_lfeng
+ */
+@Slf4j
+@Repository
+@RequiredArgsConstructor
+public class TagDAO {
+ private final TagMapper tagMapper;
+
+ /**
+ * 获取标签列表
+ *
+ * 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
+ *
+ * @param page 页码
+ * @param limit 每页数量
+ * @param order 排序
+ */
+ public ArrayList getTagsProjectList(Integer page, Integer limit, String order) {
+ log.info("[DAO] 请求 getTagsProjectList 接口");
+ // 获取标签列表
+ page = (page - 1) * limit;
+ return (ArrayList) tagMapper.getTagsProjectList(order, limit, page);
+ }
+}
diff --git a/src/main/java/com/jsl/oa/mapper/TagMapper.java b/src/main/java/com/jsl/oa/mapper/TagMapper.java
new file mode 100644
index 0000000..14aa675
--- /dev/null
+++ b/src/main/java/com/jsl/oa/mapper/TagMapper.java
@@ -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
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @since v1.0.0-SNAPSHOT
+ * @version v1.0.0
+ * @author xiao_lfeng
+ */
+@Mapper
+public interface TagMapper {
+
+ /**
+ * 获取标签列表
+ *
+ * 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
+ *
+ * @param page 页码
+ * @param limit 每页数量
+ * @param order 排序
+ */
+ @Select("SELECT * FROM organize_oa.oa_project_tags ORDER BY ${order} LIMIT #{limit} OFFSET #{page}")
+ List getTagsProjectList(String order, Integer limit, Integer page);
+}
diff --git a/src/main/java/com/jsl/oa/model/doData/TagProjectDO.java b/src/main/java/com/jsl/oa/model/doData/TagProjectDO.java
new file mode 100644
index 0000000..22a558e
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/doData/TagProjectDO.java
@@ -0,0 +1,24 @@
+package com.jsl.oa.model.doData;
+
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+/**
+ * TagProjectDO
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @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;
+}
diff --git a/src/main/java/com/jsl/oa/services/TagService.java b/src/main/java/com/jsl/oa/services/TagService.java
new file mode 100644
index 0000000..7d0ea31
--- /dev/null
+++ b/src/main/java/com/jsl/oa/services/TagService.java
@@ -0,0 +1,25 @@
+package com.jsl.oa.services;
+
+import com.jsl.oa.utils.BaseResponse;
+
+/**
+ * TagService
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @since v1.0.0-SNAPSHOT
+ * @version v1.0.0
+ * @author xiao_lfeng
+ */
+public interface TagService {
+ /**
+ * 获取标签列表
+ *
+ * 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
+ *
+ * @param page 页码
+ * @param limit 每页数量
+ * @return BaseResponse 返回标签列表
+ */
+ BaseResponse getTagsProjectList(Integer page, Integer limit, String order);
+}
diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java
index 636003c..f26f071 100644
--- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java
@@ -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);
}
diff --git a/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java
new file mode 100644
index 0000000..9df16d8
--- /dev/null
+++ b/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java
@@ -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
+ *
+ * 用于处理标签相关的请求, 包括获取标签列表、编辑标签信息等
+ *
+ * @since v1.0.0-SNAPSHOT
+ * @version v1.0.0
+ * @author xiao_lfeng
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class TagServiceImpl implements TagService {
+ private final TagDAO tagDAO;
+
+ /**
+ * 获取标签列表
+ *
+ * 该接口提供标签列表的查询功能。用户在成功登录后,可以请求此接口来获取标签列表.
+ *
+ * @param page 页码
+ * @param limit 每页数量
+ * @return BaseResponse 返回标签列表
+ */
+ @Override
+ public BaseResponse getTagsProjectList(Integer page, Integer limit, String order) {
+ log.info("[Service] 请求 getTagsProjectList 接口");
+ // 获取标签列表
+ ArrayList getTagList = tagDAO.getTagsProjectList(page, limit, order);
+ return ResultUtil.success(getTagList);
+ }
+}