refactor: qsp master api 요청 시 헤더에 referer 추가

This commit is contained in:
seulda 2025-04-22 17:45:43 +09:00
parent 91a3c872f5
commit fe2123ae38
3 changed files with 55 additions and 27 deletions

View File

@ -23,6 +23,7 @@ import com.interplug.qcast.config.Exception.QcastException;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -43,13 +44,15 @@ public class MasterController {
@Operation(description = "지붕재 목록을 조회한다.") @Operation(description = "지붕재 목록을 조회한다.")
@GetMapping("/getRoofMaterialList") @GetMapping("/getRoofMaterialList")
public ApiResponse<List<ApiRoofMaterialResponse>> getRoofMaterialList() { public ApiResponse<List<ApiRoofMaterialResponse>> getRoofMaterialList(
return masterService.getRoofMaterialList(); HttpServletRequest request) {
return masterService.getRoofMaterialList(request.getHeader("Referer"));
} }
@Operation(description = "모듈 타입별 아이템 목록을 조회한다.") @Operation(description = "모듈 타입별 아이템 목록을 조회한다.")
@GetMapping("/getModuleTypeItemList") @GetMapping("/getModuleTypeItemList")
public ApiResponse<List<ApiModuleTpResponse>> getModuleTypeItemList( public ApiResponse<List<ApiModuleTpResponse>> getModuleTypeItemList(
HttpServletRequest request,
@Parameter(description = "지붕재 코드 목록") @RequestParam("arrRoofMatlCd") @Parameter(description = "지붕재 코드 목록") @RequestParam("arrRoofMatlCd")
List<String> roofMaterialCd) List<String> roofMaterialCd)
throws QcastException { throws QcastException {
@ -59,12 +62,13 @@ public class MasterController {
|| roofMaterialCd.stream().anyMatch(s -> s == null || s.trim().isEmpty())) { || roofMaterialCd.stream().anyMatch(s -> s == null || s.trim().isEmpty())) {
throw new QcastException(ErrorCode.INVALID_INPUT_VALUE); throw new QcastException(ErrorCode.INVALID_INPUT_VALUE);
} }
return masterService.getModuleTypeItemList(roofMaterialCd); return masterService.getModuleTypeItemList(request.getHeader("Referer"), roofMaterialCd);
} }
@Operation(description = "가대 목록 조회한다.") @Operation(description = "가대 목록 조회한다.")
@GetMapping("/getTrestleList") @GetMapping("/getTrestleList")
public ApiResponse<List<ApiTrestleResponse>> getTrestleList( public ApiResponse<List<ApiTrestleResponse>> getTrestleList(
HttpServletRequest request,
@Parameter(description = "모듈타입코드") @RequestParam(required = false) String moduleTpCd, @Parameter(description = "모듈타입코드") @RequestParam(required = false) String moduleTpCd,
@Parameter(description = "지붕재코드") @RequestParam(required = false) String roofMatlCd, @Parameter(description = "지붕재코드") @RequestParam(required = false) String roofMatlCd,
@Parameter(description = "서까래기초코드") @RequestParam(required = false) String raftBaseCd, @Parameter(description = "서까래기초코드") @RequestParam(required = false) String raftBaseCd,
@ -85,6 +89,7 @@ public class MasterController {
.setRoofBaseCd(roofBaseCd) .setRoofBaseCd(roofBaseCd)
.build(); .build();
return masterService.getTrestleList( return masterService.getTrestleList(
request.getHeader("Referer"),
atb.getModuleTpCd(), atb.getModuleTpCd(),
atb.getRoofMatlCd(), atb.getRoofMatlCd(),
atb.getRaftBaseCd(), atb.getRaftBaseCd(),
@ -96,6 +101,7 @@ public class MasterController {
@Operation(description = "시공법 목록 조회한다.") @Operation(description = "시공법 목록 조회한다.")
@GetMapping("/getConstructionList") @GetMapping("/getConstructionList")
public ApiResponse<List<ApiConstructionResponse>> getConstructionList( public ApiResponse<List<ApiConstructionResponse>> getConstructionList(
HttpServletRequest request,
@Parameter(description = "모듈타입코드") @RequestParam String moduleTpCd, @Parameter(description = "모듈타입코드") @RequestParam String moduleTpCd,
@Parameter(description = "지붕재코드") @RequestParam String roofMatlCd, @Parameter(description = "지붕재코드") @RequestParam String roofMatlCd,
@Parameter(description = "가대메이커코드") @RequestParam String trestleMkrCd, @Parameter(description = "가대메이커코드") @RequestParam String trestleMkrCd,
@ -164,6 +170,7 @@ public class MasterController {
.build(); .build();
return masterService.getConstructionList( return masterService.getConstructionList(
request.getHeader("Referer"),
acb.getModuleTpCd(), acb.getModuleTpCd(),
acb.getRoofMatlCd(), acb.getRoofMatlCd(),
acb.getTrestleMkrCd(), acb.getTrestleMkrCd(),
@ -181,12 +188,13 @@ public class MasterController {
@Operation(description = "가대 상세 조회한다.") @Operation(description = "가대 상세 조회한다.")
@PostMapping("/getTrestleDetailList") @PostMapping("/getTrestleDetailList")
public ArrayList<ApiResponse<ApiTrestleDetailResponse>> getTrestleDetailList( public ArrayList<ApiResponse<ApiTrestleDetailResponse>> getTrestleDetailList(
@RequestBody List<ApiTrestleDetailRequest> reqList) { HttpServletRequest request, @RequestBody List<ApiTrestleDetailRequest> reqList) {
ArrayList<ApiResponse<ApiTrestleDetailResponse>> results = new ArrayList<>(); ArrayList<ApiResponse<ApiTrestleDetailResponse>> results = new ArrayList<>();
for (ApiTrestleDetailRequest req : reqList) { for (ApiTrestleDetailRequest req : reqList) {
ApiResponse<ApiTrestleDetailResponse> response = ApiResponse<ApiTrestleDetailResponse> response =
masterService.getTrestleDetailList( masterService.getTrestleDetailList(
request.getHeader("Referer"),
req.getModuleTpCd(), req.getModuleTpCd(),
req.getRoofMatlCd(), req.getRoofMatlCd(),
req.getTrestleMkrCd(), req.getTrestleMkrCd(),
@ -218,57 +226,67 @@ public class MasterController {
@Operation(description = "PCS 메이커, 시리즈 조회한다.") @Operation(description = "PCS 메이커, 시리즈 조회한다.")
@GetMapping("/pcsMakerList") @GetMapping("/pcsMakerList")
public ApiResponse<List<ApiPcsMakerResponse>> getPcsMakerList( public ApiResponse<List<ApiPcsMakerResponse>> getPcsMakerList(
HttpServletRequest request,
@Parameter(description = "PCS 메이커 코드") @RequestParam(required = false) String pcsMkrCd, @Parameter(description = "PCS 메이커 코드") @RequestParam(required = false) String pcsMkrCd,
@Parameter(description = "혼합모듈번호") @RequestParam(required = false) String mixMatlNo) { @Parameter(description = "혼합모듈번호") @RequestParam(required = false) String mixMatlNo) {
return masterService.getPcsMakerList(pcsMkrCd, mixMatlNo); return masterService.getPcsMakerList(request.getHeader("Referer"), pcsMkrCd, mixMatlNo);
} }
@Operation(description = "PCS 시리즈 아이템 목록을 조회한다.") @Operation(description = "PCS 시리즈 아이템 목록을 조회한다.")
@PostMapping("/getPcsSeriesItemList") @PostMapping("/getPcsSeriesItemList")
public ApiResponse<List<ApiPcsSeriesItemResponse>> getPcsSeriesItemList( public ApiResponse<List<ApiPcsSeriesItemResponse>> getPcsSeriesItemList(
@RequestBody ApiPcsSeriesItemRequest pcsSeriesItemListRequest) { HttpServletRequest request, @RequestBody ApiPcsSeriesItemRequest pcsSeriesItemListRequest) {
return masterService.getPcsSeriesItemList(pcsSeriesItemListRequest); return masterService.getPcsSeriesItemList(
request.getHeader("Referer"), pcsSeriesItemListRequest);
} }
@Operation(description = "시리즈 중 자동으로 추천 PCS 정보를 조회한다.") @Operation(description = "시리즈 중 자동으로 추천 PCS 정보를 조회한다.")
@PostMapping("/getPcsAutoRecommendList") @PostMapping("/getPcsAutoRecommendList")
public ApiResponse<ApiPcsAutoRecommendResponse> getPcsAutoRecommendList( public ApiResponse<ApiPcsAutoRecommendResponse> getPcsAutoRecommendList(
@RequestBody ApiPcsInfoRequest autoRecommendRequest) { HttpServletRequest request, @RequestBody ApiPcsInfoRequest autoRecommendRequest) {
return masterService.getPcsAutoRecommendList(autoRecommendRequest); return masterService.getPcsAutoRecommendList(
request.getHeader("Referer"), autoRecommendRequest);
} }
@Operation(description = "배치된 모듈을 선택한 PCS로 회로 구성 가능 여부 체크한다.") @Operation(description = "배치된 모듈을 선택한 PCS로 회로 구성 가능 여부 체크한다.")
@PostMapping("/getPcsVoltageChk") @PostMapping("/getPcsVoltageChk")
public ApiResultResponse getPcsVoltageChk(@RequestBody ApiPcsInfoRequest pcsVoltageChkRequest) { public ApiResultResponse getPcsVoltageChk(
return masterService.getPcsVoltageChk(pcsVoltageChkRequest).getResult(); HttpServletRequest request, @RequestBody ApiPcsInfoRequest pcsVoltageChkRequest) {
return masterService
.getPcsVoltageChk(request.getHeader("Referer"), pcsVoltageChkRequest)
.getResult();
} }
@Operation(description = "PCS 승압설정 정보를 조회한다.") @Operation(description = "PCS 승압설정 정보를 조회한다.")
@PostMapping("/getPcsVoltageStepUpList") @PostMapping("/getPcsVoltageStepUpList")
public ApiResponse<ApiPcsVoltageStepUpResponse> getPcsVoltageStepUpList( public ApiResponse<ApiPcsVoltageStepUpResponse> getPcsVoltageStepUpList(
@RequestBody ApiPcsInfoRequest pcsVoltageStepUpRequest) { HttpServletRequest request, @RequestBody ApiPcsInfoRequest pcsVoltageStepUpRequest) {
return masterService.getPcsVoltageStepUpList(pcsVoltageStepUpRequest); return masterService.getPcsVoltageStepUpList(
request.getHeader("Referer"), pcsVoltageStepUpRequest);
} }
@Operation(description = "PCS 수동회로 확정 체크한다.") @Operation(description = "PCS 수동회로 확정 체크한다.")
@PostMapping("/getPcsMenualConfChk") @PostMapping("/getPcsMenualConfChk")
public ApiResultResponse getPcsMenualConfChk( public ApiResultResponse getPcsMenualConfChk(
@RequestBody ApiPcsMenualConfRequest pcsMenualConfChkRequest) { HttpServletRequest request, @RequestBody ApiPcsMenualConfRequest pcsMenualConfChkRequest) {
return masterService.getPcsMenualConfChk(pcsMenualConfChkRequest).getResult(); return masterService
.getPcsMenualConfChk(request.getHeader("Referer"), pcsMenualConfChkRequest)
.getResult();
} }
@Operation(description = "PCS 접속함 및 옵션 목록을 조회한다.") @Operation(description = "PCS 접속함 및 옵션 목록을 조회한다.")
@PostMapping("/getPcsConnOptionItemList") @PostMapping("/getPcsConnOptionItemList")
public ApiResponse<ApiPcsConnOptionResponse> getPcsConnOptionItemList( public ApiResponse<ApiPcsConnOptionResponse> getPcsConnOptionItemList(
@RequestBody ApiPcsConnOptionRequest pcsConnOptionRequest) { HttpServletRequest request, @RequestBody ApiPcsConnOptionRequest pcsConnOptionRequest) {
return masterService.getPcsConnOptionItemList(pcsConnOptionRequest); return masterService.getPcsConnOptionItemList(
request.getHeader("Referer"), pcsConnOptionRequest);
} }
/** remote api group : quotation */ /** remote api group : quotation */
@Operation(description = "견적서 아이템을 조회한다.") @Operation(description = "견적서 아이템을 조회한다.")
@PostMapping("/getQuotationItem") @PostMapping("/getQuotationItem")
public ApiResponse<List<ApiQuotationItemResponse>> getQuotationItem( public ApiResponse<List<ApiQuotationItemResponse>> getQuotationItem(
@RequestBody ApiQuotationItemRequest quotationItemRequest) { HttpServletRequest request, @RequestBody ApiQuotationItemRequest quotationItemRequest) {
return quotationService.getQuotationItem(quotationItemRequest); return quotationService.getQuotationItem(request.getHeader("Referer"), quotationItemRequest);
} }
} }

View File

@ -21,6 +21,7 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
// @FeignClient(name = "master", url = "${feign.master.url}") // @FeignClient(name = "master", url = "${feign.master.url}")
@ -29,16 +30,19 @@ public interface MasterService {
// 지붕재 목록 조회 // 지붕재 목록 조회
@GetMapping("/roofMaterialList") @GetMapping("/roofMaterialList")
public ApiResponse<List<ApiRoofMaterialResponse>> getRoofMaterialList(); public ApiResponse<List<ApiRoofMaterialResponse>> getRoofMaterialList(
@RequestHeader("Referer") String referer);
// 모듈 타입별 아이템 목록 조회 // 모듈 타입별 아이템 목록 조회
@GetMapping("/moduleTypeItemList") @GetMapping("/moduleTypeItemList")
public ApiResponse<List<ApiModuleTpResponse>> getModuleTypeItemList( public ApiResponse<List<ApiModuleTpResponse>> getModuleTypeItemList(
@RequestHeader("Referer") String referer,
@RequestParam("arrRoofMatlCd") List<String> roofMaterialCd); @RequestParam("arrRoofMatlCd") List<String> roofMaterialCd);
// 가대 목록 조회 // 가대 목록 조회
@GetMapping("/trestle") @GetMapping("/trestle")
public ApiResponse<List<ApiTrestleResponse>> getTrestleList( public ApiResponse<List<ApiTrestleResponse>> getTrestleList(
@RequestHeader("Referer") String referer,
@RequestParam(required = false) String moduleTpCd, @RequestParam(required = false) String moduleTpCd,
@RequestParam(required = false) String roofMatlCd, @RequestParam(required = false) String roofMatlCd,
@RequestParam(required = false) String raftBaseCd, @RequestParam(required = false) String raftBaseCd,
@ -49,6 +53,7 @@ public interface MasterService {
// 시공법 목록 조회 // 시공법 목록 조회
@GetMapping("/construction") @GetMapping("/construction")
public ApiResponse<List<ApiConstructionResponse>> getConstructionList( public ApiResponse<List<ApiConstructionResponse>> getConstructionList(
@RequestHeader("Referer") String referer,
@RequestParam String moduleTpCd, @RequestParam String moduleTpCd,
@RequestParam String roofMatlCd, @RequestParam String roofMatlCd,
@RequestParam String trestleMkrCd, @RequestParam String trestleMkrCd,
@ -65,6 +70,7 @@ public interface MasterService {
// 가대 상세 조회 // 가대 상세 조회
@GetMapping(value = "/trestle/detail", consumes = "application/json") @GetMapping(value = "/trestle/detail", consumes = "application/json")
public ApiResponse<ApiTrestleDetailResponse> getTrestleDetailList( public ApiResponse<ApiTrestleDetailResponse> getTrestleDetailList(
@RequestHeader("Referer") String referer,
@RequestParam String moduleTpCd, @RequestParam String moduleTpCd,
@RequestParam String roofMatlCd, @RequestParam String roofMatlCd,
@RequestParam String trestleMkrCd, @RequestParam String trestleMkrCd,
@ -83,34 +89,37 @@ public interface MasterService {
// PCS Maker, 시리즈 목록 조회 // PCS Maker, 시리즈 목록 조회
@GetMapping("/pcsMakerList") @GetMapping("/pcsMakerList")
public ApiResponse<List<ApiPcsMakerResponse>> getPcsMakerList( public ApiResponse<List<ApiPcsMakerResponse>> getPcsMakerList(
@RequestHeader("Referer") String referer,
@RequestParam(required = false) String pcsMkrCd, @RequestParam(required = false) String pcsMkrCd,
@RequestParam(required = false) String mixMatlNo); @RequestParam(required = false) String mixMatlNo);
// PCS 시리즈 아이템 목록 조회 // PCS 시리즈 아이템 목록 조회
@PostMapping("/pcsSeriesItemList") @PostMapping("/pcsSeriesItemList")
public ApiResponse<List<ApiPcsSeriesItemResponse>> getPcsSeriesItemList( public ApiResponse<List<ApiPcsSeriesItemResponse>> getPcsSeriesItemList(
@RequestBody ApiPcsSeriesItemRequest req); @RequestHeader("Referer") String referer, @RequestBody ApiPcsSeriesItemRequest req);
// 시리즈 자동으로 추천 PCS 정보 조회 // 시리즈 자동으로 추천 PCS 정보 조회
@PostMapping("/pcsAutoRecommendList") @PostMapping("/pcsAutoRecommendList")
public ApiResponse<ApiPcsAutoRecommendResponse> getPcsAutoRecommendList( public ApiResponse<ApiPcsAutoRecommendResponse> getPcsAutoRecommendList(
@RequestBody ApiPcsInfoRequest req); @RequestHeader("Referer") String referer, @RequestBody ApiPcsInfoRequest req);
// 배치된 모듈을 선택한 PCS로 회로 구성 가능 여부 체크 // 배치된 모듈을 선택한 PCS로 회로 구성 가능 여부 체크
@PostMapping("/pcsVoltageChk") @PostMapping("/pcsVoltageChk")
public ApiResponse<JsonNode> getPcsVoltageChk(@RequestBody ApiPcsInfoRequest req); public ApiResponse<JsonNode> getPcsVoltageChk(
@RequestHeader("Referer") String referer, @RequestBody ApiPcsInfoRequest req);
// PCS 승압설정 정보 조회 // PCS 승압설정 정보 조회
@PostMapping("/pcsVoltageStepUpList") @PostMapping("/pcsVoltageStepUpList")
public ApiResponse<ApiPcsVoltageStepUpResponse> getPcsVoltageStepUpList( public ApiResponse<ApiPcsVoltageStepUpResponse> getPcsVoltageStepUpList(
@RequestBody ApiPcsInfoRequest req); @RequestHeader("Referer") String referer, @RequestBody ApiPcsInfoRequest req);
// PCS 수동회로 확정 체크 // PCS 수동회로 확정 체크
@PostMapping("/pcsMenualConfChk") @PostMapping("/pcsMenualConfChk")
public ApiResponse<JsonNode> getPcsMenualConfChk(@RequestBody ApiPcsMenualConfRequest req); public ApiResponse<JsonNode> getPcsMenualConfChk(
@RequestHeader("Referer") String referer, @RequestBody ApiPcsMenualConfRequest req);
// PCS 접속함 옵션 목록 조회 // PCS 접속함 옵션 목록 조회
@PostMapping("/pcsConnOptionItemList") @PostMapping("/pcsConnOptionItemList")
public ApiResponse<ApiPcsConnOptionResponse> getPcsConnOptionItemList( public ApiResponse<ApiPcsConnOptionResponse> getPcsConnOptionItemList(
@RequestBody ApiPcsConnOptionRequest req); @RequestHeader("Referer") String referer, @RequestBody ApiPcsConnOptionRequest req);
} }

View File

@ -7,6 +7,7 @@ import java.util.List;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
@FeignClient(name = "quotation", url = "${qsp.url}/api/quotation") @FeignClient(name = "quotation", url = "${qsp.url}/api/quotation")
public interface QuotationService { public interface QuotationService {
@ -14,5 +15,5 @@ public interface QuotationService {
// 견적서 아이템 조회 // 견적서 아이템 조회
@PostMapping("/item") @PostMapping("/item")
public ApiResponse<List<ApiQuotationItemResponse>> getQuotationItem( public ApiResponse<List<ApiQuotationItemResponse>> getQuotationItem(
@RequestBody ApiQuotationItemRequest req); @RequestHeader("Referer") String referer, @RequestBody ApiQuotationItemRequest req);
} }