Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
oms
Commits
70811206
提交
70811206
authored
10月 14, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug修复
上级
854963e7
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
112 行增加
和
64 行删除
+112
-64
LeaseOrderStatus.java
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
+1
-0
LeaseOrderServiceImpl.java
...com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
+111
-64
没有找到文件。
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
浏览文件 @
70811206
...
...
@@ -14,6 +14,7 @@ public enum LeaseOrderStatus {
COMPLETE_TRANSACTION
(
700
,
"交易完成"
,
"交易完成"
),
APPLY_REFUND
(
800
,
"申请退款"
,
"退款中"
),
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
(
900
,
"待确认修改后押金"
,
"待确认修改后押金"
),
MODIFIED_DEPOSIT_REFUND
(
950
,
"待确认修改后押金"
,
"待确认修改后押金"
),
CLOSE
(
999
,
"订单关闭"
,
"订单关闭"
);
public
Integer
getCode
()
{
...
...
src/main/java/com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
浏览文件 @
70811206
...
...
@@ -688,6 +688,22 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 解冻用户钱包金额
BigDecimal
shareAmount
=
leaseOrderDO
.
getShareAmount
();
BigDecimal
salaryAmount
=
leaseOrderDO
.
getSalaryAmount
();
ApplyRefundVO
applyRefundVO
=
null
;
if
(
isApplyRefund
&&
leaseOrderDO
.
getOtherAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
((
leaseOrderDO
.
getOtherPledge
().
add
(
leaseOrderDO
.
getOtherAmount
())).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
}
else
if
(
leaseOrderDO
.
getOtherPledge
()
!=
null
&&
leaseOrderDO
.
getOtherPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
}
if
(
applyRefundVO
!=
null
)
{
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
shareAmount
,
salaryAmount
);
...
...
@@ -696,18 +712,6 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
// 退回微信支付的押金部分
if
(
leaseOrderDO
.
getOtherPledge
()
!=
null
&&
leaseOrderDO
.
getOtherPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
// 修改退款操作
if
(
isApplyRefund
)
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
CLOSE
);
}
// 如果是交易完成则退回押金
if
(
isWaitingMerchantConfirm
)
{
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
...
...
@@ -717,6 +721,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
}
}
// 修改退款操作
if
(
isApplyRefund
)
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
CLOSE
);
}
if
(
isWaitingMerchantConfirm
)
{
return
businessIncome
(
currentAccount
,
param
.
getOrderId
(),
leaseOrderDO
);
}
...
...
@@ -730,7 +740,11 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
leaseRefundOrderDO
.
setType
(
OrderType
.
PFREC
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
// 修改订单状态
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
);
if
(
isWaitingMerchantConfirm
)
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
);
}
else
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_REFUND
);
}
}
}
else
{
return
ResultBody
.
error
(
"状态流程有误"
);
...
...
@@ -799,67 +813,100 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
.
getCode
()))
{
return
ResultBody
.
error
(
"请勿重复操作"
);
}
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误"
);
}
// 根据订单id查询出修改后的押金
LeaseRefundOrderDO
leaseRefundOrderDO
=
leaseOrderDao
.
selectGiveBackByOrderId
(
id
,
OrderType
.
PFREC
.
getCode
());
BigDecimal
operatingDeposit
=
BigDecimal
.
ZERO
;
operatingDeposit
=
operatingDeposit
.
add
(
leaseRefundOrderDO
.
getModifiedDeposit
());
// 判断用户之前的押金,然后进行操作:
// 1、分别获取用户之前抵扣掉的押金
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
BigDecimal
salaryCashPledge
=
leaseOrderDO
.
getSalaryCashPledge
();
BigDecimal
otherPledge
=
leaseOrderDO
.
getOtherPledge
();
// 一一判断押金是否够扣减的
if
(
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
shareCashPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金足够抵扣
shareCashPledge
=
shareCashPledge
.
subtract
(
operatingDeposit
);
}
else
{
operatingDeposit
=
operatingDeposit
.
subtract
(
shareCashPledge
);
if
(
salaryCashPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金足够抵扣
salaryCashPledge
=
salaryCashPledge
.
subtract
(
operatingDeposit
);
// 进行后续操作
boolean
isModifiedConfirmed
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
.
getCode
());
boolean
isRefund
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
MODIFIED_DEPOSIT_REFUND
.
getCode
());
if
(
isModifiedConfirmed
||
isRefund
)
{
// 根据订单id查询出修改后的押金
LeaseRefundOrderDO
leaseRefundOrderDO
=
leaseOrderDao
.
selectGiveBackByOrderId
(
id
,
OrderType
.
PFREC
.
getCode
());
BigDecimal
operatingDeposit
=
BigDecimal
.
ZERO
;
operatingDeposit
=
operatingDeposit
.
add
(
leaseRefundOrderDO
.
getModifiedDeposit
());
// 判断用户之前的押金,然后进行操作:
// 1、分别获取用户之前抵扣掉的押金
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
BigDecimal
salaryCashPledge
=
leaseOrderDO
.
getSalaryCashPledge
();
BigDecimal
otherPledge
=
leaseOrderDO
.
getOtherPledge
();
// 一一判断押金是否够扣减的
if
(
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
shareCashPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金足够抵扣
shareCashPledge
=
shareCashPledge
.
subtract
(
operatingDeposit
);
}
else
{
operatingDeposit
=
operatingDeposit
.
subtract
(
s
alary
CashPledge
);
if
(
other
Pledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金
+其他押金
足够抵扣
otherPledge
=
other
Pledge
.
subtract
(
operatingDeposit
);
operatingDeposit
=
operatingDeposit
.
subtract
(
s
hare
CashPledge
);
if
(
salaryCash
Pledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金足够抵扣
salaryCashPledge
=
salaryCash
Pledge
.
subtract
(
operatingDeposit
);
// 进行后续操作
}
else
{
operatingDeposit
=
operatingDeposit
.
subtract
(
salaryCashPledge
);
if
(
otherPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge
=
otherPledge
.
subtract
(
operatingDeposit
);
// 进行后续操作
}
}
}
// 进行金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
leaseOrderDO
.
getShareAmount
(),
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setOrderStatus
(
999
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
// 进行多余的押金退回
if
((
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
moneyRefund
(
shareCashPledge
,
salaryCashPledge
,
currentAccount
,
leaseOrderDO
);
}
}
else
{
if
(
otherPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge
=
otherPledge
.
subtract
(
operatingDeposit
);
}
}
// 进行金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
leaseOrderDO
.
getShareAmount
(),
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setOrderStatus
(
999
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
// 进行多余的押金退回
if
((
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
moneyRefund
(
shareCashPledge
,
salaryCashPledge
,
currentAccount
,
leaseOrderDO
);
// 退回微信支付的押金部分
if
(
otherPledge
!=
null
&&
otherPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
(
otherPledge
.
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
}
else
{
if
(
otherPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge
=
otherPledge
.
subtract
(
operatingDeposit
);
if
(
isModifiedConfirmed
)
{
// 进行平台打款
return
businessIncome
(
currentAccount
,
id
,
leaseOrderDO
);
}
}
// 退回微信支付的押金部分
if
(
otherPledge
!=
null
&&
otherPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
(
otherPledge
.
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
if
(
isRefund
)
{
// 退回微信的钱
if
(
leaseOrderDO
.
getOtherAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
((
leaseOrderDO
.
getOtherPledge
().
add
(
leaseOrderDO
.
getOtherAmount
())).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 退回云享金及余额
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
userPayUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
userPayUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setRemark
(
"租赁订单退款"
);
userPayUavWalletVO
.
setOrderStatus
(
1700
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
// 修改退款操状态
this
.
updateLeaseOrderStatus
(
id
,
LeaseOrderStatus
.
CLOSE
);
}
return
ResultBody
.
success
();
}
else
{
return
ResultBody
.
error
(
"状态流程有误"
);
}
// 进行平台打款
return
businessIncome
(
currentAccount
,
id
,
leaseOrderDO
);
}
@Override
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论