기능(Feature) #117
closedHotel Contents - Duplicated Hotel Master Code
Description
notion: https://www.notion.so/traport/New-Function-Hotel-Contents-Duplicated-Hotel-Master-Code-a8ee3339b8bb486d8e84322b8d6eaa9b
886611, 906250 동일 호텔입니다. 1개 호텔은 ean, 1개 호텔은 오마이 직사입이 연결되어 있어서 중복으로 나와 이슈가 있습니다. 한 개로 호텔코드 통합 부탁드립니다.
- [ ] API 추가 개발(스키마 작성완료) /admin/hotel/contents/duplicate-solve
- 2개 호텔코드 중에서, 컨텐츠를 유지할 호텔과, 컨텐츠에서 삭제할 호텔 코드를 입력 받는다.
- keepHotelCode → 유지할 호텔 코드 (직계약은 무조건 유지)
- deleteHotelCode → 삭제할 호텔 코드
- 컨텐츠는 https://adm.ohmyhotel.com/hotel/contents → Contents Mapping 기능을 활용한다.
- 수행할 업무(순서대로 처리되어야 하며, 1개라도 실패시 ROLLBACK해야함)
UPDATE BK_BOOKING_HOTEL_ITEM SET HOTEL_CODE = {keepHotelCode}, LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {deleteHotelCode};
UPDATE VD_VENDOR_HOTEL_MAPPING SET HOTEL_CODE = {keepHotelCode}, LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {deleteHotelCode};
UPDATE VD_VENDOR_HOTEL_MAPPING2 SET HOTEL_CODE = {keepHotelCode}, LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {deleteHotelCode};
UPDATE VD_VENDOR_ROOM_TYPE SET HOTEL_CODE = {keepHotelCode}, LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {deleteHotelCode};
INSERT INTO US_SELLER_EXCLUDE_INFO (
SELLER_COMP_CODE
, EXCLUDE_TYPE_CODE
, EXCLUDE_VALUE
, CONTROL_REMARK
, FIRST_INSERT_UNO
, LAST_UPDATE_UNO
)
SELECT SELLER_COMP_CODE
, EXCLUDE_TYPE_CODE
, {keepHotelCode}
, CONTROL_REMARK
, {requestActionUno}
, {requestActionUno}
FROM US_SELLER_EXCLUDE_INFO WHERE EXCLUDE_TYPE_CODE = 'EXC02' AND EXCLUDE_VALUE = {deleteHotelCode};
DELETE FROM US_SELLER_EXCLUDE_INFO WHERE EXCLUDE_TYPE_CODE = 'EXC02' AND EXCLUDE_VALUE = {deleteHotelCode};
INSERT INTO HO_MARKUP_HOTEL_LIST (
MARKUP_ITEM_SEQ
, HOTEL_CODE
, FIRST_INSERT_UNO
, LAST_UPDATE_UNO
)
SELECT MARKUP_ITEM_SEQ
, {keepHotelCode}
, {requestActionUno}
, {requestActionUno}
FROM HO_MARKUP_HOTEL_LIST WHERE HOTEL_CODE = {deleteHotelCode};
DELETE FROM HO_MARKUP_HOTEL_LIST WHERE HOTEL_CODE = {deleteHotelCode};
INSERT INTO US_WISH_ITEM (
USER_NO
, ITEM_CATEGORY_CODE
, PRODUCT_CODE
, OCCUR_DOMAIN
, CITY_CODE
, CURRENCY_CODE
, LATEST_AMOUNT
, DELETE_YN
, FIRST_INSERT_UNO
, LAST_UPDATE_UNO
)
SELECT USER_NO
, ITEM_CATEGORY_CODE
, {keepHotelCode}
, OCCUR_DOMAIN
, CITY_CODE
, CURRENCY_CODE
, LATEST_AMOUNT
, DELETE_YN
, {requestActionUno}
, {requestActionUno}
FROM US_WISH_ITEM WHERE ITEM_CATEGORY_CODE = 'IC02' AND PRODUCT_CODE = {deleteHotelCode};
DELETE FROM US_WISH_ITEM WHERE ITEM_CATEGORY_CODE = 'IC02' AND PRODUCT_CODE = {deleteHotelCode};
UPDATE VD_VENDOR_ROOM_DAILY_PRICE SET HOTEL_CODE = {keepHotelCode}, LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {deleteHotelCode};
UPDATE HO_HOTEL_MASTER SET CONTROL_REMARK = CONCAT(CONTROL_REMARK, ‘<br/>Duplication Solve : Deleted - {deleteHotelCode}, Vendor - {vendorCompCode}, {vendorHotelCode}’), LAST_UPDATE_UNO = {requestActionUno} WHERE HOTEL_CODE = {keepHotelCode};
DELETE FROM HO_HOTEL_DETAIL_INFO WHERE HOTEL_CODE = {deleteHotelCode}
DELETE FROM HO_HOTEL_PHOTO WHERE HOTEL_CODE = {deleteHotelCode}
DELETE FROM HO_HOTEL_FACILITY WHERE HOTEL_CODE = {deleteHotelCode}
DELETE FROM HO_HOTEL_LIST_IN_REGION WHERE HOTEL_CODE = {deleteHotelCode}
DELETE FROM HO_HOTEL_POI_DISTANCE WHERE HOTEL_CODE = {deleteHotelCode}
DELETE FROM HO_HOTEL_MASTER WHERE HOTEL_CODE = {deleteHotelCode}
- REDIS 업데이트 해야 함
- 혹시 누락이나 잘못된 사항 있는지 다시 확인할 것
- [ ] 관리자 화면 : https://adm.ohmyhotel.com/hotel/contents 기존 버튼들 끝에 “Duplicate Solve” 버튼 추가. 팝업화면 에서 호텔 코드 2개 입력 받는다.
- 2024-05-13 화면 설계 액슈어 반영 완료
- ADMIN > Hotel Contents 메뉴에 버튼 및 팝업 추가 (액슈어 반영완료)
- 그리드 에서 특정 호텔 선택 없이 Duplicate Solve 버튼 클릭하면 팝업 표시
- 팝업에서 데이터 입력 후 저장 (이때 호텔은 전체 호텔 검색이 아닌 바닥에서 검색한 국가 내 호텔로 한정해야함)
- 성공하면 전체 팝업 닫고, 검색해둔 조건으로 리스트 페이지 reloading 처리
- 실패하면 에러 메세지 띄우고 → 메세지 확인하면 → 중복 팝업이 그대로 떠 있어서 정보 수정하고 입력하게 처리 필요
- [Alert ] Unable to delete this Hotel code which is mapped with Direct Contract Hotel. Please select other hotel codes on "Delete hotel code field". → 이 부분은 api 작업이 필요할 것 같습니다.
Files