Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
38f2e65c
提交
38f2e65c
authored
8月 25, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
申请提现至云享飞后台
上级
0d1d560e
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
148 行增加
和
16 行删除
+148
-16
ApplyWithdrawalVO.java
.../com/mmc/iuav/user/model/vo/wallet/ApplyWithdrawalVO.java
+34
-0
WithdrawalController.java
...mmc/iuav/user/controller/wallet/WithdrawalController.java
+6
-4
WithdrawalDao.java
...c/main/java/com/mmc/iuav/user/dao/xzsz/WithdrawalDao.java
+2
-0
XzWithdrawalApplyDO.java
...in/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
+9
-0
WithdrawalService.java
...ava/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
+2
-2
WithdrawalServiceImpl.java
...mc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
+58
-6
WithdrawalDao.xml
...ice-user/src/main/resources/mapper/xzsz/WithdrawalDao.xml
+18
-0
XzDao.xml
...cms-service-user/src/main/resources/mapper/xzsz/XzDao.xml
+19
-4
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/wallet/ApplyWithdrawalVO.java
0 → 100644
浏览文件 @
38f2e65c
package
com
.
mmc
.
iuav
.
user
.
model
.
vo
.
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
;
/**
* @author: lw
* @Date: 2023/8/25 10:25
*/
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ApplyWithdrawalVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8677383830415176214L
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"交易类型(bankcard:银行卡,alipay:支付宝,wechatpay:微信)"
,
required
=
true
)
private
String
settleType
;
@ApiModelProperty
(
value
=
"收款账号,交易类型为支付宝时,为支付宝账号;交易类型为微信时,填收款用户的openid"
,
required
=
true
)
private
String
payAccount
;
@ApiModelProperty
(
value
=
"收款人银行名称 (无需细到支行名称)"
)
private
String
bankName
;
@ApiModelProperty
(
value
=
"服务类型,测试:销售推广;正式:市场推广"
,
required
=
true
)
private
String
positionName
;
@ApiModelProperty
(
value
=
"交易金额(实际到账金额, 单位元,精确两位小数 )"
,
required
=
true
)
private
BigDecimal
payAmount
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/
xzsz
/WithdrawalController.java
→
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/
wallet
/WithdrawalController.java
浏览文件 @
38f2e65c
package
com
.
mmc
.
iuav
.
user
.
controller
.
xzsz
;
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.vo.
Xz
WithdrawalVO
;
import
com.mmc.iuav.user.model.vo.
wallet.Apply
WithdrawalVO
;
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.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/8/23 15:58
* @Date: 2023/8/23 15:58
...
@@ -31,8 +33,8 @@ public class WithdrawalController extends BaseController {
...
@@ -31,8 +33,8 @@ public class WithdrawalController extends BaseController {
@ApiOperation
(
value
=
"提现申请"
)
@ApiOperation
(
value
=
"提现申请"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"apply"
)
@PostMapping
(
"apply"
)
public
ResultBody
apply
(
@RequestBody
XzWithdrawalVO
xzWithdrawalVO
)
{
public
ResultBody
apply
(
@RequestBody
ApplyWithdrawalVO
applyWithdrawalVO
,
HttpServletRequest
request
)
{
return
withdrawalService
.
apply
(
xzWithdrawalVO
);
return
withdrawalService
.
apply
(
applyWithdrawalVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
()
);
}
}
// 提现查询
// 提现查询
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/xzsz/WithdrawalDao.java
浏览文件 @
38f2e65c
package
com
.
mmc
.
iuav
.
user
.
dao
.
xzsz
;
package
com
.
mmc
.
iuav
.
user
.
dao
.
xzsz
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
...
@@ -8,4 +9,5 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -8,4 +9,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
*/
@Mapper
@Mapper
public
interface
WithdrawalDao
{
public
interface
WithdrawalDao
{
void
insertWithdrawalApply
(
XzWithdrawalApplyDO
xzWithdrawalApplyDO
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
浏览文件 @
38f2e65c
...
@@ -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.enums.SettleTypeEnum
;
import
com.mmc.iuav.user.enums.SettleTypeEnum
;
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
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
...
@@ -70,4 +71,12 @@ public class XzWithdrawalApplyDO implements Serializable {
...
@@ -70,4 +71,12 @@ public class XzWithdrawalApplyDO implements Serializable {
this
.
bankRemo
=
xzWithdrawalVO
.
getBankRemo
();
this
.
bankRemo
=
xzWithdrawalVO
.
getBankRemo
();
}
}
public
XzWithdrawalApplyDO
(
ApplyWithdrawalVO
applyWithdrawalVO
)
{
this
.
userAccountId
=
applyWithdrawalVO
.
getUserAccountId
();
this
.
bankName
=
applyWithdrawalVO
.
getBankName
();
this
.
settleType
=
applyWithdrawalVO
.
getSettleType
();
this
.
payAccount
=
applyWithdrawalVO
.
getPayAccount
();
this
.
positionName
=
applyWithdrawalVO
.
getPositionName
();
this
.
payAmount
=
applyWithdrawalVO
.
getPayAmount
().
doubleValue
();
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
浏览文件 @
38f2e65c
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
;
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.vo.
Xz
WithdrawalVO
;
import
com.mmc.iuav.user.model.vo.
wallet.Apply
WithdrawalVO
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/8/23 16:09
* @Date: 2023/8/23 16:09
*/
*/
public
interface
WithdrawalService
{
public
interface
WithdrawalService
{
ResultBody
apply
(
XzWithdrawalVO
xzWithdrawalVO
);
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
浏览文件 @
38f2e65c
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
.
impl
;
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
.
impl
;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.user.dao.RealNameAuthDao
;
import
com.mmc.iuav.user.dao.wallet.PayWalletDao
;
import
com.mmc.iuav.user.dao.xzsz.WithdrawalDao
;
import
com.mmc.iuav.user.dao.xzsz.WithdrawalDao
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.dao.xzsz.XzDao
;
import
com.mmc.iuav.user.entity.RealNameAuthDO
;
import
com.mmc.iuav.user.entity.XzAuthDO
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
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
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.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/8/23 16:09
* @Date: 2023/8/23 16:09
...
@@ -20,12 +33,51 @@ public class WithdrawalServiceImpl implements WithdrawalService {
...
@@ -20,12 +33,51 @@ public class WithdrawalServiceImpl implements WithdrawalService {
private
WithdrawalDao
withdrawalDao
;
private
WithdrawalDao
withdrawalDao
;
@Autowired
@Autowired
private
XzService
xzService
;
private
XzDao
xzDao
;
@Resource
private
RealNameAuthDao
realNameAuthDao
;
@Autowired
private
PayWalletDao
payWalletDao
;
@Override
@Override
public
ResultBody
apply
(
XzWithdrawalVO
xzWithdrawalVO
)
{
public
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
)
{
// 确保已电签、自己钱包余额足够
// 判断该用户是否实名认证
// 确保主体金额足够再提现
RealNameAuthDO
realNameAuth
=
realNameAuthDao
.
getRealNameAuthByUId
(
userAccountId
);
if
(
realNameAuth
!=
null
&&
!
realNameAuth
.
getCheckStatus
().
equals
(
1
))
{
return
ResultBody
.
error
(
"实名认证未通过!"
);
}
if
(
realNameAuth
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
PLEASE_ERFORM_REAL_NAME_AUTHENTICATION_FIRST
);
}
// 确保已电签
XzAuthDO
xzAuth
=
xzDao
.
getXzAuthByUserAccountId
(
userAccountId
);
if
(
xzAuth
!=
null
&&
!
xzAuth
.
getXzAuthStatus
().
equals
(
1
))
{
return
ResultBody
.
error
(
"电签未通过!"
);
}
if
(
xzAuth
==
null
)
{
return
ResultBody
.
error
(
"请先完成电签操作!"
);
}
// 当前提现金额是否足够
PayWalletDO
payWallet
=
payWalletDao
.
getPayWalletByUser
(
userAccountId
);
BigDecimal
salaryAmt
=
payWallet
.
getSalaryAmt
();
if
(
salaryAmt
.
compareTo
(
applyWithdrawalVO
.
getPayAmount
())
<
0
)
{
return
ResultBody
.
error
(
"当前金额大于可提现金额!"
);
}
applyWithdrawalVO
.
setUserAccountId
(
userAccountId
);
// 生成提现流水编号
String
outerTradeNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
userAccountId
+
CodeUtil
.
getRandomNum
(
4
);
// 记录提现申请记录
XzWithdrawalApplyDO
xzWithdrawalApplyDO
=
new
XzWithdrawalApplyDO
(
applyWithdrawalVO
);
xzWithdrawalApplyDO
.
setOuterTradeNo
(
outerTradeNo
);
xzWithdrawalApplyDO
.
setEmpName
(
realNameAuth
.
getUserName
());
xzWithdrawalApplyDO
.
setEmpPhone
(
realNameAuth
.
getPhoneNum
());
xzWithdrawalApplyDO
.
setLicenseId
(
realNameAuth
.
getIdNumber
());
xzWithdrawalApplyDO
.
setLicenseType
(
"ID_CARD"
);
xzWithdrawalApplyDO
.
setMonth
(
TDateUtil
.
getCurrentDateByType
(
"yyyy-MM"
));
xzWithdrawalApplyDO
.
setTradeStatus
(
"apply"
);
withdrawalDao
.
insertWithdrawalApply
(
xzWithdrawalApplyDO
);
return
ResultBody
.
success
();
return
ResultBody
.
success
();
}
}
}
}
csm-service/cms-service-user/src/main/resources/mapper/xzsz/WithdrawalDao.xml
浏览文件 @
38f2e65c
...
@@ -4,4 +4,21 @@
...
@@ -4,4 +4,21 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mmc.iuav.user.dao.xzsz.WithdrawalDao"
>
<mapper
namespace=
"com.mmc.iuav.user.dao.xzsz.WithdrawalDao"
>
<insert
id=
"insertWithdrawalApply"
>
insert into xz_withdrawal_apply (user_account_id,
bank_name,
emp_name,
emp_phone,
license_id,
license_type,
`month`,
outer_trade_no,
pay_account,
pay_amount,
position_name,
settle_type,
trade_status)
values (#{userAccountId}, #{bankName}, #{empName}, #{empPhone}, #{licenseId}, #{licenseType}, #{month},
#{outerTradeNo}, #{payAccount}, #{payAmount}, #{positionName}, #{settleType}, #{tradeStatus})
</insert>
</mapper>
</mapper>
\ No newline at end of file
csm-service/cms-service-user/src/main/resources/mapper/xzsz/XzDao.xml
浏览文件 @
38f2e65c
...
@@ -5,12 +5,27 @@
...
@@ -5,12 +5,27 @@
<mapper
namespace=
"com.mmc.iuav.user.dao.xzsz.XzDao"
>
<mapper
namespace=
"com.mmc.iuav.user.dao.xzsz.XzDao"
>
<insert
id=
"addAuth"
parameterType=
"com.mmc.iuav.user.entity.XzAuthDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<insert
id=
"addAuth"
parameterType=
"com.mmc.iuav.user.entity.XzAuthDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into xz_auth(user_account_id, `name`, id_card_no, mobile, bank_account, subsidiary_name, document_id, custom_params, contract_url, xz_auth_status, create_time)
insert into xz_auth(user_account_id, `name`, id_card_no, mobile, bank_account, subsidiary_name, document_id,
values (#{userAccountId}, #{name}, #{idCardNo}, #{mobile}, #{bankAccount}, #{subsidiary_name}, #{document_id}, #{customParams}, #{contract_url}, #{xzAuthStatus}, NOW())
custom_params, contract_url, xz_auth_status, create_time)
values (#{userAccountId}, #{name}, #{idCardNo}, #{mobile}, #{bankAccount}, #{subsidiary_name}, #{document_id},
#{customParams}, #{contract_url}, #{xzAuthStatus}, NOW())
</insert>
</insert>
<select
id=
"getXzAuthByUserAccountId"
resultType=
"com.mmc.iuav.user.entity.XzAuthDO"
>
<select
id=
"getXzAuthByUserAccountId"
resultType=
"com.mmc.iuav.user.entity.XzAuthDO"
>
select id, user_account_id, `name`, id_card_no, mobile, bank_account, subsidiary_name, document_id, custom_params, contract_url, create_time
select id,
from xz_auth where user_account_id = #{userAccountId} and is_deleted = 0
user_account_id,
`name`,
id_card_no,
mobile,
bank_account,
subsidiary_name,
document_id,
custom_params,
contract_url,
create_time,
xz_auth_status
from xz_auth
where user_account_id = #{userAccountId}
and is_deleted = 0
</select>
</select>
</mapper>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论