提交 415dcb00 authored 作者: hzh's avatar hzh

酒店相关接口云上对接

上级 8e729c5b
package org.dromara.common.ys.enums.hotel;
import org.dromara.common.ys.enums.ApiEnum;
/**
* 酒店相关接口
*
* @author wenhe
*/
public enum HotelApiEnum implements ApiEnum {
/**
* 3.获取酒店信息接口
**/
HOTEL_DETAIL("/open/hotel/shopping/hotelDetail", "获取酒店信息接口"),
/**
* 1.酒店列表
**/
QUERY_LIST("/open/hotel/shopping/queryList", "酒店列表。"),
/**
* 2.询价接口-单个酒店询价
**/
PRICE_PLAN("/open/hotel/shopping/pricePlan", "询价接口-单个酒店询价。"),
/**
* 4.酒店订单列表
**/
ORDER_QUERY_LIST("/open/hotel/order/queryList", "酒店订单列表。"),
/**
* 7.预订
**/
BOOK("/open/hotel/order/book", "预订。"),
/**
* 1.订单详情
**/
QUERY_ORDER("/open/hotel/order/queryOrder", "根据订单编号获取订单详情。"),
/**
* 3.酒店支付
**/
PAY_ORDER("/open/hotel/order/payOrder", "酒店支付。"),
/**
* 8.询价单保存
**/
XJD("/open/hotel/order/xjd", "询价单保存。"),
/**
* 6.酒店订单申请退
**/
CANCEL_ORDER("/open/hotel/order/cancelOrder", "酒店订单申请退。"),
/**
* 2.退单详情
**/
QUERY_REFUND_ORDER("/open/hotel/order/queryRefundOrder", "根据退单号或原订单号获取退单详情。"),
/**
* 5.酒店订单详情
**/
QUERY_DETAIL("/open/hotel/order/queryDetail", "酒店订单详情。");
/**
* 接口URL
*/
private final String url;
/**
* 接口描述
*/
private final String desc;
HotelApiEnum(String url, String desc) {
this.url = url;
this.desc = desc;
}
/**
* 获取枚举URL
*
* @return 枚举编码
*/
@Override
public String getUrl() {
return url;
}
/**
* 获取详细的描述信息
*
* @return 描述信息
*/
@Override
public String getDesc() {
return desc;
}
@Override
public String toString() {
return url;
}
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class CancelOrderModel extends BaseModel {
/**
* 订单编号
**/
private String orderNo;
/**
* 入住日期 不在日期内的房型进行退操作
**/
private String checkOutDate;
/**
* 退房原因
**/
private String vipRefundReason;
/**
* 入住日期 不在日期内的房型进行退操作
**/
private String checkInDate;
}
package org.dromara.common.ys.model.req.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelDetailModel extends BaseModel {
/**
* 接口供应商标识,列表查询返回的接口供应商标识
**/
private String interfacePlatEnum;
/**
* 平台酒店id,列表查询返回的酒店ID
**/
private String jdid;
/**
* 离店日期:yyyy-mm-dd
**/
private String checkOutDate;
/**
* 入住日期:yyyy-mm-dd
**/
private String checkInDate;
}
package org.dromara.common.ys.model.req.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import org.dromara.common.ys.model.req.hotel.bean.HotelOrderBookInvoiceBean;
import org.dromara.common.ys.model.req.hotel.bean.HotelOrderBookRoomBean;
import org.dromara.common.ys.model.req.hotel.bean.HotelOrderBookTravelInfoBean;
import org.dromara.common.ys.model.req.hotel.bean.HotelOrderCreditCardBean;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookModel extends BaseModel {
/**
* 联系手机,不能为空
**/
private String linkMobile;
/**
* 收件人邮箱
**/
private String reciEmail;
/**
* 价格计划id,不能为空
**/
private String ratePlanId;
/**
* 差旅信息
**/
private HotelOrderBookTravelInfoBean travelInfo;
/**
* 邮寄方式
**/
private String postMothed;
/**
* 本地城市ID,未传入时将从酒店基础信息中获取
**/
private String cityId;
/**
* 收件人电话
**/
private String reciPhone;
/**
* 入住日期:yyyy-mm-dd,不能为空
**/
private String checkInDate;
/**
* 房型id,不能为空
**/
private String roomId;
/**
* singa账号id
**/
private Integer singaZhid;
/**
* 最晚到店时间,不能为空
**/
private String latestArrivalTime;
/**
* 订单金额
**/
private BigDecimal orderAmount;
/**
* 接口供应商标识
**/
private String interfacePlatEnum;
/**
* 离店日期:yyyy-mm-dd,不能为空
**/
private String checkOutDate;
/**
* 房间信息
**/
private List<HotelOrderBookRoomBean> orderRooms;
/**
* 推荐人姓名
**/
private String recommenderName;
/**
* 支付方式:0现付 1预付,不能为空
**/
private Integer payment;
/**
* 是否需要发票。前台自付订单发票由酒店开具/ true/false
**/
private String isNeedInvoice;
/**
* 收件地址
**/
private String reciAddr;
/**
* 配送类型0不需要行程单1公司统一配送2邮寄3机场自取 当选择一单一送时出现2和3选择
**/
private Integer sendMode;
/**
* 推荐人id
**/
private String recommender;
/**
* 配送要求时间
**/
private String psyqsj;
/**
* 供应商编号
**/
private String fyid;
/**
* 邮政编码
**/
private String reciPostCode;
/**
* 订单是否一致 DY DN
**/
private String ifSameOrder;
/**
* 平台酒店ID
**/
private String hotelId;
/**
* 联系人,不能为空
**/
private String linkman;
/**
* 接口平台账号ID,即根据指定接口账号去获取价格。只针对OSS选择的价格是接口平台价格时生效
**/
private Integer platZhid;
/**
* 给酒店备注
**/
private String noteToHotel;
/**
* 最早到店时间
**/
private String earliestArrivalTime;
/**
* 差旅类型不能为空,1是因公,2是因私
**/
private Integer tripType;
/**
* 收件人
**/
private String recipient;
/**
* 返佣率,现付必传
**/
private BigDecimal fyl;
/**
* 订单来源,obt订单来源为10503
**/
private String orderFrom;
/**
* 邮政编码
**/
private String postCode;
/**
* 发票信息
**/
private HotelOrderBookInvoiceBean invoice;
/**
* 企业预订人id,后台代订是如果选择了需传入
**/
private String corpBookerId;
/**
* 是否拼房0否1是
**/
private Integer sfpf;
/**
* 担保信用卡信息
**/
private HotelOrderCreditCardBean creditCard;
/**
* 科目码
**/
private String subjectCode;
/**
* 联系人邮箱
**/
private String linkEmail;
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderQueryDetailModel extends BaseModel {
/**
* 订单号
**/
private String orderNo;
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderQueryListModel extends BaseModel {
/**
* 预订人
**/
private String bookNo;
/**
* 日期类型 1预定日期 2出行日期 3出票/确认日期
**/
private Integer dateType;
/**
* 时间始 格式:yyyy-MM-dd
**/
private String dateStart;
/**
* 每页显示条数,不能小于10
**/
private Integer count;
/**
* 出差申请单号
**/
private String travelNo;
/**
* 入住人
**/
private String psgName;
/**
* 订单状态码 1待送审 2审批中 3待支付 4待确认 5已确认 6已完成 7已取消 8部分退房 9全部退房
**/
private Integer orderStatus;
/**
* 时间止 格式:yyyy-MM-dd
**/
private String dateEnd;
/**
* 公司支付限制 1只查询公司支付订单 0或空不限制
**/
private Integer payCompanyFlag;
/**
* 当前页数,不能小于1
**/
private Integer pageNum;
/**
* 酒店名称
**/
private String hotelName;
}
package org.dromara.common.ys.model.req.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import org.dromara.common.ys.model.req.hotel.bean.HotelOrderXjdPsgBean;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderXjdModel extends BaseModel {
/**
* 取消罚金
**/
private BigDecimal cancelPenalty;
/**
* 房间数
**/
private Integer rooms;
/**
* 联系电话
**/
private String linkMobile;
/**
* 取消规则 0:免费取消 1:限时取消 2:不可取消
**/
private Integer cancelPolicyType;
/**
* 离店日期 yyyy-MM-dd
**/
private String ldrq;
/**
* 房型名称
**/
private String roomTypeName;
/**
* 酒店地址
**/
private String hotelAddress;
/**
* 城市Id
**/
private String cityId;
/**
* 酒店名称
**/
private String hotelName;
/**
* 联系人
**/
private String linkman;
/**
* 窗户类型 0:无窗 1:有窗
**/
private Integer windowType;
/**
* 入住日期 yyyy-MM-dd
**/
private String rzrq;
/**
* 酒店星级 0:无 2:二星 3:三星 4:四星 5:五星
**/
private Integer hotelStar;
/**
* 城市名称
**/
private String cityName;
/**
* 酒店电话
**/
private String hotelPhone;
/**
* 每晚金额
**/
private BigDecimal averagePrice;
/**
* 早餐类型 0:不含早 1:单早 2:双早 3:含早
**/
private Integer breakfastType;
/**
* 入住人信息
**/
private List<HotelOrderXjdPsgBean> psgBeanList;
/**
* 床型
**/
private Integer bedType;
/**
* 免费取消时间
**/
private String freeCancelTime;
/**
* 联系人邮箱
**/
private String linkEmail;
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelQueryOrderModel extends BaseModel {
/**
* 订单号
**/
private String orderNO;
/**
* 企业id
**/
private String corpId;
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelQueryRefundOrderModel extends BaseModel {
/**
* 订单号
**/
private String orderNO;
/**
* 企业id
**/
private String corpId;
/**
* 退掉的订单号
**/
private String refundNo;
}
package org.dromara.common.ys.model.req.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingBaseListModel extends BaseModel {
/**
* 离指定经纬度距离(单位:公里)。默认3公里
**/
private BigDecimal distance;
/**
* 酒店名称、或酒店地址中包含的关键字
**/
private String keywords;
/**
* 服务设施id,多个以逗号隔开
**/
private String propertyIds;
/**
* 百度经度,searchType=3时,必传
**/
private BigDecimal lon;
/**
* 城市id
**/
private String cityId;
/**
* 入住日期:yyyy-mm-dd
**/
private String checkInDate;
/**
* 品牌id,多个以逗号隔开
**/
private String brandIds;
/**
* 0 含早餐 1单人早餐 2双人早餐 取BDC HotelStaticDataEnums 枚举
**/
private String zcfs;
/**
* singa平台账号id
**/
private Integer singaZhid;
/**
* 酒店主题,多个用逗号隔开
**/
private String themes;
/**
* 离店日期:yyyy-mm-dd
**/
private String checkOutDate;
/**
* 商圈名称
**/
private String businessZoneName;
/**
* 0 大床房 1单床房 2双人床房 3 多人床房 取BDC HotelStaticDataEnums 枚举
**/
private String roomBedType;
/**
* 为1 并且 jdids不为空,表示排除这些jdids的其他酒店;默认为0
**/
private Integer exclude;
/**
* 百度纬度,searchType=3时,必传
**/
private BigDecimal lat;
/**
* 酒店类型,0全部,1是可售酒店,2是签约,10是热门。默认1
**/
private Integer jdType;
/**
* 上游协议价格来源 空非协议价 1自有协议 2企业协议
**/
private String priceSourceType;
/**
* 是否仅查查询sign 1为是
**/
private Integer onlySign;
/**
* 企业id
**/
private String corpId;
/**
* 行政区名称
**/
private String districtName;
/**
* 酒店id用英文逗号分隔。不超过20个
**/
private String hotelIds;
/**
* 查询类型,1 按行政区;2 按商圈;3 按经纬度;默认 0
**/
private Integer searchType;
/**
* 商圈id
**/
private String businessZone;
/**
* 每页显示条数,不能小于10
**/
private Integer count;
/**
* 12按评分降序;21为星级升序,22为星级降序;31为价格升序,32为价格降序;41 距离升序。当searchType=3时,默认为41,其他情况默认 12
**/
private Integer sort;
/**
* 设施名称,多个半角逗号分隔
**/
private String facilitieNames;
/**
* 当前页数,不能小于1
**/
private Integer pageNum;
/**
* 平台账号ID,该字段只针对OSS生效
**/
private Integer platZhid;
/**
* 差旅类型,1是因公,2是因私 因公时必填
**/
private Integer tripType;
/**
* 行政区id
**/
private String district;
/**
* 酒店id,多个酒店id用英文逗号隔开
**/
private String jdids;
/**
* 价格范围:不传代表不限;范围以-隔开;如果是150元以下,传0-150;如果是800元以上,传800-999999
**/
private String priceRange;
/**
* 挂牌星级:不限就不传;二星级以下,传2;三星传3;以此类推,多个以英文逗号隔开
**/
private String starRate;
}
package org.dromara.common.ys.model.req.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPricePlanModel extends BaseModel {
/**
* singa账号id
**/
private Integer singaZhid;
/**
* 接口平台账号ID,即根据指定接口账号去获取价格。只针对OSS生效
**/
private Integer searchPlatZhid;
/**
* 列表查询时返回的产品真实来源平台编号,对应InterfacePlatEnum,可以是艺龙或自有资源,但不能是星空平台
**/
private String interfacePlatEnum;
/**
* 离店日期:yyyy-mm-dd
**/
private String checkOutDate;
/**
* 企业ID,OBT无需传入。OSS后台查询时如果选择了企业,需传入。集中采购页面从需从订单上获取传入
**/
private String corpId;
/**
* 价格计划id,重选日期的时候使用
**/
private String ratePlanId;
/**
* 支付方式:0现付 1预付 OSS后台可传入,OBT根据参数控制
**/
private String payment;
/**
* 平台酒店id,列表查询返回的酒店ID,需与interfacePlatEnum传值保持一致
**/
private String hotelId;
/**
* 本地城市ID,如果不传入,根据平台酒店ID可能无法获取本地城市ID,导致订单数据中无城市数据
**/
private String cityId;
/**
* 入住日期:yyyy-mm-dd
**/
private String checkInDate;
/**
* 是否查询本地价格计划 0否 1是 默认1。只针对OSS生效,指定价格计划id查询时无需传入此参数
**/
private Integer searchLocal;
/**
* 平台房型编号,传入时表示指定房型查询
**/
private String roomId;
}
package org.dromara.common.ys.model.req.hotel;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PayOrderModel extends BaseModel {
/**
* 订单编号
**/
private String orderNo;
}
package org.dromara.common.ys.model.req.hotel.bean;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookInvoiceBean extends BaseModel {
/**
* 名称。房费,会务费,会议费,旅游费,差旅费,服务费
**/
private String itemName;
/**
* 金额。不高于会员价
**/
private String amount;
/**
* 发票抬头
**/
private String title;
}
package org.dromara.common.ys.model.req.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookRoomBean extends BaseModel {
/**
* 房间序号,不能为空
**/
private Integer roomNo;
/**
* 入住人房间集合
**/
private List<HotelOrderBookRoomCustomerBean> customers;
}
package org.dromara.common.ys.model.req.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookRoomCustomerBean extends BaseModel {
/**
* 入住人id,如果是因公,控件选择的入住人
**/
private String empId;
/**
* 性别。Female 女,Maile 男, Unknown 保密
**/
private String gender;
/**
* 入住人证件号码,部分产品需要传入证件号码才能下单
**/
private String idCardNo;
/**
* 手机
**/
private String mobile;
/**
* 差旅标准价
**/
private BigDecimal clbzj;
/**
* 附属员工id
**/
private String fsEmpId;
/**
* 入住人在部门表的id
**/
private String empDeptId;
/**
* 儿童年龄 年龄输入范围 0 至 17 岁(包含 0 和 17)
**/
private Integer childrenAge;
/**
* 入住人类型1成人 2儿童 不传默认为成人
**/
private Integer customerType;
/**
* 国籍
**/
private String nationality;
/**
* 电话
**/
private String phone;
/**
* 入住人姓名,如果国际酒店,姓名格式为英文或拼音的名/姓,必须与护照一致,不能包含空格
**/
private String name;
/**
* Email
**/
private String email;
}
package org.dromara.common.ys.model.req.hotel.bean;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookTravelInfoBean extends BaseModel {
/**
* 成本中心代码
**/
private String costCenterCode;
/**
* 出差申请单id
**/
private String ccsqdId;
/**
* 企业id
**/
private String corpId;
/**
* 出差申请单号
**/
private String ccsqdNo;
/**
* 企业名称
**/
private String corpName;
/**
* 订单是否一致 DY DN
**/
private String ifSameOrder;
/**
* 企业代码
**/
private String corpCode;
/**
* 违背事项代码
**/
private String violateitemCode;
/**
* 违背事项说明
**/
private String violateitem;
/**
* 因公因私,1是因公,2是因私
**/
private Integer tripType;
/**
* 行程id
**/
private String routeId;
/**
* 出差项目代码
**/
private String projectCode;
/**
* 成本中心id
**/
private String costCenterId;
/**
* 成本中心名称
**/
private String costCenterName;
/**
* 违背原因代码
**/
private String reasonCode;
/**
* 项目名称
**/
private String projectName;
/**
* 是否拼房0否1是
**/
private Integer sfpf;
/**
* 出差项目id
**/
private String projectId;
/**
* 科目码
**/
private String subjectCode;
/**
* 违背原因说明
**/
private String reasonDesc;
/**
* 出差申请备注
**/
private String ccsqdRemark;
}
package org.dromara.common.ys.model.req.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderCreditCardBean extends BaseModel {
/**
* 有效期-年 yyyy;若需要修改则传入
**/
private String expirationYear;
/**
* 卡号;若需要修改则传入,无需加密,后台处理
**/
private String number;
/**
* cvv;若需要修改则传入,无需加密,后台处理
**/
private String cvv;
/**
* 持卡人;若需要修改则传入
**/
private String holderName;
/**
* 证件类型。身份证 1, 护照 2,军人证 3, 其他 4;若需要修改则传入
**/
private String idType;
/**
* 订单ID,如果表中存在该记录则修改,否则添加
**/
private String orderId;
/**
* 担保金额
**/
private BigDecimal dbJe;
/**
* 信用卡类型;若需要修改则传入
**/
private String cardType;
/**
* 持卡人手机;若需要修改则传入
**/
private String tel;
/**
* 有效期-月 mm;若需要修改则传入
**/
private String expirationMonth;
/**
* 证件号码;若需要修改则传入,无需加密,后台处理
**/
private String idNo;
}
package org.dromara.common.ys.model.req.hotel.bean;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderXjdPsgBean extends BaseModel {
/**
* 国内传完整姓名;国际酒店只传名
**/
private String firstName;
/**
* 国内为空;国际传姓
**/
private String lastName;
/**
* 性别 F 女 M 男
**/
private String gender;
/**
* 房间序号
**/
private Integer roomSequence;
/**
* 护照签发地
**/
private String countryOfPassport;
/**
* 称谓 Mr. 先生 Ms. 女士 国内酒店不传
**/
private String title;
/**
* 员工工号
**/
private String staffId;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class CancelOrderModel {
/**
*
**/
private String htrefundId;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.hotel.bean.HotelInfo;
import org.dromara.common.ys.model.res.hotel.bean.HotelRoomBasic;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelDetailModel {
/**
* 酒店基础资料
**/
private HotelInfo hotelInfoBean;
/**
* 酒店房型信息
**/
private List<HotelRoomBasic> roomBasicBeanList;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderBookModel {
/**
* 订单状态
**/
private Integer ddzt;
/**
* 订单编号
**/
private String orderId;
/**
* 是否显示送审操作
**/
private String isShowApproval;
/**
* 是否显示支付操作
**/
private String isShowPay;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.airport.other.OrderBusinessInfoBean;
import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.hotel.bean.HotelOrderPriceInfoBean;
import org.dromara.common.ys.model.res.hotel.bean.HotelOrderPsgInfoBean;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderQueryDetailModel {
/**
* 预订时间
**/
private String bookDate;
/**
* 每日房价list
**/
private List<HotelOrderPriceInfoBean> htOrderPriceList;
/**
* 订单状态码 1待送审 2审批中 3待支付 4待确认 5已确认 6已完成 7已取消 8部分退房 9全部退房
**/
private String orderStatus;
/**
* 酒店地址
**/
private String hotelAddress;
/**
*
**/
private Integer priceSigner;
/**
* 入住日期
**/
private String checkInDate;
/**
* 最晚到店时间
**/
private String checkOutLate;
/**
* 订单状态名称
**/
private String orderStatusName;
/**
* 预订规则
**/
private String bookingRule;
/**
* 行程id
**/
private String routeId;
/**
* 支付类型 1前台现付,2预付
**/
private Integer payType;
/**
* 所在城市名称
**/
private String cityName;
/**
* 离店日期
**/
private String checkOutDate;
/**
* 间数
**/
private Integer roomNum;
/**
* 最早到店时间
**/
private String checkInEarly;
/**
* 入住人list
**/
private List<HotelOrderPsgInfoBean> htOrderPsgList;
/**
* 酒店电话
**/
private String hotelPhone;
/**
* 总价币种
**/
private String currency;
/**
* 国内国际 1国内0国际
**/
private Integer international;
/**
* 取消规则
**/
private String changeRule;
/**
* 服务费
**/
private BigDecimal serviceFee;
/**
* 订单号
**/
private String orderNo;
/**
* 间夜数
**/
private Integer hotelNight;
/**
* 差旅信息
**/
private OrderBusinessInfoBean business;
/**
* 房费
**/
private BigDecimal salePrice;
/**
* 实际离店日期
**/
private String sjCheckOutDate;
/**
* 入住人 多个人用','分隔
**/
private String psgName;
/**
* 房型名称
**/
private String roomTypeName;
/**
*
**/
private List<OrderPayInfoBean> pay;
/**
* 酒店名称
**/
private String hotelName;
/**
* 实际入住日期
**/
private String sjCheckInDate;
/**
* 特殊提示
**/
private String hotelHAvailPolicys;
/**
* 订单合计
**/
private BigDecimal totalAmount;
/**
* 最晚取消时间
**/
private String cancelTime;
/**
* 晚数
**/
private Integer nights;
/**
* 是否需求单 1是 其他否
**/
private Integer sfXqd;
/**
* 价格计划id
**/
private String priceId;
/**
* // 付款状态(收款)1已付 0未付 2付款中
**/
private Integer payStatus;
/**
* 酒店星级
**/
private String starRate;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderQueryListModel {
/**
* 入住日期
**/
private String checkInData;
/**
* 预定时间 格式:yyyy-MM-dd HH:mm:ss
**/
private String bookDate;
/**
* 订单编号
**/
private String orderNo;
/**
* 间夜数
**/
private Integer hotelNight;
/**
* 退房状态,0是正常,1是全部退房,2是部分退房
**/
private Integer allRefund;
/**
* 入住人姓名多人用’,’分隔
**/
private String psgName;
/**
* 订单状态码 1待送审 2审批中 3待支付 4待确认 5已确认 6已完成 7已取消 8部分退房 9全部退房
**/
private String orderStatus;
/**
* 预订人名称
**/
private String bookerName;
/**
* 酒店名称
**/
private String hotelName;
/**
* 房型名称
**/
private String roomName;
/**
* 离店日期
**/
private String checkOutData;
/**
* 订单状态名称
**/
private String orderStatusName;
/**
* 订单总金额
**/
private BigDecimal totalAmount;
/**
* 差旅类型 1因公 2因私
**/
private Integer tripType;
/**
* 预定人工号
**/
private String bookerNo;
/**
* 城市名称
**/
private String cityName;
/**
* 房间数
**/
private Integer roomNum;
/**
* 国内国际,1是国内,0是国际
**/
private Integer international;
/**
* 出票时间 格式:yyyy-MM-dd HH:mm:ss
**/
private String drawDate;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderXjdModel {
/**
* 询价单号
**/
private String needOrderNo;
/**
* 服务费
**/
private BigDecimal serviceFee;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingBaseListModel extends BaseModel {
/**
* 酒店主图,图片的url
**/
private String img;
/**
* 距离,距离地标位置距离
**/
private String distance;
/**
* 签约来源 0上游 1服务商 2企业
**/
private Integer source;
/**
* 本地城市ID,即查询时传入的城市ID
**/
private String cityId;
/**
* 用户投诉率。百分比,格式是1%。只有本地有返回
**/
private String complaintScore;
/**
* 产品真实来源平台编号,对应InterfacePlatEnum,可以是艺龙或自有资源,但不能是星空平台
**/
private String facilitator;
/**
* 百度纬度
**/
private BigDecimal baiduLat;
/**
* 介绍信息 艺龙:实时接口没有返回 千淘:可为空 为空不展示 本地:静态接口必定返回
**/
private String introEditor;
/**
* 预订成功率。百分比,格式是98%。只有本地有返回
**/
private String bookingSuccessScore;
/**
* 酒店评分
**/
private String score;
/**
* 参考最低价
**/
private BigDecimal price;
/**
* 及时确认率。百分比,格式是96%。只有本地有返回
**/
private String instantConfirmScore;
/**
* 高德纬度,一汽大众oa对接用到
**/
private String gdLat;
/**
* 上游协议酒店类型 0或空非协议酒店 1自有协议 2企业协议
**/
private String priceSourceType;
/**
* 酒店名称
**/
private String jdmc;
/**
* 品牌名称
**/
private String brandName;
/**
* 地址 实时接口原始返回 可为空 为空不展示
**/
private String address;
/**
* 平台酒店id
**/
private String jdid;
/**
* 百度经度
**/
private BigDecimal baiduLon;
/**
* 商圈编码
**/
private String businessZone;
/**
* 距离对应的参照物
**/
private String poiName;
/**
* 商圈名称 千淘必定没有返回 其他可为空 为空不展示
**/
private String businessZonename;
/**
* 高德经度,一汽大众oa对接用到
**/
private String gdLon;
/**
* 前台电话 可为空 为空不展示
**/
private String phone;
/**
* 行政区名称 千淘必定没有返回 其他可为空 为空不展示
**/
private String districtname;
/**
* 行政区,编码
**/
private String district;
/**
* 品牌id,一汽大众oa对接用到
**/
private String brandId;
/**
* 艺龙:推荐星级 千淘:挂牌星级 本地:艺龙静态接口推荐星级
**/
private String category;
/**
* 设施信息,总的设施信息 返回1,5,11,12,13,14,9 没有维护设施信息不展示
**/
private String facilities;
/**
* 挂牌星级
**/
private String starRate;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.hotel.bean.HotelShoppingPricePlanRoom;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPricePlanModel {
/**
* 房间节点
**/
private List<HotelShoppingPricePlanRoom> rooms;
/**
* 离店日期
**/
private String checkOutDate;
/**
* 酒店主图地址
**/
private String mainImgUrl;
/**
* 最低价格
**/
private String lowRate;
/**
* 平台酒店id,如果是协议酒店,则为本地签约酒店的ID
**/
private String hotelId;
/**
* 酒店名称
**/
private String hotelName;
/**
* 入住日期
**/
private String checkInDate;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.hotel.bean.HtOrderPriceInfoBean;
import org.dromara.common.ys.model.res.hotel.bean.HtOrderPsgInfoBean;
import org.dromara.common.ys.model.res.train.BusinessInfo;
import org.dromara.common.ys.model.res.train.PayInfo;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HtOrderInfoModel {
/**
* 预订时间
**/
private String bookDate;
/**
* 间数
**/
private Integer rooms;
/**
* 支付信息
**/
private PayInfo Pay;
/**
* 酒店地址
**/
private String hotelAddress;
/**
* 入住日期
**/
private String checkInDate;
/**
* 最晚到店时间
**/
private String checkOutLate;
/**
* 预订规则
**/
private String bookingRule;
/**
* 服务费
**/
private BigDecimal serviceCharge;
/**
* 支付类型
**/
private Integer payType;
/**
* 离店日期
**/
private String checkOutDate;
/**
* 所在城市名称
**/
private String cityName;
/**
* 订单状态代码
**/
private Integer ddzt;
/**
* 最早到店时间
**/
private String checkInEarly;
/**
* 酒店电话
**/
private String hotelPhone;
/**
* 酒店名称
**/
private String HotelName;
/**
* 国内国际
**/
private Integer international;
/**
* 差旅信息
**/
private BusinessInfo Business;
/**
* 确认有房时间
**/
private String qryfDate;
/**
* 取消规则
**/
private String changeRule;
/**
* 所在城市编号
**/
private String cityNo;
/**
* 间晚数
**/
private Integer hotelNight;
/**
* 订单号
**/
private String orderNo;
/**
* 实际离店日期
**/
private String sjCheckOutDate;
/**
* 订单合计
**/
private BigDecimal orderCount;
/**
* 房费
**/
private BigDecimal roomCharge;
/**
* 入住人
**/
private String checkInMan;
/**
* 特殊提示
**/
private String hotelHAvailPolicys;
/**
* 房型名称
**/
private String roomsTypeName;
/**
* 房型代码
**/
private String roomsTypeNo;
/**
* 实际入住日期
**/
private String sjCheckInDate;
/**
* 每日房价list
**/
private List<HtOrderPriceInfoBean> HtOrderPriceList;
/**
* 最晚取消时间
**/
private String cancelTime;
/**
* 晚数
**/
private Integer nights;
/**
* 预订渠道
**/
private String orderFrom;
/**
* 支付状态
**/
private String payStatus;
/**
* 入住人list
**/
private List<HtOrderPsgInfoBean> HtOrderPsgList;
/**
* 订单状态名称
**/
private String ddztName;
/**
* 酒店星级
**/
private String starRate;
}
package org.dromara.common.ys.model.res.hotel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.hotel.bean.HotelOrderPsgInfoBean;
import org.dromara.common.ys.model.res.hotel.bean.HtRefundPriceInfoBean;
import org.dromara.common.ys.model.res.train.BusinessInfo;
import org.dromara.common.ys.model.res.train.PayInfo;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HtRefundInfoModel {
/**
* 罚金
**/
private BigDecimal cuRefundPoundage;
/**
* 支付信息
**/
private PayInfo Pay;
/**
* 酒店地址
**/
private String hotelAddress;
/**
* 入住日期
**/
private String checkInDate;
/**
* 退房费
**/
private BigDecimal refundRoomCharge;
/**
* 办理时间
**/
private String cfmDate;
/**
* 退单状态代码
**/
private Integer customerStatus;
/**
* 退晚数
**/
private Integer refundNights;
/**
* 退房类型
**/
private Integer refundType;
/**
* 离店日期
**/
private String checkOutDate;
/**
* 所在城市名称
**/
private String cityName;
/**
* 退单号
**/
private String refundNo;
/**
* 入住人list
**/
private List<HotelOrderPsgInfoBean> htOrderPsgList;
/**
* 退房明细list
**/
private List<HtRefundPriceInfoBean> HtRefundPriceList;
/**
* 酒店名称
**/
private String HotelName;
/**
* 国内国际
**/
private Integer international;
/**
* 退服务费
**/
private BigDecimal refundServiceFee;
/**
* 差旅信息
**/
private BusinessInfo Business;
/**
* 应退金额
**/
private BigDecimal refundAmount;
/**
* 退单状态名称
**/
private String customerStatusName;
/**
* 原订单号
**/
private String orderNo;
/**
* required
**/
private BigDecimal cuRefundFwf;
/**
* 退间数
**/
private Integer refundRooms;
/**
* 企业退房原因
**/
private String vipRefundReason;
/**
* 所在城市编号
**/
private String cityID;
/**
* 退款状态
**/
private Integer refundPayStatus;
/**
* 支付信息
**/
private List<OrderPayInfoBean> payList;
/**
* 入住人
**/
private String checkInMan;
/**
* 房型名称
**/
private String roomsTypeName;
/**
* 房型代码
**/
private String roomsTypeNo;
/**
* 退间夜数
**/
private Integer refundHotelNight;
/**
* 预订渠道
**/
private String orderFrom;
/**
* 申请时间
**/
private String applyDate;
/**
* 酒店电话
**/
private String hotelphone;
/**
* 酒店星级
**/
private String starRate;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelDetailImg {
/**
* 酒店图片
**/
private List<HotelImgBean> hotelImgs;
/**
* 房型图片
**/
private List<HotelImgRoom> roomsImgs;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelImgBean {
/**
* 图片类型:1餐厅;2休闲;3会议室;5外观;6大堂;8客房;10其他;11公共区域;12周边景点
**/
private String type;
/**
* 图片
**/
private List<String> url;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelImgRoom {
/**
* 房型id
**/
private String fxid;
/**
* 图片
**/
private List<String> url;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.res.hotel.bean.HotelDetailImg;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelInfo {
/**
* 所在国家id
**/
private String nation;
/**
* 邮编 可为空 为空不展示
**/
private String postalCode;
/**
* 集团编号 不展示
**/
private String groupId;
/**
* 装修时间
**/
private String renovationDate;
/**
* 主城市id
**/
private String cityId;
/**
* 用户投诉率。百分比,格式是1%。千淘不返回
**/
private String complaintScore;
/**
* 介绍信息
**/
private String introEditor;
/**
* 特色信息 可为空 为空不展示 千淘不返回
**/
private String features;
/**
* 酒店主题 不展示
**/
private String themes;
/**
* 酒店评分 千淘不返回
**/
private String score;
/**
* 预订成功率。百分比,格式是98%。千淘不返回
**/
private String bookingSuccessScore;
/**
* 城市名称
**/
private String cityIdName;
/**
* 传真 可为空 为空不展示
**/
private String fax;
/**
* 区域分类(1国内 0国际)
**/
private Integer international;
/**
* 周边交通 可为空 为空不展示
**/
private String traffic;
/**
* 品牌名称
**/
private String brandName;
/**
* 英文地址 国内酒店无
**/
private String addressEng;
/**
* 主商圈名称
**/
private String businessZonename;
/**
* 客房总数量 千淘不返回
**/
private Integer roomTotalAmount;
/**
* 酒店状态。1: 开启;0: 已经关闭。 千淘不返回
**/
private Integer hotelStatus;
/**
* 谷歌经度 不展示
**/
private BigDecimal googleLon;
/**
* 酒店服务设施 可为空 为空不展示
**/
private String serviceAmenities;
/**
* 酒店支持的信用卡 千淘不返回
**/
private String creditCards;
/**
* 电话 可为空 为空不展示
**/
private String phone;
/**
* 品牌编号
**/
private String brandId;
/**
* 行政区,编码,请在GEO数据中对应
**/
private String district;
/**
* 酒店图片信息,国际酒店时有值,国内外层节点有值
**/
private HotelDetailImg detailImgBean;
/**
* 挂牌星级
**/
private String starRate;
/**
* 酒店主图地址
**/
private String img;
/**
* 谷歌纬度 不展示
**/
private BigDecimal googleLat;
/**
* 开业时间
**/
private String establishmentDate;
/**
* 酒店基础设施
**/
private String generalAmenities;
/**
* 描述 可为空 为空不展示
**/
private String description;
/**
* 周边信息 可为空 为空不展示 千淘不返回
**/
private String surroundings;
/**
* 酒店休闲设施 可为空 为空不展示
**/
private String recreationAmenities;
/**
* 百度纬度 不展示
**/
private BigDecimal baiduLat;
/**
* 英文名称 千淘有返回
**/
private String jden;
/**
* 及时确认率。百分比,格式是96%。千淘不返回
**/
private String instantConfirmScore;
/**
* 酒店名称
**/
private String jdmc;
/**
* 所在国家名称
**/
private String nationName;
/**
* 地址
**/
private String address;
/**
* 平台酒店id
**/
private String jdid;
/**
* 百度经度 不展示
**/
private BigDecimal baiduLon;
/**
* 主商圈,编码,请在GEO数据中对应
**/
private String businessZone;
/**
* 酒店最低价
**/
private BigDecimal lowRate;
/**
* 行政区名称
**/
private String districtname;
/**
* 接机服务 千淘不返回
**/
private String airportPickUpService;
/**
* 平台推荐星级
**/
private String category;
/**
* 服务设施 不展示
**/
private String facilities;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderPriceInfoBean {
/**
* 服务费
**/
private BigDecimal serviceFee;
/**
* 可能有多个入住人的情况,房间号
**/
private Integer roomNo;
/**
* 销售价
**/
private BigDecimal salePrice;
/**
* 日期
**/
private String day;
/**
* 0 正常;1 退房中;2已退房
**/
private Integer status;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelOrderPsgInfoBean {
/**
* 手机
**/
private String phoneNumber;
/**
* 所在部门名称
**/
private String empDeptName;
/**
* 房间序号
**/
private Integer roomNo;
/**
* 入住人姓名
**/
private String psgName;
/**
* 员工工号
**/
private String empNo;
/**
* 证件号码
**/
private String idNo;
/**
* 所在部门编号
**/
private String empDeptid;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelRoomBasic {
/**
* 面积
**/
private String area;
/**
* 房型数量
**/
private Integer amount;
/**
* 上网情况 0表示无宽带,1 表示有宽带, 2 表示有WIFI
**/
private Integer broadnetAccess;
/**
* 上网费用 0表示免费,1 表示收费
**/
private Integer broadnetFee;
/**
* 备注
**/
private String comments;
/**
* 描述 包括大床、双床、宽带等一类描述
**/
private String description;
/**
* 房间最大入住人数
**/
private Integer capacity;
/**
* 图片的http地址
**/
private String imageUrl;
/**
* 平台房型名称
**/
private String fxmc;
/**
* 房间窗户情况:0 有窗 1 部分有窗 2 无窗
**/
private String window;
/**
* 楼层
**/
private String floor;
/**
* 房间设施 逗号分隔
**/
private String facilities;
/**
* 平台房型id
**/
private String fxid;
/**
* 床型
**/
private String bedType;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPlanRateBookingRuleBean {
/**
* 预订规则编号
**/
private String bookingRuleId;
/**
* 描述
**/
private String description;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPlanRateGuaranteeRuleBean {
/**
* 变更说明
**/
private String changeRule;
/**
* 担保规则编号
**/
private String guaranteeRuleId;
/**
* 担保类型 11无需担保;12限时担保;13强制担保;
**/
private String guaranteeType;
/**
* 描述
**/
private String description;
/**
* 担保规则逻辑格式,各供应商不一样
**/
private String ruleData;
}
package org.dromara.common.ys.model.res.hotel.bean;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPlanRateHAvailPolicyBean {
/**
* 提示内容
**/
private String availPolicyText;
/**
* 描述
**/
private String description;
/**
* 提示编号
**/
private String id;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPlanRatePrepayRuleBean {
/**
* 变更说明
**/
private String changeRule;
/**
* 规则编码
**/
private String prepayRuleId;
/**
* 21免费取消;22限时取消;23不可取消
**/
private String changeType;
/**
* 描述
**/
private String description;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPlanRateValueAddBean {
/**
* 增值服务编号
**/
private String valueAddId;
/**
* 附加服务描述,代理不想解析的话,可以直接显示该描述
**/
private String description;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPricePlanRoom {
/**
* 预付产品数量
**/
private Integer prePayNums;
/**
* 产品信息,价格计划信息
**/
private List<HotelShoppingPricePlanRoomRate> ratePlans;
/**
* 房间窗户情况:0 有窗 1 部分有窗 2 无窗
**/
private String window;
/**
* 前台现付最低价 这个房型,首日,所有接口,对应的所有价格计划中 最低的价格
**/
private BigDecimal minFacePrice;
/**
* 房型id
**/
private String roomId;
/**
* 房型名称
**/
private String roomName;
/**
* 现付产品数量
**/
private Integer facePayNums;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPricePlanRoomRate extends BaseModel {
/**
* 增值服务
**/
private HotelShoppingPlanRateValueAddBean valueAdd;
/**
* 早餐份数,所有夜晚数早餐数量的小计
**/
private Integer freeMeal;
/**
* 简短的规则说明:11无需担保;12限时担保;13强制担保;21免费取消;22限时取消;23不可取消 可为空
**/
private String shortRule;
/**
* 入住时间段内的单间服务费,如果多间房,那么订单总服务费=单间服务费*房间数,指定价格计划查询时才会进行匹配返回
**/
private BigDecimal totalFwf;
/**
* 最少提前预订小时数
**/
private Integer minAdvHours;
/**
* 产品编号。价格计划id,接口平台编号_平台价格计划ID
**/
private String ratePlanId;
/**
* 房型价格代码,用于价格标识
**/
private String roomId;
/**
* 综合房态,0良好,1紧张,2满房,3需确认
**/
private String allRoomStatus;
/**
* 客人类型。。All=统一价 Chinese =内宾价,需提示客人“须持大陆身份证入住”;OtherForeign =外宾价,需提示客人“须持国外护照入住”;HongKong =港澳台客人价,需提示客人“须持港澳台身份证入住”;Japanese=日本客人价,需提示客人“须持日本护照入住”
**/
private String customerType;
/**
* 最多入住天数
**/
private Integer maxDays;
/**
* 支付类型:1现付 2预付
**/
private String payment;
/**
* 扩展3,后续接口会透传此字段
**/
private String ext3;
/**
* 扩展2,后续接口会透传此字段
**/
private String ext2;
/**
* 价格产品所属的平台编号 取值@see InterfacePlatEnum
**/
private String fyid;
/**
* 上游协议价格来源 0或空非协议价 1自有协议 2企业协议
**/
private String priceSourceType;
/**
* 扩展1,后续接口会透传此字段
**/
private String ext1;
/**
* 入住时间段供应商单间房价总服务费
**/
private BigDecimal totalRateOldCgfwf;
/**
* 产品特性类型,3-限时抢购 4-钟点房 5-手机专享 6-铂涛产品,下单需提供入住人身份证
**/
private String productTypes;
/**
* 最少入住天数
**/
private Integer minDays;
/**
* 当前价格产品的真实供应商名称
**/
private String vendorName;
/**
* 供应商房型名称
**/
private String roomName;
/**
* 是否支持外宾入住
**/
private Boolean supportForeignGuests;
/**
* 产品名称
**/
private String rpName;
/**
* 适用人群信息
**/
private String guestMsg;
/**
* 每天价格数组
**/
private List<HotelShoppingPricePlanRoomRateNightlyBean> nightlyRates;
/**
* 预付规则
**/
private HotelShoppingPlanRatePrepayRuleBean prepayRule;
/**
* 预定最少数量
**/
private Integer minAmount;
/**
* 供应商id 即服务商总公司ID
**/
private String supplierId;
/**
* 最多提前预订小时数
**/
private Integer maxAdvHours;
/**
* 供应商代码 即服务商总公司代码
**/
private String supplierCode;
/**
* 房型ID,用于查询房型资料,和PricePlanRoomBean中roomId一直
**/
private String roomCode;
/**
* 接口来源,2000001表示账号所属SINGA 2000000或空表示本地 取值@see InterfacePlatEnum
**/
private String ratePlanFrom;
/**
* 当前价格查询所使用的接口平台账号,如果是自有价格,则为空
**/
private String jkShbh;
/**
* 预订规则
**/
private HotelShoppingPlanRateBookingRuleBean bookingRule;
/**
* 入住时间段内的单间销售价,单间成本价+单间加价
**/
private BigDecimal totalRate;
/**
* 房型信息的补充说明,展示在前端
**/
private String suffixName;
/**
* 平台酒店id
**/
private String ptJdid;
/**
* 供应商名称 即服务商总公司名称
**/
private String supplierName;
/**
* 是否需要提供入住人证件号码 1是 0或空表示不需要
**/
private String needIdNo;
/**
* 入住时间段内的单间总加价
**/
private BigDecimal totalJj;
/**
* 企业协议价或服务商协议价,1是服务商,2是企业协议价
**/
private Integer bussType;
/**
* 预付产品发票模式: Plat 平台开具发票;Hotel 酒店开具;为空,表示这个产品没有发票
**/
private String invoiceMode;
/**
* 入住时间段供应商首日房价
**/
private BigDecimal firstCostPrice;
/**
* 入住时间段首日销售房价
**/
private BigDecimal firstPrice;
/**
* 入住时间段内的单间成本价
**/
private BigDecimal totalRateOld;
/**
* 担保规则
**/
private HotelShoppingPlanRateGuaranteeRuleBean guaranteeRule;
/**
* 酒店特殊信息提示
**/
private HotelShoppingPlanRateHAvailPolicyBean havailPolicy;
/**
* 首日加价
**/
private BigDecimal firstJj;
/**
* 收费模式1按间夜 2按订单
**/
private String chargeMode;
/**
* 房间窗户情况:0 有窗 1 部分有窗 2 无窗
**/
private String window;
/**
* 货币
**/
private String currencyCode;
/**
* 最多预订房间数
**/
private Integer maxCheckinRooms;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelShoppingPricePlanRoomRateNightlyBean {
/**
* 当天日期
**/
private String date;
/**
* 加价
**/
private BigDecimal jj;
/**
* 采购服务费
**/
private BigDecimal cgfwf;
/**
* 销售价;成本价 + 加价
**/
private BigDecimal salePrice;
/**
* 供应商税后价
**/
private BigDecimal priceAfterTax;
/**
* 供应商税前价,该字段暂时未使用
**/
private BigDecimal priceBeforTax;
/**
* 税费
**/
private BigDecimal tax;
/**
* 早餐数量
**/
private Integer breakfastCount;
/**
* 库存状态。2--不可销售 1--可销售
**/
private String status;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HtOrderPriceInfoBean {
/**
* 房价
**/
private BigDecimal roomPrice;
/**
* 服务费
**/
private BigDecimal serviceCharge;
/**
* 明细ID
**/
private String priceID;
/**
* 日期
**/
private String day;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HtOrderPsgInfoBean {
/**
* 手机
**/
private String psgPhone;
/**
* 所在部门名称
**/
private String empDeptName;
/**
* 房间序号
**/
private String roomNo;
/**
* 入住人姓名
**/
private String psgName;
/**
* 员工工号
**/
private String empNo;
/**
* 证件号码
**/
private String idNo;
/**
* 所在部门编号
**/
private String empDeptid;
}
package org.dromara.common.ys.model.res.hotel.bean;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HtRefundPriceInfoBean {
/**
* 明细ID
**/
private String refundPriceID;
/**
* 房费
**/
private BigDecimal roomPrice;
/**
* 房间号
**/
private Integer num;
/**
* 日期
**/
private String day;
}
package org.dromara.common.ys.service;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.model.res.hotel.*;
import java.util.List;
/**
* @author wenhe
*/
public interface IHotelService {
/**
* 酒店详情
*
* @param userId 用户id
* @param model model
* @return 酒店详情
*/
HotelDetailModel hotelDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelDetailModel model);
/**
* 单个酒店询价
*
* @param userId 用户id
* @param model model
* @return 酒店详情
*/
HotelShoppingPricePlanModel hotelPricePlan(String userId, org.dromara.common.ys.model.req.hotel.HotelShoppingPricePlanModel model);
/**
* 酒店列表
*
* @param userId 用户id
* @param model model
* @return 酒店列表
*/
PageInfo<HotelOrderQueryListModel> hotelList(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryListModel model);
/**
* 酒店下单
*
* @param userId 用户id
* @param model model
* @return 酒店下单
*/
HotelOrderBookModel orderBook(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderBookModel model);
/**
* 酒店取消订单
*
* @param userId 用户id
* @param model model
* @return 酒店取消订单
*/
CancelOrderModel orderCancel(String userId, org.dromara.common.ys.model.req.hotel.CancelOrderModel model);
/**
* 酒店订单支付
*
* @param userId 用户id
* @param model model
* @return 酒店订单支付
*/
boolean orderPay(String userId, org.dromara.common.ys.model.req.hotel.PayOrderModel model);
/**
* 酒店订单详情
*
* @param userId 用户id
* @param model model
* @return 酒店订单详情
*/
HotelOrderQueryDetailModel hotelOrderDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryDetailModel model);
/**
* 酒店订单列表
*
* @param userId 用户id
* @param model model
* @return 酒店订单列表
*/
PageInfo<HotelOrderQueryListModel> orderList(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryListModel model);
/**
* 订单详情
*
* @param userId 用户id
* @param model model
* @return 订单详情
*/
List<HtOrderInfoModel> orderDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelQueryOrderModel model);
/**
* 订单退款详情
*
* @param userId 用户id
* @param model model
* @return 订单退款详情
*/
List<HtRefundInfoModel> orderRefundDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelQueryRefundOrderModel model);
/**
* 询价单保存
*
* @param userId 用户id
* @param model model
* @return 询价单保存
*/
HotelOrderXjdModel orderXjd(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderXjdModel model);
}
package org.dromara.common.ys.service.impl;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
import org.dromara.common.ys.Api;
import org.dromara.common.ys.common.ApiHttpResponse;
import org.dromara.common.ys.common.Code;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.enums.DomainEnum;
import org.dromara.common.ys.enums.hotel.HotelApiEnum;
import org.dromara.common.ys.model.req.hotel.HotelQueryOrderModel;
import org.dromara.common.ys.model.req.hotel.HotelQueryRefundOrderModel;
import org.dromara.common.ys.model.req.hotel.PayOrderModel;
import org.dromara.common.ys.model.res.hotel.*;
import org.dromara.common.ys.service.IHotelService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hzh
* @date 2024-11-20
* @desc 酒店相关接口
**/
@Service
public class HotelServiceImpl implements IHotelService {
@Override
public HotelDetailModel hotelDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelDetailModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.HOTEL_DETAIL.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), HotelDetailModel.class);
}
@Override
public HotelShoppingPricePlanModel hotelPricePlan(String userId, org.dromara.common.ys.model.req.hotel.HotelShoppingPricePlanModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.PRICE_PLAN.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), HotelShoppingPricePlanModel.class);
}
@Override
public PageInfo<HotelOrderQueryListModel> hotelList(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryListModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.QUERY_LIST.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
PageInfo pageInfo = JSON.parseObject(JSON.parseObject(res.getData()).getString("dataList"), PageInfo.class);
return PageInfo.builder().build()
.setCount(pageInfo.getCount())
.setMap(pageInfo.getMap())
.setPageNum(pageInfo.getPageNum())
.setPages(pageInfo.getPages())
.setTotal(pageInfo.getTotal())
.setList(JSON.parseArray(JSON.toJSONString(pageInfo.getList()), HotelOrderQueryListModel.class));
}
@Override
public HotelOrderBookModel orderBook(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderBookModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.BOOK.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), HotelOrderBookModel.class);
}
@Override
public CancelOrderModel orderCancel(String userId, org.dromara.common.ys.model.req.hotel.CancelOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.CANCEL_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), CancelOrderModel.class);
}
@Override
public boolean orderPay(String userId, PayOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.PAY_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return true;
}
@Override
public HotelOrderQueryDetailModel hotelOrderDetail(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryDetailModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.QUERY_DETAIL.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), HotelOrderQueryDetailModel.class);
}
@Override
public PageInfo<HotelOrderQueryListModel> orderList(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderQueryListModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.ORDER_QUERY_LIST.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
PageInfo pageInfo = JSON.parseObject(JSON.parseObject(res.getData()).getString("orderList"), PageInfo.class);
return PageInfo.builder().build()
.setCount(pageInfo.getCount())
.setMap(pageInfo.getMap())
.setPageNum(pageInfo.getPageNum())
.setPages(pageInfo.getPages())
.setTotal(pageInfo.getTotal())
.setList(JSON.parseArray(JSON.toJSONString(pageInfo.getList()), HotelOrderQueryListModel.class));
}
@Override
public List<HtOrderInfoModel> orderDetail(String userId, HotelQueryOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.QUERY_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseArray(JSON.parseObject(res.getData()).getString("orderGather"), HtOrderInfoModel.class);
}
@Override
public List<HtRefundInfoModel> orderRefundDetail(String userId, HotelQueryRefundOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.QUERY_REFUND_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseArray(JSON.parseObject(res.getData()).getString("orderGather"), HtRefundInfoModel.class);
}
@Override
public HotelOrderXjdModel orderXjd(String userId, org.dromara.common.ys.model.req.hotel.HotelOrderXjdModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
HotelApiEnum.XJD.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), HotelOrderXjdModel.class);
}
}
......@@ -4,4 +4,5 @@ org.dromara.common.ys.service.impl.InsuranceServiceImpl
org.dromara.common.ys.service.impl.OrgServiceImpl
org.dromara.common.ys.service.impl.TrainServiceImpl
org.dromara.common.ys.service.impl.VehiclesServiceImpl
org.dromara.common.ys.service.impl.HotelServiceImpl
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论