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
a7a3715a
Commit
a7a3715a
authored
Sep 25, 2019
by
王俊权
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/v1' into v1
parents
74fd0a67
2120c03f
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
266 additions
and
52 deletions
+266
-52
ChannelConfController.java
...lowboss/api/channel/controller/ChannelConfController.java
+9
-7
ChannelConfService.java
...hloanflowboss/api/channel/service/ChannelConfService.java
+1
-1
ChannelConfServiceImpl.java
...nflowboss/api/channel/service/ChannelConfServiceImpl.java
+2
-2
OperateController.java
...loanflowboss/api/optlog/controller/OperateController.java
+2
-0
OrderController.java
...ashloanflowboss/api/order/controller/OrderController.java
+15
-18
ChannelIdInit.java
...anflowboss/core/annotation/channelrole/ChannelIdInit.java
+3
-0
CheckChannelRole.java
...lowboss/core/annotation/channelrole/CheckChannelRole.java
+2
-2
CheckChannelRoleByChannelOrderNumber.java
...ion/channelrole/CheckChannelRoleByChannelOrderNumber.java
+0
-18
ChannelRoleCheckAspect.java
.../cashloanflowboss/core/aspect/ChannelRoleCheckAspect.java
+134
-0
ChannelRoleLoadAspect.java
...p/cashloanflowboss/core/aspect/ChannelRoleLoadAspect.java
+91
-0
OperationAspect.java
...ntgroup/cashloanflowboss/core/aspect/OperationAspect.java
+1
-1
CLFCenterService.java
...up/cashloanflowboss/spi/clf/service/CLFCenterService.java
+1
-1
CLFCenterServiceImpl.java
...ashloanflowboss/spi/clf/service/CLFCenterServiceImpl.java
+5
-2
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/controller/ChannelConfController.java
View file @
a7a3715a
...
@@ -37,24 +37,24 @@ public class ChannelConfController {
...
@@ -37,24 +37,24 @@ public class ChannelConfController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Channel.getChannelList"
)
@Security
(
authorityId
=
"Channel.getChannelList"
)
@ChannelIdInit
@ChannelIdInit
(
channelIdSPEL
=
"#this[0]"
)
@PostMapping
(
"/info"
)
@PostMapping
(
"/info"
)
public
Result
channelList
(
Long
channelId
,
Integer
pageNumber
,
Integer
pageSize
)
{
public
Result
channelList
(
Long
channelId
,
String
channelName
,
Integer
pageNumber
,
Integer
pageSize
)
{
if
(
pageNumber
==
null
||
pageSize
==
null
)
{
if
(
pageNumber
==
null
||
pageSize
==
null
)
{
return
Result
.
buildFial
(
"page信息不对"
);
return
Result
.
buildFial
(
"page信息不对"
);
}
}
return
Result
.
buildSuccess
(
channelConfService
.
getChannelInfo
(
pageNumber
,
pageSize
,
channelId
));
return
Result
.
buildSuccess
(
channelConfService
.
getChannelInfo
(
pageNumber
,
pageSize
,
channelId
,
channelName
));
}
}
/**
/**
* 查询单个渠道配置
* 查询单个渠道配置
*
去过
是渠道用户,只能查自己,查询条件置灰
*
如果
是渠道用户,只能查自己,查询条件置灰
* @param channelId
* @param channelId
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Channel.getChannelConfInfo"
)
@Security
(
authorityId
=
"Channel.getChannelConfInfo"
)
@ChannelIdInit
@ChannelIdInit
(
channelIdSPEL
=
"#this[0]"
)
@CheckChannelRole
@CheckChannelRole
(
channelIdSPEL
=
"#this[0]"
)
@GetMapping
(
"/cfg/info"
)
@GetMapping
(
"/cfg/info"
)
public
Result
getChannelConfInfo
(
Long
channelId
)
{
public
Result
getChannelConfInfo
(
Long
channelId
)
{
return
Result
.
buildSuccess
(
channelConfService
.
getChannelConf
(
channelId
),
"success"
);
return
Result
.
buildSuccess
(
channelConfService
.
getChannelConf
(
channelId
),
"success"
);
...
@@ -67,11 +67,13 @@ public class ChannelConfController {
...
@@ -67,11 +67,13 @@ public class ChannelConfController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Channel.editChannelConfInfo"
)
@Security
(
authorityId
=
"Channel.editChannelConfInfo"
)
@CheckChannelRole
(
isObjParam
=
true
,
paramClazz
=
ChannelConfVo
.
class
)
@CheckChannelRole
(
channelIdSPEL
=
"#this[0].basicInfo.channelId"
)
@PostMapping
(
"/cfg/info"
)
@PostMapping
(
"/cfg/info"
)
public
Result
editChannelConfInfo
(
@RequestBody
@Valid
ChannelConfVo
channelConfVo
)
{
public
Result
editChannelConfInfo
(
@RequestBody
@Valid
ChannelConfVo
channelConfVo
)
{
Boolean
aBoolean
=
channelConfService
.
editChannelConfInfo
(
channelConfVo
);
Boolean
aBoolean
=
channelConfService
.
editChannelConfInfo
(
channelConfVo
);
// TODO 检查渠道
if
(
aBoolean
)
{
if
(
aBoolean
)
{
// 属性ka缓存
// 属性ka缓存
clfCenterService
.
reloadKAConfiguration
();
clfCenterService
.
reloadKAConfiguration
();
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/service/ChannelConfService.java
View file @
a7a3715a
...
@@ -12,7 +12,7 @@ import org.springframework.data.domain.Page;
...
@@ -12,7 +12,7 @@ import org.springframework.data.domain.Page;
*/
*/
public
interface
ChannelConfService
{
public
interface
ChannelConfService
{
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
);
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
,
String
channelName
);
ChannelConfVo
getChannelConf
(
Long
channelId
);
ChannelConfVo
getChannelConf
(
Long
channelId
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/service/ChannelConfServiceImpl.java
View file @
a7a3715a
...
@@ -39,9 +39,9 @@ public class ChannelConfServiceImpl implements ChannelConfService{
...
@@ -39,9 +39,9 @@ public class ChannelConfServiceImpl implements ChannelConfService{
@Override
@Override
public
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
)
{
public
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
,
String
channelName
)
{
Page
<
ClfChannelConfiguration
>
page
=
clfCenterService
.
findChannelConfigurationByCriteriaQueryPage
(
pageNumber
,
pageSize
,
channelId
);
Page
<
ClfChannelConfiguration
>
page
=
clfCenterService
.
findChannelConfigurationByCriteriaQueryPage
(
pageNumber
,
pageSize
,
channelId
,
channelName
);
Page
<
ChannelListModel
>
channelListModelPage
=
page
.
map
(
it
->
{
Page
<
ChannelListModel
>
channelListModelPage
=
page
.
map
(
it
->
{
ChannelListModel
channelListModel
=
new
ChannelListModel
();
ChannelListModel
channelListModel
=
new
ChannelListModel
();
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/optlog/controller/OperateController.java
View file @
a7a3715a
...
@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.optlog.controller;
...
@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.optlog.controller;
import
cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog
;
import
cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogService
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogService
;
import
cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel
;
import
cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -24,6 +25,7 @@ public class OperateController {
...
@@ -24,6 +25,7 @@ public class OperateController {
private
OptHistoryLogService
optHistoryLogService
;
private
OptHistoryLogService
optHistoryLogService
;
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0].channelOrderNumber"
)
@GetMapping
(
"/history/log/all"
)
@GetMapping
(
"/history/log/all"
)
public
Result
findAllOptHistoryLog
(
OrderBaseModel
orderBaseModel
)
{
public
Result
findAllOptHistoryLog
(
OrderBaseModel
orderBaseModel
)
{
final
List
<
OptHistoryLog
>
allOptHistoryLog
=
optHistoryLogService
.
getAllOptHistoryLog
(
orderBaseModel
);
final
List
<
OptHistoryLog
>
allOptHistoryLog
=
optHistoryLogService
.
getAllOptHistoryLog
(
orderBaseModel
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/controller/OrderController.java
View file @
a7a3715a
...
@@ -6,10 +6,8 @@ import cn.quantgroup.cashloanflowboss.component.security.annotiation.Security;
...
@@ -6,10 +6,8 @@ import cn.quantgroup.cashloanflowboss.component.security.annotiation.Security;
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.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRoleByChannelOrderNumber
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.tuple.ThreeTuple
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -32,8 +30,10 @@ public class OrderController {
...
@@ -32,8 +30,10 @@ public class OrderController {
/**
/**
*
* 订单查询列表接口
* 订单查询列表接口
*
*
* 渠道用户只能查自己渠道订单 如果是别的渠道订单 不能查询(如果channelId 赋值 channelOrderNumber 是别的渠道订单 应该查询不到数据,所以不需要CheckChannelRole)
* @param channelId
* @param channelId
* @param channelOrderNumber
* @param channelOrderNumber
* @param pageNumber
* @param pageNumber
...
@@ -41,8 +41,7 @@ public class OrderController {
...
@@ -41,8 +41,7 @@ public class OrderController {
* @return 返回中包含当前订单可操作的 button
* @return 返回中包含当前订单可操作的 button
*/
*/
@Security
(
authorityId
=
"Order.getOrderList"
)
@Security
(
authorityId
=
"Order.getOrderList"
)
@ChannelIdInit
@ChannelIdInit
(
channelIdSPEL
=
"#this[0]"
)
@CheckChannelRole
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
Result
orderList
(
Long
channelId
,
String
channelOrderNumber
,
String
applyNo
,
Long
loanId
,
Integer
pageNumber
,
Integer
pageSize
)
{
public
Result
orderList
(
Long
channelId
,
String
channelOrderNumber
,
String
applyNo
,
Long
loanId
,
Integer
pageNumber
,
Integer
pageSize
)
{
if
(
pageNumber
==
null
||
pageSize
==
null
)
{
if
(
pageNumber
==
null
||
pageSize
==
null
)
{
...
@@ -55,22 +54,19 @@ public class OrderController {
...
@@ -55,22 +54,19 @@ public class OrderController {
/**
/**
* 审批接口
* 审批接口
*
*
* 渠道只能审批自己渠道的订单
* @param approveVo
* @param approveVo
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.approveOpt"
)
@Security
(
authorityId
=
"Order.approveOpt"
)
@Ch
annelIdInit
@Ch
eckChannelRole
(
channelOrderNumberSPEL
=
"#this[0].channelOrderNumber"
)
@PostMapping
(
"/approve"
)
@PostMapping
(
"/approve"
)
public
Result
approveOpt
(
@RequestBody
@Valid
ApproveVo
approveVo
)
{
public
Result
approveOpt
(
@RequestBody
@Valid
ApproveVo
approveVo
)
{
if
(
Application
.
isDebug
())
{
if
(
Application
.
isDebug
())
{
Tuple
<
Boolean
,
String
>
approveOptBooleanAndFundSettingBooleanTuple
=
orderService
.
approveOpt
(
approveVo
);
Tuple
<
Boolean
,
String
>
approveOptBooleanAndFundSettingBooleanTuple
=
orderService
.
approveOpt
(
approveVo
);
Boolean
approveResult
=
approveOptBooleanAndFundSettingBooleanTuple
.
getKey
();
Boolean
approveResult
=
approveOptBooleanAndFundSettingBooleanTuple
.
getKey
();
if
(
approveResult
)
{
return
Result
.
buildSuccess
(
approveResult
,
approveOptBooleanAndFundSettingBooleanTuple
.
getValue
());
return
Result
.
buildSuccess
(
approveResult
,
approveOptBooleanAndFundSettingBooleanTuple
.
getValue
());
}
else
{
return
Result
.
buildSuccess
(
false
,
"审批操作失败"
);
}
}
else
{
}
else
{
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
}
}
...
@@ -82,11 +78,12 @@ public class OrderController {
...
@@ -82,11 +78,12 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.lending"
)
@Security
(
authorityId
=
"Order.lending"
)
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0].channelOrderNumber"
)
@PostMapping
(
"/lending"
)
@PostMapping
(
"/lending"
)
public
Result
<
Boolean
>
lending
(
@RequestBody
@Valid
LendingFormModel
lendingFormModel
)
{
public
Result
<
Boolean
>
lending
(
@RequestBody
@Valid
LendingFormModel
lendingFormModel
)
{
if
(
Application
.
isDebug
())
{
if
(
Application
.
isDebug
())
{
Tuple
<
Boolean
,
String
>
lending
Result
=
this
.
orderService
.
lending
(
lendingFormModel
);
Tuple
<
Boolean
,
String
>
lending
=
this
.
orderService
.
lending
(
lendingFormModel
);
return
Result
.
buildSuccess
(
lending
Result
.
getKey
(),
lendingResult
.
getKey
()
?
"放款操作成功"
:
"放款操作失败"
);
return
Result
.
buildSuccess
(
lending
.
getKey
(),
lending
.
getValue
()
);
}
else
{
}
else
{
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
}
}
...
@@ -98,6 +95,7 @@ public class OrderController {
...
@@ -98,6 +95,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.secondAudit"
)
@Security
(
authorityId
=
"Order.secondAudit"
)
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@GetMapping
(
"/secondAudit"
)
@GetMapping
(
"/secondAudit"
)
public
Result
<
Boolean
>
secondAudit
(
String
channelOrderNumber
)
{
public
Result
<
Boolean
>
secondAudit
(
String
channelOrderNumber
)
{
if
(
Application
.
isDebug
())
{
if
(
Application
.
isDebug
())
{
...
@@ -134,6 +132,7 @@ public class OrderController {
...
@@ -134,6 +132,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.cancelPreLoan"
)
@Security
(
authorityId
=
"Order.cancelPreLoan"
)
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@PostMapping
(
"/cancel/loan"
)
@PostMapping
(
"/cancel/loan"
)
public
Result
<
Boolean
>
cancelPreLoan
(
@RequestParam
@Valid
String
channelOrderNumber
)
{
public
Result
<
Boolean
>
cancelPreLoan
(
@RequestParam
@Valid
String
channelOrderNumber
)
{
if
(
Application
.
isDebug
())
{
if
(
Application
.
isDebug
())
{
...
@@ -150,6 +149,7 @@ public class OrderController {
...
@@ -150,6 +149,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.cancelAfterLoan"
)
@Security
(
authorityId
=
"Order.cancelAfterLoan"
)
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@PostMapping
(
"/cancel/after/loan"
)
@PostMapping
(
"/cancel/after/loan"
)
public
Result
<
Boolean
>
cancelAfterLoan
(
@RequestParam
@Valid
String
channelOrderNumber
)
{
public
Result
<
Boolean
>
cancelAfterLoan
(
@RequestParam
@Valid
String
channelOrderNumber
)
{
if
(
Application
.
isDebug
())
{
if
(
Application
.
isDebug
())
{
...
@@ -167,8 +167,7 @@ public class OrderController {
...
@@ -167,8 +167,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.getOrderHistoryStatus"
)
@Security
(
authorityId
=
"Order.getOrderHistoryStatus"
)
@ChannelIdInit
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@CheckChannelRoleByChannelOrderNumber
@GetMapping
(
"/history/status"
)
@GetMapping
(
"/history/status"
)
public
Result
getOrderHistoryStatus
(
String
channelOrderNumber
)
{
public
Result
getOrderHistoryStatus
(
String
channelOrderNumber
)
{
return
Result
.
buildSuccess
(
orderService
.
getOrderHistoryStatus
(
channelOrderNumber
));
return
Result
.
buildSuccess
(
orderService
.
getOrderHistoryStatus
(
channelOrderNumber
));
...
@@ -181,8 +180,7 @@ public class OrderController {
...
@@ -181,8 +180,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.orderCallbackRecordList"
)
@Security
(
authorityId
=
"Order.orderCallbackRecordList"
)
@ChannelIdInit
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@CheckChannelRoleByChannelOrderNumber
@GetMapping
(
"/orderCallbackRecordList"
)
@GetMapping
(
"/orderCallbackRecordList"
)
public
Result
orderCallbackRecordList
(
String
channelOrderNumber
)
{
public
Result
orderCallbackRecordList
(
String
channelOrderNumber
)
{
return
Result
.
buildSuccess
(
orderService
.
getOrderCallbackRecordList
(
channelOrderNumber
));
return
Result
.
buildSuccess
(
orderService
.
getOrderCallbackRecordList
(
channelOrderNumber
));
...
@@ -196,8 +194,7 @@ public class OrderController {
...
@@ -196,8 +194,7 @@ public class OrderController {
* @return
* @return
*/
*/
@Security
(
authorityId
=
"Order.repaymentPlan"
)
@Security
(
authorityId
=
"Order.repaymentPlan"
)
@ChannelIdInit
@CheckChannelRole
(
channelOrderNumberSPEL
=
"#this[0]"
)
@CheckChannelRoleByChannelOrderNumber
@GetMapping
(
"/repaymentPlan"
)
@GetMapping
(
"/repaymentPlan"
)
public
Result
repaymentPlan
(
String
channelOrderNumber
,
Long
loanId
)
{
public
Result
repaymentPlan
(
String
channelOrderNumber
,
Long
loanId
)
{
return
Result
.
buildSuccess
(
orderService
.
findRepaymentPlan
(
channelOrderNumber
,
loanId
));
return
Result
.
buildSuccess
(
orderService
.
findRepaymentPlan
(
channelOrderNumber
,
loanId
));
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/annotation/channelrole/ChannelIdInit.java
View file @
a7a3715a
...
@@ -15,4 +15,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
...
@@ -15,4 +15,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Target
({
METHOD
})
@Target
({
METHOD
})
@Retention
(
RUNTIME
)
@Retention
(
RUNTIME
)
public
@interface
ChannelIdInit
{
public
@interface
ChannelIdInit
{
String
channelIdSPEL
()
default
""
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/core/annotation/channelrole/CheckChannelRole.java
View file @
a7a3715a
...
@@ -15,6 +15,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
...
@@ -15,6 +15,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Target
({
METHOD
})
@Target
({
METHOD
})
@Retention
(
RUNTIME
)
@Retention
(
RUNTIME
)
public
@interface
CheckChannelRole
{
public
@interface
CheckChannelRole
{
boolean
isObjParam
()
default
false
;
String
channelIdSPEL
()
default
""
;
Class
paramClazz
()
default
Object
.
class
;
String
channelOrderNumberSPEL
()
default
""
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/core/annotation/channelrole/CheckChannelRoleByChannelOrderNumber.java
deleted
100644 → 0
View file @
74fd0a67
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
annotation
.
channelrole
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Target
;
import
static
java
.
lang
.
annotation
.
ElementType
.
METHOD
;
import
static
java
.
lang
.
annotation
.
RetentionPolicy
.
RUNTIME
;
/**
* function:
* date: 2019/8/6
*
* @author: suntao
*/
@Target
({
METHOD
})
@Retention
(
RUNTIME
)
public
@interface
CheckChannelRoleByChannelOrderNumber
{
}
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/
RoleLoad
Aspect.java
→
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/
ChannelRoleCheck
Aspect.java
View file @
a7a3715a
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
aspect
;
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
aspect
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
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.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRoleByChannelOrderNumber
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
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
;
...
@@ -18,11 +14,12 @@ import org.aspectj.lang.ProceedingJoinPoint;
...
@@ -18,11 +14,12 @@ import org.aspectj.lang.ProceedingJoinPoint;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.CodeSignature
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.expression.Expression
;
import
org.springframework.expression.ExpressionException
;
import
org.springframework.expression.spel.standard.SpelExpressionParser
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
...
@@ -36,24 +33,24 @@ import java.lang.reflect.Method;
...
@@ -36,24 +33,24 @@ import java.lang.reflect.Method;
@Slf4j
@Slf4j
@Component
@Component
@Aspect
@Aspect
@Order
(
Ordered
.
LOWEST_PRECEDENCE
)
@Order
(
2
)
public
class
RoleLoad
Aspect
{
public
class
ChannelRoleCheck
Aspect
{
@Pointcut
(
"execution(* cn.quantgroup.cashloanflowboss.api.channel.controller.*.*(..))"
)
private
void
channelController
()
{}
@Pointcut
(
"
execution(* cn.quantgroup.cashloanflowboss.api.order.controller.*.*(..)
)"
)
@Pointcut
(
"
@annotation(cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole
)"
)
private
void
orderController
()
{}
private
void
checkRole
()
{}
@Pointcut
(
"channelController() || orderController() "
)
private
void
doSomeRole
()
{}
@Autowired
@Autowired
private
ClfOrderMappingRepository
clfOrderMappingRepository
;
private
ClfOrderMappingRepository
clfOrderMappingRepository
;
@Around
(
value
=
"doSomeRole()"
)
/**
public
Object
around
(
ProceedingJoinPoint
pjp
)
{
* 通过 channelId 或者 channelOrderNumber 判断 如果是渠道用户登陆 是否当前渠道
* @param pjp
*/
@Around
(
value
=
"checkRole()"
)
public
Object
checkRoleBefore
(
ProceedingJoinPoint
pjp
)
{
Object
[]
args
=
pjp
.
getArgs
();
Object
[]
args
=
pjp
.
getArgs
();
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
Method
method
=
methodSignature
.
getMethod
();
Method
method
=
methodSignature
.
getMethod
();
...
@@ -61,7 +58,6 @@ public class RoleLoadAspect {
...
@@ -61,7 +58,6 @@ public class RoleLoadAspect {
Principal
principal
=
Application
.
getPrincipal
();
Principal
principal
=
Application
.
getPrincipal
();
if
(
principal
==
null
)
{
if
(
principal
==
null
)
{
try
{
try
{
// 没有登录 登录检查控制
return
pjp
.
proceed
(
args
);
return
pjp
.
proceed
(
args
);
}
catch
(
Throwable
throwable
)
{
}
catch
(
Throwable
throwable
)
{
log
.
error
(
"请求失败,e={}"
,
ExceptionUtils
.
getStackTrace
(
throwable
));
log
.
error
(
"请求失败,e={}"
,
ExceptionUtils
.
getStackTrace
(
throwable
));
...
@@ -69,72 +65,47 @@ public class RoleLoadAspect {
...
@@ -69,72 +65,47 @@ public class RoleLoadAspect {
}
}
}
}
// 如果是渠道用户登陆 默认加载channelId
ChannelIdInit
annotation
=
method
.
getAnnotation
(
ChannelIdInit
.
class
);
if
(
annotation
!=
null
&&
principal
.
isChannel
())
{
String
[]
paramNames
=
((
CodeSignature
)
pjp
.
getSignature
()).
getParameterNames
();
for
(
int
i
=
0
;
i
<
paramNames
.
length
;
i
++)
{
if
(
ChannelConfUtil
.
channelIdParamName
.
equals
(
paramNames
[
i
]))
{
args
[
i
]
=
principal
.
getChannelId
();
}
}
}
// 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求
// 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求
CheckChannelRole
checkChannelRole
=
method
.
getAnnotation
(
CheckChannelRole
.
class
);
CheckChannelRole
checkChannelRoleAnno
=
method
.
getAnnotation
(
CheckChannelRole
.
class
);
if
(
checkChannelRole
!=
null
&&
principal
.
isChannel
())
{
Long
requestChannelId
=
-
1L
;
if
(
checkChannelRoleAnno
!=
null
)
{
if
(!
checkChannelRole
.
isObjParam
())
{
String
channelIdSPEL
=
checkChannelRoleAnno
.
channelIdSPEL
();
String
[]
paramNames
=
((
CodeSignature
)
pjp
.
getSignature
()).
getParameterNames
();
String
channelOrderNumberSPEL
=
checkChannelRoleAnno
.
channelOrderNumberSPEL
();
for
(
int
i
=
0
;
i
<
paramNames
.
length
;
i
++)
{
// 是简单类型,多个参数 直接参数channelId
if
(
StringUtils
.
isAllEmpty
(
channelIdSPEL
,
channelOrderNumberSPEL
))
{
if
(
ChannelConfUtil
.
channelIdParamName
.
equals
(
paramNames
[
i
]))
{
log
.
error
(
"[CheckChannelRole]channelIdSPEL, channelOrderNumberSPEL 不能都为空"
);
// 找到channelId是第几个参数 i
Object
requestChannelIdObj
=
args
[
i
];
if
(
requestChannelIdObj
==
null
)
{
log
.
info
(
"[CheckChannelRole]无channelId数据"
);
return
Result
.
buildFial
(
ApplicationStatus
.
ARGUMENT_VALID_EXCEPTION
);
return
Result
.
buildFial
(
ApplicationStatus
.
ARGUMENT_VALID_EXCEPTION
);
}
}
requestChannelId
=
Long
.
valueOf
(
String
.
valueOf
(
requestChannelIdObj
));
if
(!
principal
.
isSameChannel
(
requestChannelId
))
{
if
(
principal
.
isChannel
())
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
// 通过channelId 判断
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
if
(!
Application
.
getPrincipal
().
getChannelId
().
equals
(
expression
.
getValue
(
args
,
Long
.
class
)))
{
log
.
info
(
"[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个"
);
log
.
info
(
"[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个"
);
return
Result
.
buildFial
(
ApplicationStatus
.
INVALID_AUTHORITY
);
return
Result
.
buildFial
(
ApplicationStatus
.
INVALID_AUTHORITY
);
}
}
}
}
}
else
{
}
else
{
Class
paramClazz
=
checkChannelRole
.
paramClazz
();
log
.
warn
(
"[CheckChannelRole]channelIdSPEL取值失败"
);
if
(
paramClazz
==
ChannelConfVo
.
class
)
{
ChannelConfVo
confVo
=
(
ChannelConfVo
)
args
[
0
];
final
Long
channelIdTemp
=
confVo
.
getBasicInfo
().
getChannelId
();
if
(
channelIdTemp
==
null
)
{
log
.
info
(
"[CheckChannelRole]无channelId数据"
);
return
Result
.
buildFial
(
ApplicationStatus
.
ARGUMENT_VALID_EXCEPTION
);
}
requestChannelId
=
channelIdTemp
;
}
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[CheckChannelRole]key表达式“"
+
channelIdSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
if
(!
principal
.
isSameChannel
(
requestChannelId
))
{
}
else
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumberSPEL
)){
log
.
info
(
"[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个"
);
// 通过channelOrderNumber 判断
return
Result
.
buildFial
(
ApplicationStatus
.
INVALID_AUTHORITY
);
}
}
// ======================================== CheckChannelRole end ==========================================
// 如果是渠道用户登陆,参数中channelOrderNumber 不是登陆用户channelOrderNumber,返回 拒绝请求
CheckChannelRoleByChannelOrderNumber
checkChannelRoleByChannelOrderNumber
=
method
.
getAnnotation
(
CheckChannelRoleByChannelOrderNumber
.
class
);
if
(
checkChannelRoleByChannelOrderNumber
!=
null
&&
principal
.
isChannel
())
{
String
[]
paramNames
=
((
CodeSignature
)
pjp
.
getSignature
()).
getParameterNames
();
String
channelOrderNumber
=
""
;
String
channelOrderNumber
=
""
;
for
(
int
i
=
0
;
i
<
paramNames
.
length
;
i
++)
{
if
(
channelOrderNumberSPEL
.
startsWith
(
"#this"
))
{
if
(
"channelOrderNumber"
.
equals
(
paramNames
[
i
]))
{
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelOrderNumberSPEL
);
channelOrderNumber
=
String
.
valueOf
(
args
[
i
]);
channelOrderNumber
=
expression
.
getValue
(
args
,
String
.
class
);
}
}
else
{
}
log
.
warn
(
"[CheckChannelRole]channelOrderNumberSPEL取值失败"
);
if
(
StringUtils
.
isEmpty
(
channelOrderNumber
))
{
log
.
info
(
"[CheckChannelRoleByChannelOrderNumber]参数channelOrderNumber不能为空"
);
return
Result
.
buildFial
(
ApplicationStatus
.
ARGUMENT_VALID_EXCEPTION
);
}
}
if
(
StringUtils
.
isNotEmpty
(
channelOrderNumber
))
{
ClfOrderMapping
clfOrderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
ClfOrderMapping
clfOrderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
if
(
clfOrderMapping
==
null
)
{
if
(
clfOrderMapping
==
null
)
{
log
.
info
(
"[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}"
,
channelOrderNumber
);
log
.
info
(
"[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}"
,
channelOrderNumber
);
...
@@ -145,7 +116,11 @@ public class RoleLoadAspect {
...
@@ -145,7 +116,11 @@ public class RoleLoadAspect {
return
Result
.
buildFial
(
ApplicationStatus
.
INVALID_AUTHORITY
);
return
Result
.
buildFial
(
ApplicationStatus
.
INVALID_AUTHORITY
);
}
}
}
}
// ======================================== CheckChannelRoleByChannelOrderNumber end ==========================================
}
}
}
try
{
try
{
return
pjp
.
proceed
(
args
);
return
pjp
.
proceed
(
args
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/ChannelRoleLoadAspect.java
0 → 100644
View file @
a7a3715a
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
aspect
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
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.utils.JSONTools
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.expression.Expression
;
import
org.springframework.expression.ExpressionException
;
import
org.springframework.expression.spel.standard.SpelExpressionParser
;
import
org.springframework.stereotype.Component
;
import
java.lang.reflect.Method
;
/**
* 加载优先级 高于 ChannelRoleCheckAspect
* function:
* date: 2019/8/6
*
* @author: suntao
*/
@Slf4j
@Component
@Aspect
@Order
(
1
)
public
class
ChannelRoleLoadAspect
{
@Pointcut
(
"@annotation(cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit)"
)
private
void
channelIdInit
()
{}
@Around
(
value
=
"channelIdInit()"
)
public
Object
channelIdInitBefore
(
ProceedingJoinPoint
pjp
)
{
Object
[]
args
=
pjp
.
getArgs
();
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
Method
method
=
methodSignature
.
getMethod
();
Principal
principal
=
Application
.
getPrincipal
();
if
(
principal
==
null
)
{
try
{
return
pjp
.
proceed
(
args
);
}
catch
(
Throwable
throwable
)
{
log
.
error
(
"请求失败,e={}"
,
ExceptionUtils
.
getStackTrace
(
throwable
));
return
Result
.
buildFial
();
}
}
// 如果是渠道用户登陆 默认加载channelId
ChannelIdInit
annotation
=
method
.
getAnnotation
(
ChannelIdInit
.
class
);
if
(
annotation
!=
null
)
{
String
channelIdSPEL
=
annotation
.
channelIdSPEL
();
if
(
principal
.
isChannel
())
{
if
(
StringUtils
.
isNotEmpty
(
channelIdSPEL
))
{
try
{
if
(
channelIdSPEL
.
startsWith
(
"#this"
))
{
//判断是否是spel表达式
Expression
expression
=
new
SpelExpressionParser
().
parseExpression
(
channelIdSPEL
);
expression
.
setValue
(
args
,
principal
.
getChannelId
());
}
else
{
log
.
warn
(
"[channelIdInitBefore]channelIdSPEL设置失败"
);
}
}
catch
(
ExpressionException
e
)
{
log
.
error
(
"[channelIdInitBefore]key表达式“"
+
channelIdSPEL
+
"”错误:{}"
,
e
);
throw
e
;
}
}
}
}
try
{
return
pjp
.
proceed
(
args
);
}
catch
(
Throwable
throwable
)
{
log
.
error
(
"请求失败,e={}"
,
ExceptionUtils
.
getStackTrace
(
throwable
));
return
Result
.
buildFial
();
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/core/aspect/OperationAspect.java
View file @
a7a3715a
...
@@ -88,7 +88,7 @@ public class OperationAspect {
...
@@ -88,7 +88,7 @@ public class OperationAspect {
optHistoryLog
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
optHistoryLog
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
optHistoryLog
.
setOptEnumName
(
opt
);
optHistoryLog
.
setOptEnumName
(
opt
);
optHistoryLog
.
setOptName
(
opt
.
getDesc
());
optHistoryLog
.
setOptName
(
opt
.
getDesc
());
optHistoryLog
.
setOptUser
(
Application
.
getPrincipal
().
getUserInfo
().
getNickname
());
optHistoryLog
.
setOptUser
(
Application
.
getPrincipal
().
getUserInfo
().
getNickname
()
+
"_"
+
Application
.
getPrincipal
().
getUserInfo
().
getUsername
()
);
optHistoryLog
.
setCreateTime
(
new
Date
());
optHistoryLog
.
setCreateTime
(
new
Date
());
}
else
{
}
else
{
log
.
warn
(
"[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}"
,
channelOrderNumber
);
log
.
warn
(
"[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}"
,
channelOrderNumber
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/service/CLFCenterService.java
View file @
a7a3715a
...
@@ -23,7 +23,7 @@ public interface CLFCenterService {
...
@@ -23,7 +23,7 @@ public interface CLFCenterService {
List
<
ApplyRequestHistory
>
findApplyRequestHistoryBySpecification
(
OrderBaseModel
orderBaseModel
);
List
<
ApplyRequestHistory
>
findApplyRequestHistoryBySpecification
(
OrderBaseModel
orderBaseModel
);
Page
<
ClfChannelConfiguration
>
findChannelConfigurationByCriteriaQueryPage
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
);
Page
<
ClfChannelConfiguration
>
findChannelConfigurationByCriteriaQueryPage
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
,
String
channelName
);
ClfChannelConfiguration
findChannelConfigurationByChannelId
(
Long
channelId
);
ClfChannelConfiguration
findChannelConfigurationByChannelId
(
Long
channelId
);
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/service/CLFCenterServiceImpl.java
View file @
a7a3715a
...
@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.spi.clf.service;
...
@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.spi.clf.service;
import
cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel
;
import
cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.*
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -91,7 +90,7 @@ public class CLFCenterServiceImpl implements CLFCenterService{
...
@@ -91,7 +90,7 @@ public class CLFCenterServiceImpl implements CLFCenterService{
}
}
@Override
@Override
public
Page
<
ClfChannelConfiguration
>
findChannelConfigurationByCriteriaQueryPage
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
)
{
public
Page
<
ClfChannelConfiguration
>
findChannelConfigurationByCriteriaQueryPage
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
,
String
channelName
)
{
return
clfChannelConfigurationRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
{
return
clfChannelConfigurationRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
{
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
...
@@ -101,6 +100,10 @@ public class CLFCenterServiceImpl implements CLFCenterService{
...
@@ -101,6 +100,10 @@ public class CLFCenterServiceImpl implements CLFCenterService{
predicates
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
"registeredFrom"
),
channelId
.
longValue
()));
predicates
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
"registeredFrom"
),
channelId
.
longValue
()));
}
}
if
(
StringUtils
.
isNotEmpty
(
channelName
))
{
predicates
.
add
(
criteriaBuilder
.
like
(
root
.
get
(
"channelName"
),
"%"
+
channelName
+
"%"
));
}
// 设置查询条件
// 设置查询条件
criteriaQuery
.
where
(
criteriaBuilder
.
and
(
predicates
.
toArray
(
new
Predicate
[
predicates
.
size
()])));
criteriaQuery
.
where
(
criteriaBuilder
.
and
(
predicates
.
toArray
(
new
Predicate
[
predicates
.
size
()])));
// 指定排序
// 指定排序
...
...
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