Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cash-loan-flow-boss
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QG
cash-loan-flow-boss
Commits
552affa0
Commit
552affa0
authored
Dec 26, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sonar
parent
bc96f8c3
Changes
13
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
263 additions
and
210 deletions
+263
-210
ChannelConfUtil.java
...up/cashloanflowboss/api/channel/util/ChannelConfUtil.java
+34
-27
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+2
-2
OrderServiceImpl.java
.../cashloanflowboss/api/order/service/OrderServiceImpl.java
+130
-116
UserDetailInfo.java
...group/cashloanflowboss/api/user/model/UserDetailInfo.java
+4
-5
IDValidator.java
...oup/cashloanflowboss/component/validator/IDValidator.java
+16
-5
ChannelRoleCheckAspect.java
.../cashloanflowboss/core/aspect/ChannelRoleCheckAspect.java
+3
-2
ChannelRoleLoadAspect.java
...p/cashloanflowboss/core/aspect/ChannelRoleLoadAspect.java
+2
-1
OperationAspect.java
...ntgroup/cashloanflowboss/core/aspect/OperationAspect.java
+51
-49
Constants.java
...quantgroup/cashloanflowboss/core/constants/Constants.java
+16
-0
UserDetailRepository.java
...oanflowboss/spi/user/repository/UserDetailRepository.java
+1
-1
UserExtInfoRepository.java
...anflowboss/spi/user/repository/UserExtInfoRepository.java
+1
-1
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+1
-1
base_data.sql
src/main/resources/sql/base_data.sql
+2
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/util/ChannelConfUtil.java
View file @
552affa0
...
...
@@ -102,27 +102,25 @@ public class ChannelConfUtil {
public
static
List
<
ClfOrderCallBack
>
convert2ClfOrderCallback
(
Long
channelId
,
ChannelConfAddModel
addModel
)
{
List
<
ClfOrderCallBack
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getApproveCallBackUrl
()))
{
//审批
ClfOrderCallBack
clfOrderCallBack1
=
new
ClfOrderCallBack
();
clfOrderCallBack1
.
setCallbackStatus
(
KANoticeType
.
FUAD_ASSIFN_SUCC
);
clfOrderCallBack1
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack1
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
clfOrderCallBack1
.
setIsActive
(
true
);
clfOrderCallBack1
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack1
);
approveCallbackUrl
(
channelId
,
addModel
,
list
);
ClfOrderCallBack
clfOrderCallBack2
=
new
ClfOrderCallBack
();
clfOrderCallBack2
.
setCallbackStatus
(
KANoticeType
.
REJECT
);
clfOrderCallBack2
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack2
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
clfOrderCallBack2
.
setIsActive
(
true
);
clfOrderCallBack2
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack2
);
orderStatusOrderCallback
(
channelId
,
addModel
,
list
);
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getRepaymentPlanCallBackUrl
()))
{
ClfOrderCallBack
clfOrderCallBack10
=
new
ClfOrderCallBack
();
clfOrderCallBack10
.
setCallbackStatus
(
KANoticeType
.
REPAYMENT
);
clfOrderCallBack10
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack10
.
setCallbackUrl
(
addModel
.
getRepaymentPlanCallBackUrl
());
clfOrderCallBack10
.
setIsActive
(
true
);
clfOrderCallBack10
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack10
);
}
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getOrderStatusCallBackUrl
()))
{
return
list
;
}
private
static
void
orderStatusOrderCallback
(
Long
channelId
,
ChannelConfAddModel
addModel
,
List
<
ClfOrderCallBack
>
list
)
{
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getOrderStatusCallBackUrl
()))
{
// 状态
ClfOrderCallBack
clfOrderCallBack0
=
new
ClfOrderCallBack
();
clfOrderCallBack0
.
setCallbackStatus
(
KANoticeType
.
CREDIT_SUCC
);
...
...
@@ -188,18 +186,27 @@ public class ChannelConfUtil {
clfOrderCallBack9
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack9
);
}
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getRepaymentPlanCallBackUrl
()))
{
ClfOrderCallBack
clfOrderCallBack10
=
new
ClfOrderCallBack
();
clfOrderCallBack10
.
setCallbackStatus
(
KANoticeType
.
REPAYMENT
);
clfOrderCallBack10
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack10
.
setCallbackUrl
(
addModel
.
getRepaymentPlanCallBackUrl
());
clfOrderCallBack10
.
setIsActive
(
true
);
clfOrderCallBack10
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack10
);
}
return
list
;
private
static
void
approveCallbackUrl
(
Long
channelId
,
ChannelConfAddModel
addModel
,
List
<
ClfOrderCallBack
>
list
)
{
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getApproveCallBackUrl
()))
{
//审批
ClfOrderCallBack
clfOrderCallBack1
=
new
ClfOrderCallBack
();
clfOrderCallBack1
.
setCallbackStatus
(
KANoticeType
.
FUAD_ASSIFN_SUCC
);
clfOrderCallBack1
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack1
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
clfOrderCallBack1
.
setIsActive
(
true
);
clfOrderCallBack1
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack1
);
ClfOrderCallBack
clfOrderCallBack2
=
new
ClfOrderCallBack
();
clfOrderCallBack2
.
setCallbackStatus
(
KANoticeType
.
REJECT
);
clfOrderCallBack2
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack2
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
clfOrderCallBack2
.
setIsActive
(
true
);
clfOrderCallBack2
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack2
);
}
}
public
static
Integer
getFundIdByType
(
Integer
fundType
,
ChannelConf
channelConf
)
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
552affa0
...
...
@@ -33,10 +33,10 @@ public interface OrderService {
* @param channelOrderNumber
* @return 《是否成功 , msg》
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
Tuple
<
Boolean
,
String
>
secondAudit
(
String
channelOrderNumber
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
Tuple
<
Boolean
,
String
>
lending
(
LendingFormModel
lendingFormModel
);
HistoryOrderStatusVoModel
getOrderHistoryStatus
(
String
channelOrderNumber
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
552affa0
This diff is collapsed.
Click to expand it.
src/main/java/cn/quantgroup/cashloanflowboss/api/user/model/UserDetailInfo.java
View file @
552affa0
...
...
@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.api.user.model;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.role.entity.Role
;
import
cn.quantgroup.cashloanflowboss.api.user.entity.User
;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
com.google.common.collect.Lists
;
...
...
@@ -20,10 +19,10 @@ public class UserDetailInfo {
@Data
static
class
RoleInfo
{
List
<
r
oleView
>
roleInfos
;
List
<
R
oleView
>
roleInfos
;
@Data
static
class
r
oleView
{
static
class
R
oleView
{
private
Long
roleId
;
private
String
roleName
;
}
...
...
@@ -40,9 +39,9 @@ public class UserDetailInfo {
if
(
null
!=
roles
&&
roles
.
size
()
>
0
)
{
RoleInfo
roleInfo
=
new
RoleInfo
();
List
<
RoleInfo
.
r
oleView
>
roleInfos
=
Lists
.
newArrayList
();
List
<
RoleInfo
.
R
oleView
>
roleInfos
=
Lists
.
newArrayList
();
roles
.
forEach
(
role
->
{
RoleInfo
.
roleView
roleView
=
new
RoleInfo
.
r
oleView
();
RoleInfo
.
RoleView
roleView
=
new
RoleInfo
.
R
oleView
();
roleView
.
setRoleId
(
role
.
getId
());
roleView
.
setRoleName
(
role
.
getName
());
roleInfos
.
add
(
roleView
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/component/validator/IDValidator.java
View file @
552affa0
...
...
@@ -23,6 +23,9 @@ import java.util.regex.Pattern;
*/
public
class
IDValidator
{
private
static
final
int
int17
=
17
;
private
static
final
String
s19
=
"19"
;
/**
* 校验码
*/
...
...
@@ -96,11 +99,11 @@ public class IDValidator {
return
false
;
}
if
(
Pattern
.
matches
(
"^[\\d]{15}$"
,
idNumber
))
{
if
(
Pattern
.
matches
(
getRegex
()
,
idNumber
))
{
return
this
.
validate15
(
idNumber
);
}
else
if
(
Pattern
.
matches
(
"^([\\d]{17}((?i)X))|([\\d]{18})$"
,
idNumber
))
{
}
else
if
(
Pattern
.
matches
(
getRegex2
()
,
idNumber
))
{
return
this
.
validate18
(
idNumber
);
...
...
@@ -110,6 +113,14 @@ public class IDValidator {
}
private
String
getRegex2
()
{
return
"^([\\d]{17}((?i)X))|([\\d]{18})$"
;
}
private
String
getRegex
()
{
return
"^[\\d]{15}$"
;
}
/**
* 验证15位身份证号
*
...
...
@@ -137,12 +148,12 @@ public class IDValidator {
*/
private
String
convert
(
String
idNumber
)
{
String
newIdNumber
=
idNumber
.
substring
(
0
,
6
)
+
"19"
+
idNumber
.
substring
(
6
);
String
newIdNumber
=
idNumber
.
substring
(
0
,
6
)
+
s19
+
idNumber
.
substring
(
6
);
// 校验码
int
sum
=
0
;
for
(
int
i
=
0
;
i
<
17
;
i
++)
{
for
(
int
i
=
0
;
i
<
int
17
;
i
++)
{
int
ai
=
Integer
.
parseInt
(
String
.
valueOf
(
newIdNumber
.
charAt
(
i
)));
sum
=
sum
+
ai
*
weights
[
i
];
}
...
...
@@ -219,7 +230,7 @@ public class IDValidator {
int
sum
=
0
;
for
(
int
i
=
0
;
i
<
17
;
i
++)
{
for
(
int
i
=
0
;
i
<
int
17
;
i
++)
{
sum
=
sum
+
Integer
.
parseInt
(
String
.
valueOf
(
idNumber
.
charAt
(
i
)))
*
weights
[
i
];
}
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/ChannelRoleCheckAspect.java
View file @
552affa0
...
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
...
...
@@ -75,7 +76,7 @@ public class ChannelRoleCheckAspect {
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
// 通过channelId 判断
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
if
(
channelIdSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
if
(!
Application
.
getPrincipal
().
getChannelId
().
equals
(
expression
.
getValue
(
args
,
Long
.
class
)))
{
...
...
@@ -92,7 +93,7 @@ public class ChannelRoleCheckAspect {
}
else
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumberSPEL
)){
// 通过channelOrderNumber 判断
String
channelOrderNumber
=
""
;
if
(
channelOrderNumberSPEL
.
startsWith
(
"#this"
))
{
if
(
channelOrderNumberSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelOrderNumberSPEL
);
channelOrderNumber
=
expression
.
getValue
(
args
,
String
.
class
);
}
else
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/ChannelRoleLoadAspect.java
View file @
552affa0
...
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.core.exception.ApplicationException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -59,7 +60,7 @@ public class ChannelRoleLoadAspect {
if
(
principal
.
isChannel
())
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
if
(
channelIdSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
expression
.
setValue
(
args
,
principal
.
getChannelId
());
}
else
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/OperationAspect.java
View file @
552affa0
...
...
@@ -6,6 +6,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -52,23 +53,19 @@ public class OperationAspect {
*/
@Around
(
"operationAnno()"
)
private
Object
operationAnnoAndSave
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
try
{
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
Method
method
=
methodSignature
.
getMethod
();
OperationAnno
annotation
=
method
.
getAnnotation
(
OperationAnno
.
class
);
Object
[]
args
=
pjp
.
getArgs
();
OptEnumName
opt
=
annotation
.
opt
();
String
succSPEL
=
annotation
.
succSPEL
();
String
optDetailSPEL
=
annotation
.
optDetailSPEL
();
String
channelOrderNumber
=
""
;
if
(
StringUtils
.
isNotBlank
(
annotation
.
channelNo
()))
{
String
keySPEL
=
annotation
.
channelNo
();
try
{
if
(
keySPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
if
(
keySPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
keySPEL
);
String
value
=
expression
.
getValue
(
args
,
String
.
class
);
channelOrderNumber
=
value
;
...
...
@@ -85,14 +82,7 @@ public class OperationAspect {
ClfOrderMapping
orderMapping
=
clfCenterService
.
findOrderMappingByChannelOrderNo
(
channelOrderNumber
);
if
(
orderMapping
!=
null
)
{
// do some
optHistoryLog
.
setChannelOrderNumber
(
channelOrderNumber
);
optHistoryLog
.
setCreditNumber
(
orderMapping
.
getApplyNo
());
optHistoryLog
.
setLoanId
(
orderMapping
.
getLoanId
());
optHistoryLog
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
optHistoryLog
.
setOptEnumName
(
opt
);
optHistoryLog
.
setOptName
(
opt
.
getDesc
());
optHistoryLog
.
setOptUser
(
Application
.
getPrincipal
().
getUserInfo
().
getNickname
()
+
"_"
+
Application
.
getPrincipal
().
getUserInfo
().
getUsername
());
optHistoryLog
.
setCreateTime
(
new
Date
());
getOptHistoryLogBean
(
opt
,
channelOrderNumber
,
optHistoryLog
,
orderMapping
);
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}"
,
channelOrderNumber
);
return
pjp
.
proceed
();
...
...
@@ -101,36 +91,8 @@ public class OperationAspect {
log
.
warn
(
"[operationAnnoAnnSave]channelOrderNumber is empty, channelOrderNumber={}"
,
channelOrderNumber
);
return
pjp
.
proceed
();
}
// 是否成功SPEL 表达式解析
Expression
expressionsuccSPEL
=
null
;
if
(
StringUtils
.
isNotEmpty
(
succSPEL
))
{
try
{
if
(
succSPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
expressionsuccSPEL
=
new
SpelExpressionParser
().
parseExpression
(
succSPEL
);
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]optResult获取失败"
);
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[operationAnnoAnnSave]key表达式“"
+
succSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
Expression
expressionMsgSPEL
=
null
;
if
(
StringUtils
.
isNotEmpty
(
optDetailSPEL
))
{
try
{
if
(
optDetailSPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
expressionMsgSPEL
=
new
SpelExpressionParser
().
parseExpression
(
optDetailSPEL
);
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]optDetail获取失败"
);
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[operationAnnoAnnSave]key表达式“"
+
optDetailSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
Expression
expressionsuccSPEL
=
getIsSuccExpressionSPEL
(
succSPEL
);
Expression
expressionMsgSPEL
=
getMegExpression
(
optDetailSPEL
);
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumber
))
{
// 判断是否 已经请求成功过
OptHistoryLog
optHistoryLogSuccess
=
optHistoryLogService
.
findByChannelOrderNumberAndOptNameAndSuccess
(
channelOrderNumber
,
opt
);
...
...
@@ -148,23 +110,17 @@ public class OperationAspect {
log
.
info
(
"[operationAnnoAnnSave]该操作已经操作成功,无须重复操作,切面返回"
);
return
ret
;
}
}
}
// 代理执行方法
Object
proceed
=
pjp
.
proceed
();
// 获取方法返回 是否成功
if
(
expressionsuccSPEL
!=
null
)
{
optHistoryLog
.
setOptResult
(
expressionsuccSPEL
.
getValue
(
proceed
,
Boolean
.
class
));
}
// 获取方法详细信息
if
(
expressionMsgSPEL
!=
null
)
{
optHistoryLog
.
setOptLogDetail
(
expressionMsgSPEL
.
getValue
(
proceed
,
String
.
class
));
}
optHistoryLogService
.
save
(
optHistoryLog
);
return
proceed
;
}
catch
(
Throwable
throwable
)
{
...
...
@@ -172,4 +128,50 @@ public class OperationAspect {
return
pjp
.
proceed
();
}
}
private
void
getOptHistoryLogBean
(
OptEnumName
opt
,
String
channelOrderNumber
,
OptHistoryLog
optHistoryLog
,
ClfOrderMapping
orderMapping
)
{
optHistoryLog
.
setChannelOrderNumber
(
channelOrderNumber
);
optHistoryLog
.
setCreditNumber
(
orderMapping
.
getApplyNo
());
optHistoryLog
.
setLoanId
(
orderMapping
.
getLoanId
());
optHistoryLog
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
optHistoryLog
.
setOptEnumName
(
opt
);
optHistoryLog
.
setOptName
(
opt
.
getDesc
());
optHistoryLog
.
setOptUser
(
Application
.
getPrincipal
().
getUserInfo
().
getNickname
()
+
"_"
+
Application
.
getPrincipal
().
getUserInfo
().
getUsername
());
optHistoryLog
.
setCreateTime
(
new
Date
());
}
private
Expression
getMegExpression
(
String
optDetailSPEL
)
{
Expression
expressionMsgSPEL
=
null
;
if
(
StringUtils
.
isNotEmpty
(
optDetailSPEL
))
{
try
{
if
(
optDetailSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
expressionMsgSPEL
=
new
SpelExpressionParser
().
parseExpression
(
optDetailSPEL
);
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]optDetail获取失败"
);
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[operationAnnoAnnSave]key表达式“"
+
optDetailSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
return
expressionMsgSPEL
;
}
private
Expression
getIsSuccExpressionSPEL
(
String
succSPEL
)
{
// 是否成功SPEL 表达式解析
Expression
expressionsuccSPEL
=
null
;
if
(
StringUtils
.
isNotEmpty
(
succSPEL
))
{
try
{
if
(
succSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
expressionsuccSPEL
=
new
SpelExpressionParser
().
parseExpression
(
succSPEL
);
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]optResult获取失败"
);
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[operationAnnoAnnSave]key表达式“"
+
succSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
return
expressionsuccSPEL
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/core/constants/Constants.java
0 → 100644
View file @
552affa0
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
constants
;
/**
* @description:
* @author:tao
* @create: 2019-12-26 14:35
*/
public
interface
Constants
{
String
SUCCESS
=
"success"
;
String
TOTAL_COUNT
=
"totalCount"
;
String
TOTAL_AMOUNT
=
"totalAmount"
;
String
DATA
=
"data"
;
String
TOKEN
=
"token"
;
String
TRUE
=
"true"
;
String
START_THIS
=
"#this"
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/user/repository/UserDetailRepository.java
View file @
552affa0
...
...
@@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
@Repository
public
interface
UserDetailRepository
extends
JpaRepository
<
UserDetail
,
Long
>{
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Query
(
value
=
"delete from user_detail where user_id = ?1"
,
nativeQuery
=
true
)
int
deleteByUserId
(
Long
userId
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/user/repository/UserExtInfoRepository.java
View file @
552affa0
...
...
@@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
@Repository
public
interface
UserExtInfoRepository
extends
JpaRepository
<
UserExtInfo
,
Long
>{
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Query
(
value
=
"delete from user_ext_info where user_id = ?1"
,
nativeQuery
=
true
)
void
deleteByUserId
(
Long
userId
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
552affa0
...
...
@@ -30,7 +30,7 @@ public interface XYQBCenterService {
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
);
@Transactional
@Transactional
(
rollbackOn
=
Exception
.
class
)
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
);
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
);
...
...
src/main/resources/sql/base_data.sql
View file @
552affa0
CREATE
DATABASE
IF
NOT
EXISTS
cash_loan_flow_boss
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
;
use
cash_loan_flow_boss
;
CREATE
TABLE
IF
NOT
EXISTS
`channel_conf`
(
...
...
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