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) * @ReqMap map 수정 데이터 (LOCBRDSEQ)
* @return 댓글 대댓글의 계층 구조 데이터 * @return 댓글
*/ */
@Member @Member
@ParameterCheck @ParameterCheck
@GetMapping("/{boardId}/comments") @GetMapping("/{boardId}/comments")
public ApiResponse<PageInfo<MapDto>> getComments(@ReqMap MapDto map) { public ApiResponse<PageInfo<MapDto>> selectComments(@ReqMap MapDto map) {
return ApiResponse.ok(boardService.selectComments(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); void updateReaction(MapDto map);
// 댓글/대댓글 조회 // 댓글 조회
List<MapDto> selectComments(MapDto map); List<MapDto> selectComments(MapDto map);
//대댓글 조회
List<MapDto> selectReply(MapDto map);
// 댓글/대댓글 작성 // 댓글/대댓글 작성
void insertCommentOrReply(MapDto map); void insertCommentOrReply(MapDto map);

View File

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

View File

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

View File

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