This commit is contained in:
dyhj625 2025-02-18 16:05:00 +09:00
parent c27687438c
commit b09f4cda2f
5 changed files with 70 additions and 29 deletions

View File

@ -167,13 +167,31 @@ public class BoardController {
/**
* 댓글/대댓글 조회
* @ReqMap map 수정 데이터 (LOCBRDSEQ)
* @return 댓글 대댓글의 계층 구조 데이터
* @return 댓글
*/
@Member
@ParameterCheck
@GetMapping("/{boardId}/comments")
public ApiResponse<PageInfo<MapDto>> getComments(@ReqMap MapDto map) {
return ApiResponse.ok(boardService.selectComments(map));
public ApiResponse<PageInfo<MapDto>> selectComments(@ReqMap MapDto map) {
// 댓글조회
PageInfo<MapDto> comments = boardService.selectComments(map);
return ApiResponse.ok(comments);
}
/**
* 대댓글 조회
* @ReqMap map 수정 데이터 (LOCBRDSEQ)
* @return 대댓글
*/
@Member
@ParameterCheck
@GetMapping("/{boardId}/reply")
public ApiResponse<List<MapDto>> getComments(@ReqMap MapDto map) {
List<MapDto> replies = boardService.selectReply(map);
return ApiResponse.ok(replies);
}
/**

View File

@ -43,9 +43,12 @@ public interface localbordMapper {
// 기존 반응 업데이트
void updateReaction(MapDto map);
// 댓글/대댓글 조회
// 댓글 조회
List<MapDto> selectComments(MapDto map);
//대댓글 조회
List<MapDto> selectReply(MapDto map);
// 댓글/대댓글 작성
void insertCommentOrReply(MapDto map);

View File

@ -120,6 +120,11 @@ public class localbordService {
return PageUtil.redefineNavigation(new PageInfo<>(result, size));
}
public List<MapDto> selectReply(MapDto map) {
return boardMapper.selectComments(map);
}
public void insertCommentOrReply(MapDto map) {
if (map.get("LOCCMTPNT") == null) {
map.put("LOCCMTPNT", null);

View File

@ -132,7 +132,7 @@
VALUES (#{LOCBRDSEQ}, #{LOCCMTSEQ}, #{MEMBERSEQ}, #{LOCGOBGOD}, #{LOCGOBBAD})
</insert>
<!-- 댓글/대댓글 조회 -->
<!-- 댓글 조회 -->
<select id="selectComments" resultType="io.company.localhost.common.dto.MapDto">
SELECT
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY,
@ -140,7 +140,19 @@
m.MEMBERNAM AS author
FROM localcomt c
LEFT JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE LOCBRDSEQ = #{LOCBRDSEQ}
WHERE LOCBRDSEQ = #{LOCBRDSEQ} and LOCCMTPNT = 1
ORDER BY LOCCMTPNT ASC, LOCCMTUDT ASC
</select>
<!-- 대댓글 조회 -->
<select id="selectReply" resultType="io.company.localhost.common.dto.MapDto">
SELECT
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY,
c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,c.LOCCMTPNT,
m.MEMBERNAM AS author
FROM localcomt c
LEFT JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE LOCBRDSEQ = #{LOCBRDSEQ} and LOCCMTPNT != 1
ORDER BY LOCCMTPNT ASC, LOCCMTUDT ASC
</select>

View File

@ -16,28 +16,31 @@
</select>
<!-- 사용자가 사용한 연차 목록 조회 -->
<select id="getUsedVacations" resultType="io.company.localhost.common.dto.MapDto">
SELECT LOCVACUDT AS date, LOCVACTYP AS type, COUNT(*) AS count, LOCVACRMM AS receiverId,
-- 반차(700101, 700102)는 0.5, 연차(700103)는 1로 계산
SUM(CASE
WHEN LOCVACTYP IN ('700101', '700102') THEN 0.5
WHEN LOCVACTYP = '700103' THEN 1
ELSE 0
END) AS used_quota
FROM localvaca
WHERE MEMBERSEQ = #{userId}
GROUP BY LOCVACUDT, LOCVACTYP, LOCVACRMM
ORDER BY LOCVACUDT DESC
</select>
<select id="getUsedVacations" resultType="io.company.localhost.common.dto.MapDto">
SELECT LOCVACUDT AS date, LOCVACTYP AS type, LOCVACRMM AS receiverId,
-- 반차(700101, 700102)는 0.5, 연차(700103)는 1로 계산
SUM(CASE
WHEN LOCVACTYP IN ('700101', '700102') THEN 0.5
WHEN LOCVACTYP = '700103' THEN 1
ELSE 0
END) AS used_quota
FROM localvaca
WHERE MEMBERSEQ = #{userId}
AND DATE_FORMAT(LOCVACUDT, '%Y') = DATE_FORMAT(CURDATE(), '%Y')
GROUP BY LOCVACUDT, LOCVACTYP, LOCVACRMM
ORDER BY LOCVACUDT DESC
</select>
<!-- 사용자가 받은 연차 목록 조회 -->
<select id="getReceivedVacations" resultType="io.company.localhost.common.dto.MapDto">
SELECT LOCVACUDT AS date, LOCVACTYP AS type, MEMBERSEQ AS senderId
FROM localvaca
WHERE LOCVACRMM = #{userId}
AND DATE_FORMAT(LOCVACUDT, '%Y') = DATE_FORMAT(CURDATE(), '%Y')
GROUP BY LOCVACUDT, LOCVACTYP, MEMBERSEQ
ORDER BY LOCVACUDT DESC
</select>
<!-- 사용자가 받은 연차 목록 조회 -->
<select id="getReceivedVacations" resultType="io.company.localhost.common.dto.MapDto">
SELECT LOCVACUDT AS date, LOCVACTYP AS type, COUNT(*) AS count, MEMBERSEQ AS senderId
FROM localvaca
WHERE LOCVACRMM = #{userId}
GROUP BY LOCVACUDT, LOCVACTYP, MEMBERSEQ
ORDER BY LOCVACUDT DESC
</select>
<!-- 전체 직원 남은 연차 조회 -->
<select id="getEmployeeRemainingVacation" resultType="io.company.localhost.common.dto.MapDto">
@ -110,7 +113,7 @@
</select>
<select id="countSentVacations" resultType="io.company.localhost.common.dto.MapDto">
SELECT COUNT(*) as count FROM localvaca WHERE MEMBERSEQ = #{userId} AND LOCVACRMM = #{receiverId} AND YEAR(LOCVACRDT) = YEAR(NOW())
SELECT COUNT(*) as count FROM localvaca WHERE MEMBERSEQ = #{userId} AND LOCVACRMM = #{receiverId}
</select>