package com.banking.xc.utils.webService.request.hotel; import java.util.List; import com.banking.xc.entity.Customer; import com.banking.xc.entity.UniqueID; import com.banking.xc.utils.webService.util.RequestConstant; import com.banking.xc.utils.xml.frame.XmlNode; /** * 酒店订单生成 * @author zhangyinhang * */ public class HotelResRequest extends HotelRequest { /** * 504,固定100000 * 28 AllianceID, * 503 SID, * 1用户unique ID, * 501表示订单号 */ private final String requestType = RequestConstant.HOTEL_RES; private final String TAG = "HotelResRequest"; private List<UniqueID> uniqueIDList; private String numberOfUnits; private String ratePlanCode; private String hotelCode; private String arrivalTime; private Customer customer; private String lateArrivalTime; private boolean isPerRoom; private String guestCount; private String start; private String end; private String sprcialRequestTest; private String DepositPayment; //可为空 private String totalAmountBeforeTax; //总价,不可空 private String totalCurrencyCode; private String penaltyStart; //取消订单的罚金,可为空 private String penaltyEnd; private String penaltyAmout; private String penaltyCurrencyCode; public String getArrivalTime() { return arrivalTime; } public void setArrivalTime(String arrivalTime) { this.arrivalTime = arrivalTime; } public String getLateArrivalTime() { return lateArrivalTime; } public void setLateArrivalTime(String lateArrivalTime) { this.lateArrivalTime = lateArrivalTime; } public String getGuestCount() { return guestCount; } public void setGuestCount(String guestCount) { this.guestCount = guestCount; } public List<UniqueID> getUniqueIDList() { return uniqueIDList; } public void setUniqueIDList(List<UniqueID> uniqueIDs) { this.uniqueIDList = uniqueIDs; } public String getNumberOfUnits() { return numberOfUnits; } public void setNumberOfUnits(String numberOfUnits) { this.numberOfUnits = numberOfUnits; } public String getRatePlanCode() { return ratePlanCode; } public void setRatePlanCode(String ratePlanCode) { this.ratePlanCode = ratePlanCode; } public String getHotelCode() { return hotelCode; } public void setHotelCode(String hotelCode) { this.hotelCode = hotelCode; } public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; } public boolean isPerRoom() { return isPerRoom; } public void setPerRoom(boolean isPerRoom) { this.isPerRoom = isPerRoom; } public String getStart() { return start; } public void setStart(String start) { this.start = start; } public String getEnd() { return end; } public void setEnd(String end) { this.end = end; } public String getSprcialRequestTest() { return sprcialRequestTest; } public void setSprcialRequestTest(String sprcialRequestTest) { this.sprcialRequestTest = sprcialRequestTest; } public String getDepositPayment() { return DepositPayment; } public void setDepositPayment(String depositPayment) { DepositPayment = depositPayment; } public String getTotalAmountBeforeTax() { return totalAmountBeforeTax; } public void setTotalAmountBeforeTax(String totalAmountBeforeTax) { this.totalAmountBeforeTax = totalAmountBeforeTax; } public String getTotalCurrencyCode() { return totalCurrencyCode; } public void setTotalCurrencyCode(String totalCurrencyCode) { this.totalCurrencyCode = totalCurrencyCode; } public String getPenaltyStart() { return penaltyStart; } public void setPenaltyStart(String penaltyStart) { this.penaltyStart = penaltyStart; } public String getPenaltyEnd() { return penaltyEnd; } public void setPenaltyEnd(String penaltyEnd) { this.penaltyEnd = penaltyEnd; } public String getPenaltyAmout() { return penaltyAmout; } public void setPenaltyAmout(String penaltyAmout) { this.penaltyAmout = penaltyAmout; } public String getPenaltyCurrencyCode() { return penaltyCurrencyCode; } public void setPenaltyCurrencyCode(String penaltyCurrencyCode) { this.penaltyCurrencyCode = penaltyCurrencyCode; } public String getTAG() { return TAG; } @Override public String getHotelParams() { // TODO Auto-generated method stub final XmlNode hotelResNode = new XmlNode("ns:OTA_HotelResRQ"); hotelResNode.putAttribute("Version", "1.0"); hotelResNode.putAttribute("TimeStamp", "2013-03-12T18:26:00.000+08:00"); //还是用当前日期 for(int i=0;i<getUniqueIDList().size();i++){ final XmlNode uniqueIDNode = new XmlNode("ns:UniqueID"); uniqueIDNode.putAttribute("Type",getUniqueIDList().get(i).getType()); uniqueIDNode.putAttribute("ID", getUniqueIDList().get(i).getId()); hotelResNode.addChildNode(uniqueIDNode); } final XmlNode hotelReservationsNode = new XmlNode("ns:HotelReservations"); hotelResNode.addChildNode(hotelReservationsNode); final XmlNode hotelReservationNode = new XmlNode("ns:HotelReservation"); hotelReservationsNode.addChildNode(hotelReservationNode); final XmlNode roomStaysNode = new XmlNode("ns:RoomStays"); hotelReservationNode.addChildNode(roomStaysNode); final XmlNode roomStayNode = new XmlNode("ns:RoomStay"); roomStaysNode.addChildNode(roomStayNode); final XmlNode roomTypesNode = new XmlNode("ns:RoomTypes"); roomStayNode.addChildNode(roomTypesNode); final XmlNode roomTypeNode = new XmlNode("ns:RoomType"); roomTypeNode.putAttribute("NumberOfUnits", getNumberOfUnits()); roomTypesNode.addChildNode(roomTypeNode); final XmlNode roomPlansNode = new XmlNode("ns:RatePlans"); roomStayNode.addChildNode(roomPlansNode); final XmlNode roomPlanNode = new XmlNode("ns:RatePlan"); roomPlanNode.putAttribute("RatePlanCode", getRatePlanCode()); roomPlansNode.addChildNode(roomPlanNode); final XmlNode basicPropertyInfoNode = new XmlNode("ns:BasicPropertyInfo"); basicPropertyInfoNode.putAttribute("HotelCode", getHotelCode()); roomStayNode.addChildNode(basicPropertyInfoNode); final XmlNode resGuestsNode = new XmlNode("ns:ResGuests"); hotelReservationNode.addChildNode(resGuestsNode); final XmlNode resGuestNode = new XmlNode("ns:ResGuest"); resGuestNode.putAttribute("ArrivalTime",getArrivalTime()); resGuestsNode.addChildNode(resGuestNode); final XmlNode profilesNode = new XmlNode("ns:Profiles"); resGuestNode.addChildNode(profilesNode); final XmlNode profileInfoNode = new XmlNode("ns:ProfileInfo"); profilesNode.addChildNode(profileInfoNode); final XmlNode profileNode = new XmlNode("ns:Profile"); profileInfoNode.addChildNode(profileNode); final XmlNode customerNode = new XmlNode("ns:Customer"); profileNode.addChildNode(customerNode); final XmlNode personNameNode = new XmlNode("ns:PersonName"); customerNode.addChildNode(personNameNode); final XmlNode surNameNode = new XmlNode("ns:Surname"); surNameNode.setInnerValue(getCustomer().getCustomerSurname()); personNameNode.addChildNode(surNameNode); final XmlNode contactPersonNode = new XmlNode("ns:ContactPerson"); contactPersonNode.putAttribute("ContactType", getCustomer().getContactType()); customerNode.addChildNode(contactPersonNode); final XmlNode personName2Node = new XmlNode("ns:PersonName"); contactPersonNode.addChildNode(personName2Node); final XmlNode surName2Node = new XmlNode("ns:Surname"); surName2Node.setInnerValue(getCustomer().getContactSurname()); personName2Node.addChildNode(surNameNode); final XmlNode telephoneNode = new XmlNode("ns:Telephone"); telephoneNode.putAttribute("PhoneNumber", getCustomer().getPhoneNumber()); telephoneNode.putAttribute("PhoneTechType", getCustomer().getPhoneTechType()); contactPersonNode.addChildNode(telephoneNode); final XmlNode extensionsNode = new XmlNode("ns:TPA_Extensions"); resGuestNode.addChildNode(extensionsNode); final XmlNode lateArrivalTimeNode = new XmlNode("ns:LateArrivalTime"); lateArrivalTimeNode.setInnerValue(getLateArrivalTime()); System.out.println("XC time"+getLateArrivalTime()); extensionsNode.addChildNode(lateArrivalTimeNode); final XmlNode resGlobalInfoNode = new XmlNode("ns:ResGlobalInfo"); hotelReservationNode.addChildNode(resGlobalInfoNode); final XmlNode guestCountsNode = new XmlNode("ns:GuestCounts"); guestCountsNode.putAttribute("IsPerRoom", String.valueOf(isPerRoom())); resGlobalInfoNode.addChildNode(guestCountsNode); final XmlNode guestCountNode = new XmlNode("ns:GuestCount"); guestCountNode.putAttribute("Count", getGuestCount()); guestCountsNode.addChildNode(guestCountNode); final XmlNode timeSpanNode = new XmlNode("ns:TimeSpan"); timeSpanNode.putAttribute("Start", getStart()); timeSpanNode.putAttribute("End", getEnd()); resGlobalInfoNode.addChildNode(timeSpanNode); final XmlNode specialRequestsNode = new XmlNode("ns:SpecialRequests"); resGlobalInfoNode.addChildNode(specialRequestsNode); final XmlNode specialRequestNode = new XmlNode("ns:SpecialRequest"); specialRequestsNode.addChildNode(specialRequestNode); final XmlNode textNode = new XmlNode("ns:Text"); specialRequestNode.addChildNode(textNode); //DepositPayments可选的 final XmlNode totalNode = new XmlNode("ns:Total"); totalNode.putAttribute("AmountBeforeTax", getTotalAmountBeforeTax()); totalNode.putAttribute("CurrencyCode", getTotalCurrencyCode()); resGlobalInfoNode.addChildNode(totalNode); //CancelPenalties可选的 System.out.println("XC hotelResRequest:"+hotelResNode.toString()); return hotelResNode.toString(); } @Override public String getRequestType() { // TODO Auto-generated method stub return requestType; } @Override public Boolean checkParams() { // TODO Auto-generated method stub return null; } /** * <ns:OTA_HotelResRQ TimeStamp="2012-09-01T03:15:57" Version="1.0"> <ns:UniqueID Type="504" ID="100000"/> <ns:UniqueID Type="28" ID="1"/> <ns:UniqueID Type="503" ID="50"/> <ns:UniqueID Type="1" ID="c563a9ed-a090-4ded-b5dc-ddf1d3709e29"/> <ns:HotelReservations> <ns:HotelReservation> <ns:RoomStays> <ns:RoomStay> <ns:RoomTypes> <ns:RoomType NumberOfUnits="1"/> </ns:RoomTypes> <ns:RatePlans> <ns:RatePlan RatePlanCode="136129"/> </ns:RatePlans> <ns:BasicPropertyInfo HotelCode="51885"/> </ns:RoomStay> </ns:RoomStays> <ns:ResGuests> <ns:ResGuest ArrivalTime="10:00:00+08:00"> <ns:Profiles> <ns:ProfileInfo> <ns:Profile> <ns:Customer> <ns:PersonName> <ns:Surname>123</ns:Surname> </ns:PersonName> <ns:ContactPerson ContactType="tel"> <ns:PersonName> <ns:Surname>李海亮</ns:Surname> </ns:PersonName> <ns:Telephone PhoneNumber="15900560221" PhoneTechType="1"/> <ns:Email>mr19830707@gmail.com</ns:Email> </ns:ContactPerson> </ns:Customer> </ns:Profile> </ns:ProfileInfo> </ns:Profiles> <ns:TPA_Extensions> <ns:LateArrivalTime>2012-09-29T13:00:00+08:00</ns:LateArrivalTime> </ns:TPA_Extensions> </ns:ResGuest> </ns:ResGuests> <ns:ResGlobalInfo> <ns:GuestCounts IsPerRoom="false"> <ns:GuestCount Count="1"/> </ns:GuestCounts> <ns:TimeSpan Start="2012-09-29T12:00:00+08:00" End="2012-09-30T12:00:00+08:00"/> <ns:SpecialRequests> <ns:SpecialRequest> <ns:Text>要一个电视</ns:Text> </ns:SpecialRequest> </ns:SpecialRequests> <ns:DepositPayments> <ns:GuaranteePayment GuaranteeType="CC/DC/Voucher"> <ns:AcceptedPayments> <ns:AcceptedPayment> <ns:PaymentCard CardType="gBG1pcTHP+M=" CardNumber="jhXJzaRCoGreZXTmKx9fyFwyRJZqWimr" SeriesCode="cbyXWJ06Bx8=" EffectiveDate="pjUanDE3Ta8=" ExpireDate="pjUanDE3Ta8="> <ns:CardHolderName>ASq6ZwnS3tKI8lqh+lL4YQ==</ns:CardHolderName> <ns:CardHolderIDCard>AzoUFk527GHntp1pJryYhB+V4fuM75/1</ns:CardHolderIDCard> </ns:PaymentCard> </ns:AcceptedPayment> </ns:AcceptedPayments> <ns:AmountPercent Amount="1400"/> </ns:GuaranteePayment> </ns:DepositPayments> <ns:Total AmountBeforeTax="1400" CurrencyCode="CNY"/> <ns:CancelPenalties> <ns:CancelPenalty Start="2012-09-28T12:00:00" End="2012-09-30T15:00:00"> <ns:AmountPercent Amount="1400.00" CurrencyCode="CNY"/> </ns:CancelPenalty> </ns:CancelPenalties> </ns:ResGlobalInfo> </ns:HotelReservation> </ns:HotelReservations> </ns:OTA_HotelResRQ> */ }