feat:新增日报模块查询我的日报接口

This commit is contained in:
xiangZr-hhh 2024-04-18 16:08:40 +08:00
parent 121b87c683
commit 9c4cb174eb
6 changed files with 75 additions and 0 deletions

View File

@ -53,6 +53,10 @@ public class ProjectDailyController {
} }
@GetMapping("/daily/getMyDaily")
public BaseResponse getMyDaily(HttpServletRequest request) {
return projectDailyService.getMyDaily(request);
}
} }

View File

@ -4,11 +4,17 @@ package com.jsl.oa.dao;
*/ */
import com.jsl.oa.mapper.ProjectDailyMapper; import com.jsl.oa.mapper.ProjectDailyMapper;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.dodata.ProjectDailyDO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
@ -26,6 +32,7 @@ import org.springframework.stereotype.Component;
public class ProjectDailyDAO { public class ProjectDailyDAO {
private final ProjectDailyMapper projectDailyMapper; private final ProjectDailyMapper projectDailyMapper;
private final ProjectMapper projectMapper;
public void addProjectDaily(ProjectDailyDO projectDailyDO) { public void addProjectDaily(ProjectDailyDO projectDailyDO) {
@ -33,6 +40,38 @@ public class ProjectDailyDAO {
} }
public List<ProjectDailyDO> getMyProjectDaily(Long userId) {
// 日报数据数组
List<ProjectDailyDO> projectDailyDOList = new ArrayList<>();
// 先获取我负责的项目下的日报数据
//获取我负责的项目
List<ProjectDO> projectDOS = projectMapper.getAllProjectByUserId(userId);
//获取项目下对应日报
for (ProjectDO projectDO:projectDOS) {
List dailyFromProject = projectDailyMapper.getProjectDailyByProject(projectDO.getId());
projectDailyDOList.addAll(dailyFromProject);
}
// 在获取本人的发布日报
List<ProjectDailyDO> myProjectDaily = projectDailyMapper.getProjectDailyByUser(userId);
projectDailyDOList.addAll(myProjectDaily);
// 去除重复的日报信息
projectDailyDOList = projectDailyDOList.stream()
// 根据 id 属性进行去重
.collect(Collectors.toMap(ProjectDailyDO::getId,
Function.identity(), (existing, replacement) -> existing))
.values().stream()
.collect(Collectors.toList());
return projectDailyDOList;
}
} }

View File

@ -4,6 +4,8 @@ package com.jsl.oa.mapper;
import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.dodata.ProjectDailyDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 项目日报(ProjectDaily)表数据库访问层 * 项目日报(ProjectDaily)表数据库访问层
@ -16,6 +18,11 @@ public interface ProjectDailyMapper {
void insert(ProjectDailyDO projectDailyDO); void insert(ProjectDailyDO projectDailyDO);
List<ProjectDailyDO> getProjectDailyByUser(Long uid);
List<ProjectDailyDO> getProjectDailyByProject(Long pid);
} }

View File

@ -20,6 +20,7 @@ public interface ProjectDailyService {
BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request); BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request);
BaseResponse getMyDaily(HttpServletRequest request);
} }

View File

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* <h1>日志服务层实现类</h1> * <h1>日志服务层实现类</h1>
@ -64,8 +65,18 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
return ResultUtil.success(); return ResultUtil.success();
} }
@Override
public BaseResponse getMyDaily(HttpServletRequest request) {
// 获取用户id
Long userId = Processing.getAuthHeaderToUserId(request);
// 获取 我发布的及自己负责的项目下 的日报
List<ProjectDailyDO> projectDailyDOList =
projectDailyDAO.getMyProjectDaily(userId);
return ResultUtil.success(projectDailyDOList);
}
} }

View File

@ -25,4 +25,17 @@
</trim> </trim>
</insert> </insert>
<select id="getProjectDailyByUser" parameterType="java.lang.Long"
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
select * from oa_project_daily where user_id = #{uid}
and is_delete = 0
</select>
<select id="getProjectDailyByProject" parameterType="java.lang.Integer"
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
select * from oa_project_daily where user_id = #{pid}
and is_delete = 0
</select>
</mapper> </mapper>