Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
cms
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.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
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -15,6 +15,8 @@ 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
;
/**
* @author: zj
* @Date: 2023/8/23 15:58
...
...
@@ -31,8 +33,8 @@ public class WithdrawalController extends BaseController {
@ApiOperation
(
value
=
"提现申请"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"apply"
)
public
ResultBody
apply
(
@RequestBody
XzWithdrawalVO
xzWithdrawalVO
)
{
return
withdrawalService
.
apply
(
xzWithdrawalVO
);
public
ResultBody
apply
(
@RequestBody
ApplyWithdrawalVO
applyWithdrawalVO
,
HttpServletRequest
request
)
{
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
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
...
...
@@ -8,4 +9,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
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;
import
com.mmc.iuav.user.enums.SettleTypeEnum
;
import
com.mmc.iuav.user.model.vo.XzWithdrawalVO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -70,4 +71,12 @@ public class XzWithdrawalApplyDO implements Serializable {
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
;
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
* @Date: 2023/8/23 16:09
*/
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
;
import
com.mmc.iuav.general.CodeUtil
;
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.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.XzService
;
import
com.mmc.iuav.user.
util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/8/23 16:09
...
...
@@ -20,12 +33,51 @@ public class WithdrawalServiceImpl implements WithdrawalService {
private
WithdrawalDao
withdrawalDao
;
@Autowired
private
XzService
xzService
;
private
XzDao
xzDao
;
@Resource
private
RealNameAuthDao
realNameAuthDao
;
@Autowired
private
PayWalletDao
payWalletDao
;
@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
();
}
}
csm-service/cms-service-user/src/main/resources/mapper/xzsz/WithdrawalDao.xml
浏览文件 @
38f2e65c
...
...
@@ -4,4 +4,21 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<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>
\ No newline at end of file
csm-service/cms-service-user/src/main/resources/mapper/xzsz/XzDao.xml
浏览文件 @
38f2e65c
...
...
@@ -5,12 +5,27 @@
<mapper
namespace=
"com.mmc.iuav.user.dao.xzsz.XzDao"
>
<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)
values (#{userAccountId}, #{name}, #{idCardNo}, #{mobile}, #{bankAccount}, #{subsidiary_name}, #{document_id}, #{customParams}, #{contract_url}, #{xzAuthStatus}, NOW())
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)
values (#{userAccountId}, #{name}, #{idCardNo}, #{mobile}, #{bankAccount}, #{subsidiary_name}, #{document_id},
#{customParams}, #{contract_url}, #{xzAuthStatus}, NOW())
</insert>
<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
from xz_auth where user_account_id = #{userAccountId} and is_deleted = 0
select id,
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>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论