Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
5d940315
提交
5d940315
authored
4月 17, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
火车票改签部分功能实现
上级
7c3ac6ae
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
189 行增加
和
21 行删除
+189
-21
OrderTrainChange.java
...main/java/org/dromara/server/domain/OrderTrainChange.java
+7
-2
OrderTrainChangeBusinessInfo.java
...g/dromara/server/domain/OrderTrainChangeBusinessInfo.java
+2
-0
OrderTrainChangePayInfo.java
...va/org/dromara/server/domain/OrderTrainChangePayInfo.java
+2
-0
OrderTrainChangeTicketInfo.java
...org/dromara/server/domain/OrderTrainChangeTicketInfo.java
+2
-0
OrderTrainChangeBo.java
...java/org/dromara/server/domain/bo/OrderTrainChangeBo.java
+2
-3
IOrderTrainChangeService.java
.../org/dromara/server/service/IOrderTrainChangeService.java
+17
-4
OrderTrainChangeServiceImpl.java
...mara/server/service/impl/OrderTrainChangeServiceImpl.java
+157
-12
没有找到文件。
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/OrderTrainChange.java
浏览文件 @
5d940315
...
...
@@ -29,9 +29,9 @@ public class OrderTrainChange extends TenantEntity {
private
Long
id
;
/**
*
订单id
*
人员code
*/
private
Long
orderId
;
private
String
personCode
;
/**
* 改签编号
...
...
@@ -98,6 +98,11 @@ public class OrderTrainChange extends TenantEntity {
*/
private
String
newFromStationName
;
/**
* 改签订单状态
*/
private
String
changeStatus
;
/**
* 改签订单状态名称
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/OrderTrainChangeBusinessInfo.java
浏览文件 @
5d940315
package
org
.
dromara
.
server
.
domain
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
...
...
@@ -14,6 +15,7 @@ import java.io.Serial;
* @date 2025-04-16
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"biz_order_train_change_business_info"
)
public
class
OrderTrainChangeBusinessInfo
extends
TenantEntity
{
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/OrderTrainChangePayInfo.java
浏览文件 @
5d940315
package
org
.
dromara
.
server
.
domain
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
...
...
@@ -15,6 +16,7 @@ import java.io.Serial;
* @date 2025-04-16
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"biz_order_train_change_pay_info"
)
public
class
OrderTrainChangePayInfo
extends
TenantEntity
{
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/OrderTrainChangeTicketInfo.java
浏览文件 @
5d940315
package
org
.
dromara
.
server
.
domain
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
...
...
@@ -15,6 +16,7 @@ import java.io.Serial;
* @date 2025-04-16
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"biz_order_train_change_ticket_info"
)
public
class
OrderTrainChangeTicketInfo
extends
TenantEntity
{
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/bo/OrderTrainChangeBo.java
浏览文件 @
5d940315
...
...
@@ -28,10 +28,9 @@ public class OrderTrainChangeBo extends BaseEntity {
private
Long
id
;
/**
*
订单id
*
人员code
*/
@NotNull
(
message
=
"订单id不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Long
orderId
;
private
String
personCode
;
/**
* 改签编号
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/IOrderTrainChangeService.java
浏览文件 @
5d940315
package
org
.
dromara
.
server
.
service
;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.server.domain.OrderTrainChange
;
import
org.dromara.server.domain.vo.OrderTrainChangeVo
;
import
org.dromara.server.domain.bo.OrderTrainChangeBo
;
import
org.dromara.server.domain.OrderTrainChange
;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.server.domain.vo.OrderTrainChangeVo
;
import
java.util.Collection
;
import
java.util.List
;
/**
...
...
@@ -17,5 +15,20 @@ import java.util.List;
*/
public
interface
IOrderTrainChangeService
extends
IBaseService
<
OrderTrainChangeVo
,
OrderTrainChangeBo
,
OrderTrainChange
>{
/**
* 批量保存订单
*
* @param userId 用户id
* @param changeNoList 订单号列表
*/
void
batchSaveOrder
(
String
userId
,
List
<
String
>
changeNoList
);
/**
* 更新火车票改签信息
*
* @param changeNoList 订单号列表
*/
void
updateOrderInfo
(
List
<
String
>
changeNoList
);
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/OrderTrainChangeServiceImpl.java
浏览文件 @
5d940315
package
org
.
dromara
.
server
.
service
.
impl
;
import
org.dromara.common.core.utils.MapstructUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.mybatis.core.page.PageQuery
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.nacos.common.utils.CollectionUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.ys.common.PageInfo
;
import
org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean
;
import
org.dromara.common.ys.model.res.train.TrChangeInfoBeanModel
;
import
org.dromara.common.ys.model.res.train.TrainChangeQueryChangeListApiBeanModel
;
import
org.dromara.common.ys.model.res.train.bean.BusinessInfoBean
;
import
org.dromara.common.ys.model.res.train.bean.TrChangeTicketInfoBean
;
import
org.dromara.common.ys.service.ITrainService
;
import
org.dromara.server.domain.*
;
import
org.dromara.server.domain.bo.OrderTrainChangeBo
;
import
org.dromara.server.domain.vo.OrderTrainChangeVo
;
import
org.dromara.server.domain.OrderTrainChange
;
import
org.dromara.server.mapper.OrderTrainChangeMapper
;
import
org.dromara.server.mapper.*
;
import
org.dromara.server.service.IOrderTrainChangeService
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Collection
;
import
java.util.Objects
;
import
java.util.concurrent.ScheduledExecutorService
;
/**
* 火车票改签订单Service业务层处理
...
...
@@ -32,6 +39,12 @@ import java.util.Collection;
public
class
OrderTrainChangeServiceImpl
extends
AbstractBaseService
<
OrderTrainChangeVo
,
OrderTrainChangeBo
,
OrderTrainChange
>
implements
IOrderTrainChangeService
{
private
final
OrderTrainChangeMapper
baseMapper
;
private
final
OrderTrainChangeBusinessInfoMapper
businessInfoMapper
;
private
final
OrderTrainChangePayInfoMapper
payInfoMapper
;
private
final
OrderTrainChangeTicketInfoMapper
ticketInfoMapper
;
private
final
ITrainService
trainService
;
private
final
BizUserMapper
userMapper
;
private
final
ScheduledExecutorService
scheduledExecutorService
;
@Override
public
BaseMapperPlus
<
OrderTrainChange
,
OrderTrainChangeVo
>
mapper
()
{
...
...
@@ -42,7 +55,7 @@ public class OrderTrainChangeServiceImpl extends AbstractBaseService<OrderTrainC
public
LambdaQueryWrapper
<
OrderTrainChange
>
buildQueryWrapper
(
OrderTrainChangeBo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
OrderTrainChange
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
bo
.
getOrderId
()
!=
null
,
OrderTrainChange:
:
getOrderId
,
bo
.
getOrderId
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getPersonCode
()),
OrderTrainChange:
:
getPersonCode
,
bo
.
getPersonCode
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getChangeNo
()),
OrderTrainChange:
:
getChangeNo
,
bo
.
getChangeNo
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getOldToCity
()),
OrderTrainChange:
:
getOldToCity
,
bo
.
getOldToCity
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getLatePaymentTime
()),
OrderTrainChange:
:
getLatePaymentTime
,
bo
.
getLatePaymentTime
());
...
...
@@ -99,4 +112,136 @@ public class OrderTrainChangeServiceImpl extends AbstractBaseService<OrderTrainC
return
lqw
;
}
@Override
public
void
batchSaveOrder
(
String
userId
,
List
<
String
>
changeNoList
)
{
BizUser
user
=
userMapper
.
selectOne
(
new
LambdaQueryWrapper
<
BizUser
>().
eq
(
BizUser:
:
getUserNo
,
userId
));
if
(
Objects
.
isNull
(
user
))
{
throw
new
RuntimeException
(
"用户不存在"
);
}
List
<
OrderTrainChange
>
orderList
=
changeNoList
.
stream
().
map
(
orderNo
->
{
OrderTrainChange
order
=
new
OrderTrainChange
();
order
.
setPersonCode
(
userId
);
order
.
setChangeNo
(
orderNo
);
order
.
setTenantId
(
user
.
getTenantId
());
return
order
;
}).
toList
();
for
(
OrderTrainChange
bo
:
orderList
)
{
baseMapper
.
insert
(
bo
);
}
updateOrderInfo
(
changeNoList
);
}
@Override
public
void
updateOrderInfo
(
List
<
String
>
changeNoList
)
{
if
(
CollectionUtils
.
isEmpty
(
changeNoList
))
{
return
;
}
List
<
OrderTrainChange
>
orderList
=
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderTrainChange
>().
in
(
OrderTrainChange:
:
getChangeNo
,
changeNoList
));
List
<
Long
>
orderIds
=
StreamUtils
.
toList
(
orderList
,
OrderTrainChange:
:
getId
);
if
(
CollectionUtils
.
isEmpty
(
orderIds
))
{
return
;
}
List
<
OrderTrainChangeBusinessInfo
>
orderBusinessList
=
businessInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderTrainChangeBusinessInfo
>().
in
(
OrderTrainChangeBusinessInfo:
:
getOrderId
,
orderIds
));
List
<
OrderTrainChangePayInfo
>
orderPayInfoList
=
payInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderTrainChangePayInfo
>().
in
(
OrderTrainChangePayInfo:
:
getOrderId
,
orderIds
));
List
<
OrderTrainChangeTicketInfo
>
orderTicketList
=
ticketInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderTrainChangeTicketInfo
>().
in
(
OrderTrainChangeTicketInfo:
:
getOrderId
,
orderIds
));
//更新数据
orderList
.
forEach
(
order
->
{
scheduledExecutorService
.
execute
(()
->
{
TrChangeInfoBeanModel
orderModel
=
trainService
.
orderQueryChangeOrder
(
order
.
getPersonCode
(),
new
org
.
dromara
.
common
.
ys
.
model
.
req
.
train
.
TrainQueryChangeOrderModel
().
setChangeNo
(
order
.
getChangeNo
())).
get
(
0
);
//获取订单状态
String
orderStatus
=
getOrderStatus
(
order
);
//跟新订单数据
BeanUtil
.
copyProperties
(
orderModel
,
order
,
"id"
,
"personCode"
,
"tenantId"
);
order
.
setChangeStatus
(
orderStatus
);
baseMapper
.
updateById
(
order
);
//跟新差旅信息
BusinessInfoBean
business
=
orderModel
.
getBusiness
();
if
(
Objects
.
nonNull
(
business
))
{
OrderTrainChangeBusinessInfo
orderBusiness
=
orderBusinessList
.
stream
().
filter
(
item
->
Objects
.
equals
(
item
.
getOrderId
(),
order
.
getId
())).
findFirst
().
orElseGet
(
()
->
{
OrderTrainChangeBusinessInfo
entity
=
new
OrderTrainChangeBusinessInfo
()
.
setOrderId
(
order
.
getId
())
.
setChangeNo
(
order
.
getChangeNo
());
entity
.
setTenantId
(
order
.
getTenantId
());
return
entity
;
});
BeanUtil
.
copyProperties
(
business
,
orderBusiness
,
"id"
,
"orderId"
,
"changeNo"
);
orderBusiness
.
setLinkMan
(
business
.
getLink_Man
());
orderBusiness
.
setLinkMobile
(
business
.
getLink_mobile
());
orderBusiness
.
setLinkEmail
(
business
.
getLink_email
());
if
(
Objects
.
isNull
(
orderBusiness
.
getId
()))
{
businessInfoMapper
.
insert
(
orderBusiness
);
}
else
{
businessInfoMapper
.
updateById
(
orderBusiness
);
}
}
//跟新支付信息集合
List
<
OrderPayInfoBean
>
payInfoList
=
orderModel
.
getPayInfoList
();
if
(
CollectionUtils
.
isNotEmpty
(
payInfoList
))
{
for
(
OrderPayInfoBean
payInfo
:
payInfoList
)
{
OrderTrainChangePayInfo
orderPayInfo
=
orderPayInfoList
.
stream
().
filter
(
item
->
Objects
.
equals
(
item
.
getOrderId
(),
order
.
getId
())
&&
org
.
apache
.
commons
.
lang3
.
StringUtils
.
equals
(
item
.
getPayBillno
(),
payInfo
.
getPayBillno
())).
findFirst
().
orElseGet
(
()
->
{
OrderTrainChangePayInfo
entity
=
new
OrderTrainChangePayInfo
()
.
setOrderId
(
order
.
getId
())
.
setChangeNo
(
order
.
getChangeNo
());
entity
.
setTenantId
(
order
.
getTenantId
());
return
entity
;
});
BeanUtil
.
copyProperties
(
payInfo
,
orderPayInfo
,
"id"
,
"orderId"
,
"changeNo"
);
if
(
Objects
.
isNull
(
orderPayInfo
.
getId
()))
{
payInfoMapper
.
insert
(
orderPayInfo
);
}
else
{
payInfoMapper
.
updateById
(
orderPayInfo
);
}
}
}
//跟新车程信息
List
<
TrChangeTicketInfoBean
>
ticketList
=
orderModel
.
getTrChangeTicketList
();
for
(
TrChangeTicketInfoBean
ticket
:
ticketList
)
{
if
(
Objects
.
nonNull
(
ticket
))
{
OrderTrainChangeTicketInfo
orderTicket
=
orderTicketList
.
stream
().
filter
(
item
->
Objects
.
equals
(
item
.
getOrderId
(),
order
.
getId
())
&&
org
.
apache
.
commons
.
lang3
.
StringUtils
.
equals
(
item
.
getIdCode
(),
ticket
.
getIdCode
())).
findFirst
().
orElseGet
(
()
->
{
OrderTrainChangeTicketInfo
entity
=
new
OrderTrainChangeTicketInfo
()
.
setOrderId
(
order
.
getId
())
.
setChangeNo
(
order
.
getChangeNo
());
entity
.
setTenantId
(
order
.
getTenantId
());
return
entity
;
});
BeanUtil
.
copyProperties
(
ticket
,
orderTicket
,
"id"
,
"orderId"
,
"changeNo"
);
if
(
Objects
.
isNull
(
orderTicket
.
getId
()))
{
ticketInfoMapper
.
insert
(
orderTicket
);
}
else
{
ticketInfoMapper
.
updateById
(
orderTicket
);
}
}
}
});
});
}
/**
* 获取订单状态
*
* @param order order
* @return 订单状态
*/
private
String
getOrderStatus
(
OrderTrainChange
order
)
{
try
{
PageInfo
<
TrainChangeQueryChangeListApiBeanModel
>
page
=
trainService
.
queryChangeList
(
order
.
getPersonCode
(),
new
org
.
dromara
.
common
.
ys
.
model
.
req
.
train
.
TrainoChangeQueryChangeListApiModel
()
.
setCount
(
10
)
.
setPageNum
(
1
)
.
setChangeNo
(
order
.
getChangeNo
())
);
return
page
.
getList
().
get
(
0
).
getOrderStatus
();
}
catch
(
Exception
e
)
{
return
null
;
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论