Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
6668cd4a
提交
6668cd4a
authored
12月 06, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
下单功能实现
上级
414b3c1b
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
221 行增加
和
1 行删除
+221
-1
FeeType.java
...er/src/main/java/org/dromara/order/api/enums/FeeType.java
+8
-0
OrderType.java
.../src/main/java/org/dromara/order/api/enums/OrderType.java
+9
-0
OrderController.java
...n/java/org/dromara/server/controller/OrderController.java
+34
-0
OrderPayVo.java
...rc/main/java/org/dromara/server/domain/vo/OrderPayVo.java
+26
-0
AirportOrderStrategy.java
...org/dromara/server/service/impl/AirportOrderStrategy.java
+1
-1
CarOrderStrategy.java
...ava/org/dromara/server/service/impl/CarOrderStrategy.java
+49
-0
HotelOrderStrategy.java
...a/org/dromara/server/service/impl/HotelOrderStrategy.java
+44
-0
TrainOrderStrategy.java
...a/org/dromara/server/service/impl/TrainOrderStrategy.java
+50
-0
没有找到文件。
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/enums/FeeType.java
浏览文件 @
6668cd4a
...
@@ -19,6 +19,14 @@ public enum FeeType {
...
@@ -19,6 +19,14 @@ public enum FeeType {
CLOUD_SERVICE_FEE
(
"CLOUD_SERVICE_FEE"
,
"云上服务费"
),
CLOUD_SERVICE_FEE
(
"CLOUD_SERVICE_FEE"
,
"云上服务费"
),
//飞机票费
//飞机票费
AIRPLANE_TICKET_FEE
(
"AIRPLANE_TICKET_FEE"
,
"飞机票费"
),
AIRPLANE_TICKET_FEE
(
"AIRPLANE_TICKET_FEE"
,
"飞机票费"
),
//火车票费
RAIL_TICKET_FEE
(
"RAIL_TICKET_FEE"
,
"火车票费"
),
//用车费
CAR_FEE
(
"CAR_FEE"
,
"用车费"
),
//用车罚金
CAR_FINE
(
"CAR_FINE"
,
"用车罚金"
),
//酒店费
HOTEL_FEE
(
"HOTEL_FEE"
,
"酒店费"
),
//服务费
//服务费
SERVICE_FEE
(
"SERVICE_FEE"
,
"服务费"
);
SERVICE_FEE
(
"SERVICE_FEE"
,
"服务费"
);
...
...
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/enums/OrderType.java
浏览文件 @
6668cd4a
...
@@ -19,4 +19,13 @@ public enum OrderType {
...
@@ -19,4 +19,13 @@ public enum OrderType {
private
final
String
type
;
private
final
String
type
;
private
final
String
desc
;
private
final
String
desc
;
public
static
OrderType
getEnum
(
String
type
)
{
for
(
OrderType
orderType
:
values
())
{
if
(
orderType
.
getType
().
equals
(
type
))
{
return
orderType
;
}
}
throw
new
RuntimeException
(
"不存在该类型"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/OrderController.java
0 → 100644
浏览文件 @
6668cd4a
package
org
.
dromara
.
server
.
controller
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.vo.OrderPayVo
;
import
org.dromara.server.service.IPayOrderService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author hzh
* @date 2024-12-06
**/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/order"
)
public
class
OrderController
{
private
IPayOrderService
service
;
/**
* 下单支付接口
*/
@PostMapping
(
"/pay"
)
public
R
<
Object
>
pay
(
@Validated
OrderPayVo
vo
)
{
OrderType
ot
=
OrderType
.
getEnum
(
vo
.
getOrderType
());
return
R
.
ok
(
service
.
createOrder
(
vo
.
getOrderNo
(),
ot
));
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/OrderPayVo.java
0 → 100644
浏览文件 @
6668cd4a
package
org
.
dromara
.
server
.
domain
.
vo
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
/**
* @author hzh
* @date 2024-12-06
* @desc TODO
**/
@Data
public
class
OrderPayVo
{
/**
* 订单号
*/
@NotNull
(
message
=
"订单号不能为空"
)
private
String
orderNo
;
/**
* 订单类型
*/
@NotNull
(
message
=
"订单类型不能为空"
)
private
String
orderType
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/AirportOrderStrategy.java
浏览文件 @
6668cd4a
...
@@ -41,7 +41,7 @@ public class AirportOrderStrategy implements IOrderStrategy {
...
@@ -41,7 +41,7 @@ public class AirportOrderStrategy implements IOrderStrategy {
//燃油费
//燃油费
RemoteSaveOrder
.
Fee
fuelFee
=
new
RemoteSaveOrder
.
Fee
()
RemoteSaveOrder
.
Fee
fuelFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"燃油费"
)
.
setFeeDesc
(
"燃油费"
)
.
setFeeAmount
(
detail
.
get
InsureAmount
())
.
setFeeAmount
(
detail
.
get
Tax
())
.
setFeeType
(
FeeType
.
FUEL_FEE
);
.
setFeeType
(
FeeType
.
FUEL_FEE
);
//飞机票费
//飞机票费
RemoteSaveOrder
.
Fee
planeTicket
=
new
RemoteSaveOrder
.
Fee
()
RemoteSaveOrder
.
Fee
planeTicket
=
new
RemoteSaveOrder
.
Fee
()
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/CarOrderStrategy.java
0 → 100644
浏览文件 @
6668cd4a
package
org
.
dromara
.
server
.
service
.
impl
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.ys.model.req.vehicles.OrderDetailModel
;
import
org.dromara.common.ys.service.IVehiclesService
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
import
org.dromara.order.api.enums.FeeType
;
import
org.dromara.server.service.IOrderStrategy
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* 用车订单策略
*
* @author hzh
* @date 2024-12-06
**/
@Slf4j
@Service
(
"CAR"
+
IOrderStrategy
.
BASE_NAME
)
@RequiredArgsConstructor
public
class
CarOrderStrategy
implements
IOrderStrategy
{
private
IVehiclesService
vehiclesService
;
@Override
public
RemoteSaveOrder
createOrder
(
String
orderNo
)
{
org
.
dromara
.
common
.
ys
.
model
.
res
.
vehicles
.
OrderDetailModel
detail
=
vehiclesService
.
detail
(
LoginHelper
.
getUserNo
(),
new
OrderDetailModel
().
setOrderNo
(
orderNo
));
// 罚金
RemoteSaveOrder
.
Fee
fineFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"罚金"
)
.
setFeeAmount
(
detail
.
getFine
())
.
setFeeType
(
FeeType
.
CAR_FINE
);
//服务费
RemoteSaveOrder
.
Fee
serviceFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"服务费"
)
.
setFeeAmount
(
detail
.
getServiceFee
())
.
setFeeType
(
FeeType
.
CLOUD_SERVICE_FEE
);
//火车票费
RemoteSaveOrder
.
Fee
carFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"用车费"
)
.
setFeeAmount
(
detail
.
getServiceFee
())
.
setFeeType
(
FeeType
.
CAR_FEE
);
return
new
RemoteSaveOrder
()
.
setFeeList
(
List
.
of
(
fineFee
,
serviceFee
,
carFee
));
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/HotelOrderStrategy.java
0 → 100644
浏览文件 @
6668cd4a
package
org
.
dromara
.
server
.
service
.
impl
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.ys.model.res.hotel.HotelOrderQueryDetailModel
;
import
org.dromara.common.ys.service.IHotelService
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
import
org.dromara.order.api.enums.FeeType
;
import
org.dromara.server.service.IOrderStrategy
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* 酒店订单策略
*
* @author hzh
* @date 2024-12-06
**/
@Slf4j
@Service
(
"HOTEL"
+
IOrderStrategy
.
BASE_NAME
)
@RequiredArgsConstructor
public
class
HotelOrderStrategy
implements
IOrderStrategy
{
private
IHotelService
hotelService
;
@Override
public
RemoteSaveOrder
createOrder
(
String
orderNo
)
{
HotelOrderQueryDetailModel
detail
=
hotelService
.
hotelOrderDetail
(
LoginHelper
.
getUserNo
(),
new
org
.
dromara
.
common
.
ys
.
model
.
req
.
hotel
.
HotelOrderQueryDetailModel
().
setOrderNo
(
orderNo
));
// 保险金额
RemoteSaveOrder
.
Fee
hotelFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"房费"
)
.
setFeeAmount
(
detail
.
getSalePrice
())
.
setFeeType
(
FeeType
.
INSURANCE_FEE
);
//服务费
RemoteSaveOrder
.
Fee
serviceFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"服务费"
)
.
setFeeAmount
(
detail
.
getServiceFee
())
.
setFeeType
(
FeeType
.
CLOUD_SERVICE_FEE
);
return
new
RemoteSaveOrder
()
.
setFeeList
(
List
.
of
(
hotelFee
,
serviceFee
));
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/TrainOrderStrategy.java
0 → 100644
浏览文件 @
6668cd4a
package
org
.
dromara
.
server
.
service
.
impl
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.ys.model.req.train.OrderQueryModel
;
import
org.dromara.common.ys.model.res.train.OrderInfoModel
;
import
org.dromara.common.ys.service.ITrainService
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
import
org.dromara.order.api.enums.FeeType
;
import
org.dromara.server.service.IOrderStrategy
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* 火车票订单策略
*
* @author hzh
* @date 2024-12-06
**/
@Slf4j
@Service
(
"TRAIN"
+
IOrderStrategy
.
BASE_NAME
)
@RequiredArgsConstructor
public
class
TrainOrderStrategy
implements
IOrderStrategy
{
private
ITrainService
trainService
;
@Override
public
RemoteSaveOrder
createOrder
(
String
orderNo
)
{
OrderInfoModel
detail
=
trainService
.
detail
(
LoginHelper
.
getUserNo
(),
new
OrderQueryModel
().
setOrderNO
(
orderNo
));
// 保险金额
RemoteSaveOrder
.
Fee
insuranceFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"保险费"
)
.
setFeeAmount
(
detail
.
getInsureAmount
())
.
setFeeType
(
FeeType
.
HOTEL_FEE
);
//服务费
RemoteSaveOrder
.
Fee
serviceFee
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"服务费"
)
.
setFeeAmount
(
detail
.
getServiceChargePrice
())
.
setFeeType
(
FeeType
.
CLOUD_SERVICE_FEE
);
//火车票费
RemoteSaveOrder
.
Fee
railTicket
=
new
RemoteSaveOrder
.
Fee
()
.
setFeeDesc
(
"火车票费"
)
.
setFeeAmount
(
detail
.
getTicketPrice
())
.
setFeeType
(
FeeType
.
RAIL_TICKET_FEE
);
return
new
RemoteSaveOrder
()
.
setFeeList
(
List
.
of
(
insuranceFee
,
serviceFee
,
railTicket
));
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论