Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-platform-finance
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
base_platform_enterprise
gic-platform-finance
Commits
c4938c68
Commit
c4938c68
authored
Nov 12, 2020
by
guojuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提现代码优化
parent
49afafc7
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
511 additions
and
76 deletions
+511
-76
WithdrawalStatusEnum.java
...n/java/com/gic/finance/constant/WithdrawalStatusEnum.java
+16
-0
OperationUserInfoDTO.java
...c/main/java/com/gic/finance/dto/OperationUserInfoDTO.java
+14
-5
CashWithdrawalApiServiceImpl.java
...ance/service/outer/impl/CashWithdrawalApiServiceImpl.java
+8
-71
ApplicationContextUtils.java
...in/java/com/gic/finance/util/ApplicationContextUtils.java
+35
-0
State.java
.../main/java/com/gic/finance/util/cashwithdrawal/State.java
+54
-0
StateHandler.java
...ava/com/gic/finance/util/cashwithdrawal/StateHandler.java
+51
-0
ApprovalState.java
.../gic/finance/util/cashwithdrawal/event/ApprovalState.java
+78
-0
CancelState.java
...om/gic/finance/util/cashwithdrawal/event/CancelState.java
+43
-0
CashWithdrawalState.java
...inance/util/cashwithdrawal/event/CashWithdrawalState.java
+62
-0
CheckAuthState.java
...gic/finance/util/cashwithdrawal/event/CheckAuthState.java
+63
-0
CompleteState.java
.../gic/finance/util/cashwithdrawal/event/CompleteState.java
+43
-0
RejectState.java
...om/gic/finance/util/cashwithdrawal/event/RejectState.java
+44
-0
No files found.
gic-platform-finance-api/src/main/java/com/gic/finance/constant/WithdrawalStatusEnum.java
View file @
c4938c68
...
...
@@ -8,6 +8,10 @@ package com.gic.finance.constant;
*/
public
enum
WithdrawalStatusEnum
{
/**
* 提审
*/
NEW
(
0
,
"提审"
),
/**
* 待审核
*/
TO_BE_EXAMINE
(
1
,
"待审核"
),
...
...
@@ -48,6 +52,18 @@ public enum WithdrawalStatusEnum {
return
"未知"
;
}
public
static
WithdrawalStatusEnum
getEnumByCode
(
Integer
code
)
{
if
(
code
==
null
)
{
return
null
;
}
for
(
WithdrawalStatusEnum
typeEnum
:
values
())
{
if
(
code
.
intValue
()
==
typeEnum
.
getCode
())
{
return
typeEnum
;
}
}
return
null
;
}
public
int
getCode
()
{
return
code
;
}
...
...
gic-platform-finance-api/src/main/java/com/gic/finance/dto/OperationUserInfoDTO.java
View file @
c4938c68
...
...
@@ -30,36 +30,45 @@ public class OperationUserInfoDTO implements Serializable{
return
id
;
}
public
void
setId
(
Integer
id
)
{
public
OperationUserInfoDTO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getLoginName
()
{
return
loginName
;
}
public
void
setLoginName
(
String
loginName
)
{
public
OperationUserInfoDTO
setLoginName
(
String
loginName
)
{
this
.
loginName
=
loginName
;
return
this
;
}
public
String
getRealName
()
{
return
realName
;
}
public
void
setRealName
(
String
realName
)
{
public
OperationUserInfoDTO
setRealName
(
String
realName
)
{
this
.
realName
=
realName
;
return
this
;
}
public
String
getUserMobile
()
{
return
userMobile
;
}
public
void
setUserMobile
(
String
userMobile
)
{
public
OperationUserInfoDTO
setUserMobile
(
String
userMobile
)
{
this
.
userMobile
=
userMobile
;
return
this
;
}
@Override
public
String
toString
()
{
return
super
.
toString
();
return
"OperationUserInfoDTO{"
+
"id="
+
id
+
", loginName='"
+
loginName
+
'\''
+
", realName='"
+
realName
+
'\''
+
", userMobile='"
+
userMobile
+
'\''
+
'}'
;
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/service/outer/impl/CashWithdrawalApiServiceImpl.java
View file @
c4938c68
...
...
@@ -2,6 +2,7 @@ package com.gic.finance.service.outer.impl;
import
java.util.Date
;
import
com.gic.finance.util.cashwithdrawal.StateHandler
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -37,38 +38,17 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
private
CashWithdrawalService
cashWithdrawalService
;
@Autowired
private
PayAccountService
payAccountService
;
/**
* 提现申请
* @Title: cashWithdrawal
* @Description:
* @author guojuxing
* @param dto
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
*/
private
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
ServiceResponse
paramValid
=
ValidParamsUtils
.
allCheckValidate
(
dto
,
CashWithdrawalDTO
.
CashWithdrawal
.
class
);
if
(!
paramValid
.
isSuccess
())
{
return
paramValid
;
}
dto
.
setCreateTime
(
new
Date
());
dto
.
setUpdateTime
(
new
Date
());
dto
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
TO_BE_EXAMINE
.
getCode
());
//流水号
dto
.
setCashWithdrawalSerialNumber
(
CreateRandomUtils
.
createSerialNumber
());
cashWithdrawalService
.
save
(
dto
);
return
ServiceResponse
.
success
(
dto
.
getCashWithdrawalSerialNumber
());
}
@Override
public
ServiceResponse
<
String
>
cashWithdrawalOfServiceProvider
(
CashWithdrawalDTO
dto
)
{
dto
.
setApplyType
(
WithdrawalApplyTypeEnum
.
SERVICE_PROVIDER
.
getCode
());
return
cashWithdrawal
(
dto
);
return
StateHandler
.
cashWithdrawal
(
WithdrawalStatusEnum
.
NEW
,
dto
);
}
@Override
public
ServiceResponse
<
String
>
cashWithdrawalOfSupplier
(
CashWithdrawalDTO
dto
)
{
dto
.
setApplyType
(
WithdrawalApplyTypeEnum
.
SUPPLIER
.
getCode
());
return
cashWithdrawal
(
dto
);
return
StateHandler
.
cashWithdrawal
(
WithdrawalStatusEnum
.
NEW
,
dto
);
}
@Override
...
...
@@ -95,15 +75,9 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
if
(
record
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"参数有误,无此记录"
);
}
if
(
record
.
getCashWithdrawalStatus
().
intValue
()
==
WithdrawalStatusEnum
.
CANCEL
.
getCode
())
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"已取消"
);
}
// 操作人相关信息
getOperationUserInfo
(
record
,
dto
);
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
PASS
.
getCode
());
cashWithdrawalService
.
update
(
record
);
return
ServiceResponse
.
success
();
return
StateHandler
.
approval
(
WithdrawalStatusEnum
.
getEnumByCode
(
record
.
getCashWithdrawalStatus
()),
record
);
}
@Override
...
...
@@ -117,57 +91,25 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
@Override
public
ServiceResponse
<
Void
>
reject
(
Integer
id
,
String
rejectReason
,
OperationUserInfoDTO
dto
)
{
if
(
StringUtils
.
isBlank
(
rejectReason
))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"驳回理由不能为空"
);
}
TabCashWithdrawal
record
=
cashWithdrawalService
.
getById
(
id
);
if
(
record
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"参数有误,无此记录"
);
}
if
(
record
.
getCashWithdrawalStatus
().
intValue
()
==
WithdrawalStatusEnum
.
CANCEL
.
getCode
())
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"已取消"
);
}
// 操作人相关信息
getOperationUserInfo
(
record
,
dto
);
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
REJECT
.
getCode
());
record
.
setRejectReason
(
rejectReason
);
cashWithdrawalService
.
update
(
record
);
//回调
AsyncCallbackUtils
.
callBack
(
record
,
"com.gic.open.api.service.market.PayCallbackApiService"
,
"callbackWithdraw"
);
return
ServiceResponse
.
success
();
return
StateHandler
.
reject
(
WithdrawalStatusEnum
.
getEnumByCode
(
record
.
getCashWithdrawalStatus
()),
record
);
}
@Override
public
ServiceResponse
<
Void
>
pay
(
Integer
id
,
Integer
payId
,
String
bankSerialNumber
)
{
if
(
StringUtils
.
isBlank
(
bankSerialNumber
))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"银行流水号不能为空"
);
}
TabCashWithdrawal
record
=
cashWithdrawalService
.
getById
(
id
);
if
(
record
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"参数有误,无此申请单记录"
);
}
TabPayAccount
account
=
payAccountService
.
getById
(
payId
);
if
(
account
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"无此打款户信息记录,请前往添加"
);
}
//todo 操作人相关信息
record
.
setOperatorTime
(
new
Date
());
record
.
setPayId
(
payId
);
record
.
setPayAccount
(
account
.
getBankAccount
());
record
.
setPayAccountBank
(
account
.
getBank
());
record
.
setPayAccountBranchName
(
account
.
getBranchName
());
record
.
setPayAccountName
(
account
.
getAccountName
());
record
.
setBankSerialNumber
(
bankSerialNumber
);
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
COMPLETE
.
getCode
());
cashWithdrawalService
.
update
(
record
);
//回调
AsyncCallbackUtils
.
callBack
(
record
,
"com.gic.open.api.service.market.PayCallbackApiService"
,
"callbackWithdraw"
);
return
ServiceResponse
.
success
();
record
.
setPayId
(
payId
);
return
StateHandler
.
complete
(
WithdrawalStatusEnum
.
getEnumByCode
(
record
.
getCashWithdrawalStatus
()),
record
);
}
@Override
...
...
@@ -183,12 +125,7 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
if
(
record
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"提现流水号错误,查无数据"
);
}
if
(
record
.
getCashWithdrawalStatus
().
intValue
()
!=
WithdrawalStatusEnum
.
TO_BE_EXAMINE
.
getCode
())
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"已审批,不能取消"
);
}
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
CANCEL
.
getCode
());
cashWithdrawalService
.
update
(
record
);
return
ServiceResponse
.
success
();
return
StateHandler
.
cancel
(
WithdrawalStatusEnum
.
getEnumByCode
(
record
.
getCashWithdrawalStatus
()),
record
);
}
private
void
getOperationUserInfo
(
TabCashWithdrawal
record
,
OperationUserInfoDTO
userInfo
)
{
...
...
gic-platform-finance-service/src/main/java/com/gic/finance/util/ApplicationContextUtils.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
/**
* Spring ApplicationContext 工具类
* @ClassName: ApplicationContextUtils
* @Description:
* @author guojuxing
* @date 2020/11/11 10:22 AM
*/
@Component
public
class
ApplicationContextUtils
implements
ApplicationContextAware
{
private
static
ApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
ApplicationContextUtils
.
applicationContext
=
applicationContext
;
}
public
static
<
T
>
T
getBean
(
String
beanName
)
{
if
(
applicationContext
.
containsBean
(
beanName
))
{
return
(
T
)
applicationContext
.
getBean
(
beanName
);
}
return
null
;
}
public
static
<
T
>
T
getBean
(
Class
<
T
>
clazz
)
{
return
applicationContext
.
getBean
(
clazz
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/State.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.service.CashWithdrawalService
;
/**
* 体现状态抽象
* @ClassName: State
* @Description:
* @author guojuxing
* @date 2020/11/6 10:18 AM
*/
public
abstract
class
State
{
/**
* 提现申请
* @Title: cashWithdrawal
* @Description:
* @author guojuxing
* @param dto
* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>
*/
public
abstract
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
);
/**
* 审核通过
* @param record
* @return
*/
public
abstract
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
);
/**
* 审核拒绝
* @param record
* @return
*/
public
abstract
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
);
/**
* 审核取消
* @param record
* @return
*/
public
abstract
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
);
/**
* 完成(打款成功)
* @param record
* @return
*/
public
abstract
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
);
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/StateHandler.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.finance.constant.WithdrawalStatusEnum
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.util.ApplicationContextUtils
;
import
com.gic.finance.util.cashwithdrawal.event.*
;
/**
* 提现调用
* @ClassName: StateHandler
* @Description:
* @author guojuxing
* @date 2020/11/6 1:41 PM
*/
public
class
StateHandler
{
private
static
Map
<
WithdrawalStatusEnum
,
State
>
stateMap
=
new
ConcurrentHashMap
<>(
16
);
static
{
stateMap
.
put
(
WithdrawalStatusEnum
.
NEW
,
ApplicationContextUtils
.
getBean
(
CashWithdrawalState
.
class
));
stateMap
.
put
(
WithdrawalStatusEnum
.
TO_BE_EXAMINE
,
ApplicationContextUtils
.
getBean
(
CheckAuthState
.
class
));
stateMap
.
put
(
WithdrawalStatusEnum
.
CANCEL
,
ApplicationContextUtils
.
getBean
(
CancelState
.
class
));
stateMap
.
put
(
WithdrawalStatusEnum
.
REJECT
,
ApplicationContextUtils
.
getBean
(
RejectState
.
class
));
stateMap
.
put
(
WithdrawalStatusEnum
.
PASS
,
ApplicationContextUtils
.
getBean
(
ApprovalState
.
class
));
stateMap
.
put
(
WithdrawalStatusEnum
.
COMPLETE
,
ApplicationContextUtils
.
getBean
(
CompleteState
.
class
));
}
public
static
ServiceResponse
<
String
>
cashWithdrawal
(
WithdrawalStatusEnum
state
,
CashWithdrawalDTO
dto
)
{
return
stateMap
.
get
(
state
).
cashWithdrawal
(
dto
);
}
public
static
ServiceResponse
<
Void
>
approval
(
WithdrawalStatusEnum
state
,
TabCashWithdrawal
record
)
{
return
stateMap
.
get
(
state
).
approval
(
record
);
}
public
static
ServiceResponse
<
Void
>
reject
(
WithdrawalStatusEnum
state
,
TabCashWithdrawal
record
)
{
return
stateMap
.
get
(
state
).
reject
(
record
);
}
public
static
ServiceResponse
<
Void
>
cancel
(
WithdrawalStatusEnum
state
,
TabCashWithdrawal
record
)
{
return
stateMap
.
get
(
state
).
cancel
(
record
);
}
public
static
ServiceResponse
<
Void
>
complete
(
WithdrawalStatusEnum
state
,
TabCashWithdrawal
record
)
{
return
stateMap
.
get
(
state
).
complete
(
record
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/ApprovalState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.enterprise.utils.AsyncCallbackUtils
;
import
com.gic.finance.constant.WithdrawalStatusEnum
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.entity.TabPayAccount
;
import
com.gic.finance.service.CashWithdrawalService
;
import
com.gic.finance.service.PayAccountService
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* 审批通过状态
* @ClassName: ApprovalState
* @Description:
* @author guojuxing
* @date 2020/11/6 11:19 AM
*/
@Component
public
class
ApprovalState
extends
State
{
@Autowired
private
CashWithdrawalService
cashWithdrawalService
;
@Autowired
private
PayAccountService
payAccountService
;
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已通过审批"
);
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已通过审批"
);
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已通过审批"
);
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已通过审批"
);
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
if
(
StringUtils
.
isBlank
(
record
.
getBankSerialNumber
()))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"银行流水号不能为空"
);
}
TabPayAccount
account
=
payAccountService
.
getById
(
record
.
getPayId
());
if
(
account
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"无此打款户信息记录,请前往添加"
);
}
//todo 操作人相关信息
record
.
setOperatorTime
(
new
Date
());
record
.
setPayId
(
record
.
getPayId
());
record
.
setPayAccount
(
account
.
getBankAccount
());
record
.
setPayAccountBank
(
account
.
getBank
());
record
.
setPayAccountBranchName
(
account
.
getBranchName
());
record
.
setPayAccountName
(
account
.
getAccountName
());
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
COMPLETE
.
getCode
());
cashWithdrawalService
.
update
(
record
);
//回调
AsyncCallbackUtils
.
callBack
(
record
,
"com.gic.open.api.service.market.PayCallbackApiService"
,
"callbackWithdraw"
);
return
ServiceResponse
.
success
();
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/CancelState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.springframework.stereotype.Component
;
/**
* 取消审核状态
* @ClassName: CancelState
* @Description:
* @author guojuxing
* @date 2020/11/6 1:38 PM
*/
@Component
public
class
CancelState
extends
State
{
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已取消"
);
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已取消"
);
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已取消"
);
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已取消"
);
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已取消"
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/CashWithdrawalState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.enterprise.utils.CreateRandomUtils
;
import
com.gic.enterprise.utils.valid.ValidParamsUtils
;
import
com.gic.finance.constant.WithdrawalStatusEnum
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.service.CashWithdrawalService
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* 新增提审
* @ClassName: CashWithdrawalState
* @Description:
* @author guojuxing
* @date 2020/11/6 4:51 PM
*/
@Component
public
class
CashWithdrawalState
extends
State
{
@Autowired
private
CashWithdrawalService
cashWithdrawalService
;
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
ServiceResponse
paramValid
=
ValidParamsUtils
.
allCheckValidate
(
dto
,
CashWithdrawalDTO
.
CashWithdrawal
.
class
);
if
(!
paramValid
.
isSuccess
())
{
return
paramValid
;
}
dto
.
setCreateTime
(
new
Date
());
dto
.
setUpdateTime
(
new
Date
());
dto
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
TO_BE_EXAMINE
.
getCode
());
//流水号
dto
.
setCashWithdrawalSerialNumber
(
CreateRandomUtils
.
createSerialNumber
());
cashWithdrawalService
.
save
(
dto
);
return
ServiceResponse
.
success
(
dto
.
getCashWithdrawalSerialNumber
());
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"提审中,不能通过审批"
);
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"提审中,不能拒绝审批"
);
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"提审中,不能取消审批"
);
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"提审中,不能打款"
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/CheckAuthState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.enterprise.utils.AsyncCallbackUtils
;
import
com.gic.finance.constant.WithdrawalStatusEnum
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.service.CashWithdrawalService
;
import
com.gic.finance.service.PayAccountService
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* 审核
* @ClassName: CheckAuthState
* @Description:
* @author guojuxing
* @date 2020/11/6 3:28 PM
*/
@Component
public
class
CheckAuthState
extends
State
{
@Autowired
private
CashWithdrawalService
cashWithdrawalService
;
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"不能重复提审"
);
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
PASS
.
getCode
());
cashWithdrawalService
.
update
(
record
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
if
(
StringUtils
.
isBlank
(
record
.
getRejectReason
()))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"驳回理由不能为空"
);
}
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
REJECT
.
getCode
());
cashWithdrawalService
.
update
(
record
);
//回调
AsyncCallbackUtils
.
callBack
(
record
,
"com.gic.open.api.service.market.PayCallbackApiService"
,
"callbackWithdraw"
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
record
.
setCashWithdrawalStatus
(
WithdrawalStatusEnum
.
CANCEL
.
getCode
());
cashWithdrawalService
.
update
(
record
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"审核中不能打款"
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/CompleteState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.springframework.stereotype.Component
;
/**
* 完成状态
* @ClassName: CompleteState
* @Description:
* @author guojuxing
* @date 2020/11/6 3:48 PM
*/
@Component
public
class
CompleteState
extends
State
{
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已完成"
);
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已完成"
);
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已完成"
);
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已完成"
);
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"已完成"
);
}
}
gic-platform-finance-service/src/main/java/com/gic/finance/util/cashwithdrawal/event/RejectState.java
0 → 100644
View file @
c4938c68
package
com
.
gic
.
finance
.
util
.
cashwithdrawal
.
event
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.finance.constant.WithdrawalStatusEnum
;
import
com.gic.finance.dto.CashWithdrawalDTO
;
import
com.gic.finance.entity.TabCashWithdrawal
;
import
com.gic.finance.util.cashwithdrawal.State
;
import
org.springframework.stereotype.Component
;
/**
* 拒绝审批状态
* @ClassName: RejectState
* @Description:
* @author guojuxing
* @date 2020/11/6 11:23 AM
*/
@Component
public
class
RejectState
extends
State
{
@Override
public
ServiceResponse
<
String
>
cashWithdrawal
(
CashWithdrawalDTO
dto
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
WithdrawalStatusEnum
.
REJECT
.
getMessage
());
}
@Override
public
ServiceResponse
<
Void
>
approval
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
WithdrawalStatusEnum
.
REJECT
.
getMessage
());
}
@Override
public
ServiceResponse
<
Void
>
reject
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
WithdrawalStatusEnum
.
REJECT
.
getMessage
());
}
@Override
public
ServiceResponse
<
Void
>
cancel
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
WithdrawalStatusEnum
.
REJECT
.
getMessage
());
}
@Override
public
ServiceResponse
<
Void
>
complete
(
TabCashWithdrawal
record
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
WithdrawalStatusEnum
.
REJECT
.
getMessage
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment