ee
All checks were successful
LOCALNET-DEV/pipeline/head This commit looks good

This commit is contained in:
dyhj625 2025-04-14 10:52:39 +09:00
parent 18cf7d1a62
commit f1b3f1d953
4 changed files with 74 additions and 30 deletions

View File

@ -180,4 +180,11 @@ public class ProjectController {
return ApiResponse.ok(netprojctService.selectUserProjectPeriod(projctSeq)); return ApiResponse.ok(netprojctService.selectUserProjectPeriod(projctSeq));
} }
@ParameterCheck
@GetMapping("/people/{memberSeq}")
public ApiResponse<List<MapDto>> selectUserProjectPeriod2(@PathVariable int memberSeq) {
return ApiResponse.ok(netprojctService.selectUserProjectPeriod2(memberSeq));
}
} }

View File

@ -34,4 +34,7 @@ public interface NetprojctMapper {
int deleteProject(MapDto map); int deleteProject(MapDto map);
List<MapDto> selectUserProjectPeriod(int projectSeq); List<MapDto> selectUserProjectPeriod(int projectSeq);
List<MapDto> selectUserProjectPeriod2(int memberSeq);
} }

View File

@ -175,4 +175,8 @@ public class NetprojctService {
return netprojctMapper.selectUserProjectPeriod(projctSeq); return netprojctMapper.selectUserProjectPeriod(projctSeq);
} }
public List<MapDto> selectUserProjectPeriod2(int memberSeq) {
return netprojctMapper.selectUserProjectPeriod2(memberSeq);
}
} }

View File

@ -116,35 +116,65 @@
<!-- 프로젝트 모든 사용자 참여기간 조회 --> <!-- 프로젝트 모든 사용자 참여기간 조회 -->
<select id="selectUserProjectPeriod" resultType="io.company.localhost.common.dto.MapDto"> <select id="selectUserProjectPeriod" resultType="io.company.localhost.common.dto.MapDto">
SELECT SELECT
m.MEMBERSEQ, m.MEMBERSEQ,
m.MEMBERNAM, m.MEMBERNAM,
p.PROJCTSEQ, p.PROJCTSEQ,
p.PROJCTNAM, p.PROJCTNAM,
p.PROJCTSTR as projectStartDate, p.PROJCTSTR AS projectStartDate,
p.PROJCTEND as projectEndDate, p.PROJCTEND AS projectEndDate,
( COALESCE((
SELECT MIN(c2.COMMUTDAY) SELECT MIN(c2.COMMUTDAY)
FROM commuters c2 FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ AND c2.MEMBERSEQ = m.MEMBERSEQ
) as userStartDate, ), p.PROJCTSTR) AS userStartDate,
( COALESCE((
SELECT MAX(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ
), p.PROJCTEND) AS userEndDate
FROM
netprojct p
LEFT JOIN
commuters c ON p.PROJCTSEQ = c.PROJCTSEQ
LEFT JOIN
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE
p.PROJCTSEQ = #{projectSeq}
GROUP BY
m.MEMBERSEQ, m.MEMBERNAM, p.PROJCTSEQ, p.PROJCTNAM, p.PROJCTSTR, p.PROJCTEND
</select>
<select id="selectUserProjectPeriod2" resultType="io.company.localhost.common.dto.MapDto">
SELECT
pm.MEMBERSEQ,
p.PROJCTSEQ,
p.PROJCTNAM,
p.PROJCTSTR AS projectStartDate,
p.PROJCTEND AS projectEndDate,
(
SELECT MIN(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = pm.MEMBERSEQ
) AS userStartDate,
CASE
WHEN p.PROJCTEND IS NOT NULL THEN (
SELECT MAX(c2.COMMUTDAY) SELECT MAX(c2.COMMUTDAY)
FROM commuters c2 FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ AND c2.MEMBERSEQ = pm.MEMBERSEQ
) as userEndDate )
FROM ELSE NULL
netprojct p END AS userEndDate
INNER JOIN FROM promember pm
commuters c ON p.PROJCTSEQ = c.PROJCTSEQ INNER JOIN netprojct p ON pm.PROJCTSEQ = p.PROJCTSEQ
INNER JOIN WHERE pm.MEMBERSEQ = #{memberSeq}
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ AND pm.PROJCTYON = 1
WHERE </select>
p.PROJCTSEQ = #{projectSeq}
GROUP BY
m.MEMBERSEQ, p.PROJCTSEQ
</select>
</mapper> </mapper>