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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
胡慧
cash-loan-flow-boss
Commits
1ca59fdd
Commit
1ca59fdd
authored
Sep 20, 2019
by
王俊权
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/v1' into v1
parents
fa11dbeb
7380332b
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
435 additions
and
157 deletions
+435
-157
Bootstrap.java
src/main/java/cn/quantgroup/cashloanflowboss/Bootstrap.java
+2
-0
Principal.java
...uantgroup/cashloanflowboss/api/login/model/Principal.java
+2
-1
LogService.java
...tgroup/cashloanflowboss/api/login/service/LogService.java
+2
-3
OrderController.java
...ashloanflowboss/api/order/controller/OrderController.java
+1
-0
OrderVo.java
.../quantgroup/cashloanflowboss/api/order/model/OrderVo.java
+1
-0
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+2
-0
OrderServiceImpl.java
.../cashloanflowboss/api/order/service/OrderServiceImpl.java
+18
-17
UserController.java
.../cashloanflowboss/api/user/controller/UserController.java
+17
-2
User.java
.../cn/quantgroup/cashloanflowboss/api/user/entity/User.java
+8
-1
UserDetailInfo.java
...group/cashloanflowboss/api/user/model/UserDetailInfo.java
+6
-2
UserInfoModel.java
...tgroup/cashloanflowboss/api/user/model/UserInfoModel.java
+63
-0
UserRepository.java
.../cashloanflowboss/api/user/repository/UserRepository.java
+8
-0
UserService.java
...tgroup/cashloanflowboss/api/user/service/UserService.java
+15
-126
UserServiceImpl.java
...up/cashloanflowboss/api/user/service/UserServiceImpl.java
+165
-0
JolyneCenter.java
.../quantgroup/cashloanflowboss/spi/jolyne/JolyneCenter.java
+20
-4
JolyneService.java
...quantgroup/cashloanflowboss/spi/jolyne/JolyneService.java
+22
-0
JolyneServiceImpl.java
...tgroup/cashloanflowboss/spi/jolyne/JolyneServiceImpl.java
+82
-0
XyqbUserServiceImpl.java
...ashloanflowboss/spi/user/service/XyqbUserServiceImpl.java
+1
-1
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/Bootstrap.java
View file @
1ca59fdd
...
...
@@ -5,6 +5,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.netflix.feign.EnableFeignClients
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
...
...
@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableAutoConfiguration
@EnableFeignClients
@EnableAsync
public
class
Bootstrap
{
public
static
void
main
(
String
[]
args
)
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/login/model/Principal.java
View file @
1ca59fdd
...
...
@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.role.entity.Role;
import
cn.quantgroup.cashloanflowboss.api.user.dictionary.UserRank
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Set
;
...
...
@@ -31,7 +32,7 @@ public class Principal {
/**
* 角色列表
*/
private
Se
t
<
Role
>
roles
;
private
Lis
t
<
Role
>
roles
;
/**
* 是否是超级管理员
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/login/service/LogService.java
View file @
1ca59fdd
...
...
@@ -3,7 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.login.service;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus
;
import
cn.quantgroup.cashloanflowboss.api.user.entity.User
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserService
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserService
Impl
;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
...
...
@@ -11,7 +11,6 @@ import cn.quantgroup.cashloanflowboss.utils.JSONTools;
import
cn.quantgroup.cashloanflowboss.utils.MD5Tools
;
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.servlet.http.HttpServletRequest
;
...
...
@@ -25,7 +24,7 @@ import javax.servlet.http.HttpSession;
public
class
LogService
{
@Autowired
private
UserService
userService
;
private
UserService
Impl
userService
;
@Autowired
private
HttpServletRequest
request
;
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/controller/OrderController.java
View file @
1ca59fdd
...
...
@@ -107,6 +107,7 @@ public class OrderController {
}
}
/**
* 贷前关单
*
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/model/OrderVo.java
View file @
1ca59fdd
...
...
@@ -38,6 +38,7 @@ public class OrderVo {
audit
(
"审批"
),
cancel
(
"贷前关单"
),
second_audit
(
"二次风控审批"
),
reload_second_audit_job
(
"刷新待放款任务"
),
pay_succ
(
"放款成功"
),
pay_fail
(
"放款失败"
),
withdraw_second
(
"存管提现"
),
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
1ca59fdd
...
...
@@ -39,4 +39,6 @@ public interface OrderService {
List
<
CallbackRecordVoModel
>
getOrderCallbackRecordList
(
String
channelOrderNumber
);
Object
findRepaymentPlan
(
String
channelOrderNumber
,
Long
loanId
);
void
loadSecondAuditJob
();
}
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
1ca59fdd
...
...
@@ -19,9 +19,8 @@ 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.client.ClothoCenter
;
import
cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.Jolyne
Center
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.Jolyne
Service
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.JolyneUtil
;
import
cn.quantgroup.cashloanflowboss.spi.opapi.OPCenter
;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
...
...
@@ -52,7 +51,6 @@ 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
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.stereotype.Service
;
...
...
@@ -88,7 +86,7 @@ public class OrderServiceImpl implements OrderService{
@Autowired
private
CLFCenterService
clfCenterService
;
@Autowired
private
Jolyne
Center
jolyneCenter
;
private
Jolyne
Service
jolyneService
;
...
...
@@ -341,15 +339,16 @@ public class OrderServiceImpl implements OrderService{
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
if
(
conscont
!=
null
)
{
if
(
conscont
.
getGenerateStatus
()
!=
2
)
{
log
.
info
(
"secondAudit,合同
为空
,channelOrderNumber="
.
concat
(
channelOrderNumber
));
log
.
info
(
"secondAudit,合同
状态不对
,channelOrderNumber="
.
concat
(
channelOrderNumber
));
optHistoryLog
.
setOptName
(
"二次审批操作"
);
optHistoryLog
.
setOptLogDetail
(
"合同
未生成
,请更换新的身份证尝试"
);
optHistoryLog
.
setOptLogDetail
(
"合同
状态不对,手动修改,可能会导致合同签章获取失败
,请更换新的身份证尝试"
);
optHistoryLog
.
setOptResult
(
false
);
optHistoryLog
.
setCreateTime
(
new
Date
());
optHistoryLogService
.
save
(
optHistoryLog
);
// conscont.setGenerateStatus(2);
// xyqbCenterService.saveContract(conscont);
// 修改合同状态
ArrayList
<
String
>
updateContract
=
Lists
.
newArrayList
();
updateContract
.
add
(
"update contract set generate_status = 2 where user_id = "
+
orderMapping
.
getQgUserId
()
+
";"
);
jolyneService
.
executeXYQBSQL
(
JolyneUtil
.
getJolneSql
(
updateContract
));
}
}
else
{
// 合同为空 log表记录问题,UI用户查询
...
...
@@ -400,11 +399,7 @@ public class OrderServiceImpl implements OrderService{
result
=
true
;
}
// 更新待放款时间(5分钟之前)
ArrayList
<
String
>
updateWaitingFundingCorpOperatePeople
=
Lists
.
newArrayList
();
updateWaitingFundingCorpOperatePeople
.
add
(
"update waiting_funding_corp_operate_people set created_at = DATE_SUB(created_at, interval 5 minute) where loan_application_history_id = "
+
orderMapping
.
getLoanId
()
+
";"
);
jolyneCenter
.
sqlXyqb
(
JolyneUtil
.
getJolneSql
(
updateWaitingFundingCorpOperatePeople
));
jolyneService
.
delayUpdateWaitingXyqbSql
(
orderMapping
.
getLoanId
(),
200L
);
optHistoryLog
.
setOptLogDetail
(
"二次风控操作成功"
);
optHistoryLog
.
setOptResult
(
true
);
...
...
@@ -487,13 +482,13 @@ public class OrderServiceImpl implements OrderService{
public
boolean
cancel
(
OrderVo
orderVo
)
{
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
orderVo
.
getChannelOrderNumber
());
if
(
orderMapping
==
null
)
{
log
.
info
(
"
sqlXyqb
,关单失败,无订单 channelOrderNumber={}"
,
orderVo
.
getChannelOrderNumber
());
log
.
info
(
"
executeXYQBSQL
,关单失败,无订单 channelOrderNumber={}"
,
orderVo
.
getChannelOrderNumber
());
return
false
;
}
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
if
(
xUser
==
null
)
{
log
.
info
(
"
sqlXyqb
,关单失败,未找到用户 channelOrderNumber={}"
,
orderVo
.
getChannelOrderNumber
());
log
.
info
(
"
executeXYQBSQL
,关单失败,未找到用户 channelOrderNumber={}"
,
orderVo
.
getChannelOrderNumber
());
return
false
;
}
Long
userId
=
xUser
.
getId
();
...
...
@@ -506,7 +501,7 @@ public class OrderServiceImpl implements OrderService{
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
=
jolyne
Center
.
sqlXyqb
(
JSONTools
.
serialize
(
data
));
String
cancel_result
=
jolyne
Service
.
executeXYQBSQL
(
JSONTools
.
serialize
(
data
));
return
"success"
.
equals
(
cancel_result
);
}
...
...
@@ -694,6 +689,12 @@ public class OrderServiceImpl implements OrderService{
return
null
;
}
@Override
public
void
loadSecondAuditJob
()
{
jolyneService
.
fetchDataLoanJob
();
jolyneService
.
loanDataJob
();
}
/**
* 查询订单状态
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/controller/UserController.java
View file @
1ca59fdd
...
...
@@ -4,7 +4,9 @@ import cn.quantgroup.cashloanflowboss.api.user.entity.User;
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.service.UserService
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserServiceImpl
;
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.spi.user.service.XyqbUserService
;
...
...
@@ -28,7 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
public
class
UserController
{
@Autowired
private
UserService
userService
;
private
UserService
Impl
userService
;
@Autowired
private
XyqbUserService
xyqbUserService
;
...
...
@@ -43,6 +45,19 @@ public class UserController {
return
this
.
userService
.
createUser
(
registerUserFormModel
.
getUsername
(),
registerUserFormModel
.
getPassword
());
}
/**
* 添加用户
*
* @param userInfoModel
* @return
*/
@Security
(
authorityId
=
"User.addUser"
)
@PostMapping
(
"saveUserInfo"
)
public
Result
<
User
>
saveUserInfo
(
@RequestBody
UserInfoModel
userInfoModel
)
{
User
info
=
this
.
userService
.
saveUserInfo
(
userInfoModel
);
return
Result
.
buildSuccess
(
info
);
}
/**
* 获取用户列表(分页)
*
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/entity/User.java
View file @
1ca59fdd
...
...
@@ -8,6 +8,7 @@ import lombok.Data;
import
javax.persistence.*
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
/**
...
...
@@ -24,6 +25,12 @@ public class User extends Primary {
@Column
(
name
=
"username"
)
private
String
username
;
/**
* 昵称
*/
@Column
(
name
=
"nickname"
)
private
String
nickname
;
/**
* 密码
*/
...
...
@@ -48,7 +55,7 @@ public class User extends Primary {
*/
@OneToMany
(
fetch
=
FetchType
.
EAGER
)
@JoinTable
(
name
=
"user_role_mapping"
,
joinColumns
=
@JoinColumn
(
name
=
"user_id"
),
inverseJoinColumns
=
@JoinColumn
(
name
=
"role_id"
))
private
Se
t
<
Role
>
roles
;
private
Lis
t
<
Role
>
roles
;
/**
* 用户状态
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/model/UserDetailInfo.java
View file @
1ca59fdd
...
...
@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.user.model;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
import
cn.quantgroup.cashloanflowboss.api.role.entity.Role
;
import
cn.quantgroup.cashloanflowboss.api.user.entity.User
;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
com.google.common.collect.Lists
;
...
...
@@ -33,15 +34,16 @@ public class UserDetailInfo {
public
static
class
UserInfo
{
private
Long
userId
;
private
String
userName
;
private
String
nickname
;
}
public
static
UserDetailInfo
valueOf
(
Principal
principal
)
{
public
static
UserDetailInfo
valueOf
(
Principal
principal
,
User
user
)
{
Assert
.
isNull
(
principal
,
ApplicationStatus
.
INVALID_USER
);
UserDetailInfo
userDetailInfo
=
new
UserDetailInfo
();
Long
userId
=
principal
.
getUserId
();
userDetailInfo
.
setRank
(
principal
.
getRank
().
name
());
userDetailInfo
.
setChannelId
(
principal
.
getChannelId
());
Se
t
<
Role
>
roles
=
principal
.
getRoles
();
Lis
t
<
Role
>
roles
=
principal
.
getRoles
();
if
(
null
!=
roles
&&
roles
.
size
()
>
0
)
{
RoleInfo
roleInfo
=
new
RoleInfo
();
...
...
@@ -58,6 +60,8 @@ public class UserDetailInfo {
UserInfo
userInfo
=
new
UserInfo
();
userInfo
.
setUserId
(
userId
);
userInfo
.
setNickname
(
user
.
getNickname
());
userInfo
.
setUserName
(
user
.
getUsername
());
userDetailInfo
.
setUserInfo
(
userInfo
);
return
userDetailInfo
;
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/model/UserInfoModel.java
0 → 100644
View file @
1ca59fdd
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
user
.
model
;
import
cn.quantgroup.cashloanflowboss.api.role.entity.Role
;
import
cn.quantgroup.cashloanflowboss.api.user.dictionary.UserRank
;
import
cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus
;
import
cn.quantgroup.cashloanflowboss.component.validator.constraints.NotEmpty
;
import
cn.quantgroup.cashloanflowboss.core.persistence.Primary
;
import
lombok.Data
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
/**
* Created by WeiWei on 2019/7/22.
*/
@Data
public
class
UserInfoModel
{
private
Long
id
;
/**
* 用户名
*/
@NotEmpty
(
message
=
"用户名不能为空"
)
private
String
username
;
/**
* 昵称
*/
@NotEmpty
(
message
=
"用户昵称不能为空"
)
private
String
nickname
;
/**
* 密码
*/
private
String
password
;
/**
* 渠道ID
*/
private
Long
channelId
;
/**
* 用户级别
*/
@NotNull
(
message
=
"用户级别不能为空"
)
private
UserRank
rank
;
/**
* 用户角色列表
*/
private
List
<
Role
>
roles
;
/**
* 用户状态
*/
@NotNull
(
message
=
"用户活跃状态不能为空"
)
private
UserStatus
status
;
}
src/main/java/cn/quantgroup/cashloanflowboss/api/user/repository/UserRepository.java
View file @
1ca59fdd
...
...
@@ -22,6 +22,14 @@ public interface UserRepository extends PagingAndSortingRepository<User, String>
*/
User
getUserByUsername
(
String
username
);
/**
* 获取用户
*
* @param id
* @return
*/
User
findById
(
Long
id
);
/**
* 获取用户列表(分页)
*
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/user/service/UserService.java
View file @
1ca59fdd
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
user
.
service
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
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.repository.UserRepository
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.utils.MD5Tools
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
/**
* Created by WeiWei on 2019/7/22.
*/
@Slf4j
@Service
public
class
UserService
{
@Autowired
private
UserRepository
userRepository
;
/**
* 创建用户
* function:
* date: 2019/9/19
*
* @param username 用户名
* @param password 登录密码(明文)
* @return
* @author: suntao
*/
public
boolean
createUser
(
String
username
,
String
password
)
{
User
user
=
new
User
();
user
.
setUsername
(
username
);
user
.
setPassword
(
MD5Tools
.
md5
(
password
));
user
.
setStatus
(
UserStatus
.
ENABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 获取用户
*
* @param username 用户名
* @return
*/
public
User
getUser
(
String
username
)
{
return
this
.
userRepository
.
getUserByUsername
(
username
);
}
/**
* 获取用户列表(分页)
*
* @param pageNumber
* @param pageSize
* @return
*/
public
Page
<
User
>
getUsers
(
Integer
pageNumber
,
Integer
pageSize
)
{
return
this
.
userRepository
.
findAllBy
(
new
PageRequest
(
pageNumber
,
pageSize
));
}
/**
* 启用用户
*
* @param id 用户ID
* @return
*/
public
boolean
enableUser
(
String
id
)
{
User
user
=
this
.
userRepository
.
findOne
(
id
);
public
interface
UserService
{
boolean
createUser
(
String
username
,
String
password
);
// 检查用户是否存在
Assert
.
isNull
(
user
,
ApplicationStatus
.
INVALID_USER
);
User
getUser
(
String
username
);
user
.
setStatus
(
UserStatus
.
ENABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 禁用用户
*
* @param id 用户ID
* @return
*/
public
boolean
disableUser
(
String
id
)
{
User
user
=
this
.
userRepository
.
findOne
(
id
);
// 检查用户是否存在
Assert
.
isNull
(
user
,
ApplicationStatus
.
INVALID_USER
);
user
.
setStatus
(
UserStatus
.
DISABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 更新用户
*
* @param user
* @return
*/
public
User
updateUser
(
User
user
)
{
return
this
.
userRepository
.
save
(
user
);
}
/**
* 移除用户
*
* @param id 用户ID
* @return
*/
public
Boolean
removeUser
(
String
id
)
{
Page
<
User
>
getUsers
(
Integer
pageNumber
,
Integer
pageSize
);
try
{
this
.
userRepository
.
delete
(
id
);
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
boolean
enableUser
(
String
id
);
return
false
;
boolean
disableUser
(
String
id
)
;
}
User
updateUser
(
User
user
);
public
UserDetailInfo
getUserDetailInfo
()
{
Principal
principal
=
Application
.
getPrincipal
();
Assert
.
isNull
(
principal
,
ApplicationStatus
.
INVALID_USER
);
Boolean
removeUser
(
String
id
);
return
UserDetailInfo
.
valueOf
(
principal
);
}
UserDetailInfo
getUserDetailInfo
();
User
saveUserInfo
(
UserInfoModel
user
);
}
src/main/java/cn/quantgroup/cashloanflowboss/api/user/service/UserServiceImpl.java
0 → 100644
View file @
1ca59fdd
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
user
.
service
;
import
cn.quantgroup.cashloanflowboss.api.login.model.Principal
;
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.asserts.Assert
;
import
cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus
;
import
cn.quantgroup.cashloanflowboss.utils.MD5Tools
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
/**
* Created by WeiWei on 2019/7/22.
*/
@Slf4j
@Service
public
class
UserServiceImpl
implements
UserService
{
@Autowired
private
UserRepository
userRepository
;
/**
* 创建用户
*
* @param username 用户名
* @param password 登录密码(明文)
* @return
*/
@Override
public
boolean
createUser
(
String
username
,
String
password
)
{
User
user
=
new
User
();
user
.
setUsername
(
username
);
user
.
setPassword
(
MD5Tools
.
md5
(
password
));
user
.
setStatus
(
UserStatus
.
ENABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 获取用户
*
* @param username 用户名
* @return
*/
@Override
public
User
getUser
(
String
username
)
{
return
this
.
userRepository
.
getUserByUsername
(
username
);
}
/**
* 获取用户列表(分页)
*
* @param pageNumber
* @param pageSize
* @return
*/
@Override
public
Page
<
User
>
getUsers
(
Integer
pageNumber
,
Integer
pageSize
)
{
return
this
.
userRepository
.
findAllBy
(
new
PageRequest
(
pageNumber
,
pageSize
));
}
/**
* 启用用户
*
* @param id 用户ID
* @return
*/
@Override
public
boolean
enableUser
(
String
id
)
{
User
user
=
this
.
userRepository
.
findOne
(
id
);
// 检查用户是否存在
Assert
.
isNull
(
user
,
ApplicationStatus
.
INVALID_USER
);
user
.
setStatus
(
UserStatus
.
ENABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 禁用用户
*
* @param id 用户ID
* @return
*/
@Override
public
boolean
disableUser
(
String
id
)
{
User
user
=
this
.
userRepository
.
findOne
(
id
);
// 检查用户是否存在
Assert
.
isNull
(
user
,
ApplicationStatus
.
INVALID_USER
);
user
.
setStatus
(
UserStatus
.
DISABLED
);
return
Objects
.
nonNull
(
this
.
userRepository
.
save
(
user
));
}
/**
* 更新用户
*
* @param user
* @return
*/
@Override
public
User
updateUser
(
User
user
)
{
return
this
.
userRepository
.
save
(
user
);
}
/**
* 移除用户
*
* @param id 用户ID
* @return
*/
@Override
public
Boolean
removeUser
(
String
id
)
{
try
{
this
.
userRepository
.
delete
(
id
);
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
false
;
}
@Override
public
UserDetailInfo
getUserDetailInfo
()
{
Principal
principal
=
Application
.
getPrincipal
();
Assert
.
isNull
(
principal
,
ApplicationStatus
.
INVALID_USER
);
User
user
=
userRepository
.
findById
(
principal
.
getUserId
());
return
UserDetailInfo
.
valueOf
(
principal
,
user
);
}
@Override
public
User
saveUserInfo
(
UserInfoModel
userInfoModel
)
{
User
user1
=
new
User
();
BeanUtils
.
copyProperties
(
userInfoModel
,
user1
);
user1
.
setPassword
(
MD5Tools
.
md5
(
userInfoModel
.
getUsername
()));
user1
.
setRoles
(
userInfoModel
.
getRoles
());
return
userRepository
.
save
(
user1
);
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/jolyne/JolyneCenter.java
View file @
1ca59fdd
...
...
@@ -2,23 +2,39 @@ package cn.quantgroup.cashloanflowboss.spi.jolyne;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
@Component
@FeignClient
(
name
=
"JolyneServiceCenter"
,
url
=
"http://192.168.4.156:9001
/executeSQL/"
+
"${NAMESPACE}
"
,
fallback
=
JolyneCenter
.
Fallback
.
class
)
@FeignClient
(
name
=
"JolyneServiceCenter"
,
url
=
"http://192.168.4.156:9001"
,
fallback
=
JolyneCenter
.
Fallback
.
class
)
public
interface
JolyneCenter
{
@PostMapping
(
value
=
"/executeSQL/"
+
"${NAMESPACE}"
+
"/xyqb"
,
consumes
=
"application/json"
)
String
executeXYQBSQL
(
String
jsonData
);
@PostMapping
(
value
=
"/xyqb"
,
consumes
=
"application/json"
)
String
sqlXyqb
(
String
jsonData
);
@GetMapping
(
value
=
"/job/clotho-elastic-job/cn.qg.clotho.job.FetchDataLoanJob"
)
void
fetchDataLoanJob
(
@RequestParam
(
"namespace"
)
String
namespace
);
@GetMapping
(
value
=
"/job/clotho-elastic-job/cn.qg.clotho.job.LoanDataJob"
)
void
loanDataJob
(
@RequestParam
(
"namespace"
)
String
namespace
);
@Component
class
Fallback
implements
JolyneCenter
{
@Override
public
String
sqlXyqb
(
String
jsonData
)
{
public
String
executeXYQBSQL
(
String
jsonData
)
{
return
null
;
}
@Override
public
void
fetchDataLoanJob
(
String
namespace
)
{
}
@Override
public
void
loanDataJob
(
String
namespace
)
{
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/jolyne/JolyneService.java
0 → 100644
View file @
1ca59fdd
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
jolyne
;
/**
* function:
* date: 2019/9/20
*
* @author: suntao
*/
public
interface
JolyneService
{
String
executeXYQBSQL
(
String
jsonData
);
void
fetchDataLoanJob
();
void
loanDataJob
();
String
delayUpdateWaitingXyqbSql
(
Long
sqlContent
,
Long
delayTime
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/jolyne/JolyneServiceImpl.java
0 → 100644
View file @
1ca59fdd
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
jolyne
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.WaitingFundingCorpOperatePeople
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
com.google.common.collect.Lists
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
/**
* function:
* date: 2019/9/20
*
* @author: suntao
*/
@Slf4j
@Service
public
class
JolyneServiceImpl
implements
JolyneService
{
@Autowired
private
XYQBCenterService
xyqbCenterService
;
@Autowired
private
JolyneCenter
jolyneCenter
;
@Value
(
"${NAMESPACE}"
)
private
String
namespace
;
@Override
public
String
executeXYQBSQL
(
String
jsonData
)
{
return
jolyneCenter
.
executeXYQBSQL
(
jsonData
);
}
@Override
public
void
fetchDataLoanJob
()
{
jolyneCenter
.
fetchDataLoanJob
(
namespace
);
}
@Override
public
void
loanDataJob
()
{
jolyneCenter
.
loanDataJob
(
namespace
);
}
@Async
@Override
public
String
delayUpdateWaitingXyqbSql
(
Long
loanId
,
Long
delayTime
)
{
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
=
xyqbCenterService
.
findWaitingFundingCorpOperatePeopleByLoanId
(
loanId
);
int
i
=
0
;
while
(
waitingFundingCorpOperatePeople
==
null
)
{
try
{
Thread
.
sleep
(
delayTime
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
waitingFundingCorpOperatePeople
=
xyqbCenterService
.
findWaitingFundingCorpOperatePeopleByLoanId
(
loanId
);
if
(++
i
>
10000
)
{
return
"fail"
;
}
}
if
(
waitingFundingCorpOperatePeople
.
getCreatedAt
().
getTime
()
>
(
System
.
currentTimeMillis
()
-
5
*
60
*
1000
))
{
// 更新待放款时间(5分钟之前)
ArrayList
<
String
>
updateWaitingFundingCorpOperatePeople
=
Lists
.
newArrayList
();
updateWaitingFundingCorpOperatePeople
.
add
(
"update waiting_funding_corp_operate_people set created_at = DATE_SUB(created_at, interval 5 minute) where loan_application_history_id = "
+
loanId
+
";"
);
return
jolyneCenter
.
executeXYQBSQL
(
JolyneUtil
.
getJolneSql
(
updateWaitingFundingCorpOperatePeople
));
}
fetchDataLoanJob
();
loanDataJob
();
return
"success"
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/user/service/XyqbUserServiceImpl.java
View file @
1ca59fdd
...
...
@@ -179,7 +179,7 @@ public class XyqbUserServiceImpl implements XyqbUserService {
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
.
sqlXyqb
(
JSONTools
.
serialize
(
data
));
String
cancel_result
=
jolyneCenter
.
executeXYQBSQL
(
JSONTools
.
serialize
(
data
));
return
"success"
.
equals
(
cancel_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