package com.banking.xc.utils.webService.request.hotel;
import com.banking.xc.utils.Log;
import com.banking.xc.utils.webService.util.RequestConstant;
import com.banking.xc.utils.xml.frame.XmlNode;
public class HotelAvailRequest extends HotelRequest{
private final String requestType = RequestConstant.HOTEL_AVAIL;
private final String TAG = "HotelAvailRequest";
private String hotelCode;
private String startTime;
private String endTime;
private String ratePlanCode; //价格计划代码
private String quantity;
private Boolean isPerRoom; //是否每个客人一间房
private String lateArrivalTime;
private String count;//客人数量
public String getHotelCode() {
return hotelCode;
}
public void setHotelCode(String hotelCode) {
this.hotelCode = hotelCode;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getRatePlanCode() {
return ratePlanCode;
}
public void setRatePlanCode(String ratePlanCode) {
this.ratePlanCode = ratePlanCode;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public Boolean getIsPerRoom() {
return isPerRoom;
}
public void setIsPerRoom(Boolean isPerRoom) {
this.isPerRoom = isPerRoom;
}
public String getLateArrivalTime() {
return lateArrivalTime;
}
public void setLateArrivalTime(String lateArrivalTime) {
this.lateArrivalTime = lateArrivalTime;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
@Override
public String getHotelParams() {
// TODO Auto-generated method stub
final XmlNode hotelAvailNode = new XmlNode("ns:OTA_HotelAvailRQ");
hotelAvailNode.putAttribute("Version", "1.0");
hotelAvailNode.putAttribute("TimeStamp", "2013-02-27T18:26:00.000+08:00"); //还是用当前日期
final XmlNode availRequestSegmentsNode = new XmlNode("ns:AvailRequestSegments");
hotelAvailNode.addChildNode(availRequestSegmentsNode);
final XmlNode availRequestSegmentNode = new XmlNode("ns:AvailRequestSegment");
availRequestSegmentsNode.addChildNode(availRequestSegmentNode);
final XmlNode hotelSearchCriteriaNode = new XmlNode("ns:HotelSearchCriteria");
availRequestSegmentNode.addChildNode(hotelSearchCriteriaNode);
final XmlNode criterionNode = new XmlNode("ns:Criterion");
hotelSearchCriteriaNode.addChildNode(criterionNode);
final XmlNode hotelRefNode = new XmlNode("ns:HotelRef");
hotelRefNode.putAttribute("HotelCode", getHotelCode());
criterionNode.addChildNode(hotelRefNode);
final XmlNode stayDateRangeNode = new XmlNode("ns:StayDateRange");
stayDateRangeNode.putAttribute("Start", getStartTime());
stayDateRangeNode.putAttribute("End", getEndTime());
criterionNode.addChildNode(stayDateRangeNode);
final XmlNode ratePlanCandidatesNode = new XmlNode("ns:RatePlanCandidates");
criterionNode.addChildNode(ratePlanCandidatesNode);
final XmlNode RatePlanCandidateNode = new XmlNode("ns:RatePlanCandidate");
RatePlanCandidateNode.putAttribute("RatePlanCode", getRatePlanCode());
ratePlanCandidatesNode.addChildNode(RatePlanCandidateNode);
final XmlNode roomStayCandidatesNode = new XmlNode("ns:RoomStayCandidates");
criterionNode.addChildNode(roomStayCandidatesNode);
final XmlNode roomStayCandidateNode = new XmlNode("ns:RoomStayCandidate");
roomStayCandidateNode.putAttribute("Quantity", getQuantity());
roomStayCandidatesNode.addChildNode(roomStayCandidateNode);
final XmlNode guestCountsNode = new XmlNode("ns:GuestCounts");
guestCountsNode.putAttribute("IsPerRoom", String.valueOf(getIsPerRoom()));
roomStayCandidateNode.addChildNode(guestCountsNode);
final XmlNode guestCountNode = new XmlNode("ns:GuestCount");
guestCountNode.putAttribute("Count", getCount());
guestCountsNode.addChildNode(guestCountNode);
final XmlNode tPAExtensionsNode = new XmlNode("ns:TPA_Extensions");
criterionNode.addChildNode(tPAExtensionsNode);
final XmlNode lateArrivalTimeNode = new XmlNode("ns:LateArrivalTime");
lateArrivalTimeNode.setInnerValue(getLateArrivalTime());
tPAExtensionsNode.addChildNode(lateArrivalTimeNode);
if(Log.D){
Log.d(TAG, hotelAvailNode.toString());
}
return hotelAvailNode.toString();
}
@Override
public String getRequestType() {
// TODO Auto-generated method stub
return requestType;
}
@Override
public Boolean checkParams() {
// TODO Auto-generated method stub
return null;
}
/*
* <HotelRequest>
<RequestBody xmlns:ns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ns:OTA_HotelAvailRQ Version="1.0" TimeStamp="2012-04-20T00:00:00.000+08:00">
<ns:AvailRequestSegments>
<ns:AvailRequestSegment>
<ns:HotelSearchCriteria>
<ns:Criterion>
<ns:HotelRef HotelCode="51885"/>
<ns:StayDateRange Start="2012-09-29T00:00:00.000+08:00" End="2012-09-30T19:00:00.000+08:00"/>
<ns:RatePlanCandidates>
<ns:RatePlanCandidate RatePlanCode="136129"/>
</ns:RatePlanCandidates>
<ns:RoomStayCandidates>
<ns:RoomStayCandidate Quantity="1">
<ns:GuestCounts IsPerRoom="false">
<ns:GuestCount Count="1"/>
</ns:GuestCounts>
</ns:RoomStayCandidate>
</ns:RoomStayCandidates>
<ns:TPA_Extensions>
<ns:LateArrivalTime>2012-09-29T00:00:00.000+08:00</ns:LateArrivalTime>
</ns:TPA_Extensions>
</ns:Criterion>
</ns:HotelSearchCriteria>
</ns:AvailRequestSegment>
</ns:AvailRequestSegments>
</ns:OTA_HotelAvailRQ>
</RequestBody>
</HotelRequest>
*/
}