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
fc861264
Commit
fc861264
authored
Sep 27, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
service 改造
parent
66e78e68
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
318 additions
and
244 deletions
+318
-244
OrderServiceImpl.java
.../cashloanflowboss/api/order/service/OrderServiceImpl.java
+1
-0
UserController.java
.../cashloanflowboss/api/user/controller/UserController.java
+8
-4
UserService.java
...tgroup/cashloanflowboss/api/user/service/UserService.java
+3
-0
UserServiceImpl.java
...up/cashloanflowboss/api/user/service/UserServiceImpl.java
+24
-1
JolyneServiceImpl.java
...tgroup/cashloanflowboss/spi/jolyne/JolyneServiceImpl.java
+1
-0
XyqbUserService.java
...up/cashloanflowboss/spi/user/service/XyqbUserService.java
+0
-7
XyqbUserServiceImpl.java
...ashloanflowboss/spi/user/service/XyqbUserServiceImpl.java
+0
-37
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+30
-195
XYQBCenterServiceImpl.java
...hloanflowboss/spi/xyqb/service/XYQBCenterServiceImpl.java
+251
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
fc861264
...
...
@@ -31,6 +31,7 @@ import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.Contract;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.LoanApplicationHistory
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.CancelPreLoanRepository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterServiceImpl
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
cn.quantgroup.user.retbean.XUser
;
import
com.alibaba.fastjson.JSONObject
;
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/controller/UserController.java
View file @
fc861264
...
...
@@ -5,14 +5,17 @@ import cn.quantgroup.cashloanflowboss.api.user.model.Pagination;
import
cn.quantgroup.cashloanflowboss.api.user.model.RegisterUserFormModel
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserService
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserServiceImpl
;
import
cn.quantgroup.cashloanflowboss.component.security.Authority
;
import
cn.quantgroup.cashloanflowboss.component.security.annotiation.Security
;
import
cn.quantgroup.cashloanflowboss.component.validator.constraints.NotEmpty
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
import
javax.validation.Valid
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
...
...
@@ -32,10 +35,11 @@ import org.springframework.web.bind.annotation.RestController;
public
class
UserController
{
@Autowired
private
UserService
Impl
userService
;
private
UserService
userService
;
@Autowired
private
XyqbUserService
xyqbUserService
;
/**
* 注册用户
*
...
...
@@ -121,8 +125,8 @@ public class UserController {
@PutMapping
(
"/order/clean"
)
@Security
(
authorityId
=
"User.cleanUserOrder"
)
public
Result
<
Boolean
>
cleanUserOrder
(
@RequestParam
@Valid
@NotEmpty
(
message
=
"无效的用户手机号"
)
String
mobile
)
{
Tuple
<
Boolean
,
String
>
result
=
this
.
xyqbUserService
.
cleanUser
Order
(
mobile
);
return
Result
.
buildSuccess
(
result
.
getKey
(),
result
.
getValue
());
Tuple
<
Boolean
,
String
>
result
=
userService
.
cleanUserActive
Order
(
mobile
);
return
Result
.
buildSuccess
(
result
.
getKey
(),
result
.
getValue
());
}
/**
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/service/UserService.java
View file @
fc861264
...
...
@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.user.service;
import
cn.quantgroup.cashloanflowboss.api.user.entity.User
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
org.springframework.data.domain.Page
;
/**
...
...
@@ -29,4 +30,6 @@ public interface UserService {
UserDetailInfo
getUserDetailInfo
();
User
saveUserInfo
(
UserInfoModel
user
);
Tuple
<
Boolean
,
String
>
cleanUserActiveOrder
(
String
mobile
);
}
src/main/java/cn/quantgroup/cashloanflowboss/api/user/service/UserServiceImpl.java
View file @
fc861264
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
user
.
service
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName
;
import
cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus
;
import
cn.quantgroup.cashloanflowboss.api.user.entity.User
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel
;
import
cn.quantgroup.cashloanflowboss.api.user.repository.UserRepository
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.utils.MD5Tools
;
import
cn.quantgroup.user.retbean.XUser
;
import
cn.quantgroup.user.vo.UserSysResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -17,7 +24,6 @@ import org.springframework.data.domain.Page;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.stereotype.Service
;
import
java.util.HashSet
;
import
java.util.Objects
;
/**
...
...
@@ -29,6 +35,12 @@ public class UserServiceImpl implements UserService{
@Autowired
private
UserRepository
userRepository
;
@Autowired
private
XYQBCenterService
xyqbCenterService
;
@Autowired
private
XyqbUserService
xyqbUserService
;
/**
* 创建用户
...
...
@@ -160,4 +172,15 @@ public class UserServiceImpl implements UserService{
user1
.
setRoles
(
userInfoModel
.
getRoles
());
return
userRepository
.
save
(
user1
);
}
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
USER_ORDER_CLEAN
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
public
Tuple
<
Boolean
,
String
>
cleanUserActiveOrder
(
String
mobile
)
{
XUser
user
=
xyqbUserService
.
findUserByPhoneNo
(
mobile
);
if
(
user
==
null
)
{
log
.
info
(
"cleanUserOrder,清除用户活跃订单失败,未找到用户 phoneNo={}"
,
mobile
);
return
new
Tuple
<>(
false
,
"清除用户活跃订单失败,未找到用户"
);
}
return
xyqbCenterService
.
cleanUserActiveOrder
(
user
.
getId
());
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/jolyne/JolyneServiceImpl.java
View file @
fc861264
...
...
@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.spi.jolyne;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.WaitingFundingCorpOperatePeople
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterServiceImpl
;
import
com.google.common.collect.Lists
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/user/service/XyqbUserService.java
View file @
fc861264
...
...
@@ -53,13 +53,6 @@ public interface XyqbUserService {
UserInfo
findUserByUuid
(
String
uuid
);
/**
* 清除用户活跃订单
* @param phoneNo
* @return
*/
Tuple
<
Boolean
,
String
>
cleanUserOrder
(
String
phoneNo
);
/**
* 删除记录
*/
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/user/service/XyqbUserServiceImpl.java
View file @
fc861264
...
...
@@ -42,10 +42,6 @@ public class XyqbUserServiceImpl implements XyqbUserService {
@Autowired
private
UserSysService
userSysService
;
@Autowired
private
HttpService
httpService
;
@Autowired
private
JolyneCenter
jolyneCenter
;
@Autowired
private
UserDetailRepository
userDetailRepository
;
@Autowired
private
UserExtInfoRepository
userExtInfoRepository
;
...
...
@@ -53,7 +49,6 @@ public class XyqbUserServiceImpl implements XyqbUserService {
private
StringRedisTemplate
redisTemplate
;
@Value
(
"${passportapi.http}"
)
private
String
passportapiHttp
;
private
static
final
ObjectMapper
MAPPER
=
new
ObjectMapper
();
...
...
@@ -128,10 +123,6 @@ public class XyqbUserServiceImpl implements XyqbUserService {
}
}
/**
* 用户detail信息
*/
@Override
public
UserInfo
findUserByUuid
(
String
uuid
)
{
UserSysResult
<
UserInfo
>
userInfo
=
userSysService
.
getService
().
findUserInfoByUuid
(
uuid
);
...
...
@@ -142,34 +133,6 @@ public class XyqbUserServiceImpl implements XyqbUserService {
}
/**
* 清除用户活跃订单
* @param phoneNo
* @return
*/
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
USER_ORDER_CLEAN
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
public
Tuple
<
Boolean
,
String
>
cleanUserOrder
(
String
phoneNo
){
UserSysResult
<
XUser
>
xUser
=
userSysService
.
getService
().
findUserByPhoneNo
(
phoneNo
);
if
(
xUser
==
null
||
xUser
.
getData
()
==
null
)
{
LOGGER
.
info
(
"cleanUserOrder,清除用户活跃订单失败,未找到用户 phoneNo={}"
,
phoneNo
);
return
new
Tuple
<>(
false
,
"清除用户活跃订单失败,未找到用户"
);
}
Long
userId
=
xUser
.
getData
().
getId
();
ConcurrentMap
<
Object
,
Object
>
data
=
Maps
.
newConcurrentMap
();
ArrayList
<
Object
>
cancel_list
=
Lists
.
newArrayList
();
cancel_list
.
add
(
"update xyqb.quota_credit set is_active=0 where user_id="
+
userId
);
cancel_list
.
add
(
"update xyqb.quota_account set is_active=0 where user_id="
+
userId
);
cancel_list
.
add
(
"update xyqb.loan_application_history set progress=16 where user_id="
+
userId
);
cancel_list
.
add
(
"update xyqb.loan_application_history set is_active=0 where user_id="
+
userId
);
cancel_list
.
add
(
"delete from apply_quota_record where user_id="
+
userId
);
cancel_list
.
add
(
"delete from user_operation_history where user_id="
+
userId
);
data
.
put
(
"sql"
,
cancel_list
);
String
cancel_result
=
jolyneCenter
.
executeXYQBSQL
(
JSONTools
.
serialize
(
data
));
JSONObject
resp
=
JSONObject
.
parseObject
(
cancel_result
);
boolean
result
=
(
Objects
.
nonNull
(
resp
)
&&
resp
.
containsKey
(
"code"
))
?
"0000"
.
equals
(
resp
.
get
(
"code"
))
:
false
;
return
new
Tuple
<>(
result
,
result
?
"清除用户活跃订单成功"
:
"清除用户活跃订单失败"
);
}
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
USER_INFO_CLEAN
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
public
Tuple
<
Boolean
,
String
>
deleteByUserId
(
String
phoneNo
)
{
try
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
fc861264
...
...
@@ -2,214 +2,49 @@ package cn.quantgroup.cashloanflowboss.spi.xyqb.service;
import
cn.quantgroup.cashloanflowboss.api.order.model.XyqbCurrentOrderStatusServiceResultModel
;
import
cn.quantgroup.cashloanflowboss.api.order.model.XyqbHistoryOrderStatusServiceResultModel
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.base.ServiceResult
;
import
cn.quantgroup.cashloanflowboss.
spi.xyqb.client.XYQBCenter
;
import
cn.quantgroup.cashloanflowboss.
core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil
;
import
cn.quantgroup.cashloanflowboss.utils.DateUtil
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.transaction.Transactional
;
import
java.util.Date
;
import
java.util.Map
;
/**
* Created by WeiWei on 2019/8/12.
* function:
* date: 2019/9/27
*
* @author: suntao
*/
@Slf4j
@Service
public
class
XYQBCenterService
{
@Autowired
private
WaitingFundingCorpOperatePeopleRepository
waitingFundingCorpOperatePeopleRepository
;
@Autowired
private
ContractRepository
contractRepository
;
@Autowired
private
CancelPreLoanRepository
cancelPreLoanRepository
;
@Autowired
private
FundingCorpPolicyRepository
fundingCorpPolicyRepository
;
@Autowired
private
FundingAssetAllocationsProgramsRepository
fundingAssetAllocationsProgramsRepository
;
@Autowired
private
LoanApplicationHistoryRepository
loanApplicationHistoryRepository
;
@Autowired
private
XYQBCenter
xyqbCenter
;
/**
* 更新合同状态
*
* @param userId
* @return
*/
public
int
updateContractStatus
(
Long
userId
,
Integer
status
)
{
return
this
.
contractRepository
.
updateContractStatus
(
userId
,
status
);
}
/**
* 查询放款记录
*
* @param fundId
* @return
*/
public
Map
queryLendingRecordCount
(
Long
fundId
)
{
return
this
.
waitingFundingCorpOperatePeopleRepository
.
queryLendingRecordCount
(
fundId
);
}
/**
* 贷前取消借款
* @param channelOrderNumber
* @return
*/
public
Long
cancelPreLoan
(
String
channelOrderNumber
)
{
if
(
Application
.
isDebug
())
{
return
cancelPreLoanRepository
.
cancelPreLoan
(
channelOrderNumber
);
}
else
{
return
-
1L
;
}
}
/**
* 通过userId获取合同
* @param userId
* @return
*/
public
Contract
findContractByUserId
(
Long
userId
)
{
return
contractRepository
.
findByUserIdLastOne
(
userId
);
}
/**
* 保存合同
* @param contract
*/
public
void
saveContract
(
Contract
contract
)
{
if
(
Application
.
isDebug
())
{
contractRepository
.
save
(
contract
);
}
}
public
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
)
{
return
waitingFundingCorpOperatePeopleRepository
.
findByLoanApplicationHistoryId
(
loanId
);
}
public
interface
XYQBCenterService
{
int
updateContractStatus
(
Long
userId
,
Integer
status
);
Map
queryLendingRecordCount
(
Long
fundId
);
Long
cancelPreLoan
(
String
channelOrderNumber
);
Contract
findContractByUserId
(
Long
userId
);
void
saveContract
(
Contract
contract
);
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
);
@Transactional
public
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
)
{
if
(
Application
.
isDebug
())
{
waitingFundingCorpOperatePeopleRepository
.
saveAndFlush
(
waitingFundingCorpOperatePeople
);
}
}
/**
* 通过资方id 查找资产计划开关
* @param corpPolicyId
* @return
*/
public
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
)
{
return
fundingCorpPolicyRepository
.
findByFundingCorpId
(
corpPolicyId
);
}
/**
*
* @param corpPolicyId 资方id
* @param planDate 资产计划日期 精确到天
* @return
*/
public
FundingAssetAllocationsPrograms
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
Long
corpPolicyId
,
String
planDate
)
{
return
fundingAssetAllocationsProgramsRepository
.
findByFundCorpIdAndPlanDate
(
corpPolicyId
,
planDate
);
}
public
LoanApplicationHistory
findLoanApplicationHistoryById
(
Long
loanId
)
{
return
loanApplicationHistoryRepository
.
findById
(
loanId
);
}
/**
* 验证资产计划 是否有效
* @param corpPolicyId
* @param planDate 日期 只能要天
* @return
*/
public
Boolean
validateCorpPolicy
(
Long
corpPolicyId
,
Date
planDate
)
{
Boolean
isValidate
=
true
;
FundingCorpPolicy
fundingCorpPolicy
=
findFundingCorpPolicyByCorpPolicyId
(
corpPolicyId
);
isValidate
=
isValidate
&
fundingCorpPolicy
.
getIsAutoAssign
()
&
fundingCorpPolicy
.
getIsAutoLoan
();
FundingAssetAllocationsPrograms
fundingAssetAllocationsPrograms
=
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
corpPolicyId
,
DateUtil
.
format
(
planDate
,
DateUtil
.
YYYY_MM_DD
));
return
isValidate
&
(
fundingAssetAllocationsPrograms
!=
null
);
}
/**
* 查询订单当前状态
* @param creditOrderNumber
* @param loanId
* @return
*/
public
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
getXyqbOrderStatus
(
String
creditOrderNumber
,
Long
loanId
)
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
creditOrderNumber
);
if
(
loanId
!=
null
&&
loanId
>
1
)
{
paramMap
.
put
(
"loanId"
,
loanId
);
}
paramMap
=
SignUtil
.
sign
(
SignUtil
.
KA_API_KEY
,
paramMap
);
final
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
orderStatus
=
xyqbCenter
.
getOrderStatus
(
paramMap
);
log
.
info
(
"[getXyqbOrderStatus]xyqb订单状态查询,creditOrderNumber={},result={}"
,
creditOrderNumber
,
JSONTools
.
serialize
(
orderStatus
));
return
orderStatus
;
}
/**
* 查询订单当前状态
* @param creditOrderNumber
* @param loanId
* @return
*/
public
ServiceResult
<
XyqbHistoryOrderStatusServiceResultModel
>
getXyqbOrderHistoryStatus
(
String
creditOrderNumber
,
Long
loanId
)
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
creditOrderNumber
);
if
(
loanId
!=
null
)
{
paramMap
.
put
(
"loanId"
,
loanId
);
}
paramMap
=
SignUtil
.
sign
(
SignUtil
.
KA_API_KEY
,
paramMap
);
return
xyqbCenter
.
getXyqbOrderHistoryStatus
(
paramMap
);
}
/**
* 放款 放款结果通知
* @param loanId 订单loanId
* @param expectPayResult 期望放款结果 true 放款成功 false 放款失败
* @return
*/
public
boolean
payResultNotify
(
Long
loanId
,
Boolean
expectPayResult
)
{
if
(
Application
.
isDebug
())
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
loanId
);
paramMap
.
put
(
"payOrderNo"
,
loanId
);
paramMap
.
put
(
"payTime"
,
""
);
paramMap
.
put
(
"payStatus"
,
expectPayResult
?
3
:
4
);
String
result
=
xyqbCenter
.
pushLendingResult
(
paramMap
);
log
.
info
(
"[放款结果通知]xyqb返回结果result={}"
,
result
);
return
"success"
.
equals
(
result
)
||
"SUCCESS"
.
equals
(
result
);
}
else
{
return
false
;
}
}
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
);
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
);
FundingAssetAllocationsPrograms
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
Long
corpPolicyId
,
String
planDate
);
LoanApplicationHistory
findLoanApplicationHistoryById
(
Long
loanId
);
Boolean
validateCorpPolicy
(
Long
corpPolicyId
,
Date
planDate
);
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
getXyqbOrderStatus
(
String
creditOrderNumber
,
Long
loanId
);
ServiceResult
<
XyqbHistoryOrderStatusServiceResultModel
>
getXyqbOrderHistoryStatus
(
String
creditOrderNumber
,
Long
loanId
);
boolean
payResultNotify
(
Long
loanId
,
Boolean
expectPayResult
);
Tuple
<
Boolean
,
String
>
cleanUserActiveOrder
(
Long
userId
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterServiceImpl.java
0 → 100644
View file @
fc861264
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
service
;
import
cn.quantgroup.cashloanflowboss.api.order.model.XyqbCurrentOrderStatusServiceResultModel
;
import
cn.quantgroup.cashloanflowboss.api.order.model.XyqbHistoryOrderStatusServiceResultModel
;
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.jolyne.JolyneCenter
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.JolyneUtil
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.client.XYQBCenter
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil
;
import
cn.quantgroup.cashloanflowboss.utils.DateUtil
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.transaction.Transactional
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.concurrent.ConcurrentMap
;
/**
* Created by WeiWei on 2019/8/12.
*/
@Slf4j
@Service
public
class
XYQBCenterServiceImpl
implements
XYQBCenterService
{
@Autowired
private
WaitingFundingCorpOperatePeopleRepository
waitingFundingCorpOperatePeopleRepository
;
@Autowired
private
ContractRepository
contractRepository
;
@Autowired
private
CancelPreLoanRepository
cancelPreLoanRepository
;
@Autowired
private
FundingCorpPolicyRepository
fundingCorpPolicyRepository
;
@Autowired
private
FundingAssetAllocationsProgramsRepository
fundingAssetAllocationsProgramsRepository
;
@Autowired
private
LoanApplicationHistoryRepository
loanApplicationHistoryRepository
;
@Autowired
private
JolyneCenter
jolyneCenter
;
@Autowired
private
XYQBCenter
xyqbCenter
;
/**
* 更新合同状态
*
* @param userId
* @return
*/
@Override
public
int
updateContractStatus
(
Long
userId
,
Integer
status
)
{
return
this
.
contractRepository
.
updateContractStatus
(
userId
,
status
);
}
/**
* 查询放款记录
*
* @param fundId
* @return
*/
@Override
public
Map
queryLendingRecordCount
(
Long
fundId
)
{
return
this
.
waitingFundingCorpOperatePeopleRepository
.
queryLendingRecordCount
(
fundId
);
}
/**
* 贷前取消借款
* @param channelOrderNumber
* @return
*/
@Override
public
Long
cancelPreLoan
(
String
channelOrderNumber
)
{
if
(
Application
.
isDebug
())
{
return
cancelPreLoanRepository
.
cancelPreLoan
(
channelOrderNumber
);
}
else
{
return
-
1L
;
}
}
/**
* 通过userId获取合同
* @param userId
* @return
*/
@Override
public
Contract
findContractByUserId
(
Long
userId
)
{
return
contractRepository
.
findByUserIdLastOne
(
userId
);
}
/**
* 保存合同
* @param contract
*/
@Override
public
void
saveContract
(
Contract
contract
)
{
if
(
Application
.
isDebug
())
{
contractRepository
.
save
(
contract
);
}
}
@Override
public
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeopleByLoanId
(
Long
loanId
)
{
return
waitingFundingCorpOperatePeopleRepository
.
findByLoanApplicationHistoryId
(
loanId
);
}
@Override
@Transactional
public
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
)
{
if
(
Application
.
isDebug
())
{
waitingFundingCorpOperatePeopleRepository
.
saveAndFlush
(
waitingFundingCorpOperatePeople
);
}
}
/**
* 通过资方id 查找资产计划开关
* @param corpPolicyId
* @return
*/
@Override
public
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
)
{
return
fundingCorpPolicyRepository
.
findByFundingCorpId
(
corpPolicyId
);
}
/**
*
* @param corpPolicyId 资方id
* @param planDate 资产计划日期 精确到天
* @return
*/
@Override
public
FundingAssetAllocationsPrograms
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
Long
corpPolicyId
,
String
planDate
)
{
return
fundingAssetAllocationsProgramsRepository
.
findByFundCorpIdAndPlanDate
(
corpPolicyId
,
planDate
);
}
@Override
public
LoanApplicationHistory
findLoanApplicationHistoryById
(
Long
loanId
)
{
return
loanApplicationHistoryRepository
.
findById
(
loanId
);
}
/**
* 验证资产计划 是否有效
* @param corpPolicyId
* @param planDate 日期 只能要天
* @return
*/
@Override
public
Boolean
validateCorpPolicy
(
Long
corpPolicyId
,
Date
planDate
)
{
Boolean
isValidate
=
true
;
FundingCorpPolicy
fundingCorpPolicy
=
findFundingCorpPolicyByCorpPolicyId
(
corpPolicyId
);
isValidate
=
isValidate
&
fundingCorpPolicy
.
getIsAutoAssign
()
&
fundingCorpPolicy
.
getIsAutoLoan
();
FundingAssetAllocationsPrograms
fundingAssetAllocationsPrograms
=
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
corpPolicyId
,
DateUtil
.
format
(
planDate
,
DateUtil
.
YYYY_MM_DD
));
return
isValidate
&
(
fundingAssetAllocationsPrograms
!=
null
);
}
/**
* 查询订单当前状态
* @param creditOrderNumber
* @param loanId
* @return
*/
@Override
public
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
getXyqbOrderStatus
(
String
creditOrderNumber
,
Long
loanId
)
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
creditOrderNumber
);
if
(
loanId
!=
null
&&
loanId
>
1
)
{
paramMap
.
put
(
"loanId"
,
loanId
);
}
paramMap
=
SignUtil
.
sign
(
SignUtil
.
KA_API_KEY
,
paramMap
);
final
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
orderStatus
=
xyqbCenter
.
getOrderStatus
(
paramMap
);
log
.
info
(
"[getXyqbOrderStatus]xyqb订单状态查询,creditOrderNumber={},result={}"
,
creditOrderNumber
,
JSONTools
.
serialize
(
orderStatus
));
return
orderStatus
;
}
/**
* 查询订单当前状态
* @param creditOrderNumber
* @param loanId
* @return
*/
@Override
public
ServiceResult
<
XyqbHistoryOrderStatusServiceResultModel
>
getXyqbOrderHistoryStatus
(
String
creditOrderNumber
,
Long
loanId
)
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
creditOrderNumber
);
if
(
loanId
!=
null
)
{
paramMap
.
put
(
"loanId"
,
loanId
);
}
paramMap
=
SignUtil
.
sign
(
SignUtil
.
KA_API_KEY
,
paramMap
);
return
xyqbCenter
.
getXyqbOrderHistoryStatus
(
paramMap
);
}
/**
* 放款 放款结果通知
* @param loanId 订单loanId
* @param expectPayResult 期望放款结果 true 放款成功 false 放款失败
* @return
*/
@Override
public
boolean
payResultNotify
(
Long
loanId
,
Boolean
expectPayResult
)
{
if
(
Application
.
isDebug
())
{
Map
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"orderNo"
,
loanId
);
paramMap
.
put
(
"payOrderNo"
,
loanId
);
paramMap
.
put
(
"payTime"
,
""
);
paramMap
.
put
(
"payStatus"
,
expectPayResult
?
3
:
4
);
String
result
=
xyqbCenter
.
pushLendingResult
(
paramMap
);
log
.
info
(
"[放款结果通知]xyqb返回结果result={}"
,
result
);
return
"success"
.
equals
(
result
)
||
"SUCCESS"
.
equals
(
result
);
}
else
{
return
false
;
}
}
@Override
public
Tuple
<
Boolean
,
String
>
cleanUserActiveOrder
(
Long
userId
)
{
ArrayList
<
String
>
cancelList
=
Lists
.
newArrayList
();
cancelList
.
add
(
"update xyqb.quota_credit set is_active=0 where user_id="
+
userId
);
cancelList
.
add
(
"update xyqb.quota_account set is_active=0 where user_id="
+
userId
);
cancelList
.
add
(
"update xyqb.loan_application_history set progress=16 where user_id="
+
userId
);
cancelList
.
add
(
"update xyqb.loan_application_history set is_active=0 where user_id="
+
userId
);
cancelList
.
add
(
"delete from apply_quota_record where user_id="
+
userId
);
cancelList
.
add
(
"delete from user_operation_history where user_id="
+
userId
);
String
cancelResult
=
jolyneCenter
.
executeXYQBSQL
(
JolyneUtil
.
getJolneSql
(
cancelList
));
JSONObject
resp
=
JSONObject
.
parseObject
(
cancelResult
);
boolean
result
=
(
Objects
.
nonNull
(
resp
)
&&
resp
.
containsKey
(
"code"
))
?
"0000"
.
equals
(
resp
.
get
(
"code"
))
:
false
;
return
new
Tuple
<>(
result
,
result
?
"清除用户活跃订单成功"
:
"清除用户活跃订单失败"
);
}
}
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