Canvas 상태 Api Exception 처리

This commit is contained in:
changkyu choi 2024-10-02 11:01:12 +09:00
parent 2a64f15231
commit a8a0b6c7a7
4 changed files with 74 additions and 26 deletions

View File

@ -2,7 +2,6 @@ package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
import com.interplug.qcast.config.Exception.CanvasStatusException;
import com.interplug.qcast.config.Exception.QcastException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -20,26 +19,26 @@ public class CanvasStatusController {
@Operation(description = "계정에 해당하는 전체 견적서를 조회 한다.")
@GetMapping("/canvas-statuses/{userId}")
public List<CanvasStatusResponse> selectAllCanvasStatus(@PathVariable String userId) {
public List<CanvasStatusResponse> selectAllCanvasStatus(@PathVariable String userId) throws QcastException {
return canvasStatusService.selectAllCanvasStatus(userId);
}
@Operation(description = "견적서를 조회 한다.")
@GetMapping("/canvas-statuses/by-object/{objectNo}/{userId}")
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(@PathVariable String objectNo, @PathVariable String userId) {
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(@PathVariable String objectNo, @PathVariable String userId) throws QcastException {
return canvasStatusService.selectObjectNoCanvasStatus(objectNo, userId);
}
@Operation(description = "견적서를 등록 한다.")
@PostMapping("/canvas-statuses")
@ResponseStatus(HttpStatus.CREATED)
public Integer insertCanvasStatus(@RequestBody CanvasStatus cs) throws CanvasStatusException {
public Integer insertCanvasStatus(@RequestBody CanvasStatus cs) throws QcastException {
return canvasStatusService.insertCanvasStatus(cs);
}
@Operation(description = "견적서를 수정 한다.")
@PutMapping("/canvas-statuses")
public void updateCanvasStatus(@RequestBody CanvasStatus cs) throws CanvasStatusException {
public void updateCanvasStatus(@RequestBody CanvasStatus cs) throws QcastException {
canvasStatusService.updateCanvasStatus(cs);
}
@ -53,7 +52,7 @@ public class CanvasStatusController {
@Operation(description = "견적서의 이미지(템플릿)를 삭제 한다.")
@DeleteMapping("/canvas-statuses/by-id/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteIdCanvasStatus(@PathVariable Integer id) {
public void deleteIdCanvasStatus(@PathVariable Integer id) throws QcastException {
canvasStatusService.deleteIdCanvasStatus(id);
}

View File

@ -17,9 +17,9 @@ public interface CanvasStatusMapper {
public CanvasStatus getCanvasStatusImageAdd(String objectNo);
// 전체 견적서 조회
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId);
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId);
// 견적서 조회(objectNo)
// 견적서 조회(objectNo/userId)
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo, String userId);
// 견적서 조회(Max id)
@ -28,6 +28,9 @@ public interface CanvasStatusMapper {
// 견적서 조회(id별)
public List<CanvasStatusResponse> getIdCanvasStatus(Integer id);
// 견적서 조회(objectNo)
public List<CanvasStatusResponse> getObjectNoCanvasStatus(String objectNo);
// 견적서 등록
public void insertCanvasStatus(CanvasStatus cs);

View File

@ -2,31 +2,47 @@ package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
import com.interplug.qcast.config.Exception.CanvasStatusException;
import com.interplug.qcast.config.Exception.ErrorCode;
import com.interplug.qcast.config.Exception.QcastException;
import lombok.RequiredArgsConstructor;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class CanvasStatusService {
private final CanvasStatusMapper canvasStatusMapper;
private final CanvasStatusMapper canvasStatusMapper;
// 전체 견적서 조회
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId) {
return canvasStatusMapper.selectAllCanvasStatus(userId);
}
// 전체 견적서 조회
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId) throws QcastException {
List<CanvasStatusResponse> result = null;
if (userId != null && !userId.trim().isEmpty()) {
result = canvasStatusMapper.selectAllCanvasStatus(userId);
} else {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
return result;
}
// 견적서 조회(objectNo)
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo, String userId) {
return canvasStatusMapper.selectObjectNoCanvasStatus(objectNo, userId);
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo, String userId) throws QcastException {
List<CanvasStatusResponse> result = null;
if (objectNo != null && !objectNo.trim().isEmpty() && userId != null && !userId.trim().isEmpty()) {
result = canvasStatusMapper.selectObjectNoCanvasStatus(objectNo, userId);
} else {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
return result;
}
// 견적서 등록
public Integer insertCanvasStatus(CanvasStatus cs) throws CanvasStatusException {
public Integer insertCanvasStatus(CanvasStatus cs) throws QcastException {
Integer id = 0;
@ -39,16 +55,19 @@ public class CanvasStatusService {
id = maxId.get(0).getId();
} catch (Exception e) {
throw new CanvasStatusException("견적서 등록 중 오류 발생");
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"견적서 등록 중 오류 발생");
}
// 생성된 id 반환
return id;
}
// 견적서 수정
public void updateCanvasStatus(CanvasStatus cs) throws CanvasStatusException {
public void updateCanvasStatus(CanvasStatus cs) throws QcastException {
if (cs.getId() == null) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
// 먼저 데이터가 존재하는지 확인
List<CanvasStatusResponse> existingStatus = canvasStatusMapper.getIdCanvasStatus(cs.getId());
@ -57,20 +76,36 @@ public class CanvasStatusService {
if (existingStatus.size() > 0) {
canvasStatusMapper.updateCanvasStatus(cs);
} else {
throw new CanvasStatusException("수정할 견적서가 존재하지 않습니다.");
throw new QcastException (ErrorCode.NOT_FOUND ,"수정할 견적서가 존재하지 않습니다.");
}
}
// 전체 견적서 삭제
public void deleteObjectNoCanvasStatus(String objectNo) {
public void deleteObjectNoCanvasStatus(String objectNo) throws QcastException {
canvasStatusMapper.deleteObjectNoCanvasStatus(objectNo);
if (objectNo == null || objectNo.trim().isEmpty()) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
// 먼저 데이터가 존재하는지 확인
List<CanvasStatusResponse> existingStatus = canvasStatusMapper.getObjectNoCanvasStatus(objectNo);
// 데이터가 존재하지 않으면 수정하지 않고 예외를 던짐
if (existingStatus.size() > 0) {
canvasStatusMapper.deleteObjectNoCanvasStatus(objectNo);
} else {
throw new QcastException (ErrorCode.NOT_FOUND ,"삭제할 견적서가 존재하지 않습니다.");
}
}
// 이미지(템플릿) 삭제
public void deleteIdCanvasStatus(Integer id) {
public void deleteIdCanvasStatus(Integer id) throws QcastException {
if (id == null) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
// 먼저 데이터가 존재하는지 확인
List<CanvasStatusResponse> existingStatus = canvasStatusMapper.getIdCanvasStatus(id);
@ -79,7 +114,7 @@ public class CanvasStatusService {
if (existingStatus.size() > 0) {
canvasStatusMapper.deleteIdCanvasStatus(id);
} else {
throw new IllegalArgumentException("삭제할 견적서가 존재하지 않습니다.");
throw new QcastException (ErrorCode.NOT_FOUND ,"삭제할 견적서가 존재하지 않습니다.");
}
}

View File

@ -45,7 +45,9 @@
, last_edit_datetime
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
<if test="userId != null and userId != ''">
AND user_id = #{userId}
</if>
</select>
<select id="getMaxIdCanvasStatus" parameterType="string"
@ -56,6 +58,7 @@
WHERE object_no = #{objectNo}
AND user_id = #{userId}
</select>
<select id="getIdCanvasStatus" parameterType="integer"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse">
/* sqlid : com.interplug.qcast.canvasStatus.getIdCanvasStatus 견적서 조회(id별) */
@ -64,6 +67,14 @@
WHERE id = #{id}
</select>
<select id="getObjectNoCanvasStatus" parameterType="string"
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse">
/* sqlid : com.interplug.qcast.canvasStatus.getObjectNoCanvasStatus 견적서 조회 */
SELECT object_no
FROM TB_CANVAS_STATUS
WHERE object_no = #{objectNo}
</select>
<insert id="insertCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
/* sqlid : com.interplug.qcast.canvasStatus.insertCanvasStatus 견적서 등록 */
INSERT INTO TB_CANVAS_STATUS