Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
05359cb9
Commit
05359cb9
authored
Nov 30, 2023
by
rui.zhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
随单买卡订单取消未退券
parent
abe36a61
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
12 deletions
+32
-12
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+32
-12
No files found.
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
05359cb9
...
...
@@ -92,7 +92,11 @@ public class PaymentHandle {
}
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
BigDecimal
maxRefundAmount
=
openMemberCardCost
!=
null
?
new
BigDecimal
(
orderBean
.
getAmount
()).
subtract
(
openMemberCardCost
.
getCostAmount
())
:
new
BigDecimal
(
orderBean
.
getAmount
());
BigDecimal
refundAmount
=
getRefundAmount
(
orderBean
.
getCompanyId
(),
maxRefundAmount
,
orderBean
.
getOid
());
BigDecimal
refundAmount
=
maxRefundAmount
;
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
if
(
afterSalesOrder
!=
null
)
{
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
//订单支付明细表新saas都会存数据,ka,pass商户需要兼容
PayRefundResponse
multiRefundResponse
=
multiRefundService
.
multiRefund
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getOid
(),
refundAmount
,
orderBean
.
getOrderPayItem
(),
Integer
.
parseInt
(
orderBean
.
getOrderClient
()));
...
...
@@ -119,7 +123,12 @@ public class PaymentHandle {
refundResponse
=
this
.
payRefund
(
req
);
}
}
refundResponse
.
setPartRefund
(!
Objects
.
equals
(
maxRefundAmount
.
compareTo
(
refundAmount
),
0
));
boolean
partRefund
=
!
Objects
.
equals
(
maxRefundAmount
.
compareTo
(
refundAmount
),
0
);
if
(
afterSalesOrder
!=
null
)
{
refundResponse
.
setPartRefund
(
partRefund
&&
afterSalesOrder
.
getIsPartRefund
());
}
else
{
refundResponse
.
setPartRefund
(
partRefund
);
}
}
catch
(
OrderServiceException
orderEx
)
{
ResponseResult
result
=
orderEx
.
getResult
();
refundResponse
=
new
PayRefundResponse
();
...
...
@@ -155,7 +164,11 @@ public class PaymentHandle {
openMemberCardCost
=
order
.
getOrderCostDetailList
().
stream
().
filter
(
c
->
Objects
.
equals
(
c
.
getCostType
(),
OrderCostType
.
OPEN_MEMBER_CARD_FEE
.
getType
())).
findFirst
().
orElse
(
null
);
}
BigDecimal
maxRefundAmount
=
openMemberCardCost
!=
null
?
order
.
getSettlementAmount
().
subtract
(
openMemberCardCost
.
getCostAmount
())
:
order
.
getSettlementAmount
();
BigDecimal
refundAmount
=
getRefundAmount
(
order
.
getPartnerId
(),
maxRefundAmount
,
order
.
getOrderCode
());
BigDecimal
refundAmount
=
maxRefundAmount
;
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
order
.
getPartnerId
(),
order
.
getOrderCode
());
if
(
afterSalesOrder
!=
null
)
{
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
PayRefundResponse
multiRefundResponse
=
multiRefundService
.
multiRefund
(
order
.
getPartnerId
(),
order
.
getStoreId
(),
order
.
getOrderCode
(),
refundAmount
,
order
.
getOrderPayItemCreateReqList
(),
order
.
getOrderClient
());
...
...
@@ -184,7 +197,12 @@ public class PaymentHandle {
refundResponse
=
this
.
payRefund
(
req
);
}
}
refundResponse
.
setPartRefund
(!
Objects
.
equals
(
maxRefundAmount
.
compareTo
(
refundAmount
),
0
));
boolean
partRefund
=
!
Objects
.
equals
(
maxRefundAmount
.
compareTo
(
refundAmount
),
0
);
if
(
afterSalesOrder
!=
null
)
{
refundResponse
.
setPartRefund
(
partRefund
&&
afterSalesOrder
.
getIsPartRefund
());
}
else
{
refundResponse
.
setPartRefund
(
partRefund
);
}
refundResponse
.
setRefundAmount
(
refundAmount
);
}
catch
(
OrderServiceException
orderEx
)
{
ResponseResult
result
=
orderEx
.
getResult
();
...
...
@@ -309,7 +327,11 @@ public class PaymentHandle {
public
PayRefundResponse
refund
(
String
reason
,
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
BigDecimal
refundAmount
=
getRefundAmount
(
orderBean
.
getCompanyId
(),
new
BigDecimal
(
orderBean
.
getAmount
()),
orderBean
.
getOid
());
BigDecimal
refundAmount
=
new
BigDecimal
(
orderBean
.
getAmount
());
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
if
(
afterSalesOrder
!=
null
)
{
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
PayRefundRequestDto
orderRefundRequest
=
paymentSdkAdapter
.
getOrderRefundRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getOid
(),
refundAmount
,
orderBean
.
getPayVoucher
(),
orderBean
.
getExtInfo
(),
reason
);
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
...
...
@@ -366,19 +388,17 @@ public class PaymentHandle {
}
/**
* 获取退款金额
*
* 获取退款售后单
* @param partnerId 商户号
* @param refundAmount 总金额
* @param orderId 订单号
* @return
退款金额
* @return
{@link AfterSalesOrderResp}
*/
private
BigDecimal
getRefundAmount
(
String
partnerId
,
BigDecimal
refundAmount
,
String
orderId
)
{
private
AfterSalesOrderResp
getAfterSalesOrder
(
String
partnerId
,
String
orderId
)
{
OrderBaseResp
<
List
<
AfterSalesOrderResp
>>
listBaseResponse
=
orderSdkService
.
queryAfterSaleByOrderCode
(
partnerId
,
orderId
);
if
(
CollectionUtils
.
isNotEmpty
(
listBaseResponse
.
getResult
()))
{
re
fundAmount
=
new
BigDecimal
(
listBaseResponse
.
getResult
().
get
(
0
).
getActualAmount
()
);
re
turn
listBaseResponse
.
getResult
().
get
(
0
);
}
return
refundAmount
;
return
null
;
}
private
PayRefundResponse
handlePayRefundResponse
(
PayRefundStatus
refundStatus
,
String
refundId
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment