Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
5605d728
提交
5605d728
authored
9月 06, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提现
上级
9505742b
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
53 行增加
和
24 行删除
+53
-24
PayWalletDO.java
...ain/java/com/mmc/iuav/user/entity/wallet/PayWalletDO.java
+5
-0
XzEnums.java
...e-user/src/main/java/com/mmc/iuav/user/enums/XzEnums.java
+1
-1
WithdrawalServiceImpl.java
...mc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
+40
-21
XzServiceImpl.java
...va/com/mmc/iuav/user/service/xzsz/impl/XzServiceImpl.java
+3
-2
PayWalletDao.xml
...ce-user/src/main/resources/mapper/wallet/PayWalletDao.xml
+4
-0
没有找到文件。
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/wallet/PayWalletDO.java
浏览文件 @
5605d728
...
...
@@ -56,6 +56,11 @@ public class PayWalletDO implements Serializable {
private
BigDecimal
wxCashFreeze
;
/**
* 提现冻结
*/
private
BigDecimal
wdlFreeze
;
/**
* 提现总额
*/
private
BigDecimal
salaryWdl
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/enums/XzEnums.java
浏览文件 @
5605d728
...
...
@@ -8,7 +8,7 @@ package com.mmc.iuav.user.enums;
public
enum
XzEnums
{
submit_result
(
"submitResult"
,
"上报结果通知"
),
trade_result
(
"tradeResult"
,
"交易结果通知"
),
await
(
"await"
,
"待发放(交易排队中-过渡状态)"
),
handle
(
"handle"
,
"交易中"
),
success
(
"success"
,
"交易成功"
),
failure
(
"failure"
,
"交易失败"
),
is_success
(
"isSuccess"
,
"交易是否成功"
),
T
(
"T"
,
"回调code"
);
failure
(
"failure"
,
"交易失败"
),
is_success
(
"isSuccess"
,
"交易是否成功"
),
T
(
"T"
,
"回调code"
)
,
F
(
"F"
,
"回调code"
)
;
private
String
code
;
private
String
name
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
浏览文件 @
5605d728
...
...
@@ -15,6 +15,7 @@ import com.mmc.iuav.user.entity.wallet.PayWalletDO;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.enums.WithdrawalApplyStatus
;
import
com.mmc.iuav.user.enums.WithdrawalMethod
;
import
com.mmc.iuav.user.enums.XzEnums
;
import
com.mmc.iuav.user.model.dto.wallet.WithdrawalApplyDTO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO
;
...
...
@@ -23,6 +24,7 @@ import com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
import
com.mmc.iuav.user.service.xzsz.XzService
;
import
com.mmc.iuav.user.util.TDateUtil
;
import
com.mmc.iuav.user.xzsz.SingleSubmitResp
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -113,7 +115,7 @@ public class WithdrawalServiceImpl implements WithdrawalService {
payWalletDO
.
setPid
(
payWallet
.
getPid
());
payWalletDO
.
setUserAccountId
(
userAccountId
);
payWalletDO
.
setSalaryAmt
(
payWallet
.
getSalaryAmt
().
subtract
(
applyWithdrawalVO
.
getPayAmount
()));
payWalletDO
.
set
SalaryFreeze
(
payWallet
.
getSalary
Freeze
().
add
(
applyWithdrawalVO
.
getPayAmount
()));
payWalletDO
.
set
WdlFreeze
(
payWallet
.
getWdl
Freeze
().
add
(
applyWithdrawalVO
.
getPayAmount
()));
int
updateCount
=
payWalletDao
.
updatePayWallet
(
payWalletDO
);
if
(
updateCount
!=
1
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
...
...
@@ -201,28 +203,22 @@ public class WithdrawalServiceImpl implements WithdrawalService {
xzWithdrawalVO
.
setBankName
(
applyInfo
.
getBankName
());
xzWithdrawalVO
.
setPositionName
(
applyInfo
.
getPositionName
());
xzWithdrawalVO
.
setPayAmount
(
applyInfo
.
getPayAmount
());
xzService
.
singleSubmit
(
xzWithdrawalVO
);
SingleSubmitResp
singleSubmitResp
=
xzService
.
singleSubmit
(
xzWithdrawalVO
);
if
(
XzEnums
.
F
.
getCode
().
equals
(
singleSubmitResp
.
getIsSuccess
()))
{
// 更新提现申请记录
XzWithdrawalApplyDO
xzWithdrawalApplyDO
=
new
XzWithdrawalApplyDO
();
xzWithdrawalApplyDO
.
setOuterTradeNo
(
applyInfo
.
getOuterTradeNo
());
xzWithdrawalApplyDO
.
setTradeResult
(
XzEnums
.
failure
.
getName
());
xzWithdrawalApplyDO
.
setTradeStatus
(
XzEnums
.
failure
.
getCode
());
xzWithdrawalApplyDO
.
setErrorCode
(
singleSubmitResp
.
getErrorCode
());
xzWithdrawalApplyDO
.
setErrorMessage
(
singleSubmitResp
.
getErrorMessage
());
payWalletDao
.
updateWithdrawalApply
(
xzWithdrawalApplyDO
);
// 回滚用户钱包金额
rollbackPayWallet
(
applyInfo
,
wallet
);
}
}
else
{
// 审批未通过 退回金额 解除冻结
// 生成提现流水编号
String
payNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
applyInfo
.
getUserAccountId
()
+
CodeUtil
.
getRandomNum
(
4
);
// 记录流水记录
WithdrawalLogDO
withdrawalLogDO
=
new
WithdrawalLogDO
();
withdrawalLogDO
.
setPayNo
(
payNo
);
withdrawalLogDO
.
setPayTime
(
new
Date
());
withdrawalLogDO
.
setSalaryPaid
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
()));
withdrawalLogDO
.
setXzWithdrawalApplyId
(
applyInfo
.
getId
());
withdrawalLogDO
.
setUserAccountId
(
applyInfo
.
getUserAccountId
());
withdrawalLogDO
.
setPayMethod
(
WithdrawalMethod
.
TXSB
.
getCode
());
withdrawalLogDO
.
setSalaryFreeze
(
new
BigDecimal
(
0
));
payWalletDao
.
insertWithdrawalLog
(
withdrawalLogDO
);
// 修改钱包信息,钱包冻结金额
PayWalletDO
payWalletDO
=
new
PayWalletDO
();
payWalletDO
.
setPid
(
wallet
.
getPid
());
payWalletDO
.
setUserAccountId
(
applyInfo
.
getUserAccountId
());
payWalletDO
.
setSalaryAmt
(
wallet
.
getSalaryAmt
().
add
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
())));
payWalletDO
.
setSalaryFreeze
(
wallet
.
getSalaryFreeze
().
subtract
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
())));
int
updateCount
=
payWalletDao
.
updatePayWallet
(
payWalletDO
);
int
updateCount
=
rollbackPayWallet
(
applyInfo
,
wallet
);
if
(
updateCount
!=
1
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
"操作失败,请稍后重试!"
);
...
...
@@ -230,4 +226,27 @@ public class WithdrawalServiceImpl implements WithdrawalService {
}
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
rollbackPayWallet
(
XzWithdrawalApplyDO
applyInfo
,
PayWalletDO
wallet
)
{
// 生成提现流水编号
String
payNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
applyInfo
.
getUserAccountId
()
+
CodeUtil
.
getRandomNum
(
4
);
// 记录流水记录
WithdrawalLogDO
withdrawalLogDO
=
new
WithdrawalLogDO
();
withdrawalLogDO
.
setPayNo
(
payNo
);
withdrawalLogDO
.
setPayTime
(
new
Date
());
withdrawalLogDO
.
setSalaryPaid
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
()));
withdrawalLogDO
.
setXzWithdrawalApplyId
(
applyInfo
.
getId
());
withdrawalLogDO
.
setUserAccountId
(
applyInfo
.
getUserAccountId
());
withdrawalLogDO
.
setPayMethod
(
WithdrawalMethod
.
TXSB
.
getCode
());
withdrawalLogDO
.
setSalaryFreeze
(
new
BigDecimal
(
0
));
payWalletDao
.
insertWithdrawalLog
(
withdrawalLogDO
);
// 修改钱包信息,钱包冻结金额
PayWalletDO
payWalletDO
=
new
PayWalletDO
();
payWalletDO
.
setPid
(
wallet
.
getPid
());
payWalletDO
.
setUserAccountId
(
applyInfo
.
getUserAccountId
());
payWalletDO
.
setSalaryAmt
(
wallet
.
getSalaryAmt
().
add
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
())));
payWalletDO
.
setSalaryWdl
(
wallet
.
getSalaryWdl
().
subtract
(
BigDecimal
.
valueOf
(
applyInfo
.
getPayAmount
())));
return
payWalletDao
.
updatePayWallet
(
payWalletDO
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/XzServiceImpl.java
浏览文件 @
5605d728
...
...
@@ -399,7 +399,6 @@ public class XzServiceImpl implements XzService {
}
}
else
{
log
.
info
(
"xzWithdrawNotify fail:{}"
,
notify
);
}
return
"success"
;
}
...
...
@@ -433,8 +432,10 @@ public class XzServiceImpl implements XzService {
payWalletDO
.
setUserAccountId
(
withdrawCashApplyDetails
.
getUserAccountId
());
if
(
flag
==
0
)
{
payWalletDO
.
setSalaryAmt
(
wallet
.
getSalaryAmt
().
add
(
data
.
getPayAmount
()));
}
else
{
payWalletDO
.
setSalaryWdl
(
wallet
.
getSalaryWdl
().
add
(
data
.
getPayAmount
()));
}
payWalletDO
.
set
SalaryFreeze
(
wallet
.
getSalary
Freeze
().
subtract
(
data
.
getPayAmount
()));
payWalletDO
.
set
WdlFreeze
(
wallet
.
getWdl
Freeze
().
subtract
(
data
.
getPayAmount
()));
int
updatePayWalletCount
=
payWalletDao
.
updatePayWallet
(
payWalletDO
);
if
(
updatePayWalletCount
!=
1
)
{
log
.
error
(
"回调返回提现时,修改钱包信息失败,信息是:{}"
,
JSON
.
toJSONString
(
payWalletDO
));
...
...
csm-service/cms-service-user/src/main/resources/mapper/wallet/PayWalletDao.xml
浏览文件 @
5605d728
...
...
@@ -51,6 +51,9 @@
<if
test=
"salaryFreeze != null"
>
salary_freeze = #{salaryFreeze},
</if>
<if
test=
"wdlFreeze != null"
>
wdl_freeze = #{wdlFreeze}
</if>
<if
test=
"salaryWdl != null"
>
salary_wdl =#{salaryWdl}
</if>
...
...
@@ -129,6 +132,7 @@
salary_amt,
salary_paid,
salary_freeze,
wdl_freeze,
salary_wdl,
create_time
from pay_wallet
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论