📄 itravelservice.java
字号:
package net.seproject.ws.travel;
/**
* 综合查询/预订/日程安排服务
*
* @author shufang
*
*/
public interface ITravelService {
/**
* 查询并生成可行的“机票+客房+就餐”出行方案
*
* <br/><br/>
* 根据若干条件查询已发布的“酒店/机票/餐饮”服务, 并计算生成可行的“机票+客房+就餐”出行方案.<br/>
*
* 具体要求:<br/>
* (1) 从注册中心获取已发布的“酒店/机票/餐饮”Web服务列表,得到各个Web服务的WSDL或URL,动态绑定和访问这些Web服务<br/>
* (2) 在“酒店/机票/餐饮”Web服务上调用regUser()接口为当前用户注册一个帐号(使用输入参数username作为帐号名称和密码)<br/>
* (3) 查询时,首先在可用的Web服务上查询某日(startDate)从城市A(fromCity)飞抵城市B(toCity)的航班机票情况<br/>
* (4) 然后根据航班到达时间和其他条件分别查询城市B(toCity)的酒店客房和餐厅餐位情况, 并计算生成各种可行的“机票+客房+就餐”出行方案<br/>
* (5) 返回结果是各种可行的“机票+客房+就餐”出行方案的数组。作为可选要求,可按照最节省(即,机票+住宿+就餐三项的消费总额最少)方式排序。<br/>
*
* <br/>
* 注1:仅考虑出发城市(fromCity)和到达城市(toCity)之间有直飞航班的情况.<br/>
* 注2:仅查询截至"出发日期/时间"当天(即到晚上12:00为止)的航班/机票信息. <br/>
* 注3:计算消费总额时,按折扣后的价格计算,由于餐厅预订服务只有折扣信息,所以我们假设就餐消费为1000元/人,在此基础上打折。<br/>
* 注4:应分别缓存每个用户的查询结果,直至该用户执行新的查询(可用新的查询结果覆盖旧的结果)<br/>
* <br/>
*
* @param username 用户名称, 不应为空
* @param fromCity 出发城市名称, 精确匹配
* @param toCity 到达城市名称, 精确匹配
* @param startDate 出发日期/时间, 格式: yyyy-MM-dd hh:mm
* @param flightCabin 指定航班舱段(0: 任意; 1: 头等舱; 2: 商务舱; 3: 经济舱, 其他: 无效)
* @param hotelCategory 指定客房类别(0: 任意; 1: 高级套间; 2: 商务间; 3: 标准间, 其他: 无效)
* @param restaCategory 指定餐位类别(0: 任意; 1~3有效, 各小组自行定义含义, 其他: 无效)
* @param numbers 准备预订的数量( >0指预订的数量,其他: 无效)
*
* @return 各种可行的“机票+客房+就餐”出行方案的数组; 如果没有任何符合条件的信息,则返回null(空值).
*
* @see net.seproject.ws.travel.Plan
* @see #reserve(String, String, int)
*
*/
public Plan[] search( String username,
String fromCity,
String toCity,
String startDate,
int flightCabin,
int hotelCategory,
int restaCategory,
int numbers
);
/**
* 预订
*
* <br/><br/>
* 按照该用户查询得到的某个“机票+客房+就餐”出行方案,在指定的Web服务上预订相应的机票/客房/餐位.<br/>
* <br/>
* 由于每个出行方案不但包含了“机票+客房+餐位”信息,还指明了这些信息是从哪个Web服务获取的,<br/>
* 这个方法就是调用那些Web服务的"预订"(reserve)接口分别完成预订。<br/>
* <br/>
*
* @param username 用户名称, 不应为空
* @param planId 出行方案号, 即Plan.id字段
* @param numbers 准备预订的数量( >0指预订的数量,其他: 无效).
*
* @return 如果预订成功, 返回"机票+客房+餐位"三种服务的订单号(字串格式,用';'分割), 否则, 返回null(空值). 如果其中某个订单没有成功,则那个订单号是空字串。
*
* @see #search(String, String, String, String, int, int, int, int)
*
*/
public String reserve( String username, String planId, int numbers );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -