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
e65b4205
Commit
e65b4205
authored
Aug 30, 2024
by
gaowenzheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
退款时查询售后单信息包含多次售后单信息,拒绝退款的状态进行过滤->测试
parent
fa50e15d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
4 deletions
+42
-4
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+42
-4
No files found.
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
e65b4205
...
@@ -21,6 +21,7 @@ import com.freemud.application.sdk.api.base.BaseResponse;
...
@@ -21,6 +21,7 @@ import com.freemud.application.sdk.api.base.BaseResponse;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.CashTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.CashTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayMethodEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayMethodEnum
;
...
@@ -42,6 +43,7 @@ import org.springframework.stereotype.Component;
...
@@ -42,6 +43,7 @@ import org.springframework.stereotype.Component;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -97,7 +99,15 @@ public class PaymentHandle {
...
@@ -97,7 +99,15 @@ public class PaymentHandle {
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
BigDecimal
maxRefundAmount
=
new
BigDecimal
(
orderBean
.
getAmount
()).
subtract
(
openMemberCardCostAmount
);
BigDecimal
maxRefundAmount
=
new
BigDecimal
(
orderBean
.
getAmount
()).
subtract
(
openMemberCardCostAmount
);
BigDecimal
refundAmount
=
maxRefundAmount
;
BigDecimal
refundAmount
=
maxRefundAmount
;
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
List
<
AfterSalesOrderResp
>
afterSalesOrderList
=
getAfterSalesOrderList
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
AfterSalesOrderResp
afterSalesOrder
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
afterSalesOrderList
))
{
// 返回信息包含了多次售后单信息 应过滤掉拒绝退款的信息
List
<
AfterSalesOrderResp
>
list
=
afterSalesOrderList
.
stream
().
filter
(
item
->
!
item
.
getAfterSalesStatus
().
equals
(
AfterSalesStatus
.
REJECTED
.
getIndex
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
afterSalesOrder
=
list
.
get
(
0
);
}
}
if
(
afterSalesOrder
!=
null
)
{
if
(
afterSalesOrder
!=
null
)
{
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
}
...
@@ -176,10 +186,16 @@ public class PaymentHandle {
...
@@ -176,10 +186,16 @@ public class PaymentHandle {
}
}
BigDecimal
maxRefundAmount
=
order
.
getSettlementAmount
().
subtract
(
openMemberCardCostAmount
);
BigDecimal
maxRefundAmount
=
order
.
getSettlementAmount
().
subtract
(
openMemberCardCostAmount
);
BigDecimal
refundAmount
=
maxRefundAmount
;
BigDecimal
refundAmount
=
maxRefundAmount
;
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
order
.
getPartnerId
(),
order
.
getOrderCode
());
List
<
AfterSalesOrderResp
>
afterSalesOrderList
=
getAfterSalesOrderList
(
order
.
getPartnerId
(),
order
.
getOrderCode
());
if
(
afterSalesOrder
!=
null
)
{
AfterSalesOrderResp
afterSalesOrder
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
afterSalesOrderList
))
{
// 返回信息包含了多次售后单信息 应过滤掉拒绝退款的信息
List
<
AfterSalesOrderResp
>
list
=
afterSalesOrderList
.
stream
().
filter
(
item
->
!
item
.
getAfterSalesStatus
().
equals
(
AfterSalesStatus
.
REJECTED
.
getIndex
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
afterSalesOrder
=
list
.
get
(
0
);
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
}
}
PayRefundResponse
multiRefundResponse
=
multiRefundService
.
multiRefund
(
order
.
getPartnerId
(),
order
.
getStoreId
(),
PayRefundResponse
multiRefundResponse
=
multiRefundService
.
multiRefund
(
order
.
getPartnerId
(),
order
.
getStoreId
(),
order
.
getOrderCode
(),
refundAmount
,
order
.
getOrderPayItemCreateReqList
(),
order
.
getOrderClient
());
order
.
getOrderCode
(),
refundAmount
,
order
.
getOrderPayItemCreateReqList
(),
order
.
getOrderClient
());
...
@@ -339,7 +355,15 @@ public class PaymentHandle {
...
@@ -339,7 +355,15 @@ public class PaymentHandle {
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
BigDecimal
refundAmount
=
new
BigDecimal
(
orderBean
.
getAmount
());
BigDecimal
refundAmount
=
new
BigDecimal
(
orderBean
.
getAmount
());
AfterSalesOrderResp
afterSalesOrder
=
getAfterSalesOrder
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
List
<
AfterSalesOrderResp
>
afterSalesOrderList
=
getAfterSalesOrderList
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
());
AfterSalesOrderResp
afterSalesOrder
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
afterSalesOrderList
))
{
// 返回信息包含了多次售后单信息 应过滤掉拒绝退款的信息
List
<
AfterSalesOrderResp
>
list
=
afterSalesOrderList
.
stream
().
filter
(
item
->
!
item
.
getAfterSalesStatus
().
equals
(
AfterSalesStatus
.
REJECTED
.
getIndex
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
afterSalesOrder
=
list
.
get
(
0
);
}
}
if
(
afterSalesOrder
!=
null
)
{
if
(
afterSalesOrder
!=
null
)
{
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
refundAmount
=
new
BigDecimal
(
afterSalesOrder
.
getActualAmount
());
}
}
...
@@ -412,6 +436,20 @@ public class PaymentHandle {
...
@@ -412,6 +436,20 @@ public class PaymentHandle {
return
null
;
return
null
;
}
}
/**
* 获取退款售后单
* @param partnerId 商户号
* @param orderId 订单号
* @return {@link AfterSalesOrderResp}
*/
private
List
<
AfterSalesOrderResp
>
getAfterSalesOrderList
(
String
partnerId
,
String
orderId
)
{
OrderBaseResp
<
List
<
AfterSalesOrderResp
>>
listBaseResponse
=
orderSdkService
.
queryAfterSaleByOrderCode
(
partnerId
,
orderId
);
if
(
CollectionUtils
.
isNotEmpty
(
listBaseResponse
.
getResult
()))
{
return
listBaseResponse
.
getResult
();
}
return
new
ArrayList
<>();
}
private
PayRefundResponse
handlePayRefundResponse
(
PayRefundStatus
refundStatus
,
String
refundId
)
{
private
PayRefundResponse
handlePayRefundResponse
(
PayRefundStatus
refundStatus
,
String
refundId
)
{
PayRefundResponse
payRefundResponse
=
new
PayRefundResponse
();
PayRefundResponse
payRefundResponse
=
new
PayRefundResponse
();
payRefundResponse
.
setPayRefundStatus
(
refundStatus
);
payRefundResponse
.
setPayRefundStatus
(
refundStatus
);
...
...
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