From 1337c682e5c62a2d01f1d5f5d23ee507e7a8b3ce Mon Sep 17 00:00:00 2001 From: Daseul Kim Date: Thu, 6 Feb 2025 16:27:40 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=BA=94=EB=B2=84=EC=8A=A4=20=EB=B3=B5?= =?UTF-8?q?=EC=82=AC=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/canvasStatus/CanvasStatusMapper.java | 4 +++ .../biz/canvasStatus/CanvasStatusService.java | 10 ++++++++ .../dto/CanvasStatusCopyRequest.java | 25 +++++++++++++++++++ .../canvasStatus/canvasStatusMapper.xml | 23 +++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 src/main/java/com/interplug/qcast/biz/canvasStatus/dto/CanvasStatusCopyRequest.java diff --git a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusMapper.java b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusMapper.java index 5be224e8..cbe2e179 100644 --- a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusMapper.java +++ b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusMapper.java @@ -1,6 +1,7 @@ package com.interplug.qcast.biz.canvasStatus; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus; +import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusCopyRequest; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse; import java.util.List; import org.apache.ibatis.annotations.Mapper; @@ -40,4 +41,7 @@ public interface CanvasStatusMapper { // 캔버스 삭제 by id public void deleteIdCanvasStatus(Integer id); + + // 캔버스 복사 + public void copyCanvasStatus(CanvasStatusCopyRequest cs); } diff --git a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java index 6491f380..be753a97 100644 --- a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java +++ b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java @@ -1,6 +1,7 @@ package com.interplug.qcast.biz.canvasStatus; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus; +import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusCopyRequest; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse; import com.interplug.qcast.config.Exception.ErrorCode; import com.interplug.qcast.config.Exception.QcastException; @@ -116,4 +117,13 @@ public class CanvasStatusService { throw new QcastException(ErrorCode.NOT_FOUND, "삭제할 캔버스가 존재하지 않습니다."); } } + + // 캔버스 복사 후 등록 + public void copyCanvasStatus(CanvasStatusCopyRequest cs) throws QcastException { + try { + canvasStatusMapper.copyCanvasStatus(cs); + } catch (Exception e) { + throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, "캔버스 복사 중 오류 발생"); + } + } } diff --git a/src/main/java/com/interplug/qcast/biz/canvasStatus/dto/CanvasStatusCopyRequest.java b/src/main/java/com/interplug/qcast/biz/canvasStatus/dto/CanvasStatusCopyRequest.java new file mode 100644 index 00000000..023e56a1 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/canvasStatus/dto/CanvasStatusCopyRequest.java @@ -0,0 +1,25 @@ +package com.interplug.qcast.biz.canvasStatus.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "캔버스 복사 요청 객체") +public class CanvasStatusCopyRequest { + @Schema(description = "원본 물건 번호") + private String originObjectNo; + + @Schema(description = "원본 플랜 번호") + private String originPlanNo; + + @Schema(description = "복사본 저장할 사용자 ID") + private String userId; + + @Schema(description = "복사본 저장할 물건 번호") + private String objectNo; + + @Schema(description = "복사본 저장할 플랜 번호") + private String planNo; +} diff --git a/src/main/resources/mappers/canvasStatus/canvasStatusMapper.xml b/src/main/resources/mappers/canvasStatus/canvasStatusMapper.xml index ce40f4b7..f336fa2a 100644 --- a/src/main/resources/mappers/canvasStatus/canvasStatusMapper.xml +++ b/src/main/resources/mappers/canvasStatus/canvasStatusMapper.xml @@ -122,4 +122,27 @@ WHERE id = #{id} + + /* sqlid : com.interplug.qcast.canvasStatus.copyCanvasStatus 캔버스 복사 */ + INSERT INTO TB_CANVAS_STATUS + (user_id, + object_no, + plan_no, + regist_datetime, + canvas_status, + bg_image_name, + map_position_address) + SELECT #{userId}, + #{objectNo}, + #{planNo}, + GETDATE(), + canvas_status, + bg_image_name, + map_position_address + FROM TB_CANVAS_STATUS + WHERE object_no = #{originObjectNo} + AND plan_no = #{originPlanNo} + + \ No newline at end of file