Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
cms
Commits
f1408560
提交
f1408560
authored
8月 29, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提现功能开发
上级
2c2f5908
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
513 行增加
和
32 行删除
+513
-32
WithdrawalApplyDTO.java
...om/mmc/iuav/user/model/dto/wallet/WithdrawalApplyDTO.java
+51
-0
UsableCashPoolingDTO.java
...om/mmc/iuav/user/model/dto/xzsz/UsableCashPoolingDTO.java
+27
-0
WithdrawalApplyQO.java
.../com/mmc/iuav/user/model/qo/wallet/WithdrawalApplyQO.java
+54
-0
WithdrawalInfoVO.java
...ain/java/com/mmc/iuav/user/model/vo/WithdrawalInfoVO.java
+1
-1
ResultEnum.java
...-util/src/main/java/com/mmc/iuav/response/ResultEnum.java
+6
-1
WithdrawalController.java
...mmc/iuav/user/controller/wallet/WithdrawalController.java
+20
-11
XzController.java
.../java/com/mmc/iuav/user/controller/xzsz/XzController.java
+1
-1
PayWalletDao.java
.../main/java/com/mmc/iuav/user/dao/wallet/PayWalletDao.java
+8
-1
XzWithdrawalApplyDO.java
...in/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
+15
-3
WithdrawalLogDO.java
...java/com/mmc/iuav/user/entity/wallet/WithdrawalLogDO.java
+2
-0
WithdrawalApplyStatus.java
...n/java/com/mmc/iuav/user/enums/WithdrawalApplyStatus.java
+34
-0
PayWalletServiceImpl.java
...c/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
+2
-2
WithdrawalService.java
...ava/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
+6
-0
XzService.java
...c/main/java/com/mmc/iuav/user/service/xzsz/XzService.java
+2
-1
WithdrawalServiceImpl.java
...mc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
+98
-0
XzServiceImpl.java
...va/com/mmc/iuav/user/service/xzsz/impl/XzServiceImpl.java
+19
-7
PayWalletDao.xml
...ce-user/src/main/resources/mapper/wallet/PayWalletDao.xml
+167
-4
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/wallet/WithdrawalApplyDTO.java
0 → 100644
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
.
wallet
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author 作者 lw
* @version 创建时间:2023.8.28 11:08:54
* @explain 类说明
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
WithdrawalApplyDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5782430067900145219L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"申请人的用户ID"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"申请金额"
)
private
BigDecimal
applyAmt
;
@ApiModelProperty
(
value
=
"状态: 0平台处理中 1提现成功 2提现失败"
)
private
Integer
applyStatus
;
@ApiModelProperty
(
value
=
"开户人"
)
private
String
empName
;
@ApiModelProperty
(
value
=
"开户银行-支行名称"
)
private
String
bankName
;
@ApiModelProperty
(
value
=
"收款账号"
)
private
String
payAccount
;
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"流水编号"
)
private
String
outerTradeNo
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
phoneNum
;
@ApiModelProperty
(
value
=
"提现方式-微信(wechat)-支付宝(alipay)-银行卡(bank_card)"
,
required
=
true
,
example
=
"wechat"
)
private
String
settleType
;
@ApiModelProperty
(
value
=
"处理信息"
)
private
String
tradeResult
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/xzsz/UsableCashPoolingDTO.java
0 → 100644
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
.
xzsz
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/8/29 14:25
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
UsableCashPoolingDTO
{
@ApiModelProperty
(
value
=
"商户企业名称"
)
private
String
companyName
;
@ApiModelProperty
(
value
=
"可用余额(含税费金额)"
)
private
String
taxFundName
;
@ApiModelProperty
(
value
=
"税源地名称"
)
private
BigDecimal
availableBalance
;
@ApiModelProperty
(
value
=
"交易渠道"
)
private
String
tradesChannel
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/qo/wallet/WithdrawalApplyQO.java
0 → 100644
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
model
.
qo
.
wallet
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年10月29日 下午2:25:08
* @explain 类说明
*/
import
com.mmc.iuav.group.Freeze
;
import
com.mmc.iuav.group.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
WithdrawalApplyQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2185498289462506967L
;
@ApiModelProperty
(
value
=
"关键字"
,
example
=
"666"
)
private
String
keyword
;
@ApiModelProperty
(
value
=
"开始时间"
,
example
=
"2023-08-28 00:00:00"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
example
=
"2023-08-28 23:59:59"
)
private
String
endTime
;
@ApiModelProperty
(
value
=
"状态: 0提现申请中 1提现成功 2提现失败"
,
example
=
"0"
)
private
Integer
applyStatus
;
@ApiModelProperty
(
value
=
"通道标识-微信(wechat)-支付宝(alipay)-银行卡(bank_card)"
,
required
=
true
,
example
=
"wechat"
)
private
String
settleType
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
,
example
=
"10"
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/
dto/wallet
/WithdrawalInfoVO.java
→
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/
vo
/WithdrawalInfoVO.java
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
.
wallet
;
package
com
.
mmc
.
iuav
.
user
.
model
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
...
...
cms-common/cms-common-util/src/main/java/com/mmc/iuav/response/ResultEnum.java
浏览文件 @
f1408560
...
@@ -82,7 +82,12 @@ public enum ResultEnum implements BaseErrorInfoInterface {
...
@@ -82,7 +82,12 @@ public enum ResultEnum implements BaseErrorInfoInterface {
WX_NOT_SEND_MSG_PARAM_ERROR
(
"5029"
,
"userId和openId至少一个不为空"
),
WX_NOT_SEND_MSG_PARAM_ERROR
(
"5029"
,
"userId和openId至少一个不为空"
),
APPLET_USER_ACCESS_TOKE_ERROR
(
"5031"
,
"获取accessToken签名校验失败"
),
APPLET_USER_ACCESS_TOKE_ERROR
(
"5031"
,
"获取accessToken签名校验失败"
),
WX_NOT_REL_ERROR
(
"5028"
,
"获取微信公众号用户信息失败"
),
WX_NOT_REL_ERROR
(
"5028"
,
"获取微信公众号用户信息失败"
),
DELETE_PASS_ERROR
(
"5029"
,
"已通过认证的不可删除"
);
DELETE_PASS_ERROR
(
"5029"
,
"已通过认证的不可删除"
),
// 提现相关
WITHDRAWAL_APPLY_STATUS_ERROR
(
"40001"
,
"审批状态有误"
),
WITHDRAWAL_INFO_NOT_FIND_ERROR
(
"40002"
,
"提现申请单信息不存在"
),
WITHDRAWAL_REPEAT_CHECK_ERROR
(
"40003"
,
"提现申请单已被审批,切勿重复审批。"
);
/**
/**
* 错误码
* 错误码
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/wallet/WithdrawalController.java
浏览文件 @
f1408560
...
@@ -2,19 +2,15 @@ package com.mmc.iuav.user.controller.wallet;
...
@@ -2,19 +2,15 @@ package com.mmc.iuav.user.controller.wallet;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.controller.BaseController
;
import
com.mmc.iuav.user.controller.BaseController
;
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.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.*
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
...
@@ -38,8 +34,6 @@ public class WithdrawalController extends BaseController {
...
@@ -38,8 +34,6 @@ public class WithdrawalController extends BaseController {
return
withdrawalService
.
apply
(
applyWithdrawalVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
return
withdrawalService
.
apply
(
applyWithdrawalVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
}
// 提现查询
@ApiOperation
(
value
=
"个人提现明细列表"
)
@ApiOperation
(
value
=
"个人提现明细列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"withdrawalList"
)
@PostMapping
(
"withdrawalList"
)
...
@@ -47,6 +41,21 @@ public class WithdrawalController extends BaseController {
...
@@ -47,6 +41,21 @@ public class WithdrawalController extends BaseController {
return
withdrawalService
.
withdrawalList
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
walletFlowQO
);
return
withdrawalService
.
withdrawalList
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
walletFlowQO
);
}
}
// 全部用户提现列表
@ApiOperation
(
value
=
"PC端-提现管理-分页查询"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
WithdrawalApplyDTO
.
class
)})
@PostMapping
(
"listPageWithdrawalApply"
)
public
ResultBody
listPageWithdrawalApply
(
@ApiParam
(
value
=
"提现管理查询QO"
,
required
=
true
)
@RequestBody
WithdrawalApplyQO
param
)
{
return
ResultBody
.
success
(
withdrawalService
.
listPageWithdrawalApply
(
param
));
}
@ApiOperation
(
value
=
"PC端-提现管理-审批"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"approveWithdrawalApply"
)
public
ResultBody
approveWithdrawalApply
(
@ApiParam
(
value
=
"申请单ID"
,
required
=
true
)
@RequestParam
Integer
id
,
@ApiParam
(
value
=
"状态: 0提现申请中 1审批通过 2审批未通过"
,
required
=
true
)
@RequestParam
Integer
applyStatus
,
@ApiParam
(
value
=
"备注"
)
String
remark
,
HttpServletRequest
request
)
{
return
ResultBody
.
success
(
withdrawalService
.
approveWithdrawalApply
(
id
,
applyStatus
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
remark
));
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/xzsz/XzController.java
浏览文件 @
f1408560
...
@@ -47,7 +47,7 @@ public class XzController extends BaseController {
...
@@ -47,7 +47,7 @@ public class XzController extends BaseController {
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"getUsableCashPooling"
)
@PostMapping
(
"getUsableCashPooling"
)
public
ResultBody
getUsableCashPooling
()
{
public
ResultBody
getUsableCashPooling
()
{
return
xzService
.
xzService
(
);
return
ResultBody
.
success
(
xzService
.
getUsableCashPooling
()
);
}
}
@ApiOperation
(
value
=
"签约状态查询"
)
@ApiOperation
(
value
=
"签约状态查询"
)
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/wallet/PayWalletDao.java
浏览文件 @
f1408560
...
@@ -5,6 +5,7 @@ import com.mmc.iuav.user.entity.wallet.PayLogDO;
...
@@ -5,6 +5,7 @@ import com.mmc.iuav.user.entity.wallet.PayLogDO;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
import
java.util.List
;
...
@@ -34,9 +35,15 @@ public interface PayWalletDao {
...
@@ -34,9 +35,15 @@ public interface PayWalletDao {
List
<
WithdrawalLogDO
>
getWithdrawalListByUserAccountId
(
WalletFlowQO
param
);
List
<
WithdrawalLogDO
>
getWithdrawalListByUserAccountId
(
WalletFlowQO
param
);
XzWithdrawalApplyDO
w
ithdrawalApplyById
(
Integer
id
);
XzWithdrawalApplyDO
getW
ithdrawalApplyById
(
Integer
id
);
List
<
WithdrawalLogDO
>
listPayWithdrawalLog
(
Integer
id
);
List
<
WithdrawalLogDO
>
listPayWithdrawalLog
(
Integer
id
);
int
countPayWithdrawalLog
(
WalletFlowQO
param
);
int
countPayWithdrawalLog
(
WalletFlowQO
param
);
int
countWithdrawalApply
(
WithdrawalApplyQO
param
);
List
<
XzWithdrawalApplyDO
>
listPageWithdrawalApply
(
WithdrawalApplyQO
param
);
void
updateWithdrawalApply
(
XzWithdrawalApplyDO
apply
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
浏览文件 @
f1408560
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.entity;
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.entity;
import
com.mmc.iuav.user.entity.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.entity.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.enums.SettleTypeEnum
;
import
com.mmc.iuav.user.enums.SettleTypeEnum
;
import
com.mmc.iuav.user.model.dto.wallet.WithdrawalApplyDTO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.util.PrivacyUtil
;
import
com.mmc.iuav.user.util.PrivacyUtil
;
...
@@ -53,6 +54,10 @@ public class XzWithdrawalApplyDO implements Serializable {
...
@@ -53,6 +54,10 @@ public class XzWithdrawalApplyDO implements Serializable {
private
String
errorMessage
;
private
String
errorMessage
;
private
BigDecimal
chargeAmount
;
private
BigDecimal
chargeAmount
;
private
Date
createTime
;
private
Date
createTime
;
private
String
remark
;
private
Integer
approveUser
;
private
Date
approveTime
;
public
XzWithdrawalApplyDO
(
XzWithdrawalVO
xzWithdrawalVO
)
{
public
XzWithdrawalApplyDO
(
XzWithdrawalVO
xzWithdrawalVO
)
{
this
.
userAccountId
=
xzWithdrawalVO
.
getUserAccountId
();
this
.
userAccountId
=
xzWithdrawalVO
.
getUserAccountId
();
...
@@ -88,14 +93,21 @@ public class XzWithdrawalApplyDO implements Serializable {
...
@@ -88,14 +93,21 @@ public class XzWithdrawalApplyDO implements Serializable {
payAccount
=
PrivacyUtil
.
encryptBankAcct
(
payAccount
);
payAccount
=
PrivacyUtil
.
encryptBankAcct
(
payAccount
);
String
name
=
"提现"
;
String
name
=
"提现"
;
if
(
this
.
applyStatus
==
0
)
{
if
(
this
.
applyStatus
==
0
)
{
name
=
"
银行
处理中"
;
name
=
"
平台
处理中"
;
}
else
if
(
this
.
applyStatus
==
1
)
{
}
else
if
(
this
.
applyStatus
==
1
)
{
name
=
"
提现成功
"
;
name
=
"
审批通过
"
;
}
else
if
(
this
.
applyStatus
==
2
)
{
}
else
if
(
this
.
applyStatus
==
2
)
{
name
=
"
提现失败
"
;
name
=
"
审批未通过
"
;
}
}
return
UserBillingDetailVO
.
builder
().
userAccountId
(
userAccountId
)
return
UserBillingDetailVO
.
builder
().
userAccountId
(
userAccountId
)
.
payNo
(
outerTradeNo
).
payTime
(
payTime
).
account
(
payAccount
)
.
payNo
(
outerTradeNo
).
payTime
(
payTime
).
account
(
payAccount
)
.
name
(
name
).
id
(
id
).
build
();
.
name
(
name
).
id
(
id
).
build
();
}
}
public
WithdrawalApplyDTO
buildWithdrawalApplyDTO
()
{
return
WithdrawalApplyDTO
.
builder
().
id
(
id
).
userAccountId
(
userAccountId
).
applyAmt
(
new
BigDecimal
(
payAmount
))
.
applyStatus
(
applyStatus
).
empName
(
empName
).
bankName
(
bankName
).
payAccount
(
payAccount
)
.
remark
(
remark
).
outerTradeNo
(
outerTradeNo
).
phoneNum
(
empPhone
).
settleType
(
settleType
)
.
tradeResult
(
tradeResult
).
createTime
(
createTime
).
build
();
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/wallet/WithdrawalLogDO.java
浏览文件 @
f1408560
...
@@ -50,6 +50,8 @@ public class WithdrawalLogDO implements Serializable {
...
@@ -50,6 +50,8 @@ public class WithdrawalLogDO implements Serializable {
*/
*/
private
BigDecimal
salaryFreeze
;
private
BigDecimal
salaryFreeze
;
private
BigDecimal
salaryPaid
;
private
Date
createTime
;
private
Date
createTime
;
private
Date
updateTime
;
private
Date
updateTime
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/enums/WithdrawalApplyStatus.java
0 → 100644
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
enums
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年10月29日 下午2:43:14
* @explain 类说明
*/
public
enum
WithdrawalApplyStatus
{
TXSQ
(
0
,
"提现申请中"
),
TXCG
(
1
,
"提现成功"
),
TXSB
(
2
,
"提现失败"
);
private
Integer
code
;
private
String
name
;
WithdrawalApplyStatus
(
Integer
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
Integer
getCode
()
{
return
this
.
code
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName
()
{
return
this
.
name
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
浏览文件 @
f1408560
...
@@ -13,8 +13,8 @@ import com.mmc.iuav.user.entity.wallet.UserBillingDetailVO;
...
@@ -13,8 +13,8 @@ import com.mmc.iuav.user.entity.wallet.UserBillingDetailVO;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.enums.PayMethodEnums
;
import
com.mmc.iuav.user.enums.PayMethodEnums
;
import
com.mmc.iuav.user.model.dto.wallet.PayWalletDTO
;
import
com.mmc.iuav.user.model.dto.wallet.PayWalletDTO
;
import
com.mmc.iuav.user.model.dto.wallet.WithdrawalInfoVO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.WithdrawalInfoVO
;
import
com.mmc.iuav.user.model.vo.wallet.FlyerWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.FlyerWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.PublisherWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.PublisherWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
...
@@ -502,7 +502,7 @@ public class PayWalletServiceImpl implements PayWalletService {
...
@@ -502,7 +502,7 @@ public class PayWalletServiceImpl implements PayWalletService {
PayLogDO
payLogDO
=
payWalletDao
.
getPayLogById
(
id
);
PayLogDO
payLogDO
=
payWalletDao
.
getPayLogById
(
id
);
return
ResultBody
.
success
(
payLogDO
.
buildUserBillingDetailVO
());
return
ResultBody
.
success
(
payLogDO
.
buildUserBillingDetailVO
());
}
else
{
}
else
{
XzWithdrawalApplyDO
apply
=
payWalletDao
.
w
ithdrawalApplyById
(
id
);
XzWithdrawalApplyDO
apply
=
payWalletDao
.
getW
ithdrawalApplyById
(
id
);
UserBillingDetailVO
detail
=
apply
.
buildUserBillingDetailVO
();
UserBillingDetailVO
detail
=
apply
.
buildUserBillingDetailVO
();
List
<
WithdrawalLogDO
>
rebates
=
payWalletDao
.
listPayWithdrawalLog
(
apply
.
getId
());
List
<
WithdrawalLogDO
>
rebates
=
payWalletDao
.
listPayWithdrawalLog
(
apply
.
getId
());
detail
.
buildSchedules
(
rebates
);
detail
.
buildSchedules
(
rebates
);
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
浏览文件 @
f1408560
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
;
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
;
import
com.mmc.iuav.page.PageResult
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
/**
/**
...
@@ -12,4 +14,8 @@ public interface WithdrawalService {
...
@@ -12,4 +14,8 @@ public interface WithdrawalService {
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
);
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
);
ResultBody
withdrawalList
(
Integer
userAccountId
,
WalletFlowQO
walletFlowQO
);
ResultBody
withdrawalList
(
Integer
userAccountId
,
WalletFlowQO
walletFlowQO
);
PageResult
listPageWithdrawalApply
(
WithdrawalApplyQO
param
);
ResultBody
approveWithdrawalApply
(
Integer
id
,
Integer
applyStatus
,
Integer
userAccountId
,
String
remark
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/XzService.java
浏览文件 @
f1408560
...
@@ -3,6 +3,7 @@ package com.mmc.iuav.user.service.xzsz;
...
@@ -3,6 +3,7 @@ package com.mmc.iuav.user.service.xzsz;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.dto.xzsz.UsableCashPoolingDTO
;
import
com.mmc.iuav.user.model.vo.XzAuthVO
;
import
com.mmc.iuav.user.model.vo.XzAuthVO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.xzsz.SingleSubmitResp
;
import
com.mmc.iuav.user.xzsz.SingleSubmitResp
;
...
@@ -17,7 +18,7 @@ public interface XzService {
...
@@ -17,7 +18,7 @@ public interface XzService {
ResultBody
getCashPooling
();
ResultBody
getCashPooling
();
ResultBody
xzService
();
UsableCashPoolingDTO
getUsableCashPooling
();
String
getContractScope
(
XzAuthVO
xzAuthVO
);
String
getContractScope
(
XzAuthVO
xzAuthVO
);
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
浏览文件 @
f1408560
...
@@ -13,10 +13,15 @@ import com.mmc.iuav.user.entity.XzAuthDO;
...
@@ -13,10 +13,15 @@ import com.mmc.iuav.user.entity.XzAuthDO;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
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.WithdrawalMethod
;
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.WalletFlowQO
;
import
com.mmc.iuav.user.model.qo.wallet.WithdrawalApplyQO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
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.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
...
@@ -50,6 +55,9 @@ public class WithdrawalServiceImpl implements WithdrawalService {
...
@@ -50,6 +55,9 @@ public class WithdrawalServiceImpl implements WithdrawalService {
@Autowired
@Autowired
private
PayWalletDao
payWalletDao
;
private
PayWalletDao
payWalletDao
;
@Autowired
private
XzService
xzService
;
@Override
@Override
@Transactional
@Transactional
public
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
)
{
public
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
)
{
...
@@ -95,6 +103,7 @@ public class WithdrawalServiceImpl implements WithdrawalService {
...
@@ -95,6 +103,7 @@ public class WithdrawalServiceImpl implements WithdrawalService {
withdrawalLogDO
.
setPayNo
(
payNo
);
withdrawalLogDO
.
setPayNo
(
payNo
);
withdrawalLogDO
.
setPayTime
(
new
Date
());
withdrawalLogDO
.
setPayTime
(
new
Date
());
withdrawalLogDO
.
setSalaryFreeze
(
applyWithdrawalVO
.
getPayAmount
());
withdrawalLogDO
.
setSalaryFreeze
(
applyWithdrawalVO
.
getPayAmount
());
withdrawalLogDO
.
setSalaryPaid
(
new
BigDecimal
(
0
));
withdrawalLogDO
.
setXzWithdrawalApplyId
(
xzWithdrawalApplyDO
.
getId
());
withdrawalLogDO
.
setXzWithdrawalApplyId
(
xzWithdrawalApplyDO
.
getId
());
withdrawalLogDO
.
setUserAccountId
(
userAccountId
);
withdrawalLogDO
.
setUserAccountId
(
userAccountId
);
withdrawalLogDO
.
setPayMethod
(
WithdrawalMethod
.
TXDJ
.
getCode
());
withdrawalLogDO
.
setPayMethod
(
WithdrawalMethod
.
TXDJ
.
getCode
());
...
@@ -132,4 +141,93 @@ public class WithdrawalServiceImpl implements WithdrawalService {
...
@@ -132,4 +141,93 @@ public class WithdrawalServiceImpl implements WithdrawalService {
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
withdrawalLogList
.
stream
()
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
withdrawalLogList
.
stream
()
.
map
(
WithdrawalLogDO:
:
buildUserBillingDetailVO
).
collect
(
Collectors
.
toList
())));
.
map
(
WithdrawalLogDO:
:
buildUserBillingDetailVO
).
collect
(
Collectors
.
toList
())));
}
}
@Override
public
PageResult
listPageWithdrawalApply
(
WithdrawalApplyQO
param
)
{
int
count
=
payWalletDao
.
countWithdrawalApply
(
param
);
if
(
count
==
0
)
{
return
PageResult
.
buildPage
(
param
.
getPageNo
(),
param
.
getPageSize
(),
count
);
}
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
List
<
XzWithdrawalApplyDO
>
list
=
payWalletDao
.
listPageWithdrawalApply
(
param
);
List
<
WithdrawalApplyDTO
>
pageList
=
list
.
stream
().
map
(
XzWithdrawalApplyDO:
:
buildWithdrawalApplyDTO
).
collect
(
Collectors
.
toList
());
return
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
pageList
);
}
@Override
@Transactional
public
ResultBody
approveWithdrawalApply
(
Integer
id
,
Integer
applyStatus
,
Integer
approveUserAccountId
,
String
remark
)
{
if
(!
WithdrawalApplyStatus
.
TXCG
.
getCode
().
toString
().
equals
(
applyStatus
.
toString
())
&&
!
WithdrawalApplyStatus
.
TXSB
.
getCode
().
toString
().
equals
(
applyStatus
.
toString
()))
{
return
ResultBody
.
error
(
ResultEnum
.
WITHDRAWAL_APPLY_STATUS_ERROR
);
}
// 查询申请单信息
XzWithdrawalApplyDO
applyInfo
=
payWalletDao
.
getWithdrawalApplyById
(
id
);
if
(
applyInfo
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
WITHDRAWAL_INFO_NOT_FIND_ERROR
);
}
if
(!(
WithdrawalApplyStatus
.
TXSQ
.
getCode
().
toString
()).
equals
(
applyInfo
.
getApplyStatus
().
toString
()))
{
return
ResultBody
.
error
(
ResultEnum
.
WITHDRAWAL_REPEAT_CHECK_ERROR
);
}
// 获取当前用户钱包信息
PayWalletDO
wallet
=
payWalletDao
.
getPayWalletByUser
(
applyInfo
.
getUserAccountId
());
// 修改申请单的操作人信息
XzWithdrawalApplyDO
apply
=
new
XzWithdrawalApplyDO
();
apply
.
setId
(
id
);
apply
.
setApplyStatus
(
applyStatus
);
apply
.
setRemark
(
remark
);
apply
.
setApproveUser
(
approveUserAccountId
);
apply
.
setApproveTime
(
new
Date
());
payWalletDao
.
updateWithdrawalApply
(
apply
);
if
(
WithdrawalApplyStatus
.
TXCG
.
getCode
().
toString
().
equals
(
applyStatus
.
toString
()))
{
// 如果判断审批状态是成功,那么就调用小猪结算提现接口
XzWithdrawalVO
xzWithdrawalVO
=
new
XzWithdrawalVO
();
xzWithdrawalVO
.
setUserAccountId
(
applyInfo
.
getUserAccountId
());
xzWithdrawalVO
.
setMonth
(
applyInfo
.
getMonth
());
xzWithdrawalVO
.
setOuterTradeNo
(
applyInfo
.
getOuterTradeNo
());
xzWithdrawalVO
.
setEmpName
(
applyInfo
.
getEmpName
());
xzWithdrawalVO
.
setEmpPhone
(
applyInfo
.
getEmpPhone
());
xzWithdrawalVO
.
setLicenseType
(
applyInfo
.
getLicenseType
());
xzWithdrawalVO
.
setLicenseId
(
applyInfo
.
getLicenseId
());
xzWithdrawalVO
.
setSettleType
(
applyInfo
.
getSettleType
());
xzWithdrawalVO
.
setPayAccount
(
applyInfo
.
getPayAccount
());
xzWithdrawalVO
.
setBankName
(
applyInfo
.
getBankName
());
xzWithdrawalVO
.
setPositionName
(
applyInfo
.
getPositionName
());
xzWithdrawalVO
.
setPayAmount
(
applyInfo
.
getPayAmount
());
xzService
.
singleSubmit
(
xzWithdrawalVO
);
}
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
);
if
(
updateCount
!=
1
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
"操作失败,请稍后重试!"
);
}
}
return
ResultBody
.
success
();
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/XzServiceImpl.java
浏览文件 @
f1408560
...
@@ -6,9 +6,12 @@ import cn.hutool.json.JSONObject;
...
@@ -6,9 +6,12 @@ import cn.hutool.json.JSONObject;
import
com.mmc.iuav.http.HttpsRequestUtil
;
import
com.mmc.iuav.http.HttpsRequestUtil
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.constant.UserSystemConstant
;
import
com.mmc.iuav.user.constant.UserSystemConstant
;
import
com.mmc.iuav.user.dao.wallet.PayWalletDao
;
import
com.mmc.iuav.user.dao.xzsz.XzDao
;
import
com.mmc.iuav.user.dao.xzsz.XzDao
;
import
com.mmc.iuav.user.entity.XzAuthDO
;
import
com.mmc.iuav.user.entity.XzAuthDO
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.dto.xzsz.UsableCashPoolingDTO
;
import
com.mmc.iuav.user.model.vo.XzAuthVO
;
import
com.mmc.iuav.user.model.vo.XzAuthVO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.service.xzsz.XzService
;
import
com.mmc.iuav.user.service.xzsz.XzService
;
...
@@ -30,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -30,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.crypto.Cipher
;
import
javax.crypto.Cipher
;
import
javax.crypto.spec.IvParameterSpec
;
import
javax.crypto.spec.IvParameterSpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
javax.crypto.spec.SecretKeySpec
;
...
@@ -50,6 +54,9 @@ public class XzServiceImpl implements XzService {
...
@@ -50,6 +54,9 @@ public class XzServiceImpl implements XzService {
@Autowired
@Autowired
private
XzDao
xzDao
;
private
XzDao
xzDao
;
@Resource
private
PayWalletDao
payWalletDao
;
@Override
@Override
public
ResultBody
getTaxFundList
()
{
public
ResultBody
getTaxFundList
()
{
PiggyOpenBasicsClient
piggyOpenBasicsClient
=
PiggyOpenBasicsClient
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
PiggyOpenBasicsClient
piggyOpenBasicsClient
=
PiggyOpenBasicsClient
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
...
@@ -70,14 +77,14 @@ public class XzServiceImpl implements XzService {
...
@@ -70,14 +77,14 @@ public class XzServiceImpl implements XzService {
}
}
@Override
@Override
public
ResultBody
xzService
()
{
public
UsableCashPoolingDTO
getUsableCashPooling
()
{
PiggyOpenBasicsClient
piggyOpenBasicsClient
=
PiggyOpenBasicsClient
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
PiggyOpenBasicsClient
piggyOpenBasicsClient
=
PiggyOpenBasicsClient
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
JSONObject
jsonObject
=
piggyOpenBasicsClient
.
getTaxFundCashPooling
(
PiggyBasicsVo
.
builder
()
JSONObject
jsonObject
=
piggyOpenBasicsClient
.
getTaxFundCashPooling
(
PiggyBasicsVo
.
builder
()
.
appKey
(
userSystemConstant
.
getXzAppKey
())
.
appKey
(
userSystemConstant
.
getXzAppKey
())
.
taxFundID
(
"8ae605f565884a1f9a5e91d5a661ce58"
)
.
taxFundID
(
"8ae605f565884a1f9a5e91d5a661ce58"
)
.
build
());
.
build
());
System
.
out
.
println
(
jsonObject
.
toString
());
System
.
out
.
println
(
jsonObject
.
toString
());
return
ResultBody
.
success
(
jsonObject
.
get
(
"data"
)
);
return
jsonObject
.
get
(
"data"
,
UsableCashPoolingDTO
.
class
);
}
}
@Override
@Override
...
@@ -101,7 +108,7 @@ public class XzServiceImpl implements XzService {
...
@@ -101,7 +108,7 @@ public class XzServiceImpl implements XzService {
if
(
jsonObject1
.
get
(
"data"
)
!=
null
)
{
if
(
jsonObject1
.
get
(
"data"
)
!=
null
)
{
// TODO 添加认证结果
// TODO 添加认证结果
String
signedResult
=
this
.
getSignedResult
(
xzAuthVO
);
String
signedResult
=
this
.
getSignedResult
(
xzAuthVO
);
return
"合同签署完毕"
;
return
"合同签署完毕"
;
}
else
{
}
else
{
Map
<
String
,
Integer
>
userInfo
=
new
HashMap
<
String
,
Integer
>();
Map
<
String
,
Integer
>
userInfo
=
new
HashMap
<
String
,
Integer
>();
...
@@ -178,7 +185,6 @@ public class XzServiceImpl implements XzService {
...
@@ -178,7 +185,6 @@ public class XzServiceImpl implements XzService {
@Override
@Override
public
SingleSubmitResp
singleSubmit
(
XzWithdrawalVO
xzWithdrawalVO
)
{
public
SingleSubmitResp
singleSubmit
(
XzWithdrawalVO
xzWithdrawalVO
)
{
xzWithdrawalVO
.
setNotifyUrl
(
userSystemConstant
.
getWithdrawNotify
());
PiggySingleWithdrawalApiV2Client
v2Client
=
PiggySingleWithdrawalApiV2Client
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
PiggySingleWithdrawalApiV2Client
v2Client
=
PiggySingleWithdrawalApiV2Client
.
getInstanse
(
userSystemConstant
.
getXzAppSecret
(),
userSystemConstant
.
getXzDomain
());
JSONObject
jsonObject
=
v2Client
.
singleSubmit
(
PiggySingleWithdrawV2Vo
.
builder
()
JSONObject
jsonObject
=
v2Client
.
singleSubmit
(
PiggySingleWithdrawV2Vo
.
builder
()
.
appKey
(
userSystemConstant
.
getXzAppKey
())
.
appKey
(
userSystemConstant
.
getXzAppKey
())
...
@@ -268,14 +274,20 @@ public class XzServiceImpl implements XzService {
...
@@ -268,14 +274,20 @@ public class XzServiceImpl implements XzService {
if
(
data
.
getNotifyType
().
equals
(
"submitResult"
))
{
if
(
data
.
getNotifyType
().
equals
(
"submitResult"
))
{
// 对上报的数据进行业务校验,例如:是否超限、是否有余额、是否有电签、参数是否准确等等前置校验。如果校验成功,订单进入待发队列等待发放
// 对上报的数据进行业务校验,例如:是否超限、是否有余额、是否有电签、参数是否准确等等前置校验。如果校验成功,订单进入待发队列等待发放
log
.
info
(
"deal submitResult"
);
log
.
info
(
"deal submitResult"
);
data
.
getOuterTradeNo
();
// 根据订单编号修改信息
XzWithdrawalApplyDO
xzWithdrawalApplyDO
=
new
XzWithdrawalApplyDO
();
xzWithdrawalApplyDO
.
setOuterTradeNo
(
data
.
getOuterTradeNo
());
xzWithdrawalApplyDO
.
setSubmitStatus
(
data
.
getTradeStatus
());
xzWithdrawalApplyDO
.
setTradeResult
(
data
.
getTradeResult
());
xzWithdrawalApplyDO
.
setTaxFundId
(
userSystemConstant
.
getTaxFundId
());
payWalletDao
.
updateWithdrawalApply
(
xzWithdrawalApplyDO
);
}
else
if
(
data
.
getNotifyType
().
equals
(
"tradeResult"
))
{
}
else
if
(
data
.
getNotifyType
().
equals
(
"tradeResult"
))
{
// 根据银行\微信\支付宝的反馈,推送订单的发放结果,发放成功\发放失败
// 根据银行\微信\支付宝的反馈,推送订单的发放结果,发放成功\发放失败
// todo 待处理
log
.
info
(
"deal tradeResult"
);
log
.
info
(
"deal tradeResult"
);
}
}
}
else
{
}
else
{
log
.
info
(
"xzWithdrawNotify fail:{}"
,
notify
.
toString
()
);
log
.
info
(
"xzWithdrawNotify fail:{}"
,
notify
);
}
}
return
"success"
;
return
"success"
;
}
}
...
...
csm-service/cms-service-user/src/main/resources/mapper/wallet/PayWalletDao.xml
浏览文件 @
f1408560
...
@@ -28,8 +28,10 @@
...
@@ -28,8 +28,10 @@
pay_no,
pay_no,
pay_method,
pay_method,
pay_time,
pay_time,
salary_freeze)
salary_freeze,
values (#{userAccountId}, #{xzWithdrawalApplyId}, #{payNo}, #{payMethod}, #{payTime}, #{salaryFreeze})
salary_paid)
values (#{userAccountId}, #{xzWithdrawalApplyId}, #{payNo}, #{payMethod}, #{payTime}, #{salaryFreeze},
#{salaryPaid})
</insert>
</insert>
<update
id=
"updatePayWallet"
>
<update
id=
"updatePayWallet"
>
update pay_wallet
update pay_wallet
...
@@ -55,6 +57,70 @@
...
@@ -55,6 +57,70 @@
</set>
</set>
where user_account_id = #{userAccountId} and pid = #{pid}
where user_account_id = #{userAccountId} and pid = #{pid}
</update>
</update>
<update
id=
"updateWithdrawalApply"
>
update xz_withdrawal_apply
<set>
<if
test=
"applyStatus != null"
>
apply_status = #{applyStatus},
</if>
<if
test=
"approveUser != null"
>
approve_user = #{approveUser},
</if>
<if
test=
"approveTime != null"
>
approve_time = #{approveTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"remark != null and remark != ''"
>
remark = #{remark},
</if>
<if
test=
"chargeAmount != null"
>
charge_amount = #{chargeAmount},
</if>
<if
test=
"tradeStatus != null"
>
trade_status = #{tradeStatus},
</if>
<if
test=
"tradeResult != null"
>
trade_result = #{tradeResult},
</if>
<if
test=
"remarks != null"
>
remarks = #{remarks},
</if>
<if
test=
"taxFundId != null"
>
tax_fund_id = #{taxFundId},
</if>
<if
test=
"wechatAppId !=null"
>
wechat_app_id = #{wechatAppId},
</if>
<if
test=
"tradeTime !=null"
>
trade_time = #{tradeTime},
</if>
<if
test=
"frontLogNo !=null"
>
front_log_no = #{frontLogNo},
</if>
<if
test=
"tradeFailCode !=null"
>
trade_fail_code = #{tradeFailCode},
</if>
<if
test=
"submitStatus !=null"
>
submit_status = #{submitStatus},
</if>
<if
test=
"errorCode != null"
>
error_code = #{errorCode},
</if>
<if
test=
"errorMessage != null"
>
error_message =#{errorMessage}
</if>
</set>
<where>
<if
test=
"id != null"
>
id = #{id}
</if>
<if
test=
"outerTradeNo != null"
>
outer_trade_no = #{outerTradeNo}
</if>
</where>
</update>
<select
id=
"getPayWalletByUser"
resultType=
"com.mmc.iuav.user.entity.wallet.PayWalletDO"
>
<select
id=
"getPayWalletByUser"
resultType=
"com.mmc.iuav.user.entity.wallet.PayWalletDO"
>
select id,
select id,
...
@@ -154,7 +220,7 @@
...
@@ -154,7 +220,7 @@
order by create_time DESC
order by create_time DESC
limit #{pageNo},#{pageSize}
limit #{pageNo},#{pageSize}
</select>
</select>
<select
id=
"
w
ithdrawalApplyById"
resultType=
"com.mmc.iuav.user.entity.XzWithdrawalApplyDO"
>
<select
id=
"
getW
ithdrawalApplyById"
resultType=
"com.mmc.iuav.user.entity.XzWithdrawalApplyDO"
>
select id,
select id,
user_account_id,
user_account_id,
bank_name,
bank_name,
...
@@ -198,7 +264,7 @@
...
@@ -198,7 +264,7 @@
create_time
create_time
from withdrawal_log
from withdrawal_log
where xz_withdrawal_apply_id = #{id}
where xz_withdrawal_apply_id = #{id}
order by p
b.p
ay_time asc
order by pay_time asc
</select>
</select>
<select
id=
"countPayWithdrawalLog"
resultType=
"java.lang.Integer"
>
<select
id=
"countPayWithdrawalLog"
resultType=
"java.lang.Integer"
>
select count(*)
select count(*)
...
@@ -215,4 +281,101 @@
...
@@ -215,4 +281,101 @@
</if>
</if>
</where>
</where>
</select>
</select>
<select
id=
"countWithdrawalApply"
resultType=
"java.lang.Integer"
>
select count(*)
from xz_withdrawal_apply
<where>
1 = 1
<if
test=
"applyStatus != null"
>
and apply_status = #{applyStatus}
</if>
<if
test=
"startTime != null and startTime != '' "
>
and create_time
>
=
STR_TO_DATE(#{startTime},'%Y-%m-%d %H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and create_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d
%H:%i:%s')
</if>
<if
test=
"channelTag != null and channelTag != '' "
>
and settle_type = #{settleType}
</if>
<if
test=
"keyword != null and keyword != '' "
>
and (
emp_name like CONCAT('%',#{keyword},'%')
or
emp_phone like CONCAT('%',#{keyword},'%')
or pay_account like
CONCAT('%',#{keyword},'%')
or outer_trade_no like
CONCAT('%',#{keyword},'%')
)
</if>
</where>
</select>
<select
id=
"listPageWithdrawalApply"
resultType=
"com.mmc.iuav.user.entity.XzWithdrawalApplyDO"
>
select id,
user_account_id,
apply_status,
bank_name,
bank_remo,
emp_num,
emp_name,
emp_phone,
license_id,
license_type,
`month`,
notify_url,
outer_trade_no,
pay_account,
pay_amount,
position_name,
remarks,
settle_type,
tax_fund_id,
wechat_app_id,
trade_status,
trade_time,
front_log_no,
trade_fail_code,
trade_result,
submit_status,
error_code,
error_message,
charge_amount,
create_time,
pay_time,
remark
from xz_withdrawal_apply
<where>
1 = 1
<if
test=
"applyStatus != null"
>
and apply_status = #{applyStatus}
</if>
<if
test=
"startTime != null and startTime != '' "
>
and create_time
>
=
STR_TO_DATE(#{startTime},'%Y-%m-%d %H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and create_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d
%H:%i:%s')
</if>
<if
test=
"channelTag != null and channelTag != '' "
>
and settle_type = #{settleType}
</if>
<if
test=
"keyword != null and keyword != '' "
>
and (
emp_name like CONCAT('%',#{keyword},'%')
or
emp_phone like CONCAT('%',#{keyword},'%')
or pay_account like
CONCAT('%',#{keyword},'%')
or outer_trade_no like
CONCAT('%',#{keyword},'%')
)
</if>
</where>
order by pb.create_time desc
limit #{pageNo},#{pageSize}
</select>
</mapper>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论