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
0aeda08d
Commit
0aeda08d
authored
Aug 07, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
渠道配置信息 编辑保存
parent
0fb0a5dd
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
683 additions
and
29 deletions
+683
-29
ChannelConfController.java
...lowboss/api/channel/controller/ChannelConfController.java
+16
-1
ChannelConf.java
...cashloanflowboss/api/channel/entity/boss/ChannelConf.java
+15
-3
ChannelConfAddModel.java
...shloanflowboss/api/channel/model/ChannelConfAddModel.java
+1
-1
ChannelConfBaseModel.java
...hloanflowboss/api/channel/model/ChannelConfBaseModel.java
+7
-1
ChannelConfVo.java
...oup/cashloanflowboss/api/channel/model/ChannelConfVo.java
+20
-0
ChannelConfService.java
...hloanflowboss/api/channel/service/ChannelConfService.java
+63
-10
ChannelConfUtil.java
...up/cashloanflowboss/api/channel/util/ChannelConfUtil.java
+160
-12
ClfCallbackConfiguration.java
...loanflowboss/spi/clf/entity/ClfCallbackConfiguration.java
+62
-0
ClfChannelConfiguration.java
...hloanflowboss/spi/clf/entity/ClfChannelConfiguration.java
+1
-1
ClfOrderCallBack.java
...oup/cashloanflowboss/spi/clf/entity/ClfOrderCallBack.java
+47
-0
CallbackRouter.java
...tgroup/cashloanflowboss/spi/clf/model/CallbackRouter.java
+9
-0
KANoticeType.java
...antgroup/cashloanflowboss/spi/clf/model/KANoticeType.java
+69
-0
LoanProgress.java
...antgroup/cashloanflowboss/spi/clf/model/LoanProgress.java
+144
-0
ClfCallbackConfigurationRepository.java
...pi/clf/repository/ClfCallbackConfigurationRepository.java
+13
-0
ClfChannelConfigurationRepository.java
...spi/clf/repository/ClfChannelConfigurationRepository.java
+13
-0
ClfOrderCallbackRepository.java
...owboss/spi/clf/repository/ClfOrderCallbackRepository.java
+13
-0
IgnorePropertiesUtil.java
...antgroup/cashloanflowboss/utils/IgnorePropertiesUtil.java
+30
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/controller/ChannelConfController.java
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
channel
.
controller
;
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
channel
.
controller
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfAddModel
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfBaseModel
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo
;
import
cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit
;
import
cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit
;
import
cn.quantgroup.cashloanflowboss.api.channel.service.ChannelConfService
;
import
cn.quantgroup.cashloanflowboss.api.channel.service.ChannelConfService
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
com.alibaba.fastjson.JSONObject
;
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.*
;
import
javax.validation.Valid
;
import
java.util.Map
;
/**
/**
* Created with suntao on 2019/8/2
* Created with suntao on 2019/8/2
* @author suntao
* @author suntao
...
@@ -34,10 +42,17 @@ public class ChannelConfController {
...
@@ -34,10 +42,17 @@ public class ChannelConfController {
@GetMapping
(
"/cfg/info"
)
@GetMapping
(
"/cfg/info"
)
public
Result
c
hannelConfInfo
(
Long
channelId
)
{
public
Result
getC
hannelConfInfo
(
Long
channelId
)
{
return
Result
.
buildSuccess
(
channelConfService
.
getChannelConf
(
channelId
),
"success"
);
return
Result
.
buildSuccess
(
channelConfService
.
getChannelConf
(
channelId
),
"success"
);
}
}
@PostMapping
(
"/cfg/info"
)
public
Result
editChannelConfInfo
(
@RequestBody
@Valid
ChannelConfVo
channelConfVo
)
{
return
Result
.
buildSuccess
(
channelConfService
.
editChannelConfInfo
(
channelConfVo
));
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/entity/boss/ChannelConf.java
View file @
0aeda08d
...
@@ -69,10 +69,22 @@ public class ChannelConf extends Primary {
...
@@ -69,10 +69,22 @@ public class ChannelConf extends Primary {
private
String
md5Key
;
private
String
md5Key
;
/**
/**
* env_
url
* env_
path
*/
*/
@Column
(
name
=
"env_url"
)
@Column
(
name
=
"env_path"
)
private
String
envUrl
;
private
String
envPath
;
/**
* authCode
*/
@Column
(
name
=
"auth_code"
)
private
String
authCode
;
/**
* riskCode
*/
@Column
(
name
=
"risk_code"
)
private
String
riskCode
;
/**
/**
* channel_ip
* channel_ip
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/model/ChannelConfAddModel.java
View file @
0aeda08d
...
@@ -10,7 +10,7 @@ import lombok.Data;
...
@@ -10,7 +10,7 @@ import lombok.Data;
*/
*/
@Data
@Data
public
class
ChannelConfAddModel
{
public
class
ChannelConfAddModel
{
private
String
env
Url
;
private
String
env
Path
;
private
String
channelIp
;
private
String
channelIp
;
private
String
approveCallBackUrl
;
private
String
approveCallBackUrl
;
private
String
orderStatusCallBackUrl
;
private
String
orderStatusCallBackUrl
;
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/model/ChannelConfBaseModel.java
View file @
0aeda08d
...
@@ -2,13 +2,17 @@ package cn.quantgroup.cashloanflowboss.api.channel.model;
...
@@ -2,13 +2,17 @@ package cn.quantgroup.cashloanflowboss.api.channel.model;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
/**
* Created with suntao on 2019/8/2
* Created with suntao on 2019/8/2
*/
*/
@Data
@Data
public
class
ChannelConfBaseModel
{
public
class
ChannelConfBaseModel
{
private
Integer
channelId
;
@NotNull
(
message
=
"渠道id不能为空"
)
private
Long
channelId
;
private
String
channelName
;
private
String
channelName
;
private
String
channelCode
;
private
String
channelCode
;
private
String
env
;
private
String
env
;
...
@@ -17,4 +21,6 @@ public class ChannelConfBaseModel {
...
@@ -17,4 +21,6 @@ public class ChannelConfBaseModel {
private
String
bizType
;
private
String
bizType
;
private
String
aesKey
;
private
String
aesKey
;
private
String
md5Key
;
private
String
md5Key
;
private
String
authCode
;
private
String
riskCode
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/model/ChannelConfVo.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
channel
.
model
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* function:
* date: 2019/8/7
*
* @author: suntao
*/
@Data
public
class
ChannelConfVo
{
@NotNull
(
message
=
"基础配置信息不能为空"
)
private
ChannelConfBaseModel
basicInfo
;
@NotNull
(
message
=
"回调地址配置信息不能为空"
)
private
ChannelConfAddModel
addInfo
;
}
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/service/ChannelConfService.java
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
channel
.
service
;
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
channel
.
service
;
import
java.sql.Timestamp
;
import
java.util.*
;
import
java.util.*
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.boss.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.boss.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfAddModel
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfBaseModel
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelListModel
;
import
cn.quantgroup.cashloanflowboss.api.channel.model.ChannelListModel
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfCallbackConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.boss.ChannelConfRepository
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.boss.ChannelConfRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ChannelConfigurationRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderCallBack
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfCallbackConfigurationRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfChannelConfigurationRepository
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
import
cn.quantgroup.cashloanflowboss.api.user.model.Pagination
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderCallbackRepository
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.utils.IgnorePropertiesUtil
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
...
@@ -28,15 +36,18 @@ public class ChannelConfService {
...
@@ -28,15 +36,18 @@ public class ChannelConfService {
@Autowired
@Autowired
private
ChannelConfRepository
channelConfRepository
;
private
ChannelConfRepository
channelConfRepository
;
@Autowired
@Autowired
private
ChannelConfigurationRepository
clfChannelConfigurationRepository
;
private
ClfChannelConfigurationRepository
clfChannelConfigurationRepository
;
@Autowired
private
ClfCallbackConfigurationRepository
clfCallbackConfigurationRepository
;
@Autowired
private
ClfOrderCallbackRepository
clfOrderCallbackRepository
;
public
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
)
{
public
Page
<
ChannelListModel
>
getChannelInfo
(
Integer
pageNumber
,
Integer
pageSize
,
Long
channelId
)
{
Page
<
ChannelConfiguration
>
page
=
this
.
clfChannelConfigurationRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
{
Page
<
C
lfC
hannelConfiguration
>
page
=
this
.
clfChannelConfigurationRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
{
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
...
@@ -60,7 +71,7 @@ public class ChannelConfService {
...
@@ -60,7 +71,7 @@ public class ChannelConfService {
channelListModel
.
setChannelName
(
it
.
getChannelName
());
channelListModel
.
setChannelName
(
it
.
getChannelName
());
channelListModel
.
setChannelCode
(
it
.
getChannelCode
());
channelListModel
.
setChannelCode
(
it
.
getChannelCode
());
// TODO
// TODO
channelListModel
.
setBizType
(
1
);
channelListModel
.
setBizType
(
null
);
channelListModel
.
setCreatedAt
(
it
.
getCreatedAt
());
channelListModel
.
setCreatedAt
(
it
.
getCreatedAt
());
return
channelListModel
;
return
channelListModel
;
});
});
...
@@ -69,11 +80,53 @@ public class ChannelConfService {
...
@@ -69,11 +80,53 @@ public class ChannelConfService {
}
}
//todo 返回值不用map可以吗
public
ChannelConfVo
getChannelConf
(
Long
channelId
)
{
public
Map
<
String
,
Object
>
getChannelConf
(
Long
channelId
)
{
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
channelId
);
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
channelId
);
return
ChannelConfUtil
.
channelConfConvertVOModel
(
channelConf
);
return
ChannelConfUtil
.
channelConfConvertVOModel
(
channelConf
);
}
}
public
Boolean
editChannelConfInfo
(
ChannelConfVo
confVo
)
{
ChannelConfBaseModel
basicInfo
=
confVo
.
getBasicInfo
();
ChannelConfAddModel
addInfo
=
confVo
.
getAddInfo
();
ChannelConf
channelConf
=
ChannelConfUtil
.
voModelConfConvertChannelConf
(
confVo
);
ChannelConf
channelConfExsit
=
channelConfRepository
.
getByChannelId
(
basicInfo
.
getChannelId
());
// cash-loan-flow-boss 库
if
(
channelConfExsit
==
null
)
{
// 新保存
channelConf
.
setCreateTime
(
new
Date
());
channelConfRepository
.
save
(
channelConf
);
}
else
{
// 更新数据库 数据
BeanUtils
.
copyProperties
(
channelConf
,
channelConfExsit
,
IgnorePropertiesUtil
.
getNullPropertyNames
(
channelConf
));
channelConfExsit
.
setUpdateTime
(
new
Date
());
channelConfRepository
.
save
(
channelConfExsit
);
}
// clf 库
ClfChannelConfiguration
channelConfiguration
=
ChannelConfUtil
.
convert2ClfChannelConfiguration
(
basicInfo
);
List
<
ClfOrderCallBack
>
clfOrderCallBackList
=
ChannelConfUtil
.
convert2ClfOrderCallback
(
basicInfo
.
getChannelId
(),
addInfo
);
ClfChannelConfiguration
channelConfigurationExsit
=
clfChannelConfigurationRepository
.
findByRegisteredFrom
(
basicInfo
.
getChannelId
());
if
(
channelConfigurationExsit
==
null
)
{
// 新保存
channelConfiguration
.
setCreatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
clfChannelConfigurationRepository
.
save
(
channelConfiguration
);
ClfCallbackConfiguration
clfCallbackConfiguration
=
ChannelConfUtil
.
convert2ClfCallbackConfiguration
(
basicInfo
);
clfCallbackConfigurationRepository
.
save
(
clfCallbackConfiguration
);
clfOrderCallbackRepository
.
save
(
clfOrderCallBackList
);
}
else
{
// update
BeanUtils
.
copyProperties
(
channelConfiguration
,
channelConfigurationExsit
,
IgnorePropertiesUtil
.
getNullPropertyNames
(
channelConfiguration
));
clfChannelConfigurationRepository
.
save
(
channelConfigurationExsit
);
clfOrderCallbackRepository
.
save
(
clfOrderCallBackList
);
}
return
true
;
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/channel/util/ChannelConfUtil.java
View file @
0aeda08d
This diff is collapsed.
Click to expand it.
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/ClfCallbackConfiguration.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRouter
;
import
lombok.*
;
import
javax.persistence.*
;
import
java.io.Serializable
;
/**
* Created by liqing on 2017/5/5 0005.
*/
@Setter
@Getter
@Entity
@Table
(
name
=
"callback_configuration"
,
catalog
=
"cash_loan_flow"
)
public
class
ClfCallbackConfiguration
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
@Column
(
name
=
"is_loan_makeup"
)
private
Boolean
isLoanMakeup
;
@Column
(
name
=
"is_repay_makeup"
)
private
Boolean
isRepayMakeup
;
@Column
(
name
=
"loan_makeup_strategy"
)
private
String
loanMakeupStrategy
;
@Column
(
name
=
"repay_makeup_strategy"
)
private
String
repayMakeupStrategy
;
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
;
@Column
(
name
=
"only_new_user"
)
private
Boolean
onlyNewUser
;
@Column
(
name
=
"callback_service_name"
)
private
String
callbackServiceName
;
@Column
(
name
=
"callback_no_push_progress"
)
private
String
callbackNoPushProgress
;
@Column
(
name
=
"pre_progress"
)
private
String
preProgress
;
@Column
(
name
=
"retry_max_times"
)
private
Long
retryMaxTimes
;
@Enumerated
(
EnumType
.
ORDINAL
)
@Column
(
name
=
"callback_router"
)
private
CallbackRouter
callbackRouter
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/ChannelConfiguration.java
→
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/C
lfC
hannelConfiguration.java
View file @
0aeda08d
...
@@ -13,7 +13,7 @@ import java.sql.Timestamp;
...
@@ -13,7 +13,7 @@ import java.sql.Timestamp;
@Data
@Data
@Entity
@Entity
@Table
(
name
=
"channel_configuration"
,
catalog
=
"cash_loan_flow"
)
@Table
(
name
=
"channel_configuration"
,
catalog
=
"cash_loan_flow"
)
public
class
ChannelConfiguration
implements
Serializable
{
public
class
C
lfC
hannelConfiguration
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Id
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/entity/ClfOrderCallBack.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* Created by 11 on 2016/11/29.
*/
@Data
@Entity
@Table
(
name
=
"order_callback"
)
public
class
ClfOrderCallBack
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"loan_id"
)
private
Long
loanId
;
@Column
(
name
=
"progress"
)
private
LoanProgress
progress
;
@Column
(
name
=
"callback_status"
)
@Enumerated
(
EnumType
.
STRING
)
//保存字面值到数据库
private
KANoticeType
callbackStatus
;
@Column
(
name
=
"registered_from"
)
private
Long
registeredFrom
;
@Column
(
name
=
"callback_url"
)
private
String
callbackUrl
;
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
=
Boolean
.
TRUE
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/model/CallbackRouter.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
model
;
/**
* Created with suntao on 2018/11/14
*/
public
enum
CallbackRouter
{
API
,
COMMON
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/model/KANoticeType.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
model
;
/**
* 对应 MQ 消息通知类型 的枚举类,在数据库中保存,和QuotaNoticeType 独立,保证xyqb改动的灵活性
* Created with suntao on 2018/4/15
*/
public
enum
KANoticeType
{
CREDIT_SUCC
(
"CREDIT_SUCC"
,
"授信成功"
),
//0
CREDIT_FAIL
(
"CREDIT_FAIL"
,
"授信失败"
),
//1
FUAD_ASSIFN_SUCC
(
"FUAD_ASSIFN_SUCC"
,
"分配资金方成功"
),
//2
FUAD_ASSIFN_FAIL
(
"FUAD_ASSIFN_FAIL"
,
"分配资金方失败"
),
//3
BIND_SUCC
(
"BIND_SUCC"
,
"绑卡成功"
),
//4
BIND_FAIL
(
"BIND_FAIL"
,
"绑卡失败"
),
//5
WAITING_FUND
(
"WAITING_FUND"
,
"进件给资金方成功,等待放款"
),
//6
FUND_SUCC
(
"FUND_SUCC"
,
"放款成功"
),
//7
FUND_WITHDRAW_SUCC
(
"FUND_WITHDRAW_SUCC"
,
"放款提现成功,存管提现成功"
),
//8
FUND_FAIL
(
"FUND_FAIL"
,
"放款失败"
),
//9
REPAYMENT
(
"REPAYMENT"
,
"还款成功"
),
//10
ALL_REPAID
(
"ALL_REPAID"
,
"结清"
),
//11
QUOTA_INCREASE
(
"QUOTA_INCREASE"
,
"额度提升"
),
//12
QUOTA_DECREASE
(
"QUOTA_DECREASE"
,
"额度下降"
),
//13
QUOTA_FREEZE
(
"QUOTA_FREEZE"
,
"风控额度冻结"
),
//14
WITHDRAW
(
"WITHDRAW"
,
"用户提现额度冻结"
),
//WITHDRAW,创建loanId,//15(BIND_SUCC 同时发送)
REJECT
(
"REJECT"
,
"风控审核不通过"
),
//16
RISK_PASS
(
"RISK_PASS"
,
"风控审核通过"
),
//17
INCREASE_CHANGE
(
"INCREASE_CHANGE"
,
"利率调整"
),
//18
CANCEL_LOAN
(
"CANCEL_LOAN"
,
"关闭订单"
),
//19
COMPENSATORY
(
"COMPENSATORY"
,
"代偿"
),
//20
DROP_COURSE
(
"DROP_COURSE"
,
"退课代偿"
),
//21
CANCEL_AFTER_LOAN
(
"CANCEL_AFTER_LOAN"
,
"贷后关闭订单"
),
//22
ADD_CARD_SUCCESS
(
"ADD_CARD_SUCCESS"
,
"添加银行卡成功,非提现页面绑卡"
),
//23
REPAY_FAIL
(
"REPAY_FAIL"
,
"还款失败"
),
//24
UNKNOWN
(
"UNKNOWN"
,
"没有逻辑意义的数据库兼容的值"
),
RP_INIT_F_SUCC
(
"REPAYMENT_INIT_FUND_SUCC"
,
"放款成功推送还款计划"
),
APPROVE_ING
(
"APPROVE_ING"
,
"审批中"
),
PAY_ING
(
"PAY_ING"
,
"放款中"
),
TEST
(
"TEST"
,
"test"
);
private
String
type
;
private
String
desc
;
KANoticeType
(
String
type
,
String
desc
)
{
this
.
type
=
type
;
this
.
desc
=
desc
;
}
public
static
KANoticeType
getOrdinalValue
(
Integer
ordinal
)
{
KANoticeType
[]
values
=
values
();
for
(
int
i
=
0
;
i
<
values
.
length
;
i
++)
{
if
(
values
[
i
].
ordinal
()
==
ordinal
)
{
return
values
[
i
];
}
}
return
null
;
}
public
String
getType
()
{
return
this
.
type
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/model/LoanProgress.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
model
;
import
com.google.common.collect.Sets
;
import
java.util.Set
;
/**
* Created by Miraculous on 15/7/12.
*/
public
enum
LoanProgress
{
/**
* 不会被持久化到数据库
*/
USERINFO_INCOMPLETE
(
"用户未填写个人信息"
),
//0
USER_INFORMATION_INCOMPLETE
(
"用户未填写贷款信息"
),
//1
USER_AUTHENTICATION_INCOMPLETE
(
"用户授权信息未全部完成"
),
//2
USER_AUTHENTICATION_COMPLETE
(
"授权状态完成"
),
//3
FURTHER_INFORMATION_INCOMPLETE
(
"用户补充资料未完成"
),
//4
PRE_SCREENING
(
"初审中"
),
//5
PRE_SCREENING_REJECT
(
"初审拒绝"
),
//6
FINAL_SCREENING
(
"终审中"
),
//7
FINAL_SCREENING_REJECT
(
"终审拒绝"
),
//8
LOAN_APPLICATION_MANIFEST_COMPLETE
(
"借款清单生成完成"
),
//9
BIND_BANKCARD
(
"确认借款并且去绑卡"
),
//10
BIND_BANKCARD_SUCCESS
(
"绑卡成功"
),
//11
QUIT_AND_SHOW_REASON
(
"放弃借款"
),
//12
SIGN_CONTRACT
(
"签订协议"
),
//13
FUND_TRANSFER
(
"打款"
),
//14
CHECK_REPAYMENT_PLAN
(
"查看还款计划"
),
//15
LOAN_COMPLETE
(
"借款完成"
),
//16
FILTERED_BY_BLACKLIST
(
"黑名单过滤"
),
//17
FINAL_SCREENING_PASSED
(
"后台终审通过"
),
//18
FILTERING_DECLINED
(
"未通过初筛"
),
//19
WAITING_FUND
(
"等待资金方放款"
),
// 20
FINAL_SEND_TO_MASHANG_BEFORE_APPROVAL
(
"已发送给马上金融, 等待放款"
),
//21, 发邮件后更新使用
FINAL_MASHANG_APPROVAL_SUCCESS
(
"马上金融放款成功"
),
//22
FINAL_FUNDED_APPROVAL_FAIL
(
"马上金融放款失败"
),
//23,
ADDRESS_COMPLETE
(
"地址填写完毕,去绑卡"
),
// 24
BEIYIN_USERINFO_INCOMPLETE
(
"北银消费-用户未填写个人信息"
),
//25
BEIYIN_USER_FILE_INCOMPLETE
(
"北银消费-用户未上传文件"
),
//26
BEIYIN_SCREENING
(
"北银消费-审批中"
),
//27
BEIYIN_SCREENING_FAILED
(
"北银消费-审批失败"
),
//28
BEIYIN_SCREENING_PASSED
(
"北银消费-审批通过"
),
//29
BEIYIN_LOAN_COMPLETE
(
"北银消费-借款完成"
),
//30
BAITIAO_AUTHENTICATION_TAOBAO
(
"白条-淘宝授权"
),
//31
BAITIAO_AUTHENTICATION_MOBILE
(
"白条-手机运营商授权"
),
//32
BAITIAO_SCREENING
(
"白条-审核中"
),
//33
BAITIAO_FILTER_PASSED
(
"白条-初筛通过"
),
//34
BAITIAO_SCREENING_FAILED
(
"白条-审核拒绝"
),
//35
BAITIAO_SCREENING_PASSED
(
"白条-审核通过"
),
//36
BAITIAO_BIND_CARD
(
"白条-绑卡"
),
//37
BAITIAO_BIND_CARD_ING
(
"白条-绑卡中"
),
//38
BAITIAO_ACTIVATE_SUCC
(
"白条-激活成功"
),
//39
/**
* 修改时间 20160104 资金方解耦
*/
// category 4x
/* 易联校验/代收订单 异步通知重构 */
BIND_BANKCARD_IN_PROGRESS
(
"绑卡处理中"
),
//40
/*REPAY_ORDER_IN_PROGRESS("还款处理中")*/
USER_RELATION_INCOMPLETE
(
"与用户相关联系人信息未完成"
),
//41,
PLACE_HOLDER_42
(
"占位"
),
PLACE_HOLDER_43
(
"占位"
),
PLACE_HOLDER_44
(
"占位"
),
PLACE_HOLDER_45
(
"占位"
),
PLACE_HOLDER_46
(
"占位"
),
PING_AN_PAGE
(
"跳转平安填写信息页面"
),
// 47
DROP_SUCC
(
"取消借款"
),
//48
PLACE_HOLDER_49
(
"占位"
),
// category 5x
PLACE_HOLDER_50
(
"占位"
),
PLACE_HOLDER_51
(
"占位"
),
PLACE_HOLDER_52
(
"占位"
),
PLACE_HOLDER_53
(
"占位"
),
PLACE_HOLDER_54
(
"占位"
),
PLACE_HOLDER_55
(
"占位"
),
PLACE_HOLDER_56
(
"占位"
),
PLACE_HOLDER_57
(
"占位"
),
PLACE_HOLDER_58
(
"占位"
),
PLACE_HOLDER_59
(
"占位"
),
// category 6x
PLACE_HOLDER_60
(
"占位"
),
PLACE_HOLDER_61
(
"占位"
),
PLACE_HOLDER_62
(
"占位"
),
PLACE_HOLDER_63
(
"占位"
),
PLACE_HOLDER_64
(
"占位"
),
WAITING_WITHDRAW
(
"待存管提现"
),
// 65
PLACE_HOLDER_66
(
"占位"
),
PLACE_HOLDER_67
(
"占位"
),
PLACE_HOLDER_68
(
"占位"
),
PLACE_HOLDER_69
(
"占位"
),
// category 7x
PLACE_HOLDER_70
(
"占位"
),
PLACE_HOLDER_71
(
"占位"
),
PLACE_HOLDER_72
(
"占位"
),
PLACE_HOLDER_73
(
"占位"
),
PLACE_HOLDER_74
(
"占位"
),
PLACE_HOLDER_75
(
"占位"
),
PLACE_HOLDER_76
(
"占位"
),
PLACE_HOLDER_77
(
"占位"
),
PLACE_HOLDER_78
(
"占位"
),
PLACE_HOLDER_79
(
"占位"
),
// category 8x
PLACE_HOLDER_80
(
"占位"
),
PLACE_HOLDER_81
(
"占位"
),
PLACE_HOLDER_82
(
"占位"
),
PLACE_HOLDER_83
(
"占位"
),
PLACE_HOLDER_84
(
"占位"
),
PLACE_HOLDER_85
(
"占位"
),
PLACE_HOLDER_86
(
"占位"
),
PLACE_HOLDER_87
(
"占位"
),
PLACE_HOLDER_88
(
"占位"
),
PLACE_HOLDER_89
(
"占位"
),
// category 9x
PLACE_HOLDER_90
(
"占位"
),
PLACE_HOLDER_91
(
"占位"
),
PLACE_HOLDER_92
(
"占位"
),
PLACE_HOLDER_93
(
"占位"
),
PLACE_HOLDER_94
(
"占位"
),
PLACE_HOLDER_95
(
"占位"
),
PLACE_HOLDER_96
(
"占位"
),
PLACE_HOLDER_97
(
"占位"
),
PLACE_HOLDER_98
(
"占位"
),
PLACE_HOLDER_99
(
"占位"
),
/**
* 资金方相关
*/
// 等待资金方放款 : 100
WAITING_MASHANG_FUND
(
"等待马上金融放款"
),
// 100, 发邮件前查询使用
// 已提交给资金方等待放款 : 101
SENDED_TO_FUND_CORP
(
"已提交给资金方"
),
// category 10x
PLACE_HOLDER_102
(
"占位"
),
PLACE_HOLDER_103
(
"占位"
),
PLACE_HOLDER_104
(
"占位"
),
PLACE_HOLDER_105
(
"占位"
),
PLACE_HOLDER_106
(
"占位"
),
PLACE_HOLDER_107
(
"占位"
),
PLACE_HOLDER_108
(
"占位"
),
PLACE_HOLDER_109
(
"占位"
),
JD_BANDCARD_FAIL
(
"京东绑卡失败"
)
//110 京东绑卡失败状态
;
private
String
description
;
LoanProgress
(
String
description
)
{
this
.
description
=
description
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
@Override
public
String
toString
()
{
return
description
;
}
/**
* 获取审核拒绝状态
* @return
*/
public
static
Set
<
LoanProgress
>
getCheckReject
(){
return
Sets
.
newHashSet
(
LoanProgress
.
FILTERING_DECLINED
,
LoanProgress
.
PRE_SCREENING_REJECT
,
LoanProgress
.
FINAL_SCREENING_REJECT
,
LoanProgress
.
FILTERED_BY_BLACKLIST
);
}
/**
* 获取推送订单状态
* @return
*/
public
static
Set
<
LoanProgress
>
getFeedBackOrderStatus
(){
return
Sets
.
newHashSet
(
LoanProgress
.
WAITING_FUND
,
LoanProgress
.
FINAL_SEND_TO_MASHANG_BEFORE_APPROVAL
,
LoanProgress
.
FINAL_FUNDED_APPROVAL_FAIL
,
LoanProgress
.
CHECK_REPAYMENT_PLAN
,
LoanProgress
.
LOAN_COMPLETE
);
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/ClfCallbackConfigurationRepository.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfCallbackConfiguration
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* function:
* date: 2019/8/7
*
* @author: suntao
*/
public
interface
ClfCallbackConfigurationRepository
extends
JpaRepository
<
ClfCallbackConfiguration
,
Long
>
{
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/ChannelConfigurationRepository.java
→
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/C
lfC
hannelConfigurationRepository.java
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.C
lfC
hannelConfiguration
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
@Repository
@Repository
public
interface
C
hannelConfigurationRepository
extends
PagingAndSortingRepository
<
ChannelConfiguration
,
Long
>,
JpaSpecificationExecutor
<
ChannelConfiguration
>
{
public
interface
C
lfChannelConfigurationRepository
extends
PagingAndSortingRepository
<
ClfChannelConfiguration
,
Long
>,
JpaSpecificationExecutor
<
Clf
ChannelConfiguration
>
{
ClfChannelConfiguration
findByRegisteredFrom
(
Long
channelId
);
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/clf/repository/ClfOrderCallbackRepository.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
clf
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderCallBack
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* function:
* date: 2019/8/7
*
* @author: suntao
*/
public
interface
ClfOrderCallbackRepository
extends
JpaRepository
<
ClfOrderCallBack
,
Long
>
{
}
src/main/java/cn/quantgroup/cashloanflowboss/utils/IgnorePropertiesUtil.java
0 → 100644
View file @
0aeda08d
package
cn
.
quantgroup
.
cashloanflowboss
.
utils
;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
import
java.beans.PropertyDescriptor
;
import
java.util.HashSet
;
import
java.util.Set
;
/**
* function:
* date: 2019/8/7
*
* @author: suntao
*/
public
class
IgnorePropertiesUtil
{
public
static
String
[]
getNullPropertyNames
(
Object
source
)
{
BeanWrapper
src
=
new
BeanWrapperImpl
(
source
);
PropertyDescriptor
[]
pds
=
src
.
getPropertyDescriptors
();
Set
<
String
>
emptyNames
=
new
HashSet
<>();
for
(
PropertyDescriptor
pd
:
pds
)
{
Object
srcValue
=
src
.
getPropertyValue
(
pd
.
getName
());
if
(
srcValue
==
null
)
{
emptyNames
.
add
(
pd
.
getName
());
}
}
return
emptyNames
.
toArray
(
new
String
[
emptyNames
.
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