Commit aeecc7e9 authored by 杨钧's avatar 杨钧

一次性结清列表,未完成

parent acd9a71d
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.dealOperateLog";
private void addOperateLog(ProceedingJoinPoint pjp, Object result) {
String logPre = "OperateLogAspect.addOperateLog";
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 oplog = method.getAnnotation(OperateLog.class);
log.info("{} 获得注解 oplog={}", logPre, oplog);
String className = pjp.getTarget().getClass().getName().substring(pjp.getTarget().getClass().getName().lastIndexOf(".")+1);
OperateLog operateLog = method.getAnnotation(OperateLog.class);
log.info("{} 获得注解 operateLog={}", logPre, operateLog);
String className = pjp.getTarget().getClass().getName().substring(pjp.getTarget().getClass().getName().lastIndexOf(".") + 1);
String methodName = method.getName();
String moduleName = oplog.moduleName();
String moduleName = operateLog.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);
......
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();
}
}
......@@ -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());
}
}
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 {
}
}
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;
}
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;
}
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;
}
}
......@@ -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);
}
......@@ -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);
......
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);
}
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);
}
......@@ -35,5 +35,4 @@ public interface IUserService extends UserDetailsService {
JsonResult findUserCombination(UserCombinationParam userCombinationParam);
}
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);
}
}
}
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;
}
}
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);
}
......
......@@ -460,6 +460,7 @@ public class UserServiceImpl implements IUserService {
}
//订单信息综合查询
private JsonResult findApplyOrders(OrderQueryParam orderQueryParam) {
String logPre = "UserService.findApplyOrders";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment