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));
}
@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);
List<MapDto> selectUserProjectPeriod(int projectSeq);
List<MapDto> selectUserProjectPeriod2(int memberSeq);
}

View File

@ -175,4 +175,8 @@ public class NetprojctService {
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
m.MEMBERSEQ,
m.MEMBERNAM,
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 = m.MEMBERSEQ
) as userStartDate,
(
SELECT MAX(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ
) as userEndDate
FROM
netprojct p
INNER JOIN
commuters c ON p.PROJCTSEQ = c.PROJCTSEQ
INNER JOIN
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE
p.PROJCTSEQ = #{projectSeq}
GROUP BY
m.MEMBERSEQ, p.PROJCTSEQ
</select>
SELECT
m.MEMBERSEQ,
m.MEMBERNAM,
p.PROJCTSEQ,
p.PROJCTNAM,
p.PROJCTSTR AS projectStartDate,
p.PROJCTEND AS projectEndDate,
COALESCE((
SELECT MIN(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ
), 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)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = pm.MEMBERSEQ
)
ELSE NULL
END AS userEndDate
FROM promember pm
INNER JOIN netprojct p ON pm.PROJCTSEQ = p.PROJCTSEQ
WHERE pm.MEMBERSEQ = #{memberSeq}
AND pm.PROJCTYON = 1
</select>
</mapper>