Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
4f435508
提交
4f435508
authored
1月 22, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
机票模块增加接口
上级
dacaecb5
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
277 行增加
和
15 行删除
+277
-15
QueryMoreCabinModel.java
...mara/common/ys/model/req/airport/QueryMoreCabinModel.java
+31
-0
QueryFlightMinPriceModel.java
...common/ys/model/res/airport/QueryFlightMinPriceModel.java
+145
-15
QueryMoreCabinModel.java
...mara/common/ys/model/res/airport/QueryMoreCabinModel.java
+54
-0
IAirportService.java
...n/java/org/dromara/common/ys/service/IAirportService.java
+9
-0
AirPortServiceImpl.java
...rg/dromara/common/ys/service/impl/AirPortServiceImpl.java
+16
-0
AirportController.java
.../dromara/server/controller/airport/AirportController.java
+22
-0
没有找到文件。
ruoyi-common/ruoyi-common-ys/src/main/java/org/dromara/common/ys/model/req/airport/QueryMoreCabinModel.java
0 → 100644
浏览文件 @
4f435508
package
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.ys.model.BaseModel
;
/**
* @author hzh
* @date 2024-10-18
* @desc 指定航班获取舱位价格(第二屏)
**/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
QueryMoreCabinModel
extends
BaseModel
{
/**
* 航班标识,查询航班时返回 ,
*/
private
String
cacheId
;
/**
* 航班号
*/
private
String
flightNo
;
/**
* 用于匹配差标的员工工号,如不传,以当前登录人工号进行匹配
*/
private
String
empNo
;
}
ruoyi-common/ruoyi-common-ys/src/main/java/org/dromara/common/ys/model/res/airport/QueryFlightMinPriceModel.java
浏览文件 @
4f435508
...
@@ -2,50 +2,180 @@ package org.dromara.common.ys.model.res.airport;
...
@@ -2,50 +2,180 @@ package org.dromara.common.ys.model.res.airport;
import
lombok.Data
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author hzh
* @author hzh
* @date 2024-10-21
* @date 2024-10-21
**/
**/
@Data
@Data
public
class
QueryFlightMinPriceModel
extends
QueryFlightModel
{
public
class
QueryFlightMinPriceModel
{
/**
/**
*
价格map
*
出发城市机场信息 {[0 起飞机场三字码,1 出发机场名称,2 起飞城市id ,3起飞城市名称]}
*/
*/
private
Map
<
String
,
Object
>
priceMap
;
private
List
<
List
<
Object
>>
deptAirport
;
/**
/**
*
机型map
*
查询耗时(毫秒)
*/
*/
private
Map
<
String
,
Object
>
planeMap
;
private
Integer
queryTimes
;
/**
/**
* 查询
耗时(毫秒)
* 查询
缓存key
*/
*/
private
Integer
queryTimes
;
private
String
queryCacheKey
;
/**
* 机型信息 {[0机型,1机型名称]}
*/
private
List
<
List
<
Object
>>
planes
;
/**
* 航司信息 {[0航司二字码,1航司名称,2航司logo]}
*/
private
List
<
List
<
Object
>>
airlines
;
/**
/**
*
七天特价
*
到达城市机场信息 {[0 到达机场三字码,1 到达机场名称,2 到达城市id,3 到达城市名称]}
*/
*/
private
List
<
WeekPrice
>
weekPrice
;
private
List
<
List
<
Object
>>
arrAirport
;
/**
* 航班舱位信息集合
*/
private
List
<
Flights
>
flights
;
/**
/**
* 全天最低价
* 全天最低价
*/
*/
private
DayMinPrice
dayMinPrice
;
private
DayMinPriceBean
dayMinPriceBean
;
/**
* 中转航班信息
*/
private
List
<
PlaneShoppingGnTransFerFlightBean
>
transFerFlightBeans
;
}
/**
* 航班信息
*/
@Data
class
Flights
{
/**
* 到达信息 [0 机场城市信息编号 int ,1 到达航站楼,2 到达日期 yyyy-MM-dd,3 到达时间 HH:mm]
*/
private
List
<
Object
>
arr
;
/**
* 航班信息[0 航司信息编号 int ,1 航班号,2 共享航班号, 3 飞行里程 int ,4 飞行时长 eg:12h30m,5 飞行时长(分钟) int eg:120 ,6 是否有餐食 0否 1是,7 经停次数 大于0时 代表需经停 int,8 机型编号 int ,9 航程类型 1 单程 2中转]
*/
private
List
<
Object
>
flight
;
/**
* 最低价销售信息 [0 当前航班最低销售价 Double,1 航班最低销售折扣 Double,2 销售服务费]
*/
private
List
<
Object
>
minPriceSale
;
/**
* 最低价信息 [0 当前航班最低价 Double,1 机场建设费 Double,2 燃油税 Double,3 航班最低折扣 Double,4 航班最低价舱位代码,5 航班最低价舱位名称,6 航班最低价舱位等级,7 最低价舱位等级名称,8 经济舱全价,9产品类型 (0特价 1普通 2代购 3协议 4折上折 5直减产品 6商务优享 7GP产品)
*/
private
List
<
Object
>
minPrice
;
/**
* 出发信息 [0 机场城市信息编号 int,1 起飞航站楼,2 起飞日期 yyyy-MM-dd,3 起飞时间 HH:mm] ,
*/
private
List
<
Object
>
dept
;
/**
* 美亚专用,扩展信息4
*/
private
Object
ext4
;
/**
* 美亚专用,扩展信息5
*/
private
Object
ext5
;
}
/**
* 当天最低价
*/
@Data
class
DayMinPriceBean
{
/**
* 价格id
*/
private
String
arriveTime
;
/**
* 航班号
*/
private
String
flightNo
;
/**
* 账单价
*/
private
BigDecimal
departTime
;
/**
* 舱位名称
*/
private
String
arriveDate
;
/**
/**
*
航班集合
*
舱位代码
*/
*/
private
Map
<
String
,
Object
>
flightMap
;
private
String
cabin
;
/**
* 舱位名称
*/
private
String
departDate
;
/**
* 舱位名称
*/
private
String
cabinName
;
}
/**
* 当天最低价
*/
@Data
class
PlaneShoppingGnTransFerFlightBean
{
/**
/**
*
航班标识
*
中转航班信息
*/
*/
private
String
cacheId
;
private
List
<
TransFerFlightInfo
>
transFerFlightInfos
;
/**
* 出发信息 [0 停留时长 eg 10h5m ,1 中转次数 int,2 总时长 eg 10h5m ,3 总价格 bigdecimal,4中转城市名称 5 供应商id 6 总基建 7总燃油] ,
*/
private
List
<
Object
>
transFerExt
;
/**
* 销售价
*/
private
BigDecimal
salePrice
;
/**
* 服务费
*/
private
BigDecimal
serviceFee
;
}
/**
* 中转航班信息
*/
@Data
class
TransFerFlightInfo
{
/**
* 航班信息[0 航司信息编号 int ,1 航班号,2 共享航班号, 3 飞行里程 int ,4 飞行时长 eg:12h30m,5 飞行时长(分钟) int eg:120 ,6 是否有餐食 0否 1是,7 经停次数 大于0时 代表需经停 int,8 机型信息下标 int 9]
*/
private
List
<
List
<
Object
>>
flight
;
/**
* 出发信息 [0 机场城市信息编号 int,1 起飞航站楼,2 起飞日期 yyyy-MM-dd,3 起飞时间 HH:mm]
*/
private
List
<
List
<
Object
>>
dept
;
/**
* 到达信息 [0 机场城市信息编号 int ,1 到达航站楼,2 到达日期 yyyy-MM-dd,3 到达时间 HH:mm]
*/
private
List
<
List
<
Object
>>
arr
;
/**
* 舱位信息 [0 舱位等级代码,1 舱位等级名称,2 舱位代码, 3 舱位名称,4 舱位座位数 5 Y舱价]
*/
private
List
<
List
<
Object
>>
cabin
;
}
}
ruoyi-common/ruoyi-common-ys/src/main/java/org/dromara/common/ys/model/res/airport/QueryMoreCabinModel.java
0 → 100644
浏览文件 @
4f435508
package
org
.
dromara
.
common
.
ys
.
model
.
res
.
airport
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author hzh
* @date 2024-10-21
**/
@Data
public
class
QueryMoreCabinModel
{
/**
* 航班所有价格集合,数据结构参考航班列表查询接口返回的价格集合
*/
private
Map
<
String
,
Object
>
priceMap
;
/**
* 航班所有舱位集合,数据结构参考航班列表查询接口返回的航班的舱位集合
*/
private
Map
<
String
,
Object
>
cabinMap
;
/**
* 航班所有舱位类型集合,数据结构参考航班列表查询接口返回的航班的舱位类型集合
*/
private
List
<
CabinType
>
cabinTypeList
;
/**
* 舱位等级集合
*/
@Data
class
CabinType
{
/**
* 舱位等级名称
*/
private
String
cabinTypeName
;
/**
* 舱位id集合
*/
private
List
<
String
>
cabinList
;
/**
* 舱位等级
*/
private
String
cabinType
;
}
}
ruoyi-common/ruoyi-common-ys/src/main/java/org/dromara/common/ys/service/IAirportService.java
浏览文件 @
4f435508
...
@@ -32,6 +32,15 @@ public interface IAirportService {
...
@@ -32,6 +32,15 @@ public interface IAirportService {
*/
*/
QueryFlightMinPriceModel
queryFlightMinPrice
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryFlightMinPriceModel
model
);
QueryFlightMinPriceModel
queryFlightMinPrice
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryFlightMinPriceModel
model
);
/**
* 指定航班获取舱位价格(第二屏)
*
* @param userId 用户id
* @param model 查询参数
* @return 查询结果
*/
QueryMoreCabinModel
queryMoreCabin
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryMoreCabinModel
model
);
/**
/**
* 创建订单
* 创建订单
*
*
...
...
ruoyi-common/ruoyi-common-ys/src/main/java/org/dromara/common/ys/service/impl/AirPortServiceImpl.java
浏览文件 @
4f435508
...
@@ -58,6 +58,22 @@ public class AirPortServiceImpl implements IAirportService {
...
@@ -58,6 +58,22 @@ public class AirPortServiceImpl implements IAirportService {
return
JSON
.
parseObject
(
res
.
getData
(),
QueryFlightMinPriceModel
.
class
);
return
JSON
.
parseObject
(
res
.
getData
(),
QueryFlightMinPriceModel
.
class
);
}
}
@Override
public
QueryMoreCabinModel
queryMoreCabin
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryMoreCabinModel
model
)
{
ApiHttpResponse
res
=
Api
.
v1
(
RequestMethodEnum
.
POST
,
DomainEnum
.
TEST
.
getDomain
(),
AirportApiEnum
.
QUERY_MORE_CABIN
.
getUrl
(),
userId
,
null
,
JSON
.
toJSONString
(
model
)
);
if
(!
CharSequenceUtil
.
equals
(
res
.
getErrCode
(),
Code
.
SUCCESS
.
getCode
()))
{
throw
new
RuntimeException
(
res
.
getTips
());
}
return
JSON
.
parseObject
(
res
.
getData
(),
QueryMoreCabinModel
.
class
);
}
@Override
@Override
public
List
<
BookOrderModel
>
bookOrder
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
bookOrder
.
BookOrderModel
model
)
{
public
List
<
BookOrderModel
>
bookOrder
(
String
userId
,
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
bookOrder
.
BookOrderModel
model
)
{
ApiHttpResponse
res
=
Api
.
v1
(
ApiHttpResponse
res
=
Api
.
v1
(
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/airport/AirportController.java
浏览文件 @
4f435508
...
@@ -76,6 +76,28 @@ public class AirportController extends BaseController {
...
@@ -76,6 +76,28 @@ public class AirportController extends BaseController {
return
R
.
ok
(
airPortService
.
queryFlight
(
getUserId
(),
model
));
return
R
.
ok
(
airPortService
.
queryFlight
(
getUserId
(),
model
));
}
}
/**
* 航班最低价查询(第一屏)
*/
@GlobalTransactional
(
timeoutMills
=
600000
)
@GetMapping
(
"queryFlightMinPrice"
)
public
R
<
QueryFlightMinPriceModel
>
queryFlightMinPrice
(
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryFlightMinPriceModel
model
)
{
List
<
AirportModel
>
airPortList
=
getAirPortList
();
model
.
setArriveAirport
(
getCode
(
model
.
getArriveAirport
(),
airPortList
));
model
.
setDepartAirport
(
getCode
(
model
.
getDepartAirport
(),
airPortList
));
model
.
setTripType
(
TripType
.
PUBLIC
.
getCode
());
return
R
.
ok
(
airPortService
.
queryFlightMinPrice
(
getUserId
(),
model
));
}
/**
* 指定航班获取舱位价格(第二屏)
*/
@GlobalTransactional
(
timeoutMills
=
600000
)
@GetMapping
(
"queryMoreCabin"
)
public
R
<
QueryMoreCabinModel
>
queryMoreCabin
(
org
.
dromara
.
common
.
ys
.
model
.
req
.
airport
.
QueryMoreCabinModel
model
)
{
return
R
.
ok
(
airPortService
.
queryMoreCabin
(
getUserId
(),
model
));
}
private
String
getCode
(
String
cityName
,
List
<
AirportModel
>
airPortList
)
{
private
String
getCode
(
String
cityName
,
List
<
AirportModel
>
airPortList
)
{
return
airPortList
.
stream
().
filter
(
item
->
StringUtils
.
equals
(
cityName
,
item
.
getCityName
()))
return
airPortList
.
stream
().
filter
(
item
->
StringUtils
.
equals
(
cityName
,
item
.
getCityName
()))
.
sorted
((
o1
,
o2
)
->
{
.
sorted
((
o1
,
o2
)
->
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论