Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
2095d152
提交
2095d152
authored
12月 18, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码优化
上级
33ed5fd3
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
111 行增加
和
133 行删除
+111
-133
RemoteOrderService.java
...c/main/java/org/dromara/order/api/RemoteOrderService.java
+2
-1
OrderPay.java
.../src/main/java/org/dromara/order/api/domain/OrderPay.java
+21
-1
RemoteOrder.java
...c/main/java/org/dromara/order/api/domain/RemoteOrder.java
+3
-1
Source.java
...der/src/main/java/org/dromara/order/api/enums/Source.java
+1
-1
OrderController.java
...in/java/org/dromara/order/controller/OrderController.java
+5
-85
RemoteOrderServiceImpl.java
.../java/org/dromara/order/dubbo/RemoteOrderServiceImpl.java
+42
-29
WeChatOrderPayServiceImpl.java
...dromara/order/service/impl/WeChatOrderPayServiceImpl.java
+26
-12
OrderController.java
...n/java/org/dromara/server/controller/OrderController.java
+2
-1
IPayOrderService.java
...ain/java/org/dromara/server/service/IPayOrderService.java
+2
-1
PayOrderServiceImpl.java
.../org/dromara/server/service/impl/PayOrderServiceImpl.java
+7
-1
没有找到文件。
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/RemoteOrderService.java
浏览文件 @
2095d152
package
org
.
dromara
.
order
.
api
;
import
org.dromara.order.api.domain.OrderPay
;
import
org.dromara.order.api.domain.RemoteOrder
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
...
...
@@ -18,7 +19,7 @@ public interface RemoteOrderService {
* @param order 订单信息
* @return 订单支付信息
*/
String
createOrder
(
RemoteSaveOrder
order
)
throws
Exception
;
OrderPay
createOrder
(
RemoteSaveOrder
order
)
throws
Exception
;
/**
* 查询订单列表
...
...
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/domain/OrderPay.java
浏览文件 @
2095d152
package
org
.
dromara
.
order
.
api
.
domain
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @author hzh
* @date 2024-12-05
**/
@Data
public
class
OrderPay
{
@Accessors
(
chain
=
true
)
public
class
OrderPay
implements
Serializable
{
/**
* 订单号
*/
private
String
orderNo
;
/**
* 支付订单号
*/
private
String
orderPayNo
;
/**
* 支付信息
*/
private
String
payInfo
;
}
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/domain/RemoteOrder.java
浏览文件 @
2095d152
...
...
@@ -3,13 +3,15 @@ package org.dromara.order.api.domain;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @author hzh
* @date 2024-12-09
**/
@Data
@Accessors
(
chain
=
true
)
public
class
RemoteOrder
{
public
class
RemoteOrder
implements
Serializable
{
/**
* 订单类型
...
...
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/order/api/enums/Source.java
浏览文件 @
2095d152
...
...
@@ -10,7 +10,7 @@ import lombok.Getter;
@AllArgsConstructor
public
enum
Source
{
YSH
(
"
ys
"
,
"云上"
);
YSH
(
"
YS
"
,
"云上"
);
private
final
String
source
;
private
final
String
desc
;
...
...
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderController.java
浏览文件 @
2095d152
package
org
.
dromara
.
order
.
controller
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.hutool.http.ContentType
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.ImmutableMap
;
import
com.ijpay.core.kit.HttpKit
;
import
jakarta.servlet.http.HttpServletResponse
;
import
jakarta.validation.constraints.NotEmpty
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
org.dromara.common.excel.utils.ExcelUtil
;
import
org.dromara.common.idempotent.annotation.RepeatSubmit
;
import
org.dromara.common.log.annotation.Log
;
import
org.dromara.common.log.enums.BusinessType
;
import
org.dromara.common.mybatis.core.page.PageQuery
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.pay.domain.JsapiNotifyModel
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.order.domain.bo.OrderBo
;
import
org.dromara.order.domain.vo.OrderVo
;
import
org.dromara.order.service.IOrderPayService
;
import
org.dromara.order.service.IOrderService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
java.nio.charset.StandardCharsets
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -49,78 +37,10 @@ import java.util.Map;
@RequestMapping
(
"/order"
)
public
class
OrderController
extends
BaseController
{
private
final
IOrderService
orderService
;
private
final
IOrderPayService
orderPayService
;
/**
* 查询订单费用列表
*/
@SaCheckPermission
(
"order:order:list"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
<
OrderVo
>
list
(
OrderBo
bo
,
PageQuery
pageQuery
)
{
return
orderService
.
queryPageList
(
bo
,
pageQuery
);
}
/**
* 导出订单费用列表
*/
@SaCheckPermission
(
"order:order:export"
)
@Log
(
title
=
"订单费用"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
OrderBo
bo
,
HttpServletResponse
response
)
{
List
<
OrderVo
>
list
=
orderService
.
queryList
(
bo
);
ExcelUtil
.
exportExcel
(
list
,
"订单费用"
,
OrderVo
.
class
,
response
);
}
/**
* 获取订单费用详细信息
*
* @param id 主键
*/
@SaCheckPermission
(
"order:order:query"
)
@GetMapping
(
"/{id}"
)
public
R
<
OrderVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
return
R
.
ok
(
orderService
.
queryById
(
id
));
}
/**
* 新增订单费用
*/
@SaCheckPermission
(
"order:order:add"
)
@Log
(
title
=
"订单费用"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
OrderBo
bo
)
{
return
toAjax
(
orderService
.
insertByBo
(
bo
));
}
/**
* 修改订单费用
*/
@SaCheckPermission
(
"order:order:edit"
)
@Log
(
title
=
"订单费用"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PutMapping
()
public
R
<
Void
>
edit
(
@Validated
(
EditGroup
.
class
)
@RequestBody
OrderBo
bo
)
{
return
toAjax
(
orderService
.
updateByBo
(
bo
));
}
/**
* 删除订单费用
*
* @param ids 主键串
*/
@SaCheckPermission
(
"order:order:remove"
)
@Log
(
title
=
"订单费用"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
orderService
.
deleteWithValidByIds
(
List
.
of
(
ids
),
true
));
}
/**
* 回调原函数
* 回调函数
*
* @param request request
* @param response response
...
...
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/dubbo/RemoteOrderServiceImpl.java
浏览文件 @
2095d152
...
...
@@ -9,11 +9,13 @@ import io.seata.spring.annotation.GlobalTransactional;
import
lombok.RequiredArgsConstructor
;
import
org.apache.dubbo.config.annotation.DubboService
;
import
org.dromara.common.core.exception.ServiceException
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.ValidatorUtils
;
import
org.dromara.common.pay.service.IWxPayService
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.order.api.RemoteOrderService
;
import
org.dromara.order.api.domain.OrderPay
;
import
org.dromara.order.api.domain.RemoteOrder
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
import
org.dromara.order.api.enums.OrderStatus
;
...
...
@@ -32,7 +34,6 @@ import java.math.BigDecimal;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -54,7 +55,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
String
createOrder
(
RemoteSaveOrder
remoteOrder
)
throws
Exception
{
public
OrderPay
createOrder
(
RemoteSaveOrder
remoteOrder
)
throws
Exception
{
ValidatorUtils
.
validate
(
remoteOrder
);
//查询订单信息
Long
userId
=
LoginHelper
.
getUserId
();
...
...
@@ -67,7 +68,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
).
stream
().
findFirst
().
orElseGet
(()
->
{
//创建订单
OrderBo
bo
=
new
OrderBo
()
.
setUserId
(
LoginHelper
.
getUserId
()
)
.
setUserId
(
userId
)
.
setOrderNo
(
System
.
currentTimeMillis
()
+
""
)
.
setSource
(
remoteOrder
.
getSource
().
getSource
())
.
setOrderType
(
remoteOrder
.
getOrderType
().
getType
())
...
...
@@ -81,30 +82,35 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
if
(
StringUtils
.
equals
(
order
.
getStatus
(),
OrderStatus
.
PAYED
.
getCode
()))
{
throw
new
ServiceException
(
"订单已支付"
);
}
//获取订单支付信息
List
<
OrderFeeVo
>
feeList
=
Optional
.
ofNullable
(
orderFeeService
.
queryList
(
new
OrderFeeBo
()
.
setOrderNo
(
order
.
getOrderNo
())))
.
orElseGet
(()
->
{
//创建订单费用信息
List
<
RemoteSaveOrder
.
Fee
>
list
=
remoteOrder
.
getFeeList
();
//获取服务费信息
RemoteSaveOrder
.
Fee
serviceFee
=
IOrderServiceFeeStrategy
.
calcServiceFee
(
remoteOrder
.
getSource
(),
remoteOrder
.
getOrderType
(),
list
);
list
.
add
(
serviceFee
);
List
<
OrderFeeBo
>
ofList
=
list
.
stream
().
map
(
fee
->
{
return
new
OrderFeeBo
()
.
setOrderNo
(
order
.
getOrderNo
())
.
setFeeDesc
(
fee
.
getFeeDesc
())
.
setFeeAmount
(
fee
.
getFeeAmount
())
.
setFeeType
(
fee
.
getFeeType
().
getCode
())
.
setOtherInfo
(
fee
.
getOtherInfo
())
.
setRemark
(
fee
.
getRemark
());
}).
collect
(
Collectors
.
toList
());
orderFeeService
.
batchInsertByList
(
ofList
);
return
BeanUtil
.
copyToList
(
ofList
,
OrderFeeVo
.
class
);
});
//删除历史订单费用信息
List
<
OrderFeeVo
>
orderFeeVos
=
orderFeeService
.
queryList
(
new
OrderFeeBo
()
.
setOrderNo
(
order
.
getOrderNo
()));
if
(
CollectionUtils
.
isNotEmpty
(
orderFeeVos
))
{
orderFeeService
.
deleteWithValidByIds
(
StreamUtils
.
toList
(
orderFeeVos
,
OrderFeeVo:
:
getId
),
false
);
}
//创建订单费用信息
List
<
RemoteSaveOrder
.
Fee
>
list
=
remoteOrder
.
getFeeList
();
//获取服务费信息
RemoteSaveOrder
.
Fee
serviceFee
=
IOrderServiceFeeStrategy
.
calcServiceFee
(
remoteOrder
.
getSource
(),
remoteOrder
.
getOrderType
(),
list
);
list
.
add
(
serviceFee
);
List
<
OrderFeeBo
>
ofList
=
list
.
stream
().
map
(
fee
->
{
return
new
OrderFeeBo
()
.
setUserId
(
order
.
getUserId
())
.
setOrderNo
(
order
.
getOrderNo
())
.
setFeeDesc
(
fee
.
getFeeDesc
())
.
setFeeAmount
(
fee
.
getFeeAmount
())
.
setFeeType
(
fee
.
getFeeType
().
getCode
())
.
setOtherInfo
(
fee
.
getOtherInfo
())
.
setRemark
(
fee
.
getRemark
());
}).
collect
(
Collectors
.
toList
());
orderFeeService
.
batchInsertByList
(
ofList
);
List
<
OrderFeeVo
>
feeList
=
BeanUtil
.
copyToList
(
ofList
,
OrderFeeVo
.
class
);
//获取总金额
assert
feeList
!=
null
;
BigDecimal
amount
=
feeList
.
stream
().
map
(
OrderFeeVo:
:
getFeeAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
...
...
@@ -120,6 +126,9 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
}
Date
expireTime
=
DateUtil
.
offsetMinute
(
new
Date
(),
expireMinute
);
// String openId = LoginHelper.getOpenId();
String
openId
=
"oEeGe7Z4-OynAi63oqFkmarPCkLY"
;
//创建支付订单
OrderTradeBo
ot
=
new
OrderTradeBo
()
.
setUserId
(
order
.
getUserId
())
...
...
@@ -133,7 +142,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
.
setTradeType
(
remoteOrder
.
getTradeType
().
name
())
.
setExpireTime
(
expireTime
)
.
setTradeState
(
WechatTradeState
.
USERPAYING
.
getState
())
.
setPayOpenId
(
LoginHelper
.
getOpenId
()
);
.
setPayOpenId
(
openId
);
orderTradeService
.
insertByBo
(
ot
);
//跟新支付信息
...
...
@@ -144,7 +153,11 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
orderService
.
updateByBo
(
BeanUtil
.
copyProperties
(
order
,
OrderBo
.
class
));
//获取支付订单
return
IPayStrategy
.
pay
(
JSON
.
toJSONString
(
ot
),
feeList
,
remoteOrder
.
getTradeType
().
name
());
return
new
OrderPay
()
.
setOrderNo
(
order
.
getOriginOrderNo
())
.
setOrderPayNo
(
ot
.
getOrderPayNo
())
.
setPayInfo
(
IPayStrategy
.
pay
(
JSON
.
toJSONString
(
ot
),
feeList
,
remoteOrder
.
getTradeType
().
name
()));
}
@Override
...
...
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/WeChatOrderPayServiceImpl.java
浏览文件 @
2095d152
...
...
@@ -12,6 +12,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
import
org.dromara.common.pay.domain.JsapiNotifyModel
;
import
org.dromara.common.pay.service.IWxPayService
;
import
org.dromara.order.api.enums.OrderStatus
;
import
org.dromara.order.constant.WechatTradeState
;
import
org.dromara.order.domain.bo.OrderBo
;
import
org.dromara.order.domain.bo.OrderTradeBo
;
import
org.dromara.order.domain.vo.OrderTradeVo
;
...
...
@@ -25,7 +26,9 @@ import org.springframework.stereotype.Service;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
/**
* @author hzh
...
...
@@ -80,10 +83,16 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
String
orderPayNo
=
model
.
getOut_trade_no
();
String
tradeState
=
model
.
getTrade_state
();
List
<
String
>
notUpdateStateList
=
List
.
of
(
WechatTradeState
.
NOTPAY
.
getState
(),
WechatTradeState
.
USERPAYING
.
getState
());
if
(
notUpdateStateList
.
contains
(
tradeState
))
{
return
;
}
OrderTradeVo
orderTrade
=
orderTradeService
.
getOne
(
new
OrderTradeBo
().
setOrderPayNo
(
orderPayNo
));
if
(
Objects
.
isNull
(
orderTrade
))
{
throw
new
RuntimeException
(
"交易订单不存在"
);
}
if
(!
StringUtils
.
equals
(
tradeState
,
orderTrade
.
getTradeState
()))
{
//更新订单信息
String
successTimeStr
=
model
.
getSuccess_time
();
...
...
@@ -93,27 +102,32 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
String
transactionId
=
model
.
getTransaction_id
();
JsapiNotifyModel
.
Amount
amount
=
model
.
getAmount
();
//支付金额
int
actualPayAmount
=
amount
.
getPayer_total
();
Integer
actualPayAmount
=
amount
.
getPayer_total
();
//获取openId
String
payOpenId
=
model
.
getPayer
().
getOpenid
(
);
String
payOpenId
=
Optional
.
ofNullable
(
model
.
getPayer
()).
map
(
JsapiNotifyModel
.
Payer
::
getOpenid
).
orElse
(
null
);
orderTrade
.
setPayOpenId
(
payOpenId
);
orderTrade
.
setPayTime
(
payTime
);
orderTrade
.
setTransactionId
(
transactionId
);
orderTrade
.
setActualPayAmount
(
new
BigDecimal
(
actualPayAmount
).
divide
(
new
BigDecimal
(
100
),
2
,
RoundingMode
.
CEILING
));
if
(
Objects
.
nonNull
(
actualPayAmount
))
{
orderTrade
.
setActualPayAmount
(
new
BigDecimal
(
actualPayAmount
).
divide
(
new
BigDecimal
(
100
),
2
,
RoundingMode
.
CEILING
));
}
orderTrade
.
setTradeState
(
tradeState
);
orderTrade
.
setTradeInfo
(
JSON
.
toJSONString
(
model
));
orderTradeService
.
updateByBo
(
BeanUtil
.
copyProperties
(
orderTrade
,
OrderTradeBo
.
class
));
//跟新主表信息
OrderVo
order
=
orderService
.
getOne
(
new
OrderBo
().
setOrderNo
(
orderTrade
.
getOrderNo
()));
order
.
setOrderPayNo
(
orderPayNo
);
order
.
setActualPayAmount
(
orderTrade
.
getActualPayAmount
());
order
.
setPayTime
(
new
Date
());
order
.
setStatus
(
OrderStatus
.
PAYED
.
getCode
());
orderService
.
updateByBo
(
BeanUtil
.
copyProperties
(
order
,
OrderBo
.
class
));
if
(
StringUtils
.
equals
(
tradeState
,
WechatTradeState
.
SUCCESS
.
getState
()))
{
//跟新主表信息
OrderVo
order
=
orderService
.
getOne
(
new
OrderBo
().
setOrderNo
(
orderTrade
.
getOrderNo
()));
order
.
setOrderPayNo
(
orderPayNo
);
order
.
setActualPayAmount
(
orderTrade
.
getActualPayAmount
());
order
.
setPayTime
(
new
Date
());
order
.
setStatus
(
OrderStatus
.
PAYED
.
getCode
());
orderService
.
updateByBo
(
BeanUtil
.
copyProperties
(
order
,
OrderBo
.
class
));
//跟新云上相关信息
ysOrderService
.
payed
(
order
.
getOrderType
(),
order
.
getOrderNo
());
}
//跟新云上相关信息
ysOrderService
.
payed
(
order
.
getOrderType
(),
order
.
getOrderNo
());
}
}
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/OrderController.java
浏览文件 @
2095d152
...
...
@@ -2,6 +2,7 @@ package org.dromara.server.controller;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.order.api.domain.OrderPay
;
import
org.dromara.order.api.domain.RemoteOrder
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.vo.OrderPayVo
;
...
...
@@ -32,7 +33,7 @@ public class OrderController {
* 下单支付接口
*/
@PostMapping
(
"/pay"
)
public
R
<
O
bject
>
pay
(
@Validated
@RequestBody
OrderPayVo
vo
)
throws
Exception
{
public
R
<
O
rderPay
>
pay
(
@Validated
@RequestBody
OrderPayVo
vo
)
throws
Exception
{
OrderType
ot
=
OrderType
.
getEnum
(
vo
.
getOrderType
());
return
R
.
ok
(
service
.
createOrder
(
vo
.
getOrderNo
(),
ot
));
}
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/IPayOrderService.java
浏览文件 @
2095d152
package
org
.
dromara
.
server
.
service
;
import
org.dromara.order.api.domain.OrderPay
;
import
org.dromara.order.api.domain.RemoteOrder
;
import
org.dromara.order.api.enums.OrderType
;
...
...
@@ -18,7 +19,7 @@ public interface IPayOrderService {
* @param orderType 订单类型
* @return 订单号
*/
String
createOrder
(
String
orderNo
,
OrderType
orderType
)
throws
Exception
;
OrderPay
createOrder
(
String
orderNo
,
OrderType
orderType
)
throws
Exception
;
/**
* 查询订单列表
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/PayOrderServiceImpl.java
浏览文件 @
2095d152
...
...
@@ -3,6 +3,7 @@ package org.dromara.server.service.impl;
import
lombok.RequiredArgsConstructor
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.dromara.order.api.RemoteOrderService
;
import
org.dromara.order.api.domain.OrderPay
;
import
org.dromara.order.api.domain.RemoteOrder
;
import
org.dromara.order.api.domain.RemoteSaveOrder
;
import
org.dromara.order.api.enums.OrderType
;
...
...
@@ -12,6 +13,7 @@ import org.dromara.server.service.IOrderStrategy;
import
org.dromara.server.service.IPayOrderService
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -26,12 +28,16 @@ public class PayOrderServiceImpl implements IPayOrderService {
private
RemoteOrderService
remoteOrderService
;
@Override
public
String
createOrder
(
String
orderNo
,
OrderType
orderType
)
throws
Exception
{
public
OrderPay
createOrder
(
String
orderNo
,
OrderType
orderType
)
throws
Exception
{
RemoteSaveOrder
order
=
IOrderStrategy
.
createOrder
(
orderNo
,
orderType
);
order
.
setSource
(
Source
.
YSH
);
order
.
setOriginOrderNo
(
orderNo
);
order
.
setTradeType
(
TradeType
.
JSAPI
);
order
.
setOrderType
(
orderType
);
BigDecimal
amount
=
order
.
getFeeList
().
stream
().
map
(
RemoteSaveOrder
.
Fee
::
getFeeAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
amount
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
throw
new
IllegalArgumentException
(
"订单金额不能小于等于0"
);
}
return
remoteOrderService
.
createOrder
(
order
);
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论