Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
cms
Commits
28f5b119
提交
28f5b119
authored
8月 26, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提现流水明细
上级
b928b6d8
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
710 行增加
和
49 行删除
+710
-49
WithdrawalInfoVO.java
.../com/mmc/iuav/user/model/dto/wallet/WithdrawalInfoVO.java
+7
-11
WalletFlowQO.java
.../java/com/mmc/iuav/user/model/qo/wallet/WalletFlowQO.java
+53
-0
ApplyWithdrawalVO.java
.../com/mmc/iuav/user/model/vo/wallet/ApplyWithdrawalVO.java
+4
-0
PayWalletController.java
.../mmc/iuav/user/controller/wallet/PayWalletController.java
+8
-6
WithdrawalController.java
...mmc/iuav/user/controller/wallet/WithdrawalController.java
+7
-1
PayWalletDao.java
.../main/java/com/mmc/iuav/user/dao/wallet/PayWalletDao.java
+12
-2
XzWithdrawalApplyDO.java
...in/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
+19
-0
PayLogDO.java
...c/main/java/com/mmc/iuav/user/entity/wallet/PayLogDO.java
+0
-1
UserBillingDetailVO.java
.../com/mmc/iuav/user/entity/wallet/UserBillingDetailVO.java
+111
-0
WithdrawalLogDO.java
...java/com/mmc/iuav/user/entity/wallet/WithdrawalLogDO.java
+17
-0
RebateMethod.java
...r/src/main/java/com/mmc/iuav/user/enums/RebateMethod.java
+34
-0
PayWalletService.java
...va/com/mmc/iuav/user/service/wallet/PayWalletService.java
+3
-2
PayWalletServiceImpl.java
...c/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
+30
-8
WithdrawalService.java
...ava/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
+3
-0
WithdrawalServiceImpl.java
...mc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
+27
-2
PatternUtil.java
...ser/src/main/java/com/mmc/iuav/user/util/PatternUtil.java
+90
-0
PrivacyUtil.java
...ser/src/main/java/com/mmc/iuav/user/util/PrivacyUtil.java
+165
-0
PayWalletDao.xml
...ce-user/src/main/resources/mapper/wallet/PayWalletDao.xml
+120
-16
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/
vo/wallet/UserBillingDetail
VO.java
→
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/
dto/wallet/WithdrawalInfo
VO.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
model
.
v
o
.
wallet
;
package
com
.
mmc
.
iuav
.
user
.
model
.
dt
o
.
wallet
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
...
...
@@ -12,27 +12,23 @@ import java.util.Date;
/**
* @Author LW
* @date 2023/8/2
4 14:37
* @date 2023/8/2
6 15:42
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
UserBillingDetailVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
113701726830167312L
;
public
class
WithdrawalInfoVO
implements
Serializable
{
public
final
static
String
AMT
=
"amt"
;
public
final
static
String
APPLY
=
"APPLY"
;
private
static
final
long
serialVersionUID
=
2535626170303302278L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"流水编号"
)
private
String
payNo
;
@ApiModelProperty
(
value
=
"操作方式 100(订单发布) 200(无人接单取消订单)300(有人接单取消订单)400(飞手抢单)500(客服判定飞手无责取消订单)"
+
"600(飞手有责取消订单)700(正常结算)800(修改订单金额状态)900(飞手未确认修改金额状态)1000(飞手确认修改金额状态)1100(充值) 1200(提现)"
)
@ApiModelProperty
(
value
=
"操作方式"
)
private
Integer
payMethod
;
@ApiModelProperty
(
value
=
"云享金变动金额(正数充值,负数扣除)"
)
private
BigDecimal
cashAmtPaid
;
@ApiModelProperty
(
value
=
"佣金变动金额(正数入账,负数扣除)"
)
private
BigDecimal
salaryAmtPaid
;
@ApiModelProperty
(
value
=
"操作时间"
)
...
...
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/qo/wallet/WalletFlowQO.java
0 → 100644
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
model
.
qo
.
wallet
;
import
com.mmc.iuav.group.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author 作者 lw
* @version 创建时间:2023.8.26 上午11:40:21
* @explain 类说明
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
WalletFlowQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2568266056802132237L
;
@ApiModelProperty
(
value
=
"用户id"
,
hidden
=
true
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"查询年-月"
)
private
String
yearMonth
;
@ApiModelProperty
(
value
=
"开始时间"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
hidden
=
true
)
private
String
endTime
;
@ApiModelProperty
(
value
=
"状态类型"
)
private
Integer
payMethod
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
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/vo/wallet/ApplyWithdrawalVO.java
浏览文件 @
28f5b119
...
...
@@ -21,6 +21,10 @@ public class ApplyWithdrawalVO implements Serializable {
private
static
final
long
serialVersionUID
=
8677383830415176214L
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"户名"
)
private
String
empName
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
empPhone
;
@ApiModelProperty
(
value
=
"交易类型(bankcard:银行卡,alipay:支付宝,wechatpay:微信)"
,
required
=
true
)
private
String
settleType
;
@ApiModelProperty
(
value
=
"收款账号,交易类型为支付宝时,为支付宝账号;交易类型为微信时,填收款用户的openid"
,
required
=
true
)
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/wallet/PayWalletController.java
浏览文件 @
28f5b119
...
...
@@ -2,9 +2,10 @@ 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.entity.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.model.dto.wallet.PayWalletDTO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.model.vo.wallet.WalletFlowVO
;
import
com.mmc.iuav.user.service.wallet.PayWalletService
;
import
io.swagger.annotations.*
;
...
...
@@ -69,15 +70,16 @@ public class PayWalletController extends BaseController {
@ApiOperation
(
value
=
"用户账单明细"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserBillingDetailVO
.
class
)})
@
Ge
tMapping
(
"customerBillingDetail"
)
public
ResultBody
<
UserBillingDetailVO
>
customerBillingDetail
(
HttpServletRequest
request
,
Integer
pageNo
,
Integer
pageSize
)
{
return
payWalletService
.
customerBillingDetail
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
pageNo
,
pageSize
);
@
Pos
tMapping
(
"customerBillingDetail"
)
public
ResultBody
<
UserBillingDetailVO
>
customerBillingDetail
(
HttpServletRequest
request
,
@RequestBody
WalletFlowQO
walletFlowQO
)
{
return
payWalletService
.
customerBillingDetail
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
walletFlowQO
);
}
@ApiOperation
(
value
=
"账单详情"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserBillingDetailVO
.
class
)})
@GetMapping
(
"billingDetails"
)
public
ResultBody
<
UserBillingDetailVO
>
billingDetails
(
Integer
id
)
{
return
payWalletService
.
billingDetails
(
id
);
public
ResultBody
<
UserBillingDetailVO
>
billingDetails
(
@ApiParam
(
value
=
"ID"
,
required
=
true
)
@RequestParam
Integer
id
,
@ApiParam
(
value
=
"详情类型"
,
required
=
true
)
@RequestParam
String
detailType
)
{
return
payWalletService
.
billingDetails
(
id
,
detailType
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/wallet/WithdrawalController.java
浏览文件 @
28f5b119
...
...
@@ -2,6 +2,7 @@ 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.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
import
io.swagger.annotations.Api
;
...
...
@@ -39,7 +40,12 @@ public class WithdrawalController extends BaseController {
// 提现查询
// 个人提现列表
@ApiOperation
(
value
=
"个人提现明细列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"withdrawalList"
)
public
ResultBody
withdrawalList
(
HttpServletRequest
request
,
@RequestBody
WalletFlowQO
walletFlowQO
)
{
return
withdrawalService
.
withdrawalList
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
walletFlowQO
);
}
// 全部用户提现列表
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/wallet/PayWalletDao.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
dao
.
wallet
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.entity.wallet.PayLogDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
...
...
@@ -22,11 +24,19 @@ public interface PayWalletDao {
int
updatePayWallet
(
PayWalletDO
updatePayWallet
);
List
<
PayLogDO
>
getPayLog
(
Integer
userAccountId
,
Integer
pageNo
,
Integer
pageSize
);
List
<
PayLogDO
>
getPayLog
(
WalletFlowQO
param
);
int
countPayLog
(
Integer
userAccountId
);
int
countPayLog
(
WalletFlowQO
param
);
PayLogDO
getPayLogById
(
Integer
id
);
void
insertWithdrawalLog
(
WithdrawalLogDO
withdrawalLogDO
);
List
<
WithdrawalLogDO
>
getWithdrawalListByUserAccountId
(
WalletFlowQO
param
);
XzWithdrawalApplyDO
withdrawalApplyById
(
Integer
id
);
List
<
WithdrawalLogDO
>
listPayWithdrawalLog
(
Integer
id
);
int
countPayWithdrawalLog
(
WalletFlowQO
param
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/XzWithdrawalApplyDO.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
entity
;
import
com.mmc.iuav.user.entity.wallet.UserBillingDetailVO
;
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
com.mmc.iuav.user.util.PrivacyUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -22,6 +24,7 @@ public class XzWithdrawalApplyDO implements Serializable {
private
static
final
long
serialVersionUID
=
7891653696372539753L
;
private
Integer
id
;
private
Integer
userAccountId
;
private
Integer
applyStatus
;
private
String
bankName
;
private
String
bankRemo
;
private
String
empNum
;
...
...
@@ -46,6 +49,7 @@ public class XzWithdrawalApplyDO implements Serializable {
private
String
tradeResult
;
private
String
submitStatus
;
private
String
errorCode
;
private
Date
payTime
;
private
String
errorMessage
;
private
BigDecimal
chargeAmount
;
private
Date
createTime
;
...
...
@@ -79,4 +83,19 @@ public class XzWithdrawalApplyDO implements Serializable {
this
.
positionName
=
applyWithdrawalVO
.
getPositionName
();
this
.
payAmount
=
applyWithdrawalVO
.
getPayAmount
().
doubleValue
();
}
public
UserBillingDetailVO
buildUserBillingDetailVO
()
{
payAccount
=
PrivacyUtil
.
encryptBankAcct
(
payAccount
);
String
name
=
"提现"
;
if
(
this
.
applyStatus
==
0
)
{
name
=
"银行处理中"
;
}
else
if
(
this
.
applyStatus
==
1
)
{
name
=
"提现成功"
;
}
else
if
(
this
.
applyStatus
==
2
)
{
name
=
"提现失败"
;
}
return
UserBillingDetailVO
.
builder
().
userAccountId
(
userAccountId
)
.
payNo
(
outerTradeNo
).
payTime
(
payTime
).
account
(
payAccount
)
.
name
(
name
).
id
(
id
).
build
();
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/wallet/PayLogDO.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
entity
.
wallet
;
import
com.mmc.iuav.user.model.vo.wallet.UserBillingDetailVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/wallet/UserBillingDetailVO.java
0 → 100644
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
entity
.
wallet
;
import
com.mmc.iuav.user.enums.RebateMethod
;
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.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author LW
* @date 2023/8/24 14:37
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
UserBillingDetailVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
113701726830167312L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"流水编号"
)
private
String
payNo
;
@ApiModelProperty
(
value
=
"操作方式"
)
private
Integer
payMethod
;
@ApiModelProperty
(
value
=
"云享金变动金额(正数充值,负数扣除)"
)
private
BigDecimal
cashAmtPaid
;
@ApiModelProperty
(
value
=
"佣金变动金额(正数入账,负数扣除)"
)
private
BigDecimal
salaryAmtPaid
;
@ApiModelProperty
(
value
=
"操作时间"
)
private
Date
payTime
;
@ApiModelProperty
(
value
=
"操作名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"到账账户"
)
private
String
account
;
@ApiModelProperty
(
value
=
"处理进度"
)
private
List
<
Schedule
>
schedules
;
public
void
buildSchedules
(
List
<
WithdrawalLogDO
>
list
)
{
this
.
schedules
=
new
ArrayList
<
Schedule
>();
for
(
WithdrawalLogDO
d
:
list
)
{
if
(
RebateMethod
.
PENDING
.
getCode
().
equals
(
d
.
getPayMethod
().
toString
()))
{
Schedule
sd
=
new
Schedule
();
sd
.
setTitle
(
RebateMethod
.
PENDING
.
getStatus
());
sd
.
setAcTime
(
d
.
getPayTime
());
sd
.
setActive
(
1
);
this
.
schedules
.
add
(
sd
);
}
else
if
(
RebateMethod
.
SUCCESS
.
getCode
().
equals
(
d
.
getPayMethod
().
toString
()))
{
Schedule
sd
=
new
Schedule
();
sd
.
setTitle
(
RebateMethod
.
SUCCESS
.
getStatus
());
sd
.
setAcTime
(
d
.
getPayTime
());
sd
.
setActive
(
1
);
this
.
schedules
.
add
(
sd
);
}
else
if
(
RebateMethod
.
FAIL
.
getCode
().
equals
(
d
.
getPayMethod
().
toString
()))
{
Schedule
sd
=
new
Schedule
();
sd
.
setTitle
(
RebateMethod
.
FAIL
.
getStatus
());
sd
.
setAcTime
(
d
.
getPayTime
());
sd
.
setActive
(
1
);
this
.
schedules
.
add
(
sd
);
}
}
if
(
this
.
schedules
.
size
()
==
1
)
{
Schedule
sd
=
new
Schedule
();
sd
.
setTitle
(
RebateMethod
.
SUCCESS
.
getStatus
());
sd
.
setActive
(
0
);
this
.
schedules
.
add
(
sd
);
}
}
public
static
class
Schedule
{
private
String
title
;
private
Date
acTime
;
private
Integer
active
;
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
Date
getAcTime
()
{
return
acTime
;
}
public
void
setAcTime
(
Date
acTime
)
{
this
.
acTime
=
acTime
;
}
public
Integer
getActive
()
{
return
active
;
}
public
void
setActive
(
Integer
active
)
{
this
.
active
=
active
;
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/wallet/WithdrawalLogDO.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
entity
.
wallet
;
import
com.mmc.iuav.user.enums.WithdrawalMethod
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -42,6 +43,8 @@ public class WithdrawalLogDO implements Serializable {
*/
private
Integer
xzWithdrawalApplyId
;
private
String
typeName
;
/**
* 提现冻结
*/
...
...
@@ -50,5 +53,19 @@ public class WithdrawalLogDO implements Serializable {
private
Date
createTime
;
private
Date
updateTime
;
public
UserBillingDetailVO
buildUserBillingDetailVO
()
{
if
(
payMethod
.
equals
(
WithdrawalMethod
.
TXDJ
.
getCode
()))
{
this
.
typeName
=
WithdrawalMethod
.
TXDJ
.
getName
();
}
if
(
payMethod
.
equals
(
WithdrawalMethod
.
TXCG
.
getCode
()))
{
this
.
typeName
=
WithdrawalMethod
.
TXCG
.
getName
();
}
if
(
payMethod
.
equals
(
WithdrawalMethod
.
TXSB
.
getCode
()))
{
this
.
typeName
=
WithdrawalMethod
.
TXSB
.
getName
();
}
return
UserBillingDetailVO
.
builder
().
id
(
id
).
userAccountId
(
userAccountId
)
.
payMethod
(
payMethod
).
payTime
(
payTime
).
payNo
(
payNo
).
name
(
typeName
).
build
();
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/enums/RebateMethod.java
0 → 100644
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
enums
;
/**
* @author 作者 lw
* @version 创建时间:2023.8.26 下午5:29:24
* @explain 类说明
*/
public
enum
RebateMethod
{
PENDING
(
"150"
,
"提现申请"
),
SUCCESS
(
"200"
,
"提现到账"
),
FAIL
(
"250"
,
"提现失败"
);
RebateMethod
(
String
code
,
String
status
)
{
this
.
code
=
code
;
this
.
status
=
status
;
}
private
String
code
;
private
String
status
;
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/PayWalletService.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
service
.
wallet
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.WalletFlowVO
;
...
...
@@ -18,7 +19,7 @@ public interface PayWalletService {
ResultBody
feignTopUpCash
(
TopUpOrderVO
topUpOrderVO
);
ResultBody
customerBillingDetail
(
Integer
userAccountId
,
Integer
pageNo
,
Integer
pageSize
);
ResultBody
customerBillingDetail
(
Integer
userAccountId
,
WalletFlowQO
walletFlowQO
);
ResultBody
billingDetails
(
Integer
id
);
ResultBody
billingDetails
(
Integer
id
,
String
detailType
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
浏览文件 @
28f5b119
...
...
@@ -6,10 +6,15 @@ import com.mmc.iuav.response.ResultBody;
import
com.mmc.iuav.user.dao.UserServiceDao
;
import
com.mmc.iuav.user.dao.wallet.PayWalletDao
;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.entity.XzWithdrawalApplyDO
;
import
com.mmc.iuav.user.entity.wallet.PayLogDO
;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.enums.PayMethodEnums
;
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.vo.wallet.FlyerWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.PublisherWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
...
...
@@ -17,6 +22,7 @@ import com.mmc.iuav.user.model.vo.wallet.WalletFlowVO;
import
com.mmc.iuav.user.service.wallet.PayWalletService
;
import
com.mmc.iuav.user.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -473,18 +479,34 @@ public class PayWalletServiceImpl implements PayWalletService {
}
@Override
public
ResultBody
customerBillingDetail
(
Integer
userAccountId
,
Integer
pageNo
,
Integer
pageSize
)
{
int
count
=
payWalletDao
.
countPayLog
(
userAccountId
);
public
ResultBody
customerBillingDetail
(
Integer
userAccountId
,
WalletFlowQO
param
)
{
param
.
setUserAccountId
(
userAccountId
);
int
count
=
payWalletDao
.
countPayLog
(
param
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pa
geNo
,
pageSize
,
count
));
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pa
ram
.
getPageNo
(),
param
.
getPageSize
()
,
count
));
}
List
<
PayLogDO
>
payLogList
=
payWalletDao
.
getPayLog
(
userAccountId
,
(
pageNo
-
1
)
*
pageSize
,
pageSize
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
payLogList
.
stream
().
map
(
PayLogDO:
:
buildUserBillingDetailVO
).
collect
(
Collectors
.
toList
())));
if
(!
StringUtils
.
isBlank
(
param
.
getYearMonth
()))
{
param
.
setEndTime
(
TDateUtil
.
getDateStr
(
TDateUtil
.
getMonthLatestDay
(
TDateUtil
.
getDate
(
param
.
getYearMonth
()
+
"-01"
,
"yyyy-MM-dd"
)),
"yyyy-MM-dd"
)
+
" 23:59:59"
);
}
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
List
<
PayLogDO
>
payLogList
=
payWalletDao
.
getPayLog
(
param
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
payLogList
.
stream
().
map
(
PayLogDO:
:
buildUserBillingDetailVO
).
collect
(
Collectors
.
toList
())));
}
@Override
public
ResultBody
billingDetails
(
Integer
id
)
{
PayLogDO
payLogDO
=
payWalletDao
.
getPayLogById
(
id
);
return
ResultBody
.
success
(
payLogDO
.
buildUserBillingDetailVO
());
public
ResultBody
billingDetails
(
Integer
id
,
String
detailType
)
{
if
(
WithdrawalInfoVO
.
AMT
.
equals
(
detailType
))
{
PayLogDO
payLogDO
=
payWalletDao
.
getPayLogById
(
id
);
return
ResultBody
.
success
(
payLogDO
.
buildUserBillingDetailVO
());
}
else
{
XzWithdrawalApplyDO
apply
=
payWalletDao
.
withdrawalApplyById
(
id
);
UserBillingDetailVO
detail
=
apply
.
buildUserBillingDetailVO
();
List
<
WithdrawalLogDO
>
rebates
=
payWalletDao
.
listPayWithdrawalLog
(
apply
.
getId
());
detail
.
buildSchedules
(
rebates
);
return
ResultBody
.
success
(
detail
);
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/WithdrawalService.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
/**
...
...
@@ -9,4 +10,6 @@ import com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO;
*/
public
interface
WithdrawalService
{
ResultBody
apply
(
ApplyWithdrawalVO
applyWithdrawalVO
,
Integer
userAccountId
);
ResultBody
withdrawalList
(
Integer
userAccountId
,
WalletFlowQO
walletFlowQO
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/xzsz/impl/WithdrawalServiceImpl.java
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
service
.
xzsz
.
impl
;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.page.PageResult
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.user.dao.RealNameAuthDao
;
...
...
@@ -13,10 +14,12 @@ import com.mmc.iuav.user.entity.XzWithdrawalApplyDO;
import
com.mmc.iuav.user.entity.wallet.PayWalletDO
;
import
com.mmc.iuav.user.entity.wallet.WithdrawalLogDO
;
import
com.mmc.iuav.user.enums.WithdrawalMethod
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.ApplyWithdrawalVO
;
import
com.mmc.iuav.user.service.xzsz.WithdrawalService
;
import
com.mmc.iuav.user.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -25,6 +28,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author: zj
...
...
@@ -76,8 +81,8 @@ public class WithdrawalServiceImpl implements WithdrawalService {
// 记录提现申请记录
XzWithdrawalApplyDO
xzWithdrawalApplyDO
=
new
XzWithdrawalApplyDO
(
applyWithdrawalVO
);
xzWithdrawalApplyDO
.
setOuterTradeNo
(
outerTradeNo
);
xzWithdrawalApplyDO
.
setEmpName
(
realNameAuth
.
getUser
Name
());
xzWithdrawalApplyDO
.
setEmpPhone
(
realNameAuth
.
getPhoneNum
());
xzWithdrawalApplyDO
.
setEmpName
(
applyWithdrawalVO
.
getEmp
Name
());
xzWithdrawalApplyDO
.
setEmpPhone
(
applyWithdrawalVO
.
getEmpPhone
());
xzWithdrawalApplyDO
.
setLicenseId
(
realNameAuth
.
getIdNumber
());
xzWithdrawalApplyDO
.
setLicenseType
(
"ID_CARD"
);
xzWithdrawalApplyDO
.
setMonth
(
TDateUtil
.
getCurrentDateByType
(
"yyyy-MM"
));
...
...
@@ -107,4 +112,24 @@ public class WithdrawalServiceImpl implements WithdrawalService {
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
withdrawalList
(
Integer
userAccountId
,
WalletFlowQO
param
)
{
if
(!
StringUtils
.
isBlank
(
param
.
getYearMonth
()))
{
param
.
setEndTime
(
TDateUtil
.
getDateStr
(
TDateUtil
.
getMonthLatestDay
(
TDateUtil
.
getDate
(
param
.
getYearMonth
()
+
"-01"
,
"yyyy-MM-dd"
)),
"yyyy-MM-dd"
)
+
" 23:59:59"
);
}
param
.
setUserAccountId
(
userAccountId
);
int
count
=
payWalletDao
.
countPayWithdrawalLog
(
param
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
param
.
getPageNo
(),
param
.
getPageSize
(),
count
));
}
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
List
<
WithdrawalLogDO
>
withdrawalLogList
=
payWalletDao
.
getWithdrawalListByUserAccountId
(
param
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
withdrawalLogList
.
stream
()
.
map
(
WithdrawalLogDO:
:
buildUserBillingDetailVO
).
collect
(
Collectors
.
toList
())));
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/util/PatternUtil.java
0 → 100644
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
util
;
/**
* 正则表达式匹配
*
* @author tyg
* @date 2018年9月21日下午4:32:27
*/
public
class
PatternUtil
{
/**
* 手机号码匹配
*/
public
static
final
String
PHONE_REG
=
"^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$"
;
/**
* 座机号码匹配
*/
public
static
final
String
MOBILE_REG
=
"^\\d{3}-\\d{8}|\\d{4}-\\d{7}$"
;
/**
* 汉字匹配
*/
public
static
final
String
CHIINESE_REG
=
"^[\\u4e00-\\u9fa5]{0,}$"
;
/**
* 英文和数字匹配(不区分大小写)
*/
public
static
final
String
LETTER_NUMBER_REG
=
"^[A-Za-z0-9]+$"
;
/**
* 非零开头的最多带两位小数的数字
*/
public
static
final
String
DECIMAL_REG
=
"^([1-9][0-9]*)+(.[0-9]{1,2})?$"
;
/**
* 纯数字
*/
public
static
final
String
ONLY_NUMBER_REG
=
"^[0-9]{1,}$"
;
/**
* 纯字母
*/
public
static
final
String
ONLY_LETTER_REG
=
"^[a-zA-Z]{1,}$"
;
/**
* 邮箱email
*/
public
static
final
String
EMAIL_REG
=
"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"
;
/**
* 日期规则
*/
public
static
final
String
DATE_YMD
=
"^(\\d{4}-\\d{2}-\\d{2})$"
;
/**
* 时间规则
*/
public
static
final
String
DATE_YMDHDS
=
"^(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})$"
;
/**
* 银行卡卡号位数
*/
public
final
static
String
BANK_CARD_NUMBER
=
"^\\d{16}|\\d{19}$"
;
/**
* 身份证号码位数限制
*/
public
final
static
String
ID_CARD
=
"^\\d{15}|(\\d{17}[0-9,x,X])$"
;
/**
* 是否为手机号码
*
* @param phone
* @return
* @return boolean
* @author tyg
* @date 2018年9月25日上午9:44:38
*/
public
static
boolean
isPhone
(
String
phone
)
{
return
phone
.
matches
(
PHONE_REG
);
}
/**
* 是否为座机号码
*
* @param mobile
* @return
* @return boolean
* @author tyg
* @date 2018年9月25日上午9:44:38
*/
public
static
boolean
isMobile
(
String
mobile
)
{
return
mobile
.
matches
(
MOBILE_REG
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
isPhone
(
"13228116626"
));
System
.
out
.
println
(
isMobile
(
"028-63358547"
));
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/util/PrivacyUtil.java
0 → 100644
浏览文件 @
28f5b119
package
com
.
mmc
.
iuav
.
user
.
util
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.builder.ReflectionToStringBuilder
;
import
java.lang.reflect.Field
;
import
java.util.Arrays
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.regex.Pattern
;
/**
* 日志辅助类,用来处理敏感信息,进行脱敏
*
* @author tyg
* @date 2018年5月5日下午4:01:22
*/
public
class
PrivacyUtil
{
//银行账户:显示前六后四,范例:622848******4568
public
static
String
encryptBankAcct
(
String
bankAcct
)
{
if
(
bankAcct
==
null
)
{
return
""
;
}
return
replaceBetween
(
bankAcct
,
6
,
bankAcct
.
length
()
-
4
,
null
);
}
//身份证号码:显示前六后四,范例:110601********2015
public
static
String
encryptIdCard
(
String
idCard
)
{
if
(
idCard
==
null
)
{
return
""
;
}
return
replaceBetween
(
idCard
,
6
,
idCard
.
length
()
-
4
,
null
);
}
//客户email:显示前二后四,范例:abxx@xxx.com
public
static
String
encryptEmail
(
String
email
)
{
//判断是否为邮箱地址
if
(
email
==
null
||
!
Pattern
.
matches
(
PatternUtil
.
EMAIL_REG
,
email
))
{
return
""
;
}
StringBuilder
sb
=
new
StringBuilder
(
email
);
//邮箱账号名只显示前两位
int
at_position
=
sb
.
indexOf
(
"@"
);
if
(
at_position
>
2
)
{
sb
.
replace
(
2
,
at_position
,
StringUtils
.
repeat
(
"x"
,
at_position
-
2
));
}
//邮箱域名隐藏
int
period_position
=
sb
.
lastIndexOf
(
"."
);
sb
.
replace
(
at_position
+
1
,
period_position
,
StringUtils
.
repeat
(
"x"
,
period_position
-
at_position
-
1
));
return
sb
.
toString
();
}
//手机:显示前三后四,范例:189****3684
public
static
String
encryptPhoneNo
(
String
phoneNo
)
{
if
(
phoneNo
==
null
)
{
return
""
;
}
return
replaceBetween
(
phoneNo
,
3
,
phoneNo
.
length
()
-
4
,
null
);
}
/**
* @param object 待处理对象
* @param fieldNames 需要处理的属性
* @return 将对象转换为字符串,并对敏感信息进行处理
*/
public
static
String
encryptSensitiveInfo
(
Object
object
,
String
[]
fieldNames
)
{
return
encryptSensitiveInfo
(
object
,
fieldNames
,
null
);
}
/**
* @param object 待处理对象
* @param fieldNames 需要处理的属性
* @param excludes 不需要显示的属性
* @return 将对象转换为字符串,并对敏感信息进行处理
*/
public
static
String
encryptSensitiveInfo
(
Object
object
,
String
[]
fieldNames
,
String
[]
excludes
)
{
if
(
fieldNames
==
null
)
{
fieldNames
=
new
String
[
0
];
}
//合并数组
Set
<
String
>
set
=
new
HashSet
<
String
>(
Arrays
.
asList
(
fieldNames
));
if
(
excludes
!=
null
)
{
for
(
int
i
=
0
;
i
<
excludes
.
length
;
i
++)
{
set
.
add
(
excludes
[
i
]);
}
}
//将对象转换为字符串
String
str
=
ReflectionToStringBuilder
.
toStringExclude
(
object
,
set
.
toArray
(
new
String
[
0
]));
//处理敏感信息
StringBuilder
sb
=
new
StringBuilder
(
str
);
sb
.
deleteCharAt
(
sb
.
length
()
-
1
);
for
(
int
i
=
0
;
i
<
fieldNames
.
length
;
i
++)
{
String
fieldName
=
fieldNames
[
i
];
try
{
Field
f
=
object
.
getClass
().
getDeclaredField
(
fieldName
);
f
.
setAccessible
(
true
);
String
value
=
encryptSensitiveInfo
(
String
.
valueOf
(
f
.
get
(
object
)));
if
(
i
!=
0
||
sb
.
charAt
(
sb
.
length
()
-
1
)
!=
'['
)
{
sb
.
append
(
","
);
}
sb
.
append
(
fieldName
).
append
(
"="
).
append
(
value
);
}
catch
(
Exception
e
)
{
}
}
sb
.
append
(
"]"
);
str
=
sb
.
toString
();
return
str
;
}
/**
* 对敏感信息进行处理。使用正则表达式判断使用哪种规则
*
* @param sourceStr 需要处理的敏感信息
* @return
* @return String
* @author tyg
* @date 2018年5月5日下午3:59:28
*/
public
static
String
encryptSensitiveInfo
(
String
sourceStr
)
{
if
(
sourceStr
==
null
)
{
return
""
;
}
if
(
Pattern
.
matches
(
PatternUtil
.
PHONE_REG
,
sourceStr
))
{
return
encryptPhoneNo
(
sourceStr
);
}
else
if
(
Pattern
.
matches
(
PatternUtil
.
EMAIL_REG
,
sourceStr
))
{
return
encryptEmail
(
sourceStr
);
}
else
if
(
Pattern
.
matches
(
PatternUtil
.
BANK_CARD_NUMBER
,
sourceStr
))
{
return
encryptBankAcct
(
sourceStr
);
}
else
if
(
Pattern
.
matches
(
PatternUtil
.
ID_CARD
,
sourceStr
))
{
return
encryptIdCard
(
sourceStr
);
}
else
{
return
sourceStr
;
}
}
/**
* 将字符串开始位置到结束位置之间的字符用指定字符替换
*
* @param sourceStr 待处理字符串
* @param begin 开始位置
* @param end 结束位置
* @param replacement 替换字符
* @return
*/
private
static
String
replaceBetween
(
String
sourceStr
,
int
begin
,
int
end
,
String
replacement
)
{
if
(
sourceStr
==
null
)
{
return
""
;
}
if
(
replacement
==
null
)
{
replacement
=
"*"
;
}
int
replaceLength
=
end
-
begin
;
if
(
StringUtils
.
isNotBlank
(
sourceStr
)
&&
replaceLength
>
0
)
{
StringBuilder
sb
=
new
StringBuilder
(
sourceStr
);
sb
.
replace
(
begin
,
end
,
StringUtils
.
repeat
(
replacement
,
replaceLength
));
return
sb
.
toString
();
}
else
{
return
sourceStr
;
}
}
}
\ No newline at end of file
csm-service/cms-service-user/src/main/resources/mapper/wallet/PayWalletDao.xml
浏览文件 @
28f5b119
...
...
@@ -73,27 +73,47 @@
</select>
<select
id=
"getPayLog"
resultType=
"com.mmc.iuav.user.entity.wallet.PayLogDO"
>
SELECT pl.id,
pl.user_account_id,
pl.pay_no,
pl.pay_method,
pl.cash_amt_paid,
pl.salary_amt_paid,
pl.pay_time,
pl.remark,
pl.operate_user,
pl.create_time,
wd.`name`
pl.user_account_id,
pl.pay_no,
pl.pay_method,
pl.cash_amt_paid,
pl.salary_amt_paid,
pl.pay_time,
pl.remark,
pl.operate_user,
pl.create_time,
wd.`name`
FROM pay_log pl
INNER JOIN wallet_dictionary wd ON pl.pay_method = wd.`code`
WHERE pl.user_account_id = #{userAccountId}
ORDER BY pl.pay_time DESC
limit #{pageNo}
, #{pageSize}
INNER JOIN wallet_dictionary wd ON pl.pay_method = wd.`code`
<where>
pl.user_account_id = #{userAccountId}
<if
test=
"startTime != null and startTime != '' "
>
and pl.pay_time
>
= STR_TO_DATE(#{startTime},'%Y-%m-%d
%H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and pl.pay_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d
%H:%i:%s')
</if>
</where>
ORDER BY pl.create_time DESC
limit #{pageNo}
, #{pageSize}
</select>
<select
id=
"countPayLog"
resultType=
"java.lang.Integer"
>
select count(*)
from pay_log
where user_account_id = #{userAccountId}
<where>
pl.user_account_id = #{userAccountId}
<if
test=
"startTime != null and startTime != '' "
>
and pl.pay_time
>
= STR_TO_DATE(#{startTime},'%Y-%m-%d
%H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and pl.pay_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d
%H:%i:%s')
</if>
</where>
</select>
<select
id=
"getPayLogById"
resultType=
"com.mmc.iuav.user.entity.wallet.PayLogDO"
>
SELECT pl.id,
...
...
@@ -111,4 +131,88 @@
INNER JOIN wallet_dictionary wd ON pl.pay_method = wd.`code`
WHERE pl.id = #{id}
</select>
<select
id=
"getWithdrawalListByUserAccountId"
resultType=
"com.mmc.iuav.user.entity.wallet.WithdrawalLogDO"
>
select id,
user_account_id,
xz_withdrawal_apply_id,
pay_no,
pay_method,
pay_time,
salary_freeze,
create_time
from withdrawal_log
<where>
user_account_id = #{userAccountId}
<if
test=
"startTime != null and startTime != '' "
>
and pc.pay_time
>
= STR_TO_DATE(#{startTime},'%Y-%m-%d %H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and pc.pay_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d %H:%i:%s')
</if>
</where>
order by create_time DESC
limit #{pageNo},#{pageSize}
</select>
<select
id=
"withdrawalApplyById"
resultType=
"com.mmc.iuav.user.entity.XzWithdrawalApplyDO"
>
select id,
user_account_id,
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
from xz_withdrawal_apply
where id = #{id}
</select>
<select
id=
"listPayWithdrawalLog"
resultType=
"com.mmc.iuav.user.entity.wallet.WithdrawalLogDO"
>
select id,
user_account_id,
xz_withdrawal_apply_id,
pay_no,
pay_method,
pay_time,
salary_freeze,
create_time
from withdrawal_log
where xz_withdrawal_apply_id = #{id}
order by pb.pay_time asc
</select>
<select
id=
"countPayWithdrawalLog"
resultType=
"java.lang.Integer"
>
select count(*)
from withdrawal_log
<where>
pl.user_account_id = #{userAccountId}
<if
test=
"startTime != null and startTime != '' "
>
and pl.pay_time
>
= STR_TO_DATE(#{startTime},'%Y-%m-%d
%H:%i:%s')
</if>
<if
test=
"endTime != null and endTime != '' "
>
and pl.pay_time
<
= STR_TO_DATE(#{endTime},'%Y-%m-%d
%H:%i:%s')
</if>
</where>
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论