Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fit-finance
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
fitness-server
fit-finance
Commits
67855b9b
Commit
67855b9b
authored
May 11, 2024
by
程裕兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:refund
parent
f22bffab
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
6 deletions
+59
-6
service/src/main/java/com/jiejing/fitness/finance/service/utils/FeeUtil.java
+59
-6
No files found.
service/src/main/java/com/jiejing/fitness/finance/service/utils/FeeUtil.java
View file @
67855b9b
...
...
@@ -43,8 +43,7 @@ public class FeeUtil {
// 机构剩余实收金额
BigDecimal
leftPayActualAmount
=
MoneyUtil
.
subtract
(
payActualAmount
,
historyRefundActualAmount
);
// 试算手续费:向下取整(退款金额/原交易金额*原支付交易手续费金额)
BigDecimal
trialFee
=
MoneyUtil
.
divide
(
refundTransAmount
.
multiply
(
payFee
),
payTransAmount
,
2
,
RoundingMode
.
FLOOR
);
BigDecimal
trialFee
=
calculateTrialFee
(
refundTransAmount
,
payTransAmount
,
payFee
);
// 试算实退金额
BigDecimal
trialActualAmount
=
MoneyUtil
.
subtract
(
refundTransAmount
,
trialFee
);
// 实退手续费
...
...
@@ -52,15 +51,69 @@ public class FeeUtil {
:
MoneyUtil
.
add
(
trialFee
,
MoneyUtil
.
subtract
(
trialActualAmount
,
leftPayActualAmount
));
}
/**
* 计算试算手续费
* <p>
* 试算手续费 = 向下取整(退款金额/原交易金额*原交易手续费金额)
*/
private
static
BigDecimal
calculateTrialFee
(
BigDecimal
refundTransAmount
,
BigDecimal
payTransAmount
,
BigDecimal
payFee
)
{
// 试算手续费:向下取整(退款金额/原交易金额*原支付交易手续费金额)
return
MoneyUtil
.
divide
(
refundTransAmount
.
multiply
(
payFee
),
payTransAmount
,
2
,
RoundingMode
.
FLOOR
);
}
public
static
void
main
(
String
[]
args
)
{
BigDecimal
refundTransAmount
=
new
BigDecimal
(
"100"
);
BigDecimal
payTransAmount
=
new
BigDecimal
(
"100"
);
BigDecimal
payActualAmount
=
new
BigDecimal
(
"99.43"
);
BigDecimal
payFee
=
new
BigDecimal
(
"0.57"
);
BigDecimal
historyRefundActualAmount
=
new
BigDecimal
(
"99.43"
);
BigDecimal
refundAmount1
=
new
BigDecimal
(
"33"
);
BigDecimal
refundAmount2
=
new
BigDecimal
(
"33"
);
BigDecimal
refundAmount3
=
new
BigDecimal
(
"33"
);
BigDecimal
refundAmount4
=
new
BigDecimal
(
"1"
);
BigDecimal
fee1
=
test33
(
payTransAmount
,
payActualAmount
,
payFee
,
refundAmount1
,
new
BigDecimal
(
"0"
));
BigDecimal
historyRefundActualAmount1
=
MoneyUtil
.
subtract
(
refundAmount1
,
fee1
);
BigDecimal
leftPayActualAmount1
=
MoneyUtil
.
subtract
(
payActualAmount
,
historyRefundActualAmount1
);
System
.
out
.
println
(
FeeUtil
.
calculateRefundFee
(
refundTransAmount
,
payTransAmount
,
payActualAmount
,
payFee
,
historyRefundActualAmount
));
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 收款金额:\t"
+
payTransAmount
+
",实收金额:\t"
+
payActualAmount
+
",收款手续费:\t"
+
payFee
+
",退款申请金额:\t"
+
refundAmount1
+
",手续费:\t"
+
fee1
+
",剩余实收金额:\t"
+
leftPayActualAmount1
);
BigDecimal
fee2
=
test33
(
payTransAmount
,
payActualAmount
,
payFee
,
refundAmount2
,
historyRefundActualAmount1
);
BigDecimal
historyRefundActualAmount2
=
MoneyUtil
.
add
(
MoneyUtil
.
subtract
(
refundAmount2
,
fee2
),
historyRefundActualAmount1
);
BigDecimal
leftPayActualAmount2
=
MoneyUtil
.
subtract
(
payActualAmount
,
historyRefundActualAmount2
);
System
.
out
.
println
(
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 收款金额:\t"
+
payTransAmount
+
",实收金额:\t"
+
payActualAmount
+
",收款手续费:\t"
+
payFee
+
",退款申请金额:\t"
+
refundAmount2
+
",手续费:\t"
+
fee2
+
",剩余实收金额:\t"
+
leftPayActualAmount2
);
BigDecimal
fee3
=
test33
(
payTransAmount
,
payActualAmount
,
payFee
,
refundAmount3
,
historyRefundActualAmount2
);
BigDecimal
historyRefundActualAmount3
=
MoneyUtil
.
add
(
MoneyUtil
.
subtract
(
refundAmount3
,
fee3
),
historyRefundActualAmount2
);
BigDecimal
leftPayActualAmount3
=
MoneyUtil
.
subtract
(
payActualAmount
,
historyRefundActualAmount3
);
System
.
out
.
println
(
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 收款金额:\t"
+
payTransAmount
+
",实收金额:\t"
+
payActualAmount
+
",收款手续费:\t"
+
payFee
+
",退款申请金额:\t"
+
refundAmount3
+
",手续费:\t"
+
fee3
+
",剩余实收金额:\t"
+
leftPayActualAmount3
);
BigDecimal
fee4
=
test33
(
payTransAmount
,
payActualAmount
,
payFee
,
refundAmount4
,
historyRefundActualAmount3
);
BigDecimal
historyRefundActualAmount4
=
MoneyUtil
.
add
(
MoneyUtil
.
subtract
(
refundAmount4
,
fee4
),
historyRefundActualAmount3
);
BigDecimal
leftPayActualAmount4
=
MoneyUtil
.
subtract
(
payActualAmount
,
historyRefundActualAmount4
);
System
.
out
.
println
(
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 收款金额:\t"
+
payTransAmount
+
",实收金额:\t"
+
payActualAmount
+
",收款手续费:\t"
+
payFee
+
",退款申请金额:\t"
+
refundAmount4
+
",手续费:\t"
+
fee4
+
",剩余实收金额:\t"
+
leftPayActualAmount4
);
}
private
static
BigDecimal
test33
(
BigDecimal
payTransAmount
,
BigDecimal
payActualAmount
,
BigDecimal
payFee
,
BigDecimal
refundTransAmount
,
BigDecimal
historyRefundActualAmount
)
{
return
FeeUtil
.
calculateRefundFee
(
refundTransAmount
,
payTransAmount
,
payActualAmount
,
payFee
,
historyRefundActualAmount
);
}
}
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