canvas thumbnail CRUD 수정

This commit is contained in:
scottck 2024-08-19 14:34:59 +09:00
parent 3eb784d0d5
commit 8c1d1b913d
6 changed files with 107 additions and 107 deletions

View File

@ -1,8 +1,11 @@
package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@Slf4j
@ -14,9 +17,10 @@ public class CanvasStatusController {
private final CanvasStatusService canvasStatusService;
@PostMapping("/v1.0/canvasStatus")
public void canvasStatus(@RequestBody CanvasStatusDto cs) {
public void canvasStatus(@RequestBody CanvasStatusResponse cs) {
log.warn(String.valueOf(log.isDebugEnabled()));
if (log.isDebugEnabled()) {
log.debug("id : " + cs.getId());
log.debug("userId : " + cs.getUserId());
log.debug("objectNo : " + cs.getObjectNo());
log.debug("imageName : " + cs.getImageName());
@ -26,37 +30,41 @@ public class CanvasStatusController {
// 전체 견적서 조회
@GetMapping("/{userId}")
public CanvasStatusDto selectAllCanvasStatus(@RequestBody CanvasStatusDto cs) {
public CanvasStatus selectAllCanvasStatus(@RequestBody CanvasStatus cs) {
return canvasStatusService.selectAllCanvasStatus(cs);
}
// 견적서 조회
@GetMapping("/{objectNo}")
public CanvasStatusDto selectObjectNoCanvasStatus(@RequestBody CanvasStatusDto cs) {
return canvasStatusService.selectObjectNoCanvasStatus(cs);
}
//견적서 조회
@GetMapping("/{objectNo}")
public CanvasStatus selectObjectNoCanvasStatus(@PathVariable String objectNo) {
return canvasStatusService.selectObjectNoCanvasStatus(objectNo);
}
// 견적서 등록
@PostMapping
public void insertCanvasStatus(@RequestBody CanvasStatusDto cs) {
canvasStatusService.insertCanvasStatus(cs);
@ResponseStatus(HttpStatus.CREATED)
public String insertCanvasStatus(@RequestBody CanvasStatusResponse cs) {
String objectNo = canvasStatusService.insertCanvasStatus(cs);
return objectNo;
}
// 견적서 수정
@PutMapping
public void updateCanvasStatus(@RequestBody CanvasStatusDto cs) {
public void updateCanvasStatus(@RequestBody CanvasStatusResponse cs) {
canvasStatusService.updateCanvasStatus(cs);
}
// 견적서 삭제
@DeleteMapping("/{objectNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteObjectNoCanvasStatus(@PathVariable String objectNo) {
canvasStatusService.deleteObjectNoCanvasStatus(objectNo);
}
// 이미지(템플릿) 삭제
@DeleteMapping
public void deleteImageNameCanvasStatus(@RequestBody CanvasStatusDto cs) {
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteImageNameCanvasStatus(@RequestBody CanvasStatus cs) {
canvasStatusService.deleteImageNameCanvasStatus(cs);
}

View File

@ -1,37 +1,35 @@
package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
import org.apache.ibatis.annotations.Mapper;
@Mapper
interface CanvasStatusMapper {
// 견적서(objectNo) 존재 확인
public CanvasStatusDto getCanvasStatusByObjectNo(String objectNo);
// objectNo 생성
public String getCanvasStatusNewObjectNo(String userId);
// 이미지(템플릿) 존재 확인
public CanvasStatusDto getCanvasStatusByImageName(String objectNo, String imageName);
// imageName 생성
public String getCanvasStatusImageAdd(String objectNo);
// 전체 견적서 조회
public CanvasStatusDto selectAllCanvasStatus(CanvasStatusDto cs);
public CanvasStatus selectAllCanvasStatus(CanvasStatus cs);
// 견적서 조회
public CanvasStatusDto selectObjectNoCanvasStatus(CanvasStatusDto cs);
// 견적서 조회(objectNo)
public CanvasStatus selectObjectNoCanvasStatus(String objectNo);
// 신규 견적서 등록
public void insertNewCanvasStatus(CanvasStatusDto cs);
// 이미지(템플릿) 추가 등록
public void insertImageAddCanvasStatus(CanvasStatusDto cs);
// 견적서 등록
public void insertCanvasStatus(CanvasStatusResponse cs);
// 견적서 수정
public void updateCanvasStatus(CanvasStatusDto cs);
public void updateCanvasStatus(CanvasStatusResponse cs);
// 견적서 삭제
public void deleteObjectNoCanvasStatus(String objectNo);
// 이미지(템플릿) 삭제
public void deleteImageNameCanvasStatus(CanvasStatusDto cs);
public void deleteImageNameCanvasStatus(CanvasStatus cs);
}

View File

@ -1,6 +1,9 @@
package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
import ch.qos.logback.classic.Logger;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -12,45 +15,50 @@ public class CanvasStatusService {
// @Autowired CanvasStatusMapper canvasStatusMapper;
private final CanvasStatusMapper canvasStatusMapper;
// 전체 견적서 조회
public CanvasStatusDto selectAllCanvasStatus(CanvasStatusDto cs) {
// 전체 견적서 조회
public CanvasStatus selectAllCanvasStatus(CanvasStatus cs) {
return canvasStatusMapper.selectAllCanvasStatus(cs);
}
// 견적서 조회
public CanvasStatusDto selectObjectNoCanvasStatus(CanvasStatusDto cs) {
return canvasStatusMapper.selectObjectNoCanvasStatus(cs);
// 견적서 조회(objectNo)
public CanvasStatus selectObjectNoCanvasStatus(String objectNo) {
return canvasStatusMapper.selectObjectNoCanvasStatus(objectNo);
}
// 견적서 등록
public void insertCanvasStatus(CanvasStatusDto cs) {
public String insertCanvasStatus(CanvasStatusResponse cs) {
try {
// objectNo 없음(신규)
if (cs.getObjectNo() == null) {
// objectNo 생성
String objectNo = canvasStatusMapper.getCanvasStatusNewObjectNo(cs.getUserId());
cs.setObjectNo(objectNo);
cs.setImageName("image01");
// 이미지(템플릿) 등록(추가)
} else {
// imageName 생성
String imageName = canvasStatusMapper.getCanvasStatusImageAdd(cs.getObjectNo());
cs.setImageName(imageName);
}
canvasStatusMapper.insertCanvasStatus(cs);
} catch (Exception e) {
System.out.println("오류 발생 : " + e.getMessage());
}
// 생성된 objectNo 반환
return cs.getObjectNo();
// 견적서(objectNo) 존재 확인
CanvasStatusDto existingStatus = canvasStatusMapper.getCanvasStatusByObjectNo(cs.getObjectNo());
if (existingStatus == null) {
// 견적서(objectNo) 존재하지 않으면 새로 생성
canvasStatusMapper.insertNewCanvasStatus(cs);
} else {
// 견적서 이미지 추가 등록
// 견적서(objectNo) 존재하면 해당 objectNo Row 추가 imageName +1 추가
canvasStatusMapper.insertImageAddCanvasStatus(cs);
}
}
// 견적서 수정
public void updateCanvasStatus(CanvasStatusDto cs) {
// 이미지(템플릿) 존재 확인
CanvasStatusDto existingStatus = canvasStatusMapper.getCanvasStatusByImageName(cs.getObjectNo(), cs.getImageName());
if (existingStatus == null) {
// 이미지(템플릿) 존재하지 않으면 새로 생성
canvasStatusMapper.insertNewCanvasStatus(cs);
} else {
// 이미지(템플릿) 존재하면 update 처리
canvasStatusMapper.updateCanvasStatus(cs);
}
public void updateCanvasStatus(CanvasStatusResponse cs) {
canvasStatusMapper.updateCanvasStatus(cs);
}
// 견적서 삭제
@ -59,7 +67,7 @@ public class CanvasStatusService {
}
// 이미지(템플릿) 삭제
public void deleteImageNameCanvasStatus(CanvasStatusDto cs) {
public void deleteImageNameCanvasStatus(CanvasStatus cs) {
canvasStatusMapper.deleteImageNameCanvasStatus(cs);
}

View File

@ -0,0 +1,10 @@
package com.interplug.qcast.biz.canvasStatus.dto;
import lombok.Data;
@Data
public class CanvasStatus {
private String userId; //사용자 ID
private String objectNo; //견적서 번호
private String imageName; //이미지명
}

View File

@ -9,8 +9,8 @@ import lombok.Setter;
@Data
@Getter
@Setter
public class CanvasStatusDto {
private int id; //PK ID
public class CanvasStatusResponse {
private Integer id; //PK ID
private String userId; //사용자 ID
private String objectNo; //견적서 번호
private String imageName; //이미지명

View File

@ -3,25 +3,24 @@
<mapper namespace="com.interplug.qcast.biz.canvasStatus.CanvasStatusMapper">
<select id="getCanvasStatusByObjectNo" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
/* sqlid : com.interplug.qcast.canvasStatus.getCanvasStatusByObjectNo */
SELECT 1
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
<select id="getCanvasStatusNewObjectNo" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.getCanvasStatusNewObjectNo */
SELECT #{userId} + FORMAT(GETDATE(), 'yyMMdd') + RIGHT('000' + CAST(ISNULL(MAX(CAST(RIGHT(object_no, 3) AS INT)), 0) + 1 AS VARCHAR(3)), 3)
FROM TB_CANVAS_STATUS
WHERE object_no LIKE #{userId} + FORMAT(GETDATE(), 'yyMMdd') + '%'
</select>
<select id="getCanvasStatusByImageName" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
/* sqlid : com.interplug.qcast.canvasStatus.getCanvasStatusByImageName */
SELECT 1
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
AND image_name = #{imageName}
<select id="getCanvasStatusImageAdd" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.getCanvasStatusImageAdd */
SELECT 'image' + RIGHT('00' + CAST(ISNULL(MAX(CAST(RIGHT(image_name, 2) AS INT)), 0) + 1 AS VARCHAR(2)), 2)
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
</select>
<select id="selectAllCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
<select id="selectAllCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.selectAllCanvasStatus 전체 견적서 조회 */
SELECT id
, user_id
@ -34,8 +33,8 @@
WHERE user_id = #{userId}
</select>
<select id="selectObjectNoCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
<select id="selectObjectNoCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.selectObjectNoCanvasStatus 견적서 조회 */
SELECT id
, user_id
@ -49,29 +48,8 @@
AND object_no = #{objectNo}
</select>
<insert id="insertNewCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
/* sqlid : com.interplug.qcast.canvasStatus.insertNewCanvasStatus 신규 견적서 등록 */
INSERT INTO TB_CANVAS_STATUS
(
user_id
, object_no
, image_name
, canvas_status
, regist_datetime
)
VALUES (
#{userId}
, ( SELECT #{userId} + FORMAT(GETDATE(), 'yyMMdd') + RIGHT('000' + CAST(ISNULL(MAX(CAST(RIGHT(object_no, 3) AS INT)), 0) + 1 AS VARCHAR(3)), 3)
FROM TB_CANVAS_STATUS
WHERE object_no LIKE #{userId} + FORMAT(GETDATE(), 'yyMMdd') + '%' )
, 'image01'
, #{canvasStatus}
, GETDATE()
)
</insert>
<insert id="insertImageAddCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
/* sqlid : com.interplug.qcast.canvasStatus.insertImageAddCanvasStatus 이미지(템플릿) 추가 등록 */
<insert id="insertCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse">
/* sqlid : com.interplug.qcast.canvasStatus.insertCanvasStatus 견적서 등록 */
INSERT INTO TB_CANVAS_STATUS
(
user_id
@ -83,15 +61,13 @@
VALUES (
#{userId}
, #{objectNo}
, ( SELECT 'image' + RIGHT('00' + CAST(ISNULL(MAX(CAST(RIGHT(image_name, 2) AS INT)), 0) + 1 AS VARCHAR(2)), 2)
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo} )
, #{imageName}
, #{canvasStatus}
, GETDATE()
)
</insert>
<update id="updateCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
<update id="updateCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse">
/* sqlid : com.interplug.qcast.canvasStatus.updateCanvasStatus 견적서 수정 */
UPDATE TB_CANVAS_STATUS
SET canvas_status = #{canvasStatus}
@ -100,13 +76,13 @@
AND image_name = #{imageName}
</update>
<delete id="deleteObjectNoCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
<delete id="deleteObjectNoCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.deleteObjectNoCanvasStatus 견적서 삭제 */
DELETE FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
</delete>
<delete id="deleteImageNameCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusDto">
<delete id="deleteImageNameCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.deleteImageNameCanvasStatus 이미지(템플릿) 삭제 */
DELETE FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}