Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
2c7c424b
提交
2c7c424b
authored
12月 09, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
订单回调功能实现
上级
7b568604
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
86 行增加
和
9 行删除
+86
-9
RemoteYsOrderService.java
...ain/java/org/dromara/server/api/RemoteYsOrderService.java
+8
-0
pom.xml
ruoyi-modules/ruoyi-order/pom.xml
+1
-1
WeChatOrderPayServiceImpl.java
...dromara/order/service/impl/WeChatOrderPayServiceImpl.java
+7
-1
AbstractBaseService.java
...ain/java/org/dromara/server/base/AbstractBaseService.java
+8
-0
IBaseService.java
...r/src/main/java/org/dromara/server/base/IBaseService.java
+8
-1
RemoteYsOrderServiceImpl.java
...va/org/dromara/server/dubbo/RemoteYsOrderServiceImpl.java
+54
-6
没有找到文件。
ruoyi-api/ruoyi-api-server/src/main/java/org/dromara/server/api/RemoteYsOrderService.java
浏览文件 @
2c7c424b
...
...
@@ -35,4 +35,12 @@ public interface RemoteYsOrderService {
*/
void
updateHotelOrder
();
/**
* 支付成功后调用
*
* @param orderType 订单类型
* @param orderNo 订单号
*/
void
payed
(
String
orderType
,
String
orderNo
);
}
ruoyi-modules/ruoyi-order/pom.xml
浏览文件 @
2c7c424b
...
...
@@ -79,7 +79,7 @@
<dependency>
<groupId>
org.dromara
</groupId>
<artifactId>
ruoyi-
common-ys
</artifactId>
<artifactId>
ruoyi-
api-server
</artifactId>
</dependency>
<dependency>
...
...
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/WeChatOrderPayServiceImpl.java
浏览文件 @
2c7c424b
...
...
@@ -11,6 +11,7 @@ import io.seata.spring.annotation.GlobalTransactional;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.dromara.order.api.enums.OrderStatus
;
import
org.dromara.order.config.WechatPayConfiguration
;
import
org.dromara.order.domain.bo.OrderBo
;
...
...
@@ -20,6 +21,7 @@ import org.dromara.order.domain.vo.OrderVo;
import
org.dromara.order.service.IOrderPayService
;
import
org.dromara.order.service.IOrderService
;
import
org.dromara.order.service.IOrderTradeService
;
import
org.dromara.server.api.RemoteYsOrderService
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
...
...
@@ -40,6 +42,8 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
private
final
WechatPayConfiguration
config
;
private
final
IOrderTradeService
orderTradeService
;
private
final
IOrderService
orderService
;
@DubboReference
private
final
RemoteYsOrderService
ysOrderService
;
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
@Override
...
...
@@ -95,8 +99,10 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
order
.
setPayTime
(
new
Date
());
order
.
setStatus
(
OrderStatus
.
PAYED
.
getCode
());
orderService
.
updateByBo
(
BeanUtil
.
copyProperties
(
order
,
OrderBo
.
class
));
}
//跟新云上相关信息
ysOrderService
.
payed
(
order
.
getOrderType
(),
order
.
getOrderNo
());
}
return
true
;
}
catch
(
Exception
e
)
{
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/base/AbstractBaseService.java
浏览文件 @
2c7c424b
package
org
.
dromara
.
server
.
base
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -39,6 +40,13 @@ public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B,
return
mapper
().
selectVoList
(
lqw
);
}
@Override
public
V
queryOne
(
B
bo
)
{
LambdaQueryWrapper
<
T
>
lqw
=
buildQueryWrapper
(
bo
);
List
<
V
>
list
=
mapper
().
selectVoList
(
lqw
);
return
CollectionUtil
.
isEmpty
(
list
)
?
null
:
list
.
get
(
0
);
}
@Override
public
Boolean
insertByBo
(
B
bo
)
{
Class
<
T
>
clazz
=
(
Class
<
T
>)
GenericsUtils
.
getSuperClassGenricType
(
this
.
getClass
(),
2
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/base/IBaseService.java
浏览文件 @
2c7c424b
...
...
@@ -34,10 +34,17 @@ public interface IBaseService<V, B, T> {
* 查询符合条件的列表
*
* @param bo 查询条件
* @return
雷彪
* @return
列表
*/
List
<
V
>
queryList
(
B
bo
);
/**
* 查询符合条件的对象
* @param bo 查询条件
* @return 对象
*/
V
queryOne
(
B
bo
);
/**
* 新增
*
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/dubbo/RemoteYsOrderServiceImpl.java
浏览文件 @
2c7c424b
...
...
@@ -2,9 +2,19 @@ package org.dromara.server.dubbo;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.dubbo.config.annotation.DubboService
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.ys.constant.airport.OrderStatus
;
import
org.dromara.common.ys.constant.train.RefundOrderStatus
;
import
org.dromara.common.ys.model.req.airport.OrderConfirmModel
;
import
org.dromara.common.ys.model.req.hotel.PayOrderModel
;
import
org.dromara.common.ys.model.req.train.ConfirmOrderModel
;
import
org.dromara.common.ys.service.IAirportService
;
import
org.dromara.common.ys.service.IHotelService
;
import
org.dromara.common.ys.service.ITrainService
;
import
org.dromara.common.ys.service.IVehiclesService
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.api.RemoteYsOrderService
;
import
org.dromara.server.domain.bo.*
;
import
org.dromara.server.domain.vo.*
;
...
...
@@ -13,6 +23,7 @@ import org.springframework.stereotype.Service;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -20,6 +31,7 @@ import java.util.stream.Collectors;
* @date 2024-11-18
* @desc 订单相关服务
**/
@Slf4j
@RequiredArgsConstructor
@Service
@DubboService
...
...
@@ -31,6 +43,10 @@ public class RemoteYsOrderServiceImpl implements RemoteYsOrderService {
private
final
IOrderVehiclesService
orderVehiclesService
;
private
final
IOrderHotelService
orderHotelService
;
private
final
IOrderAirportRefundService
orderAirportRefundService
;
private
final
IAirportService
airportService
;
private
final
ITrainService
trainService
;
private
final
IVehiclesService
vehiclesService
;
private
final
IHotelService
hotelService
;
/**
...
...
@@ -123,15 +139,47 @@ public class RemoteYsOrderServiceImpl implements RemoteYsOrderService {
/**
* 不需要更新的机票订单退款状态
*/
private
static
final
List
<
String
>
AIRPORT_REFUND_ORDER_STATUS_LIST
=
List
.
of
(
org
.
dromara
.
common
.
ys
.
constant
.
airport
.
RefundOrderStatus
.
REFUNDING
.
getCode
()
);
private
static
final
List
<
String
>
AIRPORT_REFUND_ORDER_STATUS_LIST
=
List
.
of
(
org
.
dromara
.
common
.
ys
.
constant
.
airport
.
RefundOrderStatus
.
REFUNDING
.
getCode
());
@Override
public
void
updateAirportRefundOrder
()
{
List
<
OrderAirportRefundVo
>
orderList
=
orderAirportRefundService
.
queryList
(
new
OrderAirportRefundBo
());
orderAirportRefundService
.
updateOrderInfo
(
orderList
.
stream
().
filter
(
item
->
!
AIRPORT_REFUND_ORDER_STATUS_LIST
.
contains
(
item
.
getRefundOrderStatus
())).
map
(
OrderAirportRefundVo:
:
getRefundNo
).
collect
(
Collectors
.
toList
())
);
orderAirportRefundService
.
updateOrderInfo
(
orderList
.
stream
().
filter
(
item
->
!
AIRPORT_REFUND_ORDER_STATUS_LIST
.
contains
(
item
.
getRefundOrderStatus
())).
map
(
OrderAirportRefundVo:
:
getRefundNo
).
collect
(
Collectors
.
toList
()));
}
/**
* 支付成功后确认出票
*
* @param orderType 订单类型
* @param orderNo 订单号
*/
@Override
public
void
payed
(
String
orderType
,
String
orderNo
)
{
log
.
info
(
"支付成功后确认出票,orderType:{},orderNo:{}"
,
orderType
,
orderNo
);
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
AIRPORT
.
getType
()))
{
//飞机票
Optional
.
ofNullable
(
orderAirportService
.
queryOne
(
new
OrderAirportBo
().
setOrderNo
(
orderNo
))).
ifPresent
(
vo
->
{
//确认出票
airportService
.
confirmOrder
(
vo
.
getPersonCode
(),
new
OrderConfirmModel
().
setOrderNo
(
orderNo
).
setAutoDraw
(
1
));
orderAirportService
.
updateOrderInfo
(
List
.
of
(
orderNo
));
});
}
else
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
TRAIN
.
getType
()))
{
//火车票
Optional
.
ofNullable
(
orderTrainService
.
queryOne
(
new
OrderTrainBo
().
setOrderNo
(
orderNo
))).
ifPresent
(
vo
->
{
//确认出票
trainService
.
confirmOrder
(
vo
.
getPersonCode
(),
new
ConfirmOrderModel
().
setOrderNo
(
orderNo
));
orderTrainService
.
updateOrderInfo
(
List
.
of
(
orderNo
));
});
}
else
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
CAR
.
getType
()))
{
}
else
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
HOTEL
.
getType
()))
{
//酒店
Optional
.
ofNullable
(
orderHotelService
.
queryOne
(
new
OrderHotelBo
().
setOrderNo
(
orderNo
))).
ifPresent
(
vo
->
{
//确认出票
hotelService
.
orderPay
(
vo
.
getPersonCode
(),
new
PayOrderModel
().
setOrderNo
(
orderNo
));
orderHotelService
.
updateOrderInfo
(
List
.
of
(
orderNo
));
});
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论