견적서 등록 시 생성된 id 반환 처리
This commit is contained in:
parent
f7a41332d5
commit
1a36f6211f
@ -2,6 +2,7 @@ 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 io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -27,14 +28,14 @@ public class CanvasStatusController {
|
||||
|
||||
@Operation(description = "견적서를 조회 한다.")
|
||||
@GetMapping("/canvas-statuses/by-object/{objectNo}")
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(@PathVariable String objectNo) {
|
||||
return canvasStatusService.selectObjectNoCanvasStatus(objectNo);
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(@PathVariable String objectNo, @PathVariable String userId) {
|
||||
return canvasStatusService.selectObjectNoCanvasStatus(objectNo, userId);
|
||||
}
|
||||
|
||||
@Operation(description = "견적서를 등록 한다.")
|
||||
@PostMapping("/canvas-statuses")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
public String insertCanvasStatus(@RequestBody CanvasStatus cs) {
|
||||
public Integer insertCanvasStatus(@RequestBody CanvasStatus cs) throws CanvasStatusException {
|
||||
return canvasStatusService.insertCanvasStatus(cs);
|
||||
}
|
||||
|
||||
|
||||
@ -20,7 +20,10 @@ public interface CanvasStatusMapper {
|
||||
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId);
|
||||
|
||||
// 견적서 조회(objectNo)
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo);
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo, String userId);
|
||||
|
||||
// 견적서 조회(id)
|
||||
public List<CanvasStatusResponse> selectIdCanvasStatus(String objectNo, String userId);
|
||||
|
||||
// 견적서 등록
|
||||
public void insertCanvasStatus(CanvasStatus cs);
|
||||
|
||||
@ -2,6 +2,7 @@ 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 lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -20,21 +21,37 @@ public class CanvasStatusService {
|
||||
}
|
||||
|
||||
// 견적서 조회(objectNo)
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo) {
|
||||
return canvasStatusMapper.selectObjectNoCanvasStatus(objectNo);
|
||||
public List<CanvasStatusResponse> selectObjectNoCanvasStatus(String objectNo, String userId) {
|
||||
return canvasStatusMapper.selectObjectNoCanvasStatus(objectNo, userId);
|
||||
}
|
||||
|
||||
// 견적서 등록
|
||||
public String insertCanvasStatus(CanvasStatus cs) {
|
||||
public Integer insertCanvasStatus(CanvasStatus cs) throws CanvasStatusException {
|
||||
|
||||
try {
|
||||
canvasStatusMapper.insertCanvasStatus(cs);
|
||||
} catch (Exception e) {
|
||||
System.out.println("오류 발생 : " + e.getMessage());
|
||||
Integer id = 0;
|
||||
|
||||
// 먼저 데이터가 존재하는지 확인
|
||||
List<CanvasStatusResponse> existingStatus = canvasStatusMapper.selectObjectNoCanvasStatus(cs.getObjectNo(), cs.getUserId());
|
||||
|
||||
// 데이터가 이미 존재하면 저장하지 않고 예외를 던짐
|
||||
if (existingStatus.size() > 0) {
|
||||
throw new CanvasStatusException("해당 objectNo로 이미 견적서가 존재합니다.");
|
||||
}
|
||||
|
||||
// 생성된 objectNo 반환
|
||||
return cs.getObjectNo();
|
||||
// 데이터가 없으면 저장
|
||||
try {
|
||||
canvasStatusMapper.insertCanvasStatus(cs);
|
||||
|
||||
// 데이터 저장 후 Max id 확인
|
||||
List<CanvasStatusResponse> maxId = canvasStatusMapper.selectIdCanvasStatus(cs.getObjectNo(), cs.getUserId());
|
||||
id = maxId.get(0).getId();
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new CanvasStatusException("견적서 등록 중 오류 발생");
|
||||
}
|
||||
|
||||
// 생성된 id 반환
|
||||
return id;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.interplug.qcast.config.Exception;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class CanvasStatusException extends BaseException{
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6263785244527827114L;
|
||||
|
||||
public CanvasStatusException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@ -45,6 +45,16 @@
|
||||
, last_edit_datetime
|
||||
FROM TB_CANVAS_STATUS
|
||||
WHERE object_no = #{objectNo}
|
||||
AND user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<select id="selectIdCanvasStatus" parameterType="string"
|
||||
resultType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse">
|
||||
/* sqlid : com.interplug.qcast.canvasStatus.selectIdCanvasStatus 견적서 조회 */
|
||||
SELECT MAX(id) AS id
|
||||
FROM TB_CANVAS_STATUS
|
||||
WHERE object_no = #{objectNo}
|
||||
AND user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<insert id="insertCanvasStatus" parameterType="com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user