diff --git a/pom.xml b/pom.xml
index f13aa80..dad2c0c 100755
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,14 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 9
+
+
diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java
index 88d12ba..ef53004 100644
--- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java
+++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java
@@ -54,8 +54,10 @@ public class ProjectDailyController {
@GetMapping("/daily/getMyDaily")
- public BaseResponse getMyDaily(HttpServletRequest request) {
- return projectDailyService.getMyDaily(request);
+ public BaseResponse getMyDaily(@RequestParam Integer page,
+ @RequestParam Integer pageSize,
+ HttpServletRequest request) {
+ return projectDailyService.getMyDaily(page, pageSize, request);
}
}
diff --git a/src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java b/src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java
index 4df4917..50cd2a1 100644
--- a/src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java
+++ b/src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java
@@ -1,5 +1,6 @@
package com.jsl.oa.model.dodata;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -35,14 +36,17 @@ public class ProjectDailyDO {
/**
* 日志发布时间
*/
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dailyTime;
/**
* 创建时间
*/
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createdAt;
/**
* 修改时间
*/
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;
/**
* 是否删除
diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java
index ab4114e..e13b2bd 100644
--- a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java
+++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java
@@ -1,10 +1,12 @@
package com.jsl.oa.model.vodata;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import java.util.Date;
@Data
@@ -16,6 +18,10 @@ public class ProjectDailyAddVO {
@NotBlank(message = "日报内容不能为空")
private String content;
+ @NotNull(message = "工作时间不能为空")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date dailyTime;
+
}
diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyDataVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyDataVO.java
new file mode 100644
index 0000000..99a3d56
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyDataVO.java
@@ -0,0 +1,24 @@
+package com.jsl.oa.model.vodata;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectDailyDataVO {
+
+ private Integer totalCount;
+
+ private Integer currentPage;
+
+ private Integer pageSize;
+
+ private List list;
+
+}
+
+
diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java
index 9bc827e..d2e1a2e 100644
--- a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java
+++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java
@@ -1,16 +1,38 @@
package com.jsl.oa.model.vodata;
-/*
- 张睿相 Java
-*/
-/**
- * 总体描述
- * 创建时间:2024/4/18 13:50
- *
- * @author 张睿相
- * @since v1.0
- */
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+
+@Data
+@Accessors(chain = true)
public class ProjectDailyVO {
+
+ private Long id;
+
+ private Long userId;
+
+ private String userName;
+
+ private Long projectId;
+
+ private String projectName;
+
+ private String content;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date dailyTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createdAt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updatedAt;
+
+
}
diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java
index 3d6fad9..6bc3900 100644
--- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java
+++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java
@@ -20,7 +20,7 @@ public interface ProjectDailyService {
BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request);
- BaseResponse getMyDaily(HttpServletRequest request);
+ BaseResponse getMyDaily(Integer page, Integer pageSize, HttpServletRequest request);
}
diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java
index 8194080..03d5b30 100644
--- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java
@@ -5,9 +5,11 @@ package com.jsl.oa.services.impl;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.ProjectDailyDAO;
-import com.jsl.oa.exception.BusinessException;
+import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.model.dodata.ProjectDailyDO;
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
+import com.jsl.oa.model.vodata.ProjectDailyDataVO;
+import com.jsl.oa.model.vodata.ProjectDailyVO;
import com.jsl.oa.services.ProjectDailyService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
@@ -18,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -37,7 +39,7 @@ import java.util.List;
public class ProjectDailyServiceImpl implements ProjectDailyService {
private final ProjectDAO projectDAO;
-
+ private final UserDAO userDAO;
private final ProjectDailyDAO projectDailyDAO;
@@ -50,14 +52,14 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
Long projectId = projectDailyAddVO.getProjectId();
// 检查项目是否存在
if (!projectDAO.isExistProjectById(projectId)) {
- throw new BusinessException(ErrorCode.PROJECT_NOT_EXIST);
+ return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
// 赋值数据库表实体类相关属性
ProjectDailyDO projectDailyDO = new ProjectDailyDO();
Processing.copyProperties(projectDailyAddVO, projectDailyDO);
- projectDailyDO.setUserId(userId)
- .setDailyTime(new Date());
+ projectDailyDO.setUserId(userId);
+
// 向数据库添加数据
projectDailyDAO.addProjectDaily(projectDailyDO);
@@ -65,20 +67,49 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
return ResultUtil.success();
}
+
@Override
- public BaseResponse getMyDaily(HttpServletRequest request) {
+ public BaseResponse getMyDaily(Integer page, Integer pageSize, HttpServletRequest request) {
// 获取用户id
Long userId = Processing.getAuthHeaderToUserId(request);
// 获取 我发布的及自己负责的项目下 的日报
List projectDailyDOList =
projectDailyDAO.getMyProjectDaily(userId);
+// 进行分页
+ List dailyPage = Processing.getPage(projectDailyDOList, page, pageSize);
+// 封装结果类
+ List projectDailyVOS = encapsulateArrayClass(dailyPage);
+ ProjectDailyDataVO projectDailyDataVO =
+ new ProjectDailyDataVO(projectDailyDOList.size(), page, pageSize, projectDailyVOS);
- return ResultUtil.success(projectDailyDOList);
-
+ return ResultUtil.success(projectDailyDataVO);
}
+
+
+ public List encapsulateArrayClass(List
+ projectDailyDOList) {
+// 定义封装结果数组
+ List projectDailyVOS = new ArrayList<>();
+// 遍历原始数据,依次封装
+ for (ProjectDailyDO projectDailyDO : projectDailyDOList) {
+// 定义一个封装结果类
+ ProjectDailyVO projectDailyVO = new ProjectDailyVO();
+// 复制相同的属性值
+ Processing.copyProperties(projectDailyDO, projectDailyVO);
+// 赋值其他需查询的属性
+ projectDailyVO.setProjectName(
+ projectDAO.getProjectById(projectDailyVO.getProjectId()).getName())
+ .setUserName(userDAO.getUserById(projectDailyDO.getUserId()).getNickname());
+// 向 结果封装类数组 添加对应 日报封装类
+ projectDailyVOS.add(projectDailyVO);
+ }
+
+ return projectDailyVOS;
+ }
+
}
diff --git a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
index cc6c4d7..1c01f68 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -5,7 +5,6 @@ import com.jsl.oa.common.constant.ReviewConstants;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.ReviewDAO;
import com.jsl.oa.dao.UserDAO;
-import com.jsl.oa.exception.BusinessException;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.ProjectChildDO;
@@ -194,19 +193,19 @@ public class ReviewServiceImpl implements ReviewService {
//检查对应项目,子系统,子模块是否存在
if (!projectDAO.isExistProjectById(reviewAddVO.getProjectId())) {
- throw new BusinessException(ErrorCode.PROJECT_NOT_EXIST);
+ return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
if (projectMapper.getProjectChildById(
- Math.toIntExact(reviewAddVO.getProjectChildId())) != null) {
- throw new BusinessException(ErrorCode.PROJECT_CHILD_NOT_EXIST);
+ Math.toIntExact(reviewAddVO.getProjectChildId())) == null) {
+ return ResultUtil.error(ErrorCode.PROJECT_CHILD_NOT_EXIST);
}
// 子模块id不为空时查询,否则直接跳过
if (reviewAddVO.getProjectModuleId() != null) {
if (projectMapper.getModuleById(
- Math.toIntExact(reviewAddVO.getProjectModuleId())) != null) {
- throw new BusinessException(ErrorCode.MODULE_NOT_EXIST);
+ Math.toIntExact(reviewAddVO.getProjectModuleId())) == null) {
+ return ResultUtil.error(ErrorCode.MODULE_NOT_EXIST);
}
}
@@ -466,8 +465,10 @@ public class ReviewServiceImpl implements ReviewService {
int total = allReviews.size();
int startIndex = (page - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, total);
- List reviewsOnPage = allReviews.subList(startIndex, endIndex);
-
+ List reviewsOnPage = new ArrayList<>();
+ if (startIndex <= allReviews.size()) {
+ reviewsOnPage = allReviews.subList(startIndex, endIndex);
+ }
reviewDataVO.setReviews(reviewsOnPage);
reviewDataVO.setTotalCount(allReviews.size());
reviewDataVO.setPageSize(pageSize);
@@ -475,6 +476,8 @@ public class ReviewServiceImpl implements ReviewService {
return reviewDataVO;
}
+
+
}
diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java
index 35e2009..62d1fd1 100755
--- a/src/main/java/com/jsl/oa/utils/Processing.java
+++ b/src/main/java/com/jsl/oa/utils/Processing.java
@@ -394,4 +394,19 @@ public class Processing {
}
+ /**
+ * @Description: list分页方法
+ * @Date: 2024/4/18
+ * @Param list:
+ * @Param pageNumber: 当前页码
+ * @Param pageSize: 每页几条
+ **/
+ public static List getPage(List list, int pageNumber, int pageSize) {
+ int fromIndex = (pageNumber - 1) * pageSize;
+ if (fromIndex >= list.size()) {
+ return new ArrayList<>(); // 返回空列表,表示超出范围
+ }
+ int toIndex = Math.min(fromIndex + pageSize, list.size());
+ return list.subList(fromIndex, toIndex);
+ }
}
diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml
index bc48bd9..5bb6f20 100644
--- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml
+++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml
@@ -31,7 +31,7 @@
and is_delete = 0
-