Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
cf4f73fb
提交
cf4f73fb
authored
10月 12, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
确认结算
上级
03cba7cd
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
142 行增加
和
41 行删除
+142
-41
LeaseOrderController.java
...va/com/mmc/oms/controller/lease/LeaseOrderController.java
+7
-0
LeaseOrderService.java
...ain/java/com/mmc/oms/service/lease/LeaseOrderService.java
+2
-0
LeaseOrderServiceImpl.java
...com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
+133
-41
没有找到文件。
src/main/java/com/mmc/oms/controller/lease/LeaseOrderController.java
浏览文件 @
cf4f73fb
...
...
@@ -114,4 +114,11 @@ public class LeaseOrderController extends BaseController {
return
leaseOrderService
.
removeLeaseOrder
(
id
);
}
@ApiOperation
(
value
=
"小程序确认结算"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"confirmSettlement"
)
public
ResultBody
confirmSettlement
(
@RequestParam
Integer
id
,
HttpServletRequest
request
)
throws
Exception
{
return
leaseOrderService
.
confirmSettlement
(
id
,
this
.
getCurrentAccount
(
request
));
}
}
src/main/java/com/mmc/oms/service/lease/LeaseOrderService.java
浏览文件 @
cf4f73fb
...
...
@@ -40,4 +40,6 @@ public interface LeaseOrderService {
ResultBody
giveBack
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
);
ResultBody
pfConfirmOrderWare
(
BaseAccountDTO
currentAccount
,
LeaseOrderRefundVO
param
);
ResultBody
confirmSettlement
(
Integer
id
,
BaseAccountDTO
currentAccount
);
}
src/main/java/com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
浏览文件 @
cf4f73fb
...
...
@@ -614,7 +614,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
param
.
getUavOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
toString
().
equals
(
LeaseOrderStatus
.
PAID
.
getCode
().
toString
()))
{
return
ResultBody
.
error
(
"状态流程有误
,请重试
!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
this
.
updateLeaseOrderStatus
(
param
.
getUavOrderId
(),
LeaseOrderStatus
.
SHIPPED
);
// 修改收货信息
...
...
@@ -629,7 +629,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
SHIPPED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误
,请重试
!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
if
(
StringUtils
.
isNotEmpty
(
leaseOrderRefundVO
.
getFile
())
||
StringUtils
.
isNotEmpty
(
leaseOrderRefundVO
.
getReason
()))
{
// 插入确认信息
...
...
@@ -672,7 +672,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
TO_BE_RETURNED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误
,请重试
!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
leaseOrderRefundVO
);
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
...
...
@@ -698,11 +698,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
BigDecimal
shareAmount
=
leaseOrderDO
.
getShareAmount
();
BigDecimal
salaryAmount
=
leaseOrderDO
.
getSalaryAmount
();
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setRemark
(
"租赁订单金额解冻"
);
userPayUavWalletVO
.
setCashAmount
(
shareAmount
.
add
(
leaseOrderDO
.
getShareCashPledge
()));
userPayUavWalletVO
.
setSalaryAmount
(
salaryAmount
.
add
(
leaseOrderDO
.
getSalaryCashPledge
()));
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
// 金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
shareAmount
,
salaryAmount
);
userPayUavWalletVO
.
setOrderStatus
(
isWaitingMerchantConfirm
?
999
:
1400
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
...
...
@@ -710,10 +707,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
// 退回微信支付的押金部分
if
(
leaseOrderDO
.
getOtherPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setOutTradeNo
(
leaseOrderDO
.
getOrderNo
());
applyRefundVO
.
setReason
(
"租赁押金退款"
);
applyRefundVO
.
setRefund
(
leaseOrderDO
.
getOtherPledge
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
...
...
@@ -728,38 +722,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
BigDecimal
salaryCashPledge
=
leaseOrderDO
.
getSalaryCashPledge
();
if
((
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
userPayUavWalletVO
.
setRemark
(
"租赁押金退回"
);
userPayUavWalletVO
.
setCashAmount
(
shareCashPledge
);
userPayUavWalletVO
.
setSalaryAmount
(
salaryCashPledge
);
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
userPayUavWalletVO
.
setOrderStatus
(
1600
);
ResultBody
giveBackPledge
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
giveBackPledge
;
}
moneyRefund
(
shareCashPledge
,
salaryCashPledge
,
currentAccount
,
leaseOrderDO
);
}
}
}
if
(
isWaitingMerchantConfirm
)
{
BigDecimal
thirdAmount
=
leaseOrderDO
.
getOrderTotalAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
).
subtract
(
UavOrderProportion
.
PROPORTION
).
divide
(
BigDecimal
.
valueOf
(
100
)));
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setSalaryAmount
(
thirdAmount
);
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setRemark
(
"租赁订单收入,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1500
);
// 拿到商家管理员的用户id
ResultBody
managerRes
=
userAppApi
.
getManagerIdByBackUserId
(
leaseOrderDO
.
getThirdBackUserAccountId
(),
null
);
if
(!
managerRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
managerRes
;
}
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultIncomeBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultIncomeBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultIncomeBody
;
}
leaseOrderDao
.
updateLeaseOrderProportion
(
leaseOrderDO
.
getId
(),
UavOrderProportion
.
PROPORTION
.
intValue
());
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
);
return
businessIncome
(
currentAccount
,
param
.
getOrderId
(),
leaseOrderDO
);
}
}
else
{
// 有破损等待平台
...
...
@@ -774,8 +742,132 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
);
}
}
else
{
return
ResultBody
.
error
(
"状态流程有误,请重试"
);
return
ResultBody
.
error
(
"状态流程有误"
);
}
return
ResultBody
.
success
();
}
private
ResultBody
businessIncome
(
BaseAccountDTO
currentAccount
,
Integer
orderId
,
LeaseOrderDO
leaseOrderDO
)
{
BigDecimal
thirdAmount
=
leaseOrderDO
.
getOrderTotalAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
).
subtract
(
UavOrderProportion
.
PROPORTION
).
divide
(
BigDecimal
.
valueOf
(
100
)));
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setSalaryAmount
(
thirdAmount
);
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setRemark
(
"租赁订单收入,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1500
);
// 拿到商家管理员的用户id
ResultBody
managerRes
=
userAppApi
.
getManagerIdByBackUserId
(
leaseOrderDO
.
getThirdBackUserAccountId
(),
null
);
if
(!
managerRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
managerRes
;
}
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultIncomeBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultIncomeBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultIncomeBody
;
}
leaseOrderDao
.
updateLeaseOrderProportion
(
leaseOrderDO
.
getId
(),
UavOrderProportion
.
PROPORTION
.
intValue
());
this
.
updateLeaseOrderStatus
(
orderId
,
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
);
return
ResultBody
.
success
();
}
private
ResultBody
moneyRefund
(
BigDecimal
shareCashPledge
,
BigDecimal
salaryCashPledge
,
BaseAccountDTO
currentAccount
,
LeaseOrderDO
leaseOrderDO
)
{
PayUavWalletVO
refundUavWalletVO
=
new
PayUavWalletVO
();
refundUavWalletVO
.
setRemark
(
"租赁押金退回"
);
refundUavWalletVO
.
setCashAmount
(
shareCashPledge
);
refundUavWalletVO
.
setSalaryAmount
(
salaryCashPledge
);
refundUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
refundUavWalletVO
.
setOrderStatus
(
1600
);
ResultBody
giveBackPledge
=
userAppApi
.
feignPayUavWallet
(
refundUavWalletVO
,
currentAccount
.
getToken
());
if
(!
giveBackPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
giveBackPledge
;
}
return
ResultBody
.
success
();
}
private
ApplyRefundVO
wxRefund
(
LeaseOrderDO
leaseOrderDO
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setOutTradeNo
(
leaseOrderDO
.
getOrderNo
());
applyRefundVO
.
setReason
(
"租赁押金退款"
);
applyRefundVO
.
setRefund
(
leaseOrderDO
.
getOtherPledge
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
return
applyRefundVO
;
}
private
PayUavWalletVO
amountUnfreezing
(
LeaseOrderDO
leaseOrderDO
,
BigDecimal
shareAmount
,
BigDecimal
salaryAmount
)
{
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setRemark
(
"租赁订单金额解冻"
);
userPayUavWalletVO
.
setCashAmount
(
shareAmount
.
add
(
leaseOrderDO
.
getShareCashPledge
()));
userPayUavWalletVO
.
setSalaryAmount
(
salaryAmount
.
add
(
leaseOrderDO
.
getSalaryCashPledge
()));
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
return
userPayUavWalletVO
;
}
@Override
public
ResultBody
confirmSettlement
(
Integer
id
,
BaseAccountDTO
currentAccount
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
log
.
info
(
"平台确认归还操作,leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
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
);
// 进行后续操作
}
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
);
}
}
// 退回微信支付的押金部分
if
(
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
;
}
}
// 进行平台打款
return
businessIncome
(
currentAccount
,
id
,
leaseOrderDO
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论