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
Hide 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 {
...
@@ -102,27 +102,25 @@ public class ChannelConfUtil {
public
static
List
<
ClfOrderCallBack
>
convert2ClfOrderCallback
(
Long
channelId
,
ChannelConfAddModel
addModel
)
{
public
static
List
<
ClfOrderCallBack
>
convert2ClfOrderCallback
(
Long
channelId
,
ChannelConfAddModel
addModel
)
{
List
<
ClfOrderCallBack
>
list
=
new
ArrayList
<>();
List
<
ClfOrderCallBack
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getApproveCallBackUrl
()))
{
approveCallbackUrl
(
channelId
,
addModel
,
list
);
//审批
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
();
orderStatusOrderCallback
(
channelId
,
addModel
,
list
);
clfOrderCallBack2
.
setCallbackStatus
(
KANoticeType
.
REJECT
);
clfOrderCallBack2
.
setRegisteredFrom
(
channelId
);
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getRepaymentPlanCallBackUrl
()))
{
clfOrderCallBack2
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
ClfOrderCallBack
clfOrderCallBack10
=
new
ClfOrderCallBack
();
clfOrderCallBack2
.
setIsActive
(
true
);
clfOrderCallBack10
.
setCallbackStatus
(
KANoticeType
.
REPAYMENT
);
clfOrderCallBack2
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
clfOrderCallBack10
.
setRegisteredFrom
(
channelId
);
list
.
add
(
clfOrderCallBack2
);
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
();
ClfOrderCallBack
clfOrderCallBack0
=
new
ClfOrderCallBack
();
clfOrderCallBack0
.
setCallbackStatus
(
KANoticeType
.
CREDIT_SUCC
);
clfOrderCallBack0
.
setCallbackStatus
(
KANoticeType
.
CREDIT_SUCC
);
...
@@ -188,18 +186,27 @@ public class ChannelConfUtil {
...
@@ -188,18 +186,27 @@ public class ChannelConfUtil {
clfOrderCallBack9
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
clfOrderCallBack9
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack9
);
list
.
add
(
clfOrderCallBack9
);
}
}
}
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getRepaymentPlanCallBackUrl
()))
{
private
static
void
approveCallbackUrl
(
Long
channelId
,
ChannelConfAddModel
addModel
,
List
<
ClfOrderCallBack
>
list
)
{
ClfOrderCallBack
clfOrderCallBack10
=
new
ClfOrderCallBack
();
if
(
StringUtils
.
isNotEmpty
(
addModel
.
getApproveCallBackUrl
()))
{
clfOrderCallBack10
.
setCallbackStatus
(
KANoticeType
.
REPAYMENT
);
//审批
clfOrderCallBack10
.
setRegisteredFrom
(
channelId
);
ClfOrderCallBack
clfOrderCallBack1
=
new
ClfOrderCallBack
();
clfOrderCallBack10
.
setCallbackUrl
(
addModel
.
getRepaymentPlanCallBackUrl
());
clfOrderCallBack1
.
setCallbackStatus
(
KANoticeType
.
FUAD_ASSIFN_SUCC
);
clfOrderCallBack10
.
setIsActive
(
true
);
clfOrderCallBack1
.
setRegisteredFrom
(
channelId
);
clfOrderCallBack10
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
clfOrderCallBack1
.
setCallbackUrl
(
addModel
.
getApproveCallBackUrl
());
list
.
add
(
clfOrderCallBack10
);
clfOrderCallBack1
.
setIsActive
(
true
);
}
clfOrderCallBack1
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
list
.
add
(
clfOrderCallBack1
);
return
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
);
}
}
}
public
static
Integer
getFundIdByType
(
Integer
fundType
,
ChannelConf
channelConf
)
{
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 {
...
@@ -33,10 +33,10 @@ public interface OrderService {
* @param channelOrderNumber
* @param channelOrderNumber
* @return 《是否成功 , msg》
* @return 《是否成功 , msg》
*/
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
Tuple
<
Boolean
,
String
>
secondAudit
(
String
channelOrderNumber
);
Tuple
<
Boolean
,
String
>
secondAudit
(
String
channelOrderNumber
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
Tuple
<
Boolean
,
String
>
lending
(
LendingFormModel
lendingFormModel
);
Tuple
<
Boolean
,
String
>
lending
(
LendingFormModel
lendingFormModel
);
HistoryOrderStatusVoModel
getOrderHistoryStatus
(
String
channelOrderNumber
);
HistoryOrderStatusVoModel
getOrderHistoryStatus
(
String
channelOrderNumber
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
552affa0
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
...
@@ -188,65 +189,33 @@ public class OrderServiceImpl implements OrderService{
...
@@ -188,65 +189,33 @@ public class OrderServiceImpl implements OrderService{
@OperationAnno
(
channelNo
=
"#this[0].channelOrderNumber"
,
opt
=
OptEnumName
.
AUDIT
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0].channelOrderNumber"
,
opt
=
OptEnumName
.
AUDIT
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
@Override
public
Tuple
<
Boolean
,
String
>
approveOpt
(
ApproveVo
approveVo
)
{
public
Tuple
<
Boolean
,
String
>
approveOpt
(
ApproveVo
approveVo
)
{
log
.
info
(
"approveOpt,审批操作入参,approveVo={}"
,
JSONTools
.
serialize
(
approveVo
));
log
.
info
(
"approveOpt,审批操作入参,approveVo={}"
,
JSONTools
.
serialize
(
approveVo
));
if
(
StringUtils
.
isEmpty
(
approveVo
.
getAmount
()))
{
if
(
StringUtils
.
isEmpty
(
approveVo
.
getAmount
()))
{
// 如果UI 金额为空 默认4000
approveVo
.
setAmount
(
"4000"
);
approveVo
.
setAmount
(
"4000"
);
}
}
if
(
approveVo
.
getPeriod
()
==
null
)
{
if
(
approveVo
.
getPeriod
()
==
null
)
{
// 如果UI 期数为空 3期
approveVo
.
setPeriod
(
3
);
approveVo
.
setPeriod
(
3
);
}
}
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
approveVo
.
getChannelOrderNumber
());
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
approveVo
.
getChannelOrderNumber
());
if
(
orderMapping
==
null
)
{
if
(
orderMapping
==
null
)
{
log
.
info
(
"approveOpt,审批失败,无订单 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
log
.
info
(
"approveOpt,审批失败,无订单 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
new
Tuple
(
false
,
"审批失败,无订单"
);
return
new
Tuple
(
false
,
"审批失败,无订单"
);
}
}
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
if
(
xUser
==
null
)
{
if
(
xUser
==
null
)
{
log
.
info
(
"approveOpt,审批失败,未找到用户 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
log
.
info
(
"approveOpt,审批失败,未找到用户 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
new
Tuple
(
false
,
"审批失败,未找到用户"
);
return
new
Tuple
(
false
,
"审批失败,未找到用户"
);
}
}
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
orderMapping
.
getRegisteredFrom
());
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
orderMapping
.
getRegisteredFrom
());
if
(
channelConf
==
null
)
{
if
(
channelConf
==
null
)
{
log
.
info
(
"approveOpt,审批失败,boss渠道配置为空 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
log
.
info
(
"approveOpt,审批失败,boss渠道配置为空 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
new
Tuple
(
false
,
"审批失败,boss渠道配置为空"
);
return
new
Tuple
(
false
,
"审批失败,boss渠道配置为空"
);
}
}
// 额度有效期
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
new
Date
());
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
7
);
Integer
fundId
=
ChannelConfUtil
.
getFundIdByType
(
approveVo
.
getFundType
(),
channelConf
);
Integer
fundId
=
ChannelConfUtil
.
getFundIdByType
(
approveVo
.
getFundType
(),
channelConf
);
// 资方 及 期数额度规则
// 资方 及 期数额度规则
String
fundFormat
=
String
.
format
(
OrderUtil
.
financeProductsFormat
,
approveVo
.
getAmount
(),
approveVo
.
getAmount
(),
String
fundFormat
=
String
.
format
(
OrderUtil
.
financeProductsFormat
,
approveVo
.
getAmount
(),
approveVo
.
getAmount
(),
approveVo
.
getPeriod
(),
fundId
);
approveVo
.
getPeriod
(),
fundId
);
saveOrUpdateOrderApprove
(
approveVo
,
orderMapping
,
fundId
);
OrderApprove
orderApproveExsit
=
orderApproveRepository
.
findByChannelOrderNumber
(
approveVo
.
getChannelOrderNumber
());
if
(
orderApproveExsit
!=
null
)
{
orderApproveExsit
.
setFundId
(
fundId
);
orderApproveExsit
.
setFundType
(
approveVo
.
getFundType
());
orderApproveExsit
.
setUpdateTime
(
new
Date
());
orderApproveRepository
.
save
(
orderApproveExsit
);
}
else
{
OrderApprove
orderApprove
=
new
OrderApprove
();
orderApprove
.
setChannelOrderNumber
(
approveVo
.
getChannelOrderNumber
());
orderApprove
.
setCreditNumber
(
orderMapping
.
getApplyNo
());
orderApprove
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
orderApprove
.
setFundId
(
fundId
);
orderApprove
.
setFundType
(
approveVo
.
getFundType
());
orderApprove
.
setCreateTime
(
new
Date
());
orderApprove
.
setUpdateTime
(
new
Date
());
orderApproveRepository
.
save
(
orderApprove
);
}
ClfChannelConfiguration
clfChannelConfiguration
=
clfCenterService
.
findChannelConfigurationByChannelId
(
orderMapping
.
getRegisteredFrom
());
ClfChannelConfiguration
clfChannelConfiguration
=
clfCenterService
.
findChannelConfigurationByChannelId
(
orderMapping
.
getRegisteredFrom
());
if
(
clfChannelConfiguration
==
null
)
{
if
(
clfChannelConfiguration
==
null
)
{
return
new
Tuple
(
false
,
"审批失败,clfChannelConfiguration渠道配置为空"
);
return
new
Tuple
(
false
,
"审批失败,clfChannelConfiguration渠道配置为空"
);
...
@@ -255,20 +224,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -255,20 +224,7 @@ public class OrderServiceImpl implements OrderService{
if
(
quotaProduct
==
null
)
{
if
(
quotaProduct
==
null
)
{
return
new
Tuple
(
false
,
"审批失败,xyqb.quota_product配置为空("
.
concat
(
clfChannelConfiguration
.
getXyqbProductId
()).
concat
(
")"
));
return
new
Tuple
(
false
,
"审批失败,xyqb.quota_product配置为空("
.
concat
(
clfChannelConfiguration
.
getXyqbProductId
()).
concat
(
")"
));
}
}
Map
<
String
,
Object
>
data
=
getApproveObjectMap
(
approveVo
,
orderMapping
,
xUser
,
fundFormat
,
quotaProduct
);
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
16
);
data
.
put
(
"code"
,
0
);
data
.
put
(
"msg"
,
"success"
);
data
.
put
(
"bizChannel"
,
orderMapping
.
getRegisteredFrom
());
data
.
put
(
"uuid"
,
xUser
.
getUuid
());
data
.
put
(
"bizNo"
,
orderMapping
.
getApplyNo
());
data
.
put
(
"bizType"
,
quotaProduct
.
getProductType
());
data
.
put
(
"auditResult"
,
approveVo
.
getIsPass
());
data
.
put
(
"amount"
,
approveVo
.
getAmount
());
data
.
put
(
"deadLine"
,
calendar
.
getTime
().
getTime
());
data
.
put
(
"financeProducts"
,
fundFormat
);
// 发起审批
// 发起审批
log
.
info
(
"[approveOpt] 向clotho发起审批,data={}"
,
JSONTools
.
serialize
(
data
));
log
.
info
(
"[approveOpt] 向clotho发起审批,data={}"
,
JSONTools
.
serialize
(
data
));
String
approveStringResult
=
clothoCenterService
.
approve
(
data
);
String
approveStringResult
=
clothoCenterService
.
approve
(
data
);
...
@@ -278,12 +234,11 @@ public class OrderServiceImpl implements OrderService{
...
@@ -278,12 +234,11 @@ public class OrderServiceImpl implements OrderService{
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"[approveOpt]审批,资方校验异常,channelOrderNumber={},fundId={}, e={}"
,
orderMapping
.
getChannelOrderNo
(),
fundId
,
ExceptionUtils
.
getStackTrace
(
e
));
log
.
error
(
"[approveOpt]审批,资方校验异常,channelOrderNumber={},fundId={}, e={}"
,
orderMapping
.
getChannelOrderNo
(),
fundId
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 操作记录
// 操作记录
String
optLogDetail
=
approveVo
.
getIsPass
()
?
"审批通过:("
.
concat
(
fundId
+
""
).
concat
(
")"
)
:
"审批拒绝:"
;
String
optLogDetail
=
approveVo
.
getIsPass
()
?
"审批通过:("
.
concat
(
fundId
+
""
).
concat
(
")"
)
:
"审批拒绝:"
;
Boolean
optResult
;
Boolean
optResult
;
if
(
"success"
.
equals
(
approveStringResult
))
{
if
(
Constants
.
SUCCESS
.
equals
(
approveStringResult
))
{
optLogDetail
=
optLogDetail
.
concat
(
corpPolicyValidate
?
"审批操作成功"
:
"请检查资产配置,请联系管理员配置,审批操作成功"
);
optLogDetail
=
optLogDetail
.
concat
(
corpPolicyValidate
?
"审批操作成功"
:
"请检查资产配置,请联系管理员配置,审批操作成功"
);
optResult
=
true
;
optResult
=
true
;
log
.
info
(
"[approveOpt]审批申请成功,channelOrderNumber={}"
,
orderMapping
.
getChannelOrderNo
());
log
.
info
(
"[approveOpt]审批申请成功,channelOrderNumber={}"
,
orderMapping
.
getChannelOrderNo
());
...
@@ -300,7 +255,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -300,7 +255,7 @@ public class OrderServiceImpl implements OrderService{
* @param channelOrderNumber
* @param channelOrderNumber
* @return
* @return
*/
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
SECORD_AUDIT
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
SECORD_AUDIT
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
public
Tuple
<
Boolean
,
String
>
secondAudit
(
String
channelOrderNumber
)
{
public
Tuple
<
Boolean
,
String
>
secondAudit
(
String
channelOrderNumber
)
{
...
@@ -375,7 +330,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -375,7 +330,7 @@ public class OrderServiceImpl implements OrderService{
* @param lendingFormModel
* @param lendingFormModel
* @return
* @return
*/
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
@OperationAnno
(
channelNo
=
"#this[0].channelOrderNumber"
,
opt
=
OptEnumName
.
PAY
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0].channelOrderNumber"
,
opt
=
OptEnumName
.
PAY
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
public
Tuple
<
Boolean
,
String
>
lending
(
LendingFormModel
lendingFormModel
)
{
public
Tuple
<
Boolean
,
String
>
lending
(
LendingFormModel
lendingFormModel
)
{
...
@@ -416,8 +371,8 @@ public class OrderServiceImpl implements OrderService{
...
@@ -416,8 +371,8 @@ public class OrderServiceImpl implements OrderService{
}
}
log
.
info
(
"[order_lending][queryLendingRecordCount]查询待打款数量,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
log
.
info
(
"[order_lending][queryLendingRecordCount]查询待打款数量,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
if
(
data
!=
null
&&
data
.
size
()
>
0
)
{
if
(
data
!=
null
&&
data
.
size
()
>
0
)
{
if
(
Objects
.
nonNull
(
data
.
get
(
"totalAmount"
))
&&
Objects
.
nonNull
(
data
.
get
(
"totalCount"
)))
{
if
(
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))
&&
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_COUNT
)))
{
result
=
this
.
clothoCenterService
.
lending
(
orderApprove
.
getFundId
(),
new
BigDecimal
(
String
.
valueOf
(
data
.
get
(
"totalAmount"
))),
Integer
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"totalCount"
))));
result
=
this
.
clothoCenterService
.
lending
(
orderApprove
.
getFundId
(),
new
BigDecimal
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))),
Integer
.
valueOf
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_COUNT
))));
log
.
info
(
"[order_lending]直投打款,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
result
);
log
.
info
(
"[order_lending]直投打款,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
result
);
}
}
}
}
...
@@ -485,10 +440,10 @@ public class OrderServiceImpl implements OrderService{
...
@@ -485,10 +440,10 @@ public class OrderServiceImpl implements OrderService{
Long
id
=
cancelPreLoanRepository
.
cancelPreLoan
(
orderMapping
.
getApplyNo
());
Long
id
=
cancelPreLoanRepository
.
cancelPreLoan
(
orderMapping
.
getApplyNo
());
String
response
=
opCenter
.
getToken
(
auth
);
String
response
=
opCenter
.
getToken
(
auth
);
JSONObject
responseJ
=
JSONObject
.
parseObject
(
response
);
JSONObject
responseJ
=
JSONObject
.
parseObject
(
response
);
if
(
responseJ
!=
null
&&
responseJ
.
containsKey
(
"data"
)){
if
(
responseJ
!=
null
&&
responseJ
.
containsKey
(
Constants
.
DATA
)){
JSONObject
data
=
(
JSONObject
)
responseJ
.
get
(
"data"
);
JSONObject
data
=
(
JSONObject
)
responseJ
.
get
(
Constants
.
DATA
);
if
(
data
!=
null
&&
data
.
containsKey
(
"token"
)){
if
(
data
!=
null
&&
data
.
containsKey
(
Constants
.
TOKEN
)){
token
=
String
.
valueOf
(
data
.
get
(
"token"
));
token
=
String
.
valueOf
(
data
.
get
(
Constants
.
TOKEN
));
}
}
}
}
...
@@ -504,7 +459,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -504,7 +459,7 @@ public class OrderServiceImpl implements OrderService{
result
=
clothoCenterService
.
cancelPreLoan
(
data
,
token
);
result
=
clothoCenterService
.
cancelPreLoan
(
data
,
token
);
}
}
JSONObject
resp
=
JSONObject
.
parseObject
(
result
);
JSONObject
resp
=
JSONObject
.
parseObject
(
result
);
if
(
Objects
.
isNull
(
resp
)
||
Objects
.
isNull
(
resp
.
get
(
"success"
))
||
!
"true"
.
equals
(
String
.
valueOf
(
resp
.
get
(
"success"
)))){
if
(
Objects
.
isNull
(
resp
)
||
Objects
.
isNull
(
resp
.
get
(
Constants
.
SUCCESS
))
||
!
Constants
.
TRUE
.
equals
(
String
.
valueOf
(
resp
.
get
(
Constants
.
SUCCESS
)))){
cancel
=
false
;
cancel
=
false
;
}
}
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
...
@@ -582,7 +537,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -582,7 +537,7 @@ public class OrderServiceImpl implements OrderService{
callbackRecordVoModel
.
setChannelId
(
callbackRecord
.
getChannelId
());
callbackRecordVoModel
.
setChannelId
(
callbackRecord
.
getChannelId
());
callbackRecordVoModel
.
setCreatedAt
(
callbackRecord
.
getCreatedAt
());
callbackRecordVoModel
.
setCreatedAt
(
callbackRecord
.
getCreatedAt
());
callbackRecordVoModel
.
setUpdatedAt
(
callbackRecord
.
getUpdatedAt
());
callbackRecordVoModel
.
setUpdatedAt
(
callbackRecord
.
getUpdatedAt
());
callbackRecordVoModel
.
setTableName
(
"Success"
);
callbackRecordVoModel
.
setTableName
(
Constants
.
SUCCESS
);
callbackRecordVoModelList
.
add
(
callbackRecordVoModel
);
callbackRecordVoModelList
.
add
(
callbackRecordVoModel
);
}
}
}
}
...
@@ -672,7 +627,6 @@ public class OrderServiceImpl implements OrderService{
...
@@ -672,7 +627,6 @@ public class OrderServiceImpl implements OrderService{
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getCurrentStatusAndButtons
(
QueryXyqbOrderStatus
currentStatus
,
ClfOrderMapping
orderMapping
)
{
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getCurrentStatusAndButtons
(
QueryXyqbOrderStatus
currentStatus
,
ClfOrderMapping
orderMapping
)
{
Tuple
tuple
=
new
Tuple
();
Tuple
tuple
=
new
Tuple
();
List
<
OrderVo
.
OptButton
>
buttonList
=
new
ArrayList
<>();
List
<
OrderVo
.
OptButton
>
buttonList
=
new
ArrayList
<>();
if
(
currentStatus
!=
null
)
{
if
(
currentStatus
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
currentStatus
.
getStatus
()))
{
if
(
StringUtils
.
isNotEmpty
(
currentStatus
.
getStatus
()))
{
OrderVo
.
OptButton
buttonBeforeCancel
=
new
OrderVo
.
OptButton
();
OrderVo
.
OptButton
buttonBeforeCancel
=
new
OrderVo
.
OptButton
();
...
@@ -680,28 +634,9 @@ public class OrderServiceImpl implements OrderService{
...
@@ -680,28 +634,9 @@ public class OrderServiceImpl implements OrderService{
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
switch
(
currentStatus
.
getStatus
())
{
switch
(
currentStatus
.
getStatus
())
{
case
"CREDIT_SUCC"
:
case
"CREDIT_SUCC"
:
// 授信成功 需要 审批
return
getCreditSuccessTuple
(
tuple
,
buttonList
);
OrderVo
.
OptButton
buttonApprove
=
new
OrderVo
.
OptButton
();
buttonApprove
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove
);
tuple
.
setKey
(
"授信成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"APPROVE_ING"
:
case
"APPROVE_ING"
:
OptHistoryLog
optHistoryLog
=
optHistoryLogService
.
findByChannelOrderNumberAndOptNameAndSuccess
(
orderMapping
.
getChannelOrderNo
(),
OptEnumName
.
AUDIT
);
return
getApprovingTuple
(
orderMapping
,
tuple
,
buttonList
);
if
(
optHistoryLog
!=
null
)
{
tuple
.
setKey
(
"审批中"
);
tuple
.
setValue
(
buttonList
);
}
else
{
OrderVo
.
OptButton
buttonApprove2
=
new
OrderVo
.
OptButton
();
buttonApprove2
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove2
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove2
);
tuple
.
setKey
(
"授信成功,待审批"
);
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
case
"REJECT"
:
case
"REJECT"
:
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
...
@@ -712,41 +647,9 @@ public class OrderServiceImpl implements OrderService{
...
@@ -712,41 +647,9 @@ public class OrderServiceImpl implements OrderService{
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"WITHDRAW_APPROVING"
:
case
"WITHDRAW_APPROVING"
:
tuple
.
setKey
(
"提现成功,待二次风控审批"
);
return
getWithdrawApprovingTuple
(
tuple
,
buttonList
,
buttonBeforeCancel
);
// 更改放款时间,二次风控回调
OrderVo
.
OptButton
secondAudit2
=
new
OrderVo
.
OptButton
();
secondAudit2
.
setAction
(
OrderVo
.
OptButtonAction
.
second_audit
.
name
());
secondAudit2
.
setName
(
OrderVo
.
OptButtonAction
.
second_audit
.
getDesc
());
buttonList
.
add
(
secondAudit2
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"WITHDRAW"
:
case
"WITHDRAW"
:
LoanApplicationHistory
loanApplicationHistory
=
xyqbCenterService
.
findLoanApplicationHistoryById
(
orderMapping
.
getLoanId
());
return
getWithdrawTuple
(
orderMapping
,
tuple
,
buttonList
,
buttonBeforeCancel
);
if
(
loanApplicationHistory
!=
null
)
{
if
(
LoanProgress
.
WAITING_FUND
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
// 更改放款时间,二次风控回调
// 提现申请成功 需要放款
tuple
.
setKey
(
"二次风控审批中"
);
}
else
if
(
LoanProgress
.
FINAL_SENDED_TO_FUNDING_CORP
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
tuple
.
setKey
(
"待放款"
);
OrderVo
.
OptButton
buttonPaySucc
=
new
OrderVo
.
OptButton
();
buttonPaySucc
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_succ
.
name
());
buttonPaySucc
.
setName
(
OrderVo
.
OptButtonAction
.
pay_succ
.
getDesc
());
buttonList
.
add
(
buttonPaySucc
);
OrderApprove
orderApprove
=
orderApproveRepository
.
findByCreditNumber
(
orderMapping
.
getApplyNo
());
if
(
orderApprove
!=
null
&&
orderApprove
.
getFundType
()
==
0
)
{
// 非存管 才有放款失败按钮
OrderVo
.
OptButton
buttonPayFail
=
new
OrderVo
.
OptButton
();
buttonPayFail
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_fail
.
name
());
buttonPayFail
.
setName
(
OrderVo
.
OptButtonAction
.
pay_fail
.
getDesc
());
buttonList
.
add
(
buttonPayFail
);
}
buttonList
.
add
(
buttonBeforeCancel
);
}
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
case
"PAY_ING"
:
case
"PAY_ING"
:
tuple
.
setKey
(
"放款中(等待几分钟)"
);
tuple
.
setKey
(
"放款中(等待几分钟)"
);
buttonList
.
add
(
buttonBeforeCancel
);
buttonList
.
add
(
buttonBeforeCancel
);
...
@@ -789,7 +692,6 @@ public class OrderServiceImpl implements OrderService{
...
@@ -789,7 +692,6 @@ public class OrderServiceImpl implements OrderService{
return
tuple
;
return
tuple
;
}
}
}
}
}
else
{
}
else
{
tuple
.
setKey
(
"未知状态"
);
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
...
@@ -799,4 +701,116 @@ public class OrderServiceImpl implements OrderService{
...
@@ -799,4 +701,116 @@ public class OrderServiceImpl implements OrderService{
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
}
}
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getWithdrawTuple
(
ClfOrderMapping
orderMapping
,
Tuple
tuple
,
List
<
OrderVo
.
OptButton
>
buttonList
,
OrderVo
.
OptButton
buttonBeforeCancel
)
{
LoanApplicationHistory
loanApplicationHistory
=
xyqbCenterService
.
findLoanApplicationHistoryById
(
orderMapping
.
getLoanId
());
if
(
loanApplicationHistory
!=
null
)
{
if
(
LoanProgress
.
WAITING_FUND
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
// 更改放款时间,二次风控回调
// 提现申请成功 需要放款
tuple
.
setKey
(
"二次风控审批中"
);
}
else
if
(
LoanProgress
.
FINAL_SENDED_TO_FUNDING_CORP
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
tuple
.
setKey
(
"待放款"
);
OrderVo
.
OptButton
buttonPaySucc
=
new
OrderVo
.
OptButton
();
buttonPaySucc
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_succ
.
name
());
buttonPaySucc
.
setName
(
OrderVo
.
OptButtonAction
.
pay_succ
.
getDesc
());
buttonList
.
add
(
buttonPaySucc
);
OrderApprove
orderApprove
=
orderApproveRepository
.
findByCreditNumber
(
orderMapping
.
getApplyNo
());
if
(
orderApprove
!=
null
&&
orderApprove
.
getFundType
()
==
0
)
{
// 非存管 才有放款失败按钮
OrderVo
.
OptButton
buttonPayFail
=
new
OrderVo
.
OptButton
();
buttonPayFail
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_fail
.
name
());
buttonPayFail
.
setName
(
OrderVo
.
OptButtonAction
.
pay_fail
.
getDesc
());
buttonList
.
add
(
buttonPayFail
);
}
buttonList
.
add
(
buttonBeforeCancel
);
}
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
}
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getWithdrawApprovingTuple
(
Tuple
tuple
,
List
<
OrderVo
.
OptButton
>
buttonList
,
OrderVo
.
OptButton
buttonBeforeCancel
)
{
tuple
.
setKey
(
"提现成功,待二次风控审批"
);
// 更改放款时间,二次风控回调
OrderVo
.
OptButton
secondAudit2
=
new
OrderVo
.
OptButton
();
secondAudit2
.
setAction
(
OrderVo
.
OptButtonAction
.
second_audit
.
name
());
secondAudit2
.
setName
(
OrderVo
.
OptButtonAction
.
second_audit
.
getDesc
());
buttonList
.
add
(
secondAudit2
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getApprovingTuple
(
ClfOrderMapping
orderMapping
,
Tuple
tuple
,
List
<
OrderVo
.
OptButton
>
buttonList
)
{
OptHistoryLog
optHistoryLog
=
optHistoryLogService
.
findByChannelOrderNumberAndOptNameAndSuccess
(
orderMapping
.
getChannelOrderNo
(),
OptEnumName
.
AUDIT
);
if
(
optHistoryLog
!=
null
)
{
tuple
.
setKey
(
"审批中"
);
tuple
.
setValue
(
buttonList
);
}
else
{
OrderVo
.
OptButton
buttonApprove2
=
new
OrderVo
.
OptButton
();
buttonApprove2
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove2
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove2
);
tuple
.
setKey
(
"授信成功,待审批"
);
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
}
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getCreditSuccessTuple
(
Tuple
tuple
,
List
<
OrderVo
.
OptButton
>
buttonList
)
{
// 授信成功 需要 审批
OrderVo
.
OptButton
buttonApprove
=
new
OrderVo
.
OptButton
();
buttonApprove
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove
);
tuple
.
setKey
(
"授信成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
private
Calendar
getCalendar
()
{
// 额度有效期
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
new
Date
());
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
7
);
return
calendar
;
}
private
Map
<
String
,
Object
>
getApproveObjectMap
(
ApproveVo
approveVo
,
ClfOrderMapping
orderMapping
,
XUser
xUser
,
String
fundFormat
,
QuotaProduct
quotaProduct
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
16
);
data
.
put
(
"code"
,
0
);
data
.
put
(
"msg"
,
"success"
);
data
.
put
(
"bizChannel"
,
orderMapping
.
getRegisteredFrom
());
data
.
put
(
"uuid"
,
xUser
.
getUuid
());
data
.
put
(
"bizNo"
,
orderMapping
.
getApplyNo
());
data
.
put
(
"bizType"
,
quotaProduct
.
getProductType
());
data
.
put
(
"auditResult"
,
approveVo
.
getIsPass
());
data
.
put
(
"amount"
,
approveVo
.
getAmount
());
data
.
put
(
"deadLine"
,
getCalendar
().
getTime
().
getTime
());
data
.
put
(
"financeProducts"
,
fundFormat
);
return
data
;
}
private
void
saveOrUpdateOrderApprove
(
ApproveVo
approveVo
,
ClfOrderMapping
orderMapping
,
Integer
fundId
)
{
OrderApprove
orderApproveExsit
=
orderApproveRepository
.
findByChannelOrderNumber
(
approveVo
.
getChannelOrderNumber
());
if
(
orderApproveExsit
!=
null
)
{
orderApproveExsit
.
setFundId
(
fundId
);
orderApproveExsit
.
setFundType
(
approveVo
.
getFundType
());
orderApproveExsit
.
setUpdateTime
(
new
Date
());
orderApproveRepository
.
save
(
orderApproveExsit
);
}
else
{
OrderApprove
orderApprove
=
new
OrderApprove
();
orderApprove
.
setChannelOrderNumber
(
approveVo
.
getChannelOrderNumber
());
orderApprove
.
setCreditNumber
(
orderMapping
.
getApplyNo
());
orderApprove
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
orderApprove
.
setFundId
(
fundId
);
orderApprove
.
setFundType
(
approveVo
.
getFundType
());
orderApprove
.
setCreateTime
(
new
Date
());
orderApprove
.
setUpdateTime
(
new
Date
());
orderApproveRepository
.
save
(
orderApprove
);
}
}
}
}
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;
...
@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.api.user.model;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.role.entity.Role
;
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.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
...
@@ -20,10 +19,10 @@ public class UserDetailInfo {
...
@@ -20,10 +19,10 @@ public class UserDetailInfo {
@Data
@Data
static
class
RoleInfo
{
static
class
RoleInfo
{
List
<
r
oleView
>
roleInfos
;
List
<
R
oleView
>
roleInfos
;
@Data
@Data
static
class
r
oleView
{
static
class
R
oleView
{
private
Long
roleId
;
private
Long
roleId
;
private
String
roleName
;
private
String
roleName
;
}
}
...
@@ -40,9 +39,9 @@ public class UserDetailInfo {
...
@@ -40,9 +39,9 @@ public class UserDetailInfo {
if
(
null
!=
roles
&&
roles
.
size
()
>
0
)
{
if
(
null
!=
roles
&&
roles
.
size
()
>
0
)
{
RoleInfo
roleInfo
=
new
RoleInfo
();
RoleInfo
roleInfo
=
new
RoleInfo
();
List
<
RoleInfo
.
r
oleView
>
roleInfos
=
Lists
.
newArrayList
();
List
<
RoleInfo
.
R
oleView
>
roleInfos
=
Lists
.
newArrayList
();
roles
.
forEach
(
role
->
{
roles
.
forEach
(
role
->
{
RoleInfo
.
roleView
roleView
=
new
RoleInfo
.
r
oleView
();
RoleInfo
.
RoleView
roleView
=
new
RoleInfo
.
R
oleView
();
roleView
.
setRoleId
(
role
.
getId
());
roleView
.
setRoleId
(
role
.
getId
());
roleView
.
setRoleName
(
role
.
getName
());
roleView
.
setRoleName
(
role
.
getName
());
roleInfos
.
add
(
roleView
);
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;
...
@@ -23,6 +23,9 @@ import java.util.regex.Pattern;
*/
*/
public
class
IDValidator
{
public
class
IDValidator
{
private
static
final
int
int17
=
17
;
private
static
final
String
s19
=
"19"
;
/**
/**
* 校验码
* 校验码
*/
*/
...
@@ -96,11 +99,11 @@ public class IDValidator {
...
@@ -96,11 +99,11 @@ public class IDValidator {
return
false
;
return
false
;
}
}
if
(
Pattern
.
matches
(
"^[\\d]{15}$"
,
idNumber
))
{
if
(
Pattern
.
matches
(
getRegex
()
,
idNumber
))
{
return
this
.
validate15
(
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
);
return
this
.
validate18
(
idNumber
);
...
@@ -110,6 +113,14 @@ public class IDValidator {
...
@@ -110,6 +113,14 @@ public class IDValidator {
}
}
private
String
getRegex2
()
{
return
"^([\\d]{17}((?i)X))|([\\d]{18})$"
;
}
private
String
getRegex
()
{
return
"^[\\d]{15}$"
;
}
/**
/**
* 验证15位身份证号
* 验证15位身份证号
*
*
...
@@ -137,12 +148,12 @@ public class IDValidator {
...
@@ -137,12 +148,12 @@ public class IDValidator {
*/
*/
private
String
convert
(
String
idNumber
)
{
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
;
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
)));
int
ai
=
Integer
.
parseInt
(
String
.
valueOf
(
newIdNumber
.
charAt
(
i
)));
sum
=
sum
+
ai
*
weights
[
i
];
sum
=
sum
+
ai
*
weights
[
i
];
}
}
...
@@ -219,7 +230,7 @@ public class IDValidator {
...
@@ -219,7 +230,7 @@ public class IDValidator {
int
sum
=
0
;
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
];
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;
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
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.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
...
@@ -75,7 +76,7 @@ public class ChannelRoleCheckAspect {
...
@@ -75,7 +76,7 @@ public class ChannelRoleCheckAspect {
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
// 通过channelId 判断
// 通过channelId 判断
try
{
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
if
(
channelIdSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
if
(!
Application
.
getPrincipal
().
getChannelId
().
equals
(
expression
.
getValue
(
args
,
Long
.
class
)))
{
if
(!
Application
.
getPrincipal
().
getChannelId
().
equals
(
expression
.
getValue
(
args
,
Long
.
class
)))
{
...
@@ -92,7 +93,7 @@ public class ChannelRoleCheckAspect {
...
@@ -92,7 +93,7 @@ public class ChannelRoleCheckAspect {
}
else
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumberSPEL
)){
}
else
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumberSPEL
)){
// 通过channelOrderNumber 判断
// 通过channelOrderNumber 判断
String
channelOrderNumber
=
""
;
String
channelOrderNumber
=
""
;
if
(
channelOrderNumberSPEL
.
startsWith
(
"#this"
))
{
if
(
channelOrderNumberSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelOrderNumberSPEL
);
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelOrderNumberSPEL
);
channelOrderNumber
=
expression
.
getValue
(
args
,
String
.
class
);
channelOrderNumber
=
expression
.
getValue
(
args
,
String
.
class
);
}
else
{
}
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;
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.core.exception.ApplicationException
;
import
cn.quantgroup.cashloanflowboss.core.exception.ApplicationException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -59,7 +60,7 @@ public class ChannelRoleLoadAspect {
...
@@ -59,7 +60,7 @@ public class ChannelRoleLoadAspect {
if
(
principal
.
isChannel
())
{
if
(
principal
.
isChannel
())
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
try
{
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
if
(
channelIdSPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
expression
.
setValue
(
args
,
principal
.
getChannelId
());
expression
.
setValue
(
args
,
principal
.
getChannelId
());
}
else
{
}
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;
...
@@ -6,6 +6,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
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.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -52,23 +53,19 @@ public class OperationAspect {
...
@@ -52,23 +53,19 @@ public class OperationAspect {
*/
*/
@Around
(
"operationAnno()"
)
@Around
(
"operationAnno()"
)
private
Object
operationAnnoAndSave
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
private
Object
operationAnnoAndSave
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
try
{
try
{
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
Method
method
=
methodSignature
.
getMethod
();
Method
method
=
methodSignature
.
getMethod
();
OperationAnno
annotation
=
method
.
getAnnotation
(
OperationAnno
.
class
);
OperationAnno
annotation
=
method
.
getAnnotation
(
OperationAnno
.
class
);
Object
[]
args
=
pjp
.
getArgs
();
Object
[]
args
=
pjp
.
getArgs
();
OptEnumName
opt
=
annotation
.
opt
();
OptEnumName
opt
=
annotation
.
opt
();
String
succSPEL
=
annotation
.
succSPEL
();
String
succSPEL
=
annotation
.
succSPEL
();
String
optDetailSPEL
=
annotation
.
optDetailSPEL
();
String
optDetailSPEL
=
annotation
.
optDetailSPEL
();
String
channelOrderNumber
=
""
;
String
channelOrderNumber
=
""
;
if
(
StringUtils
.
isNotBlank
(
annotation
.
channelNo
()))
{
if
(
StringUtils
.
isNotBlank
(
annotation
.
channelNo
()))
{
String
keySPEL
=
annotation
.
channelNo
();
String
keySPEL
=
annotation
.
channelNo
();
try
{
try
{
if
(
keySPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
if
(
keySPEL
.
startsWith
(
Constants
.
START_THIS
))
{
//判断是否是spel表达式
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
keySPEL
);
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
keySPEL
);
String
value
=
expression
.
getValue
(
args
,
String
.
class
);
String
value
=
expression
.
getValue
(
args
,
String
.
class
);
channelOrderNumber
=
value
;
channelOrderNumber
=
value
;
...
@@ -85,14 +82,7 @@ public class OperationAspect {
...
@@ -85,14 +82,7 @@ public class OperationAspect {
ClfOrderMapping
orderMapping
=
clfCenterService
.
findOrderMappingByChannelOrderNo
(
channelOrderNumber
);
ClfOrderMapping
orderMapping
=
clfCenterService
.
findOrderMappingByChannelOrderNo
(
channelOrderNumber
);
if
(
orderMapping
!=
null
)
{
if
(
orderMapping
!=
null
)
{
// do some
// do some
optHistoryLog
.
setChannelOrderNumber
(
channelOrderNumber
);
getOptHistoryLogBean
(
opt
,
channelOrderNumber
,
optHistoryLog
,
orderMapping
);
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
());
}
else
{
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}"
,
channelOrderNumber
);
log
.
warn
(
"[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}"
,
channelOrderNumber
);
return
pjp
.
proceed
();
return
pjp
.
proceed
();
...
@@ -101,36 +91,8 @@ public class OperationAspect {
...
@@ -101,36 +91,8 @@ public class OperationAspect {
log
.
warn
(
"[operationAnnoAnnSave]channelOrderNumber is empty, channelOrderNumber={}"
,
channelOrderNumber
);
log
.
warn
(
"[operationAnnoAnnSave]channelOrderNumber is empty, channelOrderNumber={}"
,
channelOrderNumber
);
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
Expression
expressionsuccSPEL
=
getIsSuccExpressionSPEL
(
succSPEL
);
// 是否成功SPEL 表达式解析
Expression
expressionMsgSPEL
=
getMegExpression
(
optDetailSPEL
);
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
;
}
}
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumber
))
{
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumber
))
{
// 判断是否 已经请求成功过
// 判断是否 已经请求成功过
OptHistoryLog
optHistoryLogSuccess
=
optHistoryLogService
.
findByChannelOrderNumberAndOptNameAndSuccess
(
channelOrderNumber
,
opt
);
OptHistoryLog
optHistoryLogSuccess
=
optHistoryLogService
.
findByChannelOrderNumberAndOptNameAndSuccess
(
channelOrderNumber
,
opt
);
...
@@ -148,23 +110,17 @@ public class OperationAspect {
...
@@ -148,23 +110,17 @@ public class OperationAspect {
log
.
info
(
"[operationAnnoAnnSave]该操作已经操作成功,无须重复操作,切面返回"
);
log
.
info
(
"[operationAnnoAnnSave]该操作已经操作成功,无须重复操作,切面返回"
);
return
ret
;
return
ret
;
}
}
}
}
}
}
// 代理执行方法
Object
proceed
=
pjp
.
proceed
();
Object
proceed
=
pjp
.
proceed
();
// 获取方法返回 是否成功
// 获取方法返回 是否成功
if
(
expressionsuccSPEL
!=
null
)
{
if
(
expressionsuccSPEL
!=
null
)
{
optHistoryLog
.
setOptResult
(
expressionsuccSPEL
.
getValue
(
proceed
,
Boolean
.
class
));
optHistoryLog
.
setOptResult
(
expressionsuccSPEL
.
getValue
(
proceed
,
Boolean
.
class
));
}
}
// 获取方法详细信息
// 获取方法详细信息
if
(
expressionMsgSPEL
!=
null
)
{
if
(
expressionMsgSPEL
!=
null
)
{
optHistoryLog
.
setOptLogDetail
(
expressionMsgSPEL
.
getValue
(
proceed
,
String
.
class
));
optHistoryLog
.
setOptLogDetail
(
expressionMsgSPEL
.
getValue
(
proceed
,
String
.
class
));
}
}
optHistoryLogService
.
save
(
optHistoryLog
);
optHistoryLogService
.
save
(
optHistoryLog
);
return
proceed
;
return
proceed
;
}
catch
(
Throwable
throwable
)
{
}
catch
(
Throwable
throwable
)
{
...
@@ -172,4 +128,50 @@ public class OperationAspect {
...
@@ -172,4 +128,50 @@ public class OperationAspect {
return
pjp
.
proceed
();
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;
...
@@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
@Repository
@Repository
public
interface
UserDetailRepository
extends
JpaRepository
<
UserDetail
,
Long
>{
public
interface
UserDetailRepository
extends
JpaRepository
<
UserDetail
,
Long
>{
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"delete from user_detail where user_id = ?1"
,
nativeQuery
=
true
)
@Query
(
value
=
"delete from user_detail where user_id = ?1"
,
nativeQuery
=
true
)
int
deleteByUserId
(
Long
userId
);
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;
...
@@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
@Repository
@Repository
public
interface
UserExtInfoRepository
extends
JpaRepository
<
UserExtInfo
,
Long
>{
public
interface
UserExtInfoRepository
extends
JpaRepository
<
UserExtInfo
,
Long
>{
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"delete from user_ext_info where user_id = ?1"
,
nativeQuery
=
true
)
@Query
(
value
=
"delete from user_ext_info where user_id = ?1"
,
nativeQuery
=
true
)
void
deleteByUserId
(
Long
userId
);
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 {
...
@@ -30,7 +30,7 @@ public interface XYQBCenterService {
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
);
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
);
@Transactional
@Transactional
(
rollbackOn
=
Exception
.
class
)
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
);
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
);
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
);
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
;
use
cash_loan_flow_boss
;
CREATE
TABLE
IF
NOT
EXISTS
`channel_conf`
(
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