Merge branch 'vacation' into main
This commit is contained in:
commit
c94c6bd8e3
@ -9,15 +9,18 @@
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 24.01.02 서지희 최초 생성
|
||||
* 25.01.07 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
package io.company.localhost.controller.api;
|
||||
|
||||
import java.io.File;
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -104,9 +107,13 @@ public class BoardController {
|
||||
if (board == null) {
|
||||
throw new NotFoundHandler("게시물 ID " + boardId + "을(를) 찾을 수 없습니다.");
|
||||
}
|
||||
// 📌 첨부파일 목록 추가
|
||||
List<MapDto> attachments = boardService.selectAttachments(boardId);
|
||||
board.put("attachments", attachments != null ? attachments : new ArrayList<>());
|
||||
|
||||
return ApiResponse.ok(board);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 게시물 삭제
|
||||
* @ReqMap map 수정 데이터 (LOCBRDSEQ)
|
||||
@ -229,13 +236,16 @@ public class BoardController {
|
||||
|
||||
/**
|
||||
* 댓글/대댓글 삭제
|
||||
* @ReqMap map 수정 데이터 (LOCCMTSEQ)
|
||||
* @param commentId 댓글 ID
|
||||
* @return 삭제 결과 메시지
|
||||
*/
|
||||
@Member
|
||||
@ParameterCheck
|
||||
@DeleteMapping("/comment/{commentId}")
|
||||
public ApiResponse<String> deleteComment(@ReqMap MapDto map) {
|
||||
public ApiResponse<String> deleteComment(@PathVariable("commentId") Long commentId) {
|
||||
MapDto map = new MapDto();
|
||||
map.put("LOCCMTSEQ", commentId);
|
||||
|
||||
boardService.deleteComment(map);
|
||||
return ApiResponse.ok("댓글이 삭제되었습니다.");
|
||||
}
|
||||
|
||||
@ -1,6 +1,18 @@
|
||||
/************************************************************
|
||||
*
|
||||
* @packageName : io.company.localhost.controller.api
|
||||
* @fileName : VacationController.java
|
||||
* @author : 서지희
|
||||
* @date : 25.02.06
|
||||
* @description : 게시판
|
||||
*
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25.02.06 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
package io.company.localhost.controller.api;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@ -1,12 +1,21 @@
|
||||
/************************************************************
|
||||
*
|
||||
* @packageName : io.company.localhost.mapper
|
||||
* @fileName : localbordMapper.java
|
||||
* @author : 서지희
|
||||
* @date : 25.01.07
|
||||
* @description :
|
||||
*
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25.01.07 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
package io.company.localhost.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.ResultType;
|
||||
|
||||
import io.company.localhost.common.dto.MapDto;
|
||||
|
||||
@Mapper
|
||||
@ -57,10 +66,10 @@ public interface localbordMapper {
|
||||
void updateComment(MapDto map);
|
||||
|
||||
// 대댓글인지 확인
|
||||
boolean selectIsReply(MapDto map);
|
||||
int selectIsReply(MapDto map);
|
||||
|
||||
// 댓글에 대댓글이 있는지 확인
|
||||
boolean selectHasReplies(MapDto map);
|
||||
int selectHasReplies(MapDto map);
|
||||
|
||||
// 댓글 내용만 삭제 처리 (대댓글 유지)
|
||||
void updateSoftDeleteComment(MapDto map);
|
||||
|
||||
@ -1,3 +1,17 @@
|
||||
/************************************************************
|
||||
*
|
||||
* @packageName : io.company.localhost.mapper
|
||||
* @fileName : localvacaMapper.java
|
||||
* @author : 서지희
|
||||
* @date : 25.02.06
|
||||
* @description :
|
||||
*
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25.02.06 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
package io.company.localhost.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -1,10 +1,21 @@
|
||||
/************************************************************
|
||||
*
|
||||
* @packageName : io.company.localhost.service
|
||||
* @fileName : localbordService.java
|
||||
* @author : 서지희
|
||||
* @date : 25.01.07
|
||||
* @description :
|
||||
*
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25.01.07 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
package io.company.localhost.service;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import io.company.localhost.utils.BlobUtil;
|
||||
|
||||
@ -161,21 +172,26 @@ public class localbordService {
|
||||
}
|
||||
|
||||
public void deleteComment(MapDto map) {
|
||||
boolean isReply = boardMapper.selectIsReply(map);
|
||||
// 댓글이 대댓글인지 확인
|
||||
boolean isReply = boardMapper.selectIsReply(map) > 0;
|
||||
|
||||
if (isReply) {
|
||||
// 대댓글이면 바로 삭제
|
||||
boardMapper.deleteReply(map);
|
||||
} else {
|
||||
boolean hasReplies = boardMapper.selectHasReplies(map);
|
||||
// 댓글에 대댓글이 있는지 확인
|
||||
boolean hasReplies = boardMapper.selectHasReplies(map) > 0;
|
||||
|
||||
if (hasReplies) {
|
||||
// 대댓글이 있는 경우, '삭제된 댓글입니다.'로 변경 (소프트 삭제)
|
||||
boardMapper.updateSoftDeleteComment(map);
|
||||
} else {
|
||||
// 대댓글이 없는 경우, 완전 삭제
|
||||
boardMapper.deleteComment(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String selectCommentPassword(int commentId) {
|
||||
return boardMapper.selectCommentPassword(commentId);
|
||||
}
|
||||
|
||||
@ -1,3 +1,17 @@
|
||||
/************************************************************
|
||||
*
|
||||
* @packageName : io.company.localhost.service
|
||||
* @fileName : localvacaService.java
|
||||
* @author : 서지희
|
||||
* @date : 25.02.06
|
||||
* @description :
|
||||
*
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25.02.06 서지희 최초 생성
|
||||
*
|
||||
*************************************************************/
|
||||
package io.company.localhost.service;
|
||||
|
||||
import java.net.URLDecoder;
|
||||
@ -47,9 +61,7 @@ public class localvacaService {
|
||||
return localvacaMapper.selectVacations(year, month);
|
||||
}
|
||||
|
||||
/**
|
||||
* 🔹 특정 연월에 대한 공휴일 데이터 조회
|
||||
*/
|
||||
|
||||
public List<MapDto> selectHolidays(int year, int month) {
|
||||
// ✅ ServiceKey를 디코딩해서 사용
|
||||
String decodedServiceKey = URLDecoder.decode(serviceKey, StandardCharsets.UTF_8);
|
||||
@ -155,9 +167,7 @@ public class localvacaService {
|
||||
return dto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 내 연차 사용 내역 조회 (사용한 연차 & 받은 연차)
|
||||
*/
|
||||
|
||||
public Map<String, List<MapDto>> selectUserVacationHistory(Long userId, int year) {
|
||||
List<MapDto> usedVacations = localvacaMapper.selectUsedVacations(userId,year);
|
||||
List<MapDto> receivedVacations = localvacaMapper.selectReceivedVacations(userId,year);
|
||||
@ -169,9 +179,6 @@ public class localvacaService {
|
||||
return history;
|
||||
}
|
||||
|
||||
/**
|
||||
* 사원별 남은 연차 개수 조회
|
||||
*/
|
||||
public List<MapDto> selectEmployeeRemainingVacation() {
|
||||
List<MapDto> employeeVacations = localvacaMapper.selectEmployeeRemainingVacation();
|
||||
|
||||
|
||||
@ -199,16 +199,16 @@
|
||||
</delete>
|
||||
|
||||
<!-- 대댓글인지 확인 -->
|
||||
<select id="selectIsReply" resultType="boolean">
|
||||
SELECT COUNT(1) > 0 FROM localcomt
|
||||
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPNT IS NOT NULL
|
||||
<select id="selectIsReply" resultType="int">
|
||||
SELECT COUNT(1) FROM localcomt
|
||||
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPNT IS NOT NULL
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 댓글에 대댓글이 있는지 확인 -->
|
||||
<select id="selectHasReplies" resultType="boolean">
|
||||
SELECT COUNT(1) > 0 FROM localcomt WHERE LOCCMTPNT = #{LOCCMTSEQ}
|
||||
<select id="selectHasReplies" resultType="int">
|
||||
SELECT COUNT(1) FROM localcomt WHERE LOCCMTPNT = #{LOCCMTSEQ}
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 댓글 비밀번호 조회 -->
|
||||
<select id="selectCommentPassword" resultType="String">
|
||||
SELECT LOCCMTPWD
|
||||
|
||||
Loading…
Reference in New Issue
Block a user