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
ac46dd56
Commit
ac46dd56
authored
Sep 03, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单推送记录查询
parent
8a042a84
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
361 additions
and
6 deletions
+361
-6
OrderController.java
...ashloanflowboss/api/order/controller/OrderController.java
+15
-5
OrderVo.java
.../quantgroup/cashloanflowboss/api/order/model/OrderVo.java
+2
-0
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+73
-1
CallbackFailRecord.java
...p/cashloanflowboss/spi/clf/entity/CallbackFailRecord.java
+75
-0
CallbackRecord.java
...group/cashloanflowboss/spi/clf/entity/CallbackRecord.java
+70
-0
CallbackRecordVoModel.java
...cashloanflowboss/spi/clf/model/CallbackRecordVoModel.java
+55
-0
CallbackFailRecordRepository.java
...boss/spi/clf/repository/CallbackFailRecordRepository.java
+18
-0
CallbackRecordRepository.java
...flowboss/spi/clf/repository/CallbackRecordRepository.java
+17
-0
CLFCenter.java
...uantgroup/cashloanflowboss/spi/clf/service/CLFCenter.java
+2
-0
CLFCenterService.java
...up/cashloanflowboss/spi/clf/service/CLFCenterService.java
+34
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/controller/OrderController.java
View file @
ac46dd56
...
...
@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.api.order.controller;
import
cn.quantgroup.cashloanflowboss.api.order.model.ApproveVo
;
import
cn.quantgroup.cashloanflowboss.api.order.model.LendingFormModel
;
import
cn.quantgroup.cashloanflowboss.api.order.model.OrderVo
;
import
cn.quantgroup.cashloanflowboss.api.order.service.OrderService
;
import
cn.quantgroup.cashloanflowboss.component.security.annotiation.Security
;
import
cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit
;
...
...
@@ -10,7 +9,6 @@ import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole;
import
cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRoleByChannelOrderNumber
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -45,11 +43,11 @@ public class OrderController {
@ChannelIdInit
@CheckChannelRole
@GetMapping
(
"/list"
)
public
Result
getOrders
(
Long
channelId
,
String
channelOrderNumber
,
Integer
pageNumber
,
Integer
pageSize
)
{
public
Result
orderList
(
Long
channelId
,
String
channelOrderNumber
,
Integer
pageNumber
,
Integer
pageSize
)
{
if
(
pageNumber
==
null
||
pageSize
==
null
)
{
return
Result
.
buildFial
(
"page信息不对"
);
}
return
Result
.
buildSuccess
(
orderService
.
getOrders
(
channelId
,
channelOrderNumber
,
pageNumber
,
pageSize
));
return
Result
.
buildSuccess
(
orderService
.
orderList
(
channelId
,
channelOrderNumber
,
pageNumber
,
pageSize
));
}
...
...
@@ -66,7 +64,7 @@ public class OrderController {
Tuple
<
Boolean
,
Boolean
>
booleanBooleanTuple
=
orderService
.
approveOpt
(
approveVo
);
Boolean
approveResult
=
booleanBooleanTuple
.
getKey
();
if
(
approveResult
)
{
return
Result
.
buildSuccess
(
approveResult
,
booleanBooleanTuple
.
getValue
()
?
"审批
成功"
:
"请检查资产计划配置,审批
成功"
);
return
Result
.
buildSuccess
(
approveResult
,
booleanBooleanTuple
.
getValue
()
?
"审批
操作成功"
:
"请检查资产计划配置,审批操作
成功"
);
}
else
{
return
Result
.
buildSuccess
(
false
,
"审批操作失败"
);
}
...
...
@@ -119,5 +117,17 @@ public class OrderController {
return
Result
.
buildSuccess
(
orderService
.
getOrderHistoryStatus
(
channelOrderNumber
));
}
/**
* 订单状态推送历史记录
*
* @param channelOrderNumber
* @return
*/
@Security
(
authorityId
=
"Order.orderCallbackRecordList"
)
@ChannelIdInit
@CheckChannelRoleByChannelOrderNumber
public
Result
orderCallbackRecordList
(
String
channelOrderNumber
)
{
return
Result
.
buildSuccess
(
orderService
.
getOrderCallbackRecordList
(
channelOrderNumber
));
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/order/model/OrderVo.java
View file @
ac46dd56
...
...
@@ -17,6 +17,8 @@ public class OrderVo {
private
Long
id
;
private
Long
channelId
;
private
String
channelOrderNumber
;
private
Long
loanId
;
private
String
applyNo
;
private
Date
createdAt
;
private
String
status
;
/**
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
order
.
service
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRouter
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository
;
...
...
@@ -10,8 +14,11 @@ import cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.base.ServiceResult
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRecordVoModel
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.JolyneCenter
;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
...
...
@@ -38,6 +45,7 @@ import java.util.concurrent.ConcurrentMap;
import
javax.persistence.criteria.Predicate
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -70,6 +78,8 @@ public class OrderService {
@Autowired
private
ClothoCenterService
clothoCenterService
;
@Autowired
private
CLFCenterService
clfCenterService
;
@Autowired
private
JolyneCenter
jolyneCenter
;
...
...
@@ -82,7 +92,7 @@ public class OrderService {
public
Page
<
OrderVo
>
getOrders
(
Long
channelId
,
String
channelOrderNo
,
Integer
pageNumber
,
Integer
pageSize
)
{
public
Page
<
OrderVo
>
orderList
(
Long
channelId
,
String
channelOrderNo
,
Integer
pageNumber
,
Integer
pageSize
)
{
Page
<
ClfOrderMapping
>
page
=
this
.
clfOrderMappingRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
{
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
...
...
@@ -110,6 +120,11 @@ public class OrderService {
orderVo
.
setId
(
it
.
getId
());
orderVo
.
setChannelId
(
it
.
getRegisteredFrom
());
orderVo
.
setChannelOrderNumber
(
it
.
getChannelOrderNo
());
if
(!
Application
.
getPrincipal
().
isChannel
())
{
orderVo
.
setLoanId
(
it
.
getLoanId
());
// 授信申请号,非渠道权限登陆显示admin及以上权限用户
orderVo
.
setApplyNo
(
it
.
getApplyNo
());
}
orderVo
.
setCreatedAt
(
it
.
getCreatedAt
());
if
(
StringUtils
.
isNotEmpty
(
it
.
getApplyNo
()))
{
...
...
@@ -389,4 +404,61 @@ public class OrderService {
return
true
;
}
/**
* 查询订单历史推送记录
* @param channelOrderNumber
* @return
*/
public
List
<
CallbackRecordVoModel
>
getOrderCallbackRecordList
(
String
channelOrderNumber
)
{
List
<
CallbackRecordVoModel
>
callbackRecordVoModelList
=
new
ArrayList
<>();
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
if
(
orderMapping
==
null
)
{
return
null
;
}
List
<
CallbackRecord
>
callbackRecordList
=
clfCenterService
.
findCallbackRecordByApplyNo
(
orderMapping
.
getApplyNo
());
if
(
CollectionUtils
.
isNotEmpty
(
callbackRecordList
))
{
for
(
CallbackRecord
callbackRecord
:
callbackRecordList
)
{
CallbackRecordVoModel
callbackRecordVoModel
=
new
CallbackRecordVoModel
();
callbackRecordVoModel
.
setChannelOrderNo
(
orderMapping
.
getChannelOrderNo
());
callbackRecordVoModel
.
setApplyNo
(
orderMapping
.
getApplyNo
());
callbackRecordVoModel
.
setLoanId
(
orderMapping
.
getLoanId
());
callbackRecordVoModel
.
setTermNo
(
callbackRecord
.
getTermNo
());
callbackRecordVoModel
.
setNoticeType
(
callbackRecord
.
getNoticeType
());
callbackRecordVoModel
.
setCallbackStatus
(
callbackRecord
.
getCallbackStatus
());
callbackRecordVoModel
.
setChannelId
(
callbackRecord
.
getChannelId
());
callbackRecordVoModel
.
setCreatedAt
(
callbackRecord
.
getCreatedAt
());
callbackRecordVoModel
.
setUpdatedAt
(
callbackRecord
.
getUpdatedAt
());
callbackRecordVoModel
.
setTableName
(
"Success"
);
callbackRecordVoModelList
.
add
(
callbackRecordVoModel
);
}
}
List
<
CallbackFailRecord
>
callbackFailRecordList
=
clfCenterService
.
findCallbackFailRecordByApplyNo
(
orderMapping
.
getApplyNo
());
if
(
CollectionUtils
.
isNotEmpty
(
callbackFailRecordList
))
{
for
(
CallbackFailRecord
callbackFailRecord
:
callbackFailRecordList
)
{
CallbackRecordVoModel
callbackFailRecordVoModel
=
new
CallbackRecordVoModel
();
callbackFailRecordVoModel
.
setChannelOrderNo
(
orderMapping
.
getChannelOrderNo
());
callbackFailRecordVoModel
.
setApplyNo
(
orderMapping
.
getApplyNo
());
callbackFailRecordVoModel
.
setLoanId
(
orderMapping
.
getLoanId
());
callbackFailRecordVoModel
.
setTermNo
(
callbackFailRecord
.
getTermNo
());
callbackFailRecordVoModel
.
setNoticeType
(
callbackFailRecord
.
getNoticeType
());
callbackFailRecordVoModel
.
setCallbackStatus
(
callbackFailRecord
.
getCallbackStatus
());
callbackFailRecordVoModel
.
setChannelId
(
callbackFailRecord
.
getChannelId
());
callbackFailRecordVoModel
.
setRetryTimes
(
callbackFailRecord
.
getRetryTimes
());
callbackFailRecordVoModel
.
setFailCode
(
callbackFailRecord
.
getFailCode
());
callbackFailRecordVoModel
.
setCallbackRouter
(
callbackFailRecord
.
getCallbackRouter
());
callbackFailRecordVoModel
.
setIsActive
(
callbackFailRecord
.
getIsActive
());
callbackFailRecordVoModel
.
setExdata
(
callbackFailRecord
.
getExdata
());
callbackFailRecordVoModel
.
setCreatedAt
(
callbackFailRecord
.
getCreatedAt
());
callbackFailRecordVoModel
.
setUpdatedAt
(
callbackFailRecord
.
getUpdatedAt
());
callbackFailRecordVoModel
.
setTableName
(
"Fail"
);
callbackRecordVoModelList
.
add
(
callbackFailRecordVoModel
);
}
}
return
callbackRecordVoModelList
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/CallbackFailRecord.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRouter
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.sql.Timestamp
;
/**
* @author zhangbin
* @date 2018/4/10.
*/
@Data
@Entity
@Table
(
name
=
"callback_fail_record"
,
catalog
=
"cash_loan_flow"
)
public
class
CallbackFailRecord
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"apply_no"
)
private
String
applyNo
;
@Column
(
name
=
"loan_id"
)
private
Long
loanId
;
@Column
(
name
=
"progress"
)
private
LoanProgress
progress
;
@Column
(
name
=
"term_no"
)
private
Long
termNo
;
@Column
(
name
=
"notice_type"
)
private
KANoticeType
noticeType
;
@Column
(
name
=
"callback_status"
)
private
Integer
callbackStatus
;
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
@Column
(
name
=
"retry_times"
)
private
Integer
retryTimes
;
@Column
(
name
=
"fail_code"
)
private
Integer
failCode
;
@Column
(
name
=
"loan_type"
)
private
CallbackRouter
callbackRouter
;
/**
* 默认有效
*/
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
=
Boolean
.
TRUE
;
/**
* mq 数据不能保存在fail 表字段中的数据,每个渠道结构不一样,每种mq-notifyType 不一样
*/
@Column
(
name
=
"exdata"
)
private
String
exdata
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/CallbackRecord.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.sql.Timestamp
;
import
java.time.Instant
;
/**
* @author zhangbin
* @date 2018/4/10.
*/
@Data
@Entity
@Table
(
name
=
"callback_record"
,
catalog
=
"cash_loan_flow"
)
public
class
CallbackRecord
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
/**
* 量化派授信订单号,申请订单号
*/
@Column
(
name
=
"apply_no"
)
private
String
applyNo
;
/**
* xyqb.loan_application_history.id
*/
@Column
(
name
=
"loan_id"
)
private
Long
loanId
;
/**
* 还款计划期数
*/
@Column
(
name
=
"term_no"
)
private
Long
termNo
;
/**
* 渠道订单标识
*/
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
/**
* 映射成渠道推送状态
*/
@Column
(
name
=
"callback_status"
)
private
Integer
callbackStatus
;
/**
* 事件
*/
@Column
(
name
=
"notice_type"
)
private
KANoticeType
noticeType
;
/**
* 成功次数
*/
@Column
(
name
=
"success_times"
)
private
Long
successTimes
;
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
=
Timestamp
.
from
(
Instant
.
now
());
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
=
Timestamp
.
from
(
Instant
.
now
());
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/model/CallbackRecordVoModel.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
model
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author zhangbin
* @date 2018/4/10.
*/
@Data
public
class
CallbackRecordVoModel
{
private
static
final
long
serialVersionUID
=
-
1L
;
private
Long
id
;
private
String
channelOrderNo
;
private
String
applyNo
;
private
Long
loanId
;
private
LoanProgress
progress
;
private
Long
termNo
;
private
KANoticeType
noticeType
;
private
Integer
callbackStatus
;
private
Long
channelId
;
private
Integer
retryTimes
;
private
Integer
failCode
;
private
CallbackRouter
callbackRouter
;
/**
* 默认有效
*/
private
Boolean
isActive
=
Boolean
.
TRUE
;
/**
* mq 数据不能保存在fail 表字段中的数据,每个渠道结构不一样,每种mq-notifyType 不一样
*/
private
String
exdata
;
private
Date
createdAt
;
private
Date
updatedAt
;
private
String
tableName
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/CallbackFailRecordRepository.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
* function:
* date: 2019/9/3
*
* @author: suntao
*/
public
interface
CallbackFailRecordRepository
extends
JpaRepository
<
CallbackFailRecord
,
Long
>
{
List
<
CallbackFailRecord
>
findByApplyNo
(
String
applyNo
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/CallbackRecordRepository.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
* function:
* date: 2019/9/3
*
* @author: suntao
*/
public
interface
CallbackRecordRepository
extends
JpaRepository
<
CallbackRecord
,
Long
>
{
List
<
CallbackRecord
>
findByApplyNo
(
String
applyNo
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/service/CLFCenter.java
View file @
ac46dd56
...
...
@@ -20,4 +20,6 @@ public interface CLFCenter {
return
;
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/service/CLFCenterService.java
0 → 100644
View file @
ac46dd56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
service
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.CallbackFailRecordRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.CallbackRecordRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* function:
* date: 2019/9/3
*
* @author: suntao
*/
@Service
public
class
CLFCenterService
{
@Autowired
private
CallbackFailRecordRepository
callbackFailRecordRepository
;
@Autowired
private
CallbackRecordRepository
callbackRecordRepository
;
public
List
<
CallbackFailRecord
>
findCallbackFailRecordByApplyNo
(
String
applyNo
)
{
return
callbackFailRecordRepository
.
findByApplyNo
(
applyNo
);
}
public
List
<
CallbackRecord
>
findCallbackRecordByApplyNo
(
String
applyNo
)
{
return
callbackRecordRepository
.
findByApplyNo
(
applyNo
);
}
}
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