Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
customer-service
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
QG
customer-service
Commits
aeecc7e9
Commit
aeecc7e9
authored
Apr 16, 2020
by
杨钧
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
一次性结清列表,未完成
parent
acd9a71d
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
448 additions
and
127 deletions
+448
-127
OperateLogAspect.java
...ain/java/cn/quantgroup/customer/aop/OperateLogAspect.java
+58
-27
UserThreadLocal.java
...quantgroup/customer/config/container/UserThreadLocal.java
+27
-0
WebMvcConfigure.java
.../quantgroup/customer/config/http/mvc/WebMvcConfigure.java
+8
-0
UserTokenIntecepter.java
.../customer/config/http/mvc/filter/UserTokenIntecepter.java
+68
-0
OpLog.java
src/main/java/cn/quantgroup/customer/entity/OpLog.java
+27
-0
OpUser.java
src/main/java/cn/quantgroup/customer/entity/OpUser.java
+15
-0
OperateLogModel.java
...n/java/cn/quantgroup/customer/entity/OperateLogModel.java
+14
-60
OperateLogRepo.java
...main/java/cn/quantgroup/customer/repo/OperateLogRepo.java
+6
-0
OrderRest.java
src/main/java/cn/quantgroup/customer/rest/OrderRest.java
+4
-3
IOpSystemService.java
...java/cn/quantgroup/customer/service/IOpSystemService.java
+11
-0
IOperateLogService.java
...va/cn/quantgroup/customer/service/IOperateLogService.java
+6
-0
IUserService.java
...ain/java/cn/quantgroup/customer/service/IUserService.java
+0
-1
OpSystemServiceImpl.java
...quantgroup/customer/service/impl/OpSystemServiceImpl.java
+70
-0
OperateLogServiceImpl.java
...antgroup/customer/service/impl/OperateLogServiceImpl.java
+16
-0
OrderServiceImpl.java
...cn/quantgroup/customer/service/impl/OrderServiceImpl.java
+117
-36
UserServiceImpl.java
.../cn/quantgroup/customer/service/impl/UserServiceImpl.java
+1
-0
No files found.
src/main/java/cn/quantgroup/customer/aop/OperateLogAspect.java
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
aop
;
import
cn.quantgroup.customer.config.container.UserThreadLocal
;
import
cn.quantgroup.customer.entity.OpUser
;
import
cn.quantgroup.customer.entity.OperateLogModel
;
import
cn.quantgroup.customer.service.IOperateLogService
;
import
cn.quantgroup.customer.util.DateUtil
;
...
...
@@ -41,58 +43,87 @@ public class OperateLogAspect {
String
logPre
=
"OperateLogAspect.around"
;
log
.
info
(
"{} 进入切面"
,
logPre
);
Object
[]
args
=
pjp
.
getArgs
();
log
.
info
(
"{} 请求参数 {}"
,
logPre
,
args
);
Object
result
=
pjp
.
proceed
(
args
);
log
.
info
(
"{} 请求参数 {},返回结果 {} "
,
logPre
,
args
,
result
);
dealOperateLog
(
pjp
,
result
);
log
.
info
(
"{} 请求参数 {}"
,
logPre
,
args
);
Object
result
=
pjp
.
proceed
(
args
);
log
.
info
(
"{} 请求参数 {},返回结果 {} "
,
logPre
,
args
,
result
);
addOperateLog
(
pjp
,
result
);
return
result
;
}
private
void
dealOperateLog
(
ProceedingJoinPoint
pjp
,
Object
result
)
{
String
logPre
=
"OperateLogAspect.
deal
OperateLog"
;
private
void
addOperateLog
(
ProceedingJoinPoint
pjp
,
Object
result
)
{
String
logPre
=
"OperateLogAspect.
add
OperateLog"
;
Object
[]
args
=
pjp
.
getArgs
();
StringBuffer
reqStrBuffer
=
new
StringBuffer
();
String
userNo
=
null
;
String
userName
=
null
;
for
(
Object
obj:
args
){
Long
loanId
=
null
;
String
applyNo
=
null
;
String
remark
=
null
;
String
opState
=
""
;
for
(
Object
obj
:
args
)
{
reqStrBuffer
.
append
(
String
.
valueOf
(
obj
));
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
obj
));
if
(
Objects
.
nonNull
(
jsonObject
)){
if
(
jsonObject
.
containsKey
(
"userNo"
)){
userNo
=
jsonObject
.
getString
(
"userNo"
);
}
try
{
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
obj
));
if
(
Objects
.
nonNull
(
jsonObject
))
{
if
(
jsonObject
.
containsKey
(
"loanId"
))
{
loanId
=
jsonObject
.
getLong
(
"loanId"
);
}
if
(
jsonObject
.
containsKey
(
"applyNo"
))
{
applyNo
=
jsonObject
.
getString
(
"applyNo"
);
}
if
(
jsonObject
.
containsKey
(
"remark"
))
{
remark
=
jsonObject
.
getString
(
"remark"
);
}
if
(
jsonObject
.
containsKey
(
"remark"
))
{
remark
=
jsonObject
.
getString
(
"remark"
);
}
if
(
jsonObject
.
containsKey
(
"opState"
))
{
Integer
opStateFlag
=
jsonObject
.
getInteger
(
"opState"
);
if
(
opStateFlag
==
1
){
opState
=
"设置有效"
;
}
else
{
opState
=
"设置无效"
;
}
}
if
(
jsonObject
.
containsKey
(
"userName"
)){
userName
=
jsonObject
.
getString
(
"userName"
);
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"{} obj={} 转化json失败"
,
logPre
,
obj
);
}
}
MethodSignature
methodSignature
=
(
MethodSignature
)
pjp
.
getSignature
();
Method
method
=
methodSignature
.
getMethod
();
OperateLog
op
l
og
=
method
.
getAnnotation
(
OperateLog
.
class
);
log
.
info
(
"{} 获得注解 op
log={}"
,
logPre
,
opl
og
);
String
className
=
pjp
.
getTarget
().
getClass
().
getName
().
substring
(
pjp
.
getTarget
().
getClass
().
getName
().
lastIndexOf
(
"."
)
+
1
);
OperateLog
op
erateL
og
=
method
.
getAnnotation
(
OperateLog
.
class
);
log
.
info
(
"{} 获得注解 op
erateLog={}"
,
logPre
,
operateL
og
);
String
className
=
pjp
.
getTarget
().
getClass
().
getName
().
substring
(
pjp
.
getTarget
().
getClass
().
getName
().
lastIndexOf
(
"."
)
+
1
);
String
methodName
=
method
.
getName
();
String
moduleName
=
op
l
og
.
moduleName
();
String
moduleName
=
op
erateL
og
.
moduleName
();
String
module
=
className
.
concat
(
"|"
).
concat
(
methodName
);
if
(
StringUtils
.
isBlank
(
moduleName
))
{
if
(
StringUtils
.
isBlank
(
moduleName
))
{
// 类名 + 方法签名为 moduleName
moduleName
=
module
;
}
log
.
info
(
"{} 处理结果:{}"
,
logPre
,
String
.
valueOf
(
result
));
if
(!
StringUtils
.
isAnyBlank
(
userNo
,
userName
)){
return
;
}
moduleName
=
moduleName
.
concat
(
opState
);
log
.
info
(
"{} 处理结果:{}"
,
logPre
,
String
.
valueOf
(
result
));
OpUser
opUser
=
UserThreadLocal
.
get
();
OperateLogModel
model
=
OperateLogModel
.
builder
()
.
userName
(
userName
)
.
userNo
(
userNo
)
.
userName
(
opUser
.
getName
()
)
.
userNo
(
opUser
.
getUser
()
)
.
module
(
module
)
.
moduleName
(
moduleName
)
.
request
(
reqStrBuffer
.
toString
())
.
response
(
String
.
valueOf
(
result
))
.
createdAt
(
DateUtil
.
getCurrentTimestamp
())
.
loanId
(
loanId
)
.
applyNo
(
applyNo
)
.
remark
(
remark
)
.
build
();
operateLogService
.
saveOperateLog
(
model
);
...
...
src/main/java/cn/quantgroup/customer/config/container/UserThreadLocal.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
config
.
container
;
import
cn.quantgroup.customer.entity.OpUser
;
/**
* @author yangjun
* @Date 2020/4/16 10:46
* @Desc
* @Update
*/
public
class
UserThreadLocal
{
private
static
ThreadLocal
<
OpUser
>
userThread
=
new
ThreadLocal
<
OpUser
>();
public
static
void
set
(
OpUser
user
){
userThread
.
set
(
user
);
}
public
static
OpUser
get
(){
return
userThread
.
get
();
}
//防止内存泄漏
public
static
void
remove
(){
userThread
.
remove
();
}
}
src/main/java/cn/quantgroup/customer/config/http/mvc/WebMvcConfigure.java
View file @
aeecc7e9
...
...
@@ -4,7 +4,9 @@ import cn.quantgroup.customer.config.http.mvc.converter.DateConverter;
import
cn.quantgroup.customer.config.http.mvc.converter.IEnumConverterFactory
;
import
cn.quantgroup.customer.config.http.mvc.converter.LocalDateConverter
;
import
cn.quantgroup.customer.config.http.mvc.converter.LocalDateTimeConverter
;
import
cn.quantgroup.customer.config.http.mvc.filter.UserTokenIntecepter
;
import
com.google.common.collect.Lists
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.format.FormatterRegistry
;
import
org.springframework.http.MediaType
;
...
...
@@ -19,6 +21,9 @@ import java.util.List;
@Configuration
public
class
WebMvcConfigure
extends
WebMvcConfigurerAdapter
{
@Autowired
private
UserTokenIntecepter
tokenIntecepter
;
@Override
public
void
configureMessageConverters
(
List
<
HttpMessageConverter
<?>>
converters
)
{
super
.
configureMessageConverters
(
converters
);
...
...
@@ -32,6 +37,7 @@ public class WebMvcConfigure extends WebMvcConfigurerAdapter {
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
tokenIntecepter
);
}
...
...
@@ -42,4 +48,6 @@ public class WebMvcConfigure extends WebMvcConfigurerAdapter {
registry
.
addConverter
(
new
LocalDateTimeConverter
(
"yyyy-MM-dd HH:mm:ss.SSS"
));
registry
.
addConverter
(
new
DateConverter
());
}
}
src/main/java/cn/quantgroup/customer/config/http/mvc/filter/UserTokenIntecepter.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
config
.
http
.
mvc
.
filter
;
import
cn.quantgroup.customer.config.container.UserThreadLocal
;
import
cn.quantgroup.customer.entity.OpUser
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.service.IOpSystemService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Objects
;
/**
* @author yangjun
* @Date 2020/4/16 9:46
* @Desc
* @Update
*/
@Slf4j
@Component
public
class
UserTokenIntecepter
implements
HandlerInterceptor
{
@Autowired
private
IOpSystemService
IOpSystemService
;
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
if
(
HttpMethod
.
OPTIONS
.
toString
().
equals
(
httpServletRequest
.
getMethod
()))
{
log
.
info
(
"OPTIONS请求,放行"
);
return
true
;
}
String
token
=
httpServletRequest
.
getHeader
(
"x-auth-token"
);
String
system
=
httpServletRequest
.
getHeader
(
"x-auth-system"
);
if
(
StringUtils
.
isAnyBlank
(
token
,
system
)){
log
.
error
(
"缺少token信息,拦截"
);
return
false
;
}
JsonResult
<
OpUser
>
opUserResult
=
IOpSystemService
.
findUserByToken
(
token
,
system
);
if
(
Objects
.
isNull
(
opUserResult
)
||
!
opUserResult
.
isSuccess
()){
log
.
error
(
"根据token查询不到用户信息 token:{}"
,
token
);
return
false
;
}
else
{
OpUser
opUser
=
opUserResult
.
getData
();
UserThreadLocal
.
set
(
opUser
);
return
true
;
}
}
@Override
public
void
postHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
}
@Override
public
void
afterCompletion
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
Exception
e
)
throws
Exception
{
}
}
src/main/java/cn/quantgroup/customer/entity/OpLog.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
entity
;
import
lombok.Data
;
import
java.sql.Timestamp
;
/**
* @author yangjun
* @Date 2020/4/16 17:12
* @Desc
* @Update
*/
@Data
public
class
OpLog
{
private
String
userNo
;
private
String
userName
;
private
Timestamp
createdAt
;
private
String
remark
;
private
Long
loanId
;
private
String
moduleName
;
}
src/main/java/cn/quantgroup/customer/entity/OpUser.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
entity
;
import
lombok.Data
;
/**
* @author yangjun
* @Date 2020/4/16 10:01
* @Desc
* @Update
*/
@Data
public
class
OpUser
{
private
String
user
;
private
String
name
;
}
src/main/java/cn/quantgroup/customer/entity/OperateLogModel.java
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
entity
;
import
lombok.Builder
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
lombok.*
;
import
javax.persistence.*
;
import
java.sql.Timestamp
;
...
...
@@ -15,9 +12,12 @@ import java.sql.Timestamp;
* @Update
*/
@Entity
@Table
(
name
=
"
user
"
)
@Table
(
name
=
"
operate_log
"
)
@ToString
@Builder
@Getter
@Setter
@AllArgsConstructor
public
class
OperateLogModel
{
@Id
...
...
@@ -43,65 +43,19 @@ public class OperateLogModel {
@Column
(
name
=
"response"
)
private
String
response
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
public
OperateLogModel
()
{
}
public
String
getUserNo
()
{
return
userNo
;
}
public
void
setUserNo
(
String
userNo
)
{
this
.
userNo
=
userNo
;
}
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getModule
()
{
return
module
;
}
@Column
(
name
=
"loan_id"
)
private
Long
loanId
;
public
void
setModule
(
String
module
)
{
this
.
module
=
module
;
}
public
String
getModuleName
()
{
return
moduleName
;
}
public
void
setModuleName
(
String
moduleName
)
{
this
.
moduleName
=
moduleName
;
}
public
String
getRequest
()
{
return
request
;
}
@Column
(
name
=
"apply_no"
)
private
String
applyNo
;
public
void
setRequest
(
String
request
)
{
this
.
request
=
request
;
}
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
public
String
getResponse
()
{
return
response
;
}
@Column
(
name
=
"remark"
)
private
String
remark
;
public
void
setResponse
(
String
response
)
{
this
.
response
=
response
;
}
public
Timestamp
getCreatedAt
()
{
return
createdAt
;
public
OperateLogModel
()
{
}
public
void
setCreatedAt
(
Timestamp
createdAt
)
{
this
.
createdAt
=
createdAt
;
}
}
src/main/java/cn/quantgroup/customer/repo/OperateLogRepo.java
View file @
aeecc7e9
...
...
@@ -2,6 +2,12 @@ package cn.quantgroup.customer.repo;
import
cn.quantgroup.customer.entity.OperateLogModel
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
java.util.List
;
public
interface
OperateLogRepo
extends
JpaRepository
<
OperateLogModel
,
Long
>
{
@Query
(
value
=
"select * from operate_log where loan_id =?1 ORDER BY id DESC"
,
nativeQuery
=
true
)
List
<
OperateLogModel
>
findLogsByLoanId
(
Long
loanId
);
}
src/main/java/cn/quantgroup/customer/rest/OrderRest.java
View file @
aeecc7e9
...
...
@@ -62,14 +62,14 @@ public class OrderRest {
}
/**
*
显示/隐藏结清入口
操作
*
结清白名单
操作
* @param operateEntryParam
* @return
*/
@PostMapping
(
"/operateEntry"
)
@OperateLog
(
moduleName
=
"
修改显示结清入口
操作"
)
@OperateLog
(
moduleName
=
"
结清白名单
操作"
)
public
JsonResult
operateEntry
(
OperateEntryParam
operateEntryParam
)
{
log
.
info
(
"[
显示/隐藏结清入口
操作],请求参数:operateEntryParam={}"
,
operateEntryParam
);
log
.
info
(
"[
结清白名单设置
操作],请求参数:operateEntryParam={}"
,
operateEntryParam
);
return
orderService
.
operateEntry
(
operateEntryParam
);
}
...
...
@@ -79,6 +79,7 @@ public class OrderRest {
* @return
*/
@GetMapping
(
"/earlySettleUpTrial/{loanId}"
)
@OperateLog
(
moduleName
=
"提前一次性结清金额试算"
)
public
JsonResult
earlySettleUpTrial
(
@PathVariable
Long
loanId
)
{
log
.
info
(
"[提前一次性结清金额试算],请求参数:loanId={}"
,
loanId
);
return
orderService
.
earlySettleUpTrial
(
loanId
);
...
...
src/main/java/cn/quantgroup/customer/service/IOpSystemService.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
service
;
import
cn.quantgroup.customer.entity.OpUser
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
/**
* 查询运营系统后台
*/
public
interface
IOpSystemService
{
JsonResult
<
OpUser
>
findUserByToken
(
String
token
,
String
system
);
}
src/main/java/cn/quantgroup/customer/service/IOperateLogService.java
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
service
;
import
cn.quantgroup.customer.entity.OpLog
;
import
cn.quantgroup.customer.entity.OperateLogModel
;
import
java.util.List
;
import
java.util.Map
;
public
interface
IOperateLogService
{
void
saveOperateLog
(
OperateLogModel
logModel
);
List
<
OpLog
>
findLogsByLoanId
(
Long
loanId
);
}
src/main/java/cn/quantgroup/customer/service/IUserService.java
View file @
aeecc7e9
...
...
@@ -35,5 +35,4 @@ public interface IUserService extends UserDetailsService {
JsonResult
findUserCombination
(
UserCombinationParam
userCombinationParam
);
}
src/main/java/cn/quantgroup/customer/service/impl/OpSystemServiceImpl.java
0 → 100644
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
service
.
impl
;
import
cn.quantgroup.customer.entity.OpUser
;
import
cn.quantgroup.customer.enums.ErrorCodeEnum
;
import
cn.quantgroup.customer.exception.BusinessException
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.service.IOpSystemService
;
import
cn.quantgroup.customer.service.http.IHttpService
;
import
cn.quantgroup.customer.util.JSONTools
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
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.stereotype.Service
;
import
java.util.Map
;
/**
* @author yangjun
* @Date 2020/4/16 10:05
* @Desc
* @Update
*/
@Slf4j
@Service
(
"opSystemService"
)
public
class
OpSystemServiceImpl
implements
IOpSystemService
{
@Value
(
"http://opapi-qa.liangkebang.net"
)
// ${opapi.http}
private
String
kaSysUrl
;
@Autowired
private
IHttpService
httpService
;
@Override
public
JsonResult
<
OpUser
>
findUserByToken
(
String
token
,
String
system
)
{
String
logPre
=
"OpSystemServiceImpl.findUserByToken"
;
log
.
info
(
"{} 通过token查询用户登录信息 token={},system={}"
,
logPre
,
token
,
system
);
String
url
=
kaSysUrl
+
"/user/info"
;
try
{
Map
<
String
,
String
>
param
=
Maps
.
newHashMap
();
param
.
put
(
"x-auth-token"
,
token
);
param
.
put
(
"x-auth-system"
,
system
);
String
result
=
null
;
try
{
result
=
httpService
.
post
(
url
,
param
,
null
);
}
catch
(
Exception
e
)
{
log
.
error
(
" {}查询用户登录信息失败http请求异常 url={},param={}"
,
logPre
,
url
,
param
,
e
);
return
JsonResult
.
buildErrorStateResult
(
"通讯异常"
,
null
);
}
log
.
info
(
"{} 系统返回值:{}"
,
logPre
,
result
);
if
(
StringUtils
.
isBlank
(
result
))
{
log
.
error
(
"{} 查询用户登录信息失败 jsonResult={}"
,
logPre
,
result
);
return
JsonResult
.
buildErrorStateResult
(
"查询数据异常"
,
null
);
}
TypeReference
<
JsonResult
<
OpUser
>>
typeToken
=
new
TypeReference
<
JsonResult
<
OpUser
>>()
{
};
JsonResult
<
OpUser
>
jsonResult
=
JSONTools
.
deserialize
(
result
,
typeToken
);
return
jsonResult
;
}
catch
(
Exception
e
)
{
log
.
error
(
"{} 网络通讯异常,token:{},system:{},ex:{}"
,
logPre
,
token
,
system
,
ExceptionUtils
.
getStackTrace
(
e
));
throw
new
BusinessException
(
ErrorCodeEnum
.
NET_ERROR
);
}
}
}
src/main/java/cn/quantgroup/customer/service/impl/OperateLogServiceImpl.java
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
service
.
impl
;
import
cn.quantgroup.customer.entity.OpLog
;
import
cn.quantgroup.customer.entity.OperateLogModel
;
import
cn.quantgroup.customer.repo.OperateLogRepo
;
import
cn.quantgroup.customer.service.IOperateLogService
;
import
cn.quantgroup.customer.util.JSONTools
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author yangjun
* @Date 2020/4/15 12:00
...
...
@@ -21,4 +28,13 @@ public class OperateLogServiceImpl implements IOperateLogService{
public
void
saveOperateLog
(
OperateLogModel
logModel
)
{
operateLogRepo
.
save
(
logModel
);
}
@Override
public
List
<
OpLog
>
findLogsByLoanId
(
Long
loanId
)
{
List
<
OperateLogModel
>
list
=
operateLogRepo
.
findLogsByLoanId
(
loanId
);
List
<
OpLog
>
opLogs
=
new
ArrayList
<>(
list
.
size
());
list
.
forEach
(
it
->
opLogs
.
add
(
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
it
),
OpLog
.
class
)));
return
opLogs
;
}
}
src/main/java/cn/quantgroup/customer/service/impl/OrderServiceImpl.java
View file @
aeecc7e9
package
cn
.
quantgroup
.
customer
.
service
.
impl
;
import
cn.quantgroup.customer.aop.OperateLog
;
import
cn.quantgroup.customer.entity.OpLog
;
import
cn.quantgroup.customer.entity.OperateLogModel
;
import
cn.quantgroup.customer.enums.ErrorCodeEnum
;
import
cn.quantgroup.customer.model.kaordermapping.ApplyRequestHistory
;
import
cn.quantgroup.customer.model.kaordermapping.LoanOrderMapping
;
import
cn.quantgroup.customer.model.order.*
;
import
cn.quantgroup.customer.model.xyqbuser.UserBasicInfo
;
import
cn.quantgroup.customer.rest.param.ordermapping.EarlySettleUpOrderQueryParam
;
import
cn.quantgroup.customer.rest.param.ordermapping.OperateEntryParam
;
import
cn.quantgroup.customer.rest.param.ordermapping.OrderQueryParam
;
import
cn.quantgroup.customer.rest.param.user.UserQueryParam
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.service.IKaService
;
import
cn.quantgroup.customer.service.IOrderService
;
import
cn.quantgroup.customer.service.IXyqbService
;
import
cn.quantgroup.customer.service.*
;
import
cn.quantgroup.customer.util.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -34,6 +37,12 @@ public class OrderServiceImpl implements IOrderService {
@Autowired
private
IXyqbService
xyqbService
;
@Autowired
private
IOperateLogService
operateLogService
;
@Autowired
private
IUserService
userService
;
@Override
public
JsonResult
<
List
<
FlowNode
>>
findFlowChart
(
String
applyOrderNo
)
{
String
logPre
=
"OrderServiceImpl.findFlowChart"
;
...
...
@@ -139,23 +148,92 @@ public class OrderServiceImpl implements IOrderService {
@Override
public
JsonResult
queryEarlySettleUpOrders
(
EarlySettleUpOrderQueryParam
orderQuery
)
{
List
<
EarlySettleUpOrder
>
list
=
new
ArrayList
<>();
EarlySettleUpOrder
settleUpOrder
=
new
EarlySettleUpOrder
();
settleUpOrder
.
setLoanId
(
123L
);
settleUpOrder
.
setAllTerm
(
12
);
settleUpOrder
.
setChannelId
(
159881L
);
settleUpOrder
.
setChannelName
(
"拍拍贷"
);
settleUpOrder
.
setChannelOrderNo
(
"PP123"
);
settleUpOrder
.
setFundId
(
900L
);
settleUpOrder
.
setFundName
(
"华融"
);
settleUpOrder
.
setFundOrderNo
(
"HR9001"
);
settleUpOrder
.
setLoanAmount
(
new
BigDecimal
(
10000
));
settleUpOrder
.
setPhoneNo
(
"17700021123"
);
settleUpOrder
.
setHideEntryFlag
(
Boolean
.
FALSE
);
settleUpOrder
.
setShowEntryFlag
(
Boolean
.
FALSE
);
settleUpOrder
.
setNoPaidTerm
(
12
);
list
.
add
(
settleUpOrder
);
return
JsonResult
.
buildSuccessResult
(
"处理成功"
,
list
);
String
logPre
=
"OrderServiceImpl.queryEarlySettleUpOrders"
;
//如果输入了渠道号,必须输入渠道订单号
if
(!
existAtLestOneParam
(
orderQuery
)){
return
JsonResult
.
buildErrorStateResult
(
"至少输入一个请求参数"
,
null
);
}
// 渠道订单号和渠道号必须同时存在
if
(!
existChannelOrderNoAndChannelId
(
orderQuery
))
{
return
JsonResult
.
buildErrorStateResult
(
"渠道号和渠道订单号必须同时存在"
,
null
);
}
// 获取用户userId
JsonResult
<
UserBasicInfo
>
userInfo
=
this
.
queryAndCheckUserInfo
(
orderQuery
);
// 请求xyqb
// 处理返回数据
return
JsonResult
.
buildSuccessResult
(
"处理成功"
,
null
);
}
// 查询用户信息
private
JsonResult
<
UserBasicInfo
>
queryAndCheckUserInfo
(
EarlySettleUpOrderQueryParam
orderQuery
)
{
String
logPre
=
"OrderServiceImpl.queryAndCheckUserInfo"
;
JsonResult
<
UserBasicInfo
>
userInfoByOrder
=
null
;
// 有订单信息存在,根据订单查询用户userId
if
(!(
Objects
.
isNull
(
orderQuery
.
getLoanId
())
&&
Objects
.
isNull
(
orderQuery
.
getChannelId
())
&&
StringUtils
.
isBlank
(
orderQuery
.
getChannelOrderNo
())))
{
OrderQueryParam
orderQueryParam
=
new
OrderQueryParam
();
orderQueryParam
.
setLoanId
(
orderQuery
.
getLoanId
());
orderQueryParam
.
setChannelId
(
orderQuery
.
getChannelId
());
orderQueryParam
.
setChannelOrderNo
(
orderQuery
.
getChannelOrderNo
());
userInfoByOrder
=
this
.
userService
.
findUserInfoByOrderParam
(
orderQueryParam
);
if
(!
userInfoByOrder
.
isSuccess
())
{
log
.
error
(
"{} 查询用户失败 result={}"
,
logPre
,
userInfoByOrder
);
return
userInfoByOrder
;
}
}
JsonResult
<
UserBasicInfo
>
userInfoByPhone
=
null
;
if
(
Objects
.
nonNull
(
orderQuery
.
getPhoneNo
()))
{
//用户参数查询
UserQueryParam
userQueryParam
=
new
UserQueryParam
();
userQueryParam
.
setPhoneNo
(
orderQuery
.
getPhoneNo
());
userQueryParam
.
setUserId
(
orderQuery
.
getUserId
());
userInfoByPhone
=
this
.
userService
.
findUserInfo
(
userQueryParam
);
if
(!
userInfoByPhone
.
isSuccess
())
{
log
.
error
(
"{} 查询用户失败 result={}"
,
logPre
,
userInfoByPhone
);
return
userInfoByPhone
;
}
}
//TODO 需要联合判断
if
(
Objects
.
isNull
(
userInfoByOrder
)
&&
Objects
.
isNull
(
userInfoByPhone
)
){
}
return
null
;
}
private
boolean
existChannelOrderNoAndChannelId
(
EarlySettleUpOrderQueryParam
orderQuery
)
{
if
(
Objects
.
isNull
(
orderQuery
.
getChannelId
())
&&
StringUtils
.
isNotBlank
(
orderQuery
.
getChannelOrderNo
())
||
Objects
.
nonNull
(
orderQuery
.
getChannelId
())
&&
StringUtils
.
isBlank
(
orderQuery
.
getChannelOrderNo
())
)
{
return
false
;
}
return
true
;
}
private
boolean
existAtLestOneParam
(
EarlySettleUpOrderQueryParam
orderQuery
)
{
if
(
Objects
.
isNull
(
orderQuery
)
||
(
StringUtils
.
isBlank
(
orderQuery
.
getChannelOrderNo
())
&&
Objects
.
isNull
(
orderQuery
.
getChannelId
())
&&
Objects
.
isNull
(
orderQuery
.
getLoanId
())
&&
Objects
.
isNull
(
orderQuery
.
getUserId
())
&&
StringUtils
.
isBlank
(
orderQuery
.
getFundOrderNo
())
&&
StringUtils
.
isBlank
(
orderQuery
.
getPhoneNo
())
)
)
{
return
false
;
}
return
true
;
}
@Override
...
...
@@ -165,26 +243,29 @@ public class OrderServiceImpl implements IOrderService {
@Override
public
JsonResult
earlySettleUpTrial
(
Long
loanId
)
{
EarlySettleUpTrial
settleUpTrial
=
new
EarlySettleUpTrial
();
settleUpTrial
.
setPrincipal
(
new
BigDecimal
(
10000
));
settleUpTrial
.
setInterest
(
new
BigDecimal
(
10
));
settleUpTrial
.
setOverdueInterest
(
new
BigDecimal
(
10
));
settleUpTrial
.
setOtherFee
(
new
BigDecimal
(
10
));
settleUpTrial
.
setServiceFee
(
new
BigDecimal
(
10
));
settleUpTrial
.
setLiquid
(
new
BigDecimal
(
10
));
return
JsonResult
.
buildSuccessResult
(
"处理成功"
,
settleUpTrial
);
List
<
Map
<
String
,
Object
>>
datas
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
i
==
0
)
{
map
.
put
(
"title"
,
"本金"
);
map
.
put
(
"value"
,
"10000"
);
}
else
if
(
i
==
1
)
{
map
.
put
(
"title"
,
"利息"
);
map
.
put
(
"value"
,
"100"
);
}
else
{
map
.
put
(
"title"
,
"违约金"
);
map
.
put
(
"value"
,
"500"
);
}
datas
.
add
(
map
);
}
return
JsonResult
.
buildSuccessResult
(
"处理成功"
,
datas
);
}
@Override
public
JsonResult
queryOperateLog
(
Long
loanId
)
{
List
<
OperateLog
>
list
=
new
ArrayList
<>();
OperateLog
operateLog
=
new
OperateLog
();
operateLog
.
setAccount
(
"10000"
);
operateLog
.
setCreateAt
(
DateUtil
.
getCurrentTimestamp
());
operateLog
.
setName
(
"李四"
);
operateLog
.
setOpName
(
"修改用户密码"
);
operateLog
.
setRemark
(
"客户要求"
);
list
.
add
(
operateLog
);
List
<
OpLog
>
list
=
operateLogService
.
findLogsByLoanId
(
loanId
);
return
JsonResult
.
buildSuccessResult
(
"处理成功"
,
list
);
}
...
...
src/main/java/cn/quantgroup/customer/service/impl/UserServiceImpl.java
View file @
aeecc7e9
...
...
@@ -460,6 +460,7 @@ public class UserServiceImpl implements IUserService {
}
//订单信息综合查询
private
JsonResult
findApplyOrders
(
OrderQueryParam
orderQueryParam
)
{
String
logPre
=
"UserService.findApplyOrders"
;
...
...
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