Commit af4d48a8 authored by 王向伟's avatar 王向伟

用户申请订单查询优化

parent d7b471d0
package cn.quantgroup.customer.model.order;
import lombok.Data;
/**
* 有效申请订单
*
* @author Wang Xiangwei
* @version 2020/3/9
*/
@Data
public class ActiveApplyOrder {
/**
* 序号
*/
private Long num;
private String channelNo;
private Long userId;
private String applyOrderNo;
private String applyStatus;
private String applyAt;
private String productDesc;
private String channelName;
private Long loanId;
private Boolean showBtn;
private String loanStatus;
private String amount;
private String paidAt;
private String termRepayment;
}
......@@ -2,37 +2,17 @@ package cn.quantgroup.customer.model.order;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 申请订单
*
* @author Wang Xiangwei
* @version 2020/3/9
* @version 2020/4/23
*/
@Data
public class ApplyOrder {
private List<ActiveApplyOrder> activeOrders = new ArrayList<>();
/**
* 序号
*/
private Long num;
private String channelOrderNo;
private String channelNo;
private Long userId;
private String applyOrderNo;
private String applyStatus;
private String applyAt;
private String productDesc;
private String channelName;
private Long loanId;
private Boolean showBtn;
private List<InvalidApplyOrder> invalidOrders = new ArrayList<>();
}
package cn.quantgroup.customer.model.order;
import lombok.Data;
/**
* 申请订单
*
* @author Wang Xiangwei
* @version 2020/3/9
*/
@Data
public class InvalidApplyOrder {
private String applyAt;
private Long userId;
private String applyStatus;
private String channelName;
private String productDesc;
private String amount;
private String applyOrderNo;
private String remark;
private String updatedAt;
private String channelNo;
}
package cn.quantgroup.customer.model.xyqbuser;
import cn.quantgroup.customer.model.order.ActiveApplyOrder;
import cn.quantgroup.customer.model.order.ApplyOrder;
import lombok.Data;
......@@ -13,7 +14,7 @@ import java.util.List;
public class UserCombination {
private UserBasicInfo userInfo;
private List<ApplyOrder> applyOrderList;
private ApplyOrder applyOrder;
}
package cn.quantgroup.customer.rest;
import cn.quantgroup.customer.rest.param.ordermapping.OrderQueryParam;
import cn.quantgroup.customer.rest.param.repay.RepayOrderInfoQuery;
import cn.quantgroup.customer.rest.vo.JsonResult;
import cn.quantgroup.customer.service.IOrderService;
import cn.quantgroup.customer.service.IXyqbService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Wang Xiangwei
......@@ -22,22 +21,22 @@ import javax.validation.Valid;
public class OrderRest {
@Autowired
private IOrderService orderService;
@GetMapping("/loan/{loanId}")
public JsonResult getLoanOrderDetail(@PathVariable Long loanId){
public JsonResult getLoanOrderDetail(@PathVariable Long loanId) {
return orderService.getLoanOrderDetail(loanId);
}
@GetMapping("/flowchart/{orderNo}")
public JsonResult getFlowChart(@PathVariable String orderNo){
public JsonResult getFlowChart(@PathVariable String orderNo) {
return orderService.findFlowChart(orderNo);
}
/**
* 订单信息查询
*
* @param orderQuery
* @return
*/
......
......@@ -20,7 +20,7 @@ public interface IXyqbService {
* @param applyOrderQuery
* @return
*/
JsonResult<List<ApplyOrder>> findApplyOrders(ApplyOrderQuery applyOrderQuery);
JsonResult<ApplyOrder> findApplyOrders(ApplyOrderQuery applyOrderQuery);
/**
* 流程日志查看
......
......@@ -6,7 +6,9 @@ import cn.quantgroup.customer.enums.ErrorCodeEnum;
import cn.quantgroup.customer.exception.BusinessException;
import cn.quantgroup.customer.model.Tuple;
import cn.quantgroup.customer.model.kaordermapping.LoanOrderMapping;
import cn.quantgroup.customer.model.order.ActiveApplyOrder;
import cn.quantgroup.customer.model.order.ApplyOrder;
import cn.quantgroup.customer.model.order.InvalidApplyOrder;
import cn.quantgroup.customer.model.xyqbuser.UserBasicInfo;
import cn.quantgroup.customer.model.xyqbuser.UserCombination;
import cn.quantgroup.customer.repo.UserRepo;
......@@ -401,7 +403,7 @@ public class UserServiceImpl implements IUserService {
return JsonResult.buildErrorStateResult(tuple.getValue(), null);
}
JsonResult<UserBasicInfo> userInfo;
JsonResult<List<ApplyOrder>> applyOrders;
JsonResult<ApplyOrder> applyOrder;
if ("1".equals(tuple.getValue())) {
//订单参数查询
OrderQueryParam orderQueryParam = new OrderQueryParam();
......@@ -414,7 +416,7 @@ public class UserServiceImpl implements IUserService {
log.error("{} 查询用户失败 result={}", logPre, userInfo);
return userInfo;
}
applyOrders = this.findApplyOrders(orderQueryParam);
applyOrder = this.findApplyOrders(orderQueryParam);
} else {
//用户参数查询
UserQueryParam userQueryParam = new UserQueryParam();
......@@ -428,33 +430,20 @@ public class UserServiceImpl implements IUserService {
return userInfo;
}
userQueryParam.setUserId(userInfo.getData().getUserId());
applyOrders = this.findApplyOrders(userQueryParam);
applyOrder = this.findApplyOrders(userQueryParam);
}
if (!applyOrders.isSuccess()) {
log.error("{} 查询申请订单失败 result={}", logPre, applyOrders);
return applyOrders;
}
List<ApplyOrder> applyOrderList = applyOrders.getData();
if (CollectionUtils.isNotEmpty(applyOrderList)) {
//通过申请订单号获得渠道订单号
List<String> applyOrderNoList = applyOrderList.stream().map(e -> e.getApplyOrderNo()).distinct().collect(Collectors.toList());
JsonResult<Map<String, String>> mapJsonResult = kaService.findChannelOrderNosByApplyOrderNos(applyOrderNoList);
if (!mapJsonResult.isSuccess()) {
return mapJsonResult;
if (!applyOrder.isSuccess()) {
log.error("{} 查询申请订单失败 result={}", logPre, applyOrder);
return applyOrder;
}
Map<String, String> data = mapJsonResult.getData();
applyOrderList.forEach(e -> e.setChannelOrderNo(data.get(e.getApplyOrderNo())));
}
UserBasicInfo userBasicInfo = userInfo.getData();
UserCombination userCombination = new UserCombination();
userCombination.setUserInfo(userBasicInfo);
userCombination.setApplyOrderList(applyOrderList);
userCombination.setApplyOrder(applyOrder.getData());
return JsonResult.buildSuccessResult("", userCombination);
......@@ -481,7 +470,7 @@ public class UserServiceImpl implements IUserService {
applyOrderQuery.setLoanId(loanId);
applyOrderQuery.setOrderNo(applyNo);
//申请订单查询
JsonResult<List<ApplyOrder>> applyOrders = xyqbService.findApplyOrders(applyOrderQuery);
JsonResult<ApplyOrder> applyOrders = xyqbService.findApplyOrders(applyOrderQuery);
return applyOrders;
}
......@@ -492,7 +481,7 @@ public class UserServiceImpl implements IUserService {
ApplyOrderQuery applyOrderQuery = new ApplyOrderQuery();
applyOrderQuery.setUserId(userQueryParam.getUserId());
//申请订单查询
JsonResult<List<ApplyOrder>> applyOrders = xyqbService.findApplyOrders(applyOrderQuery);
JsonResult<ApplyOrder> applyOrders = xyqbService.findApplyOrders(applyOrderQuery);
return applyOrders;
}
......@@ -527,16 +516,22 @@ public class UserServiceImpl implements IUserService {
applyOrderQuery.setOrderNo(applyOrderNo);
applyOrderQuery.setLoanId(loanId);
//申请订单查询
JsonResult<List<ApplyOrder>> applyOrders = xyqbService.findApplyOrders(applyOrderQuery);
if (!applyOrders.isSuccess()) {
log.error("{} 获得申请订单失败 applyOrderQuery={} result={}", logPre, applyOrderQuery, applyOrders);
JsonResult<ApplyOrder> applyOrder = xyqbService.findApplyOrders(applyOrderQuery);
if (!applyOrder.isSuccess()) {
log.error("{} 获得申请订单失败 applyOrderQuery={} result={}", logPre, applyOrderQuery, applyOrder);
return JsonResult.buildErrorStateResult("查询失败", null);
}
if (CollectionUtils.isEmpty(applyOrders.getData())) {
if (CollectionUtils.isEmpty(applyOrder.getData().getActiveOrders())
&& CollectionUtils.isEmpty(applyOrder.getData().getInvalidOrders())) {
return JsonResult.buildErrorStateResult("请确认搜索条件后再查询", null);
}
Long userId = applyOrders.getData().get(0).getUserId();
Long userId;
if(CollectionUtils.isNotEmpty(applyOrder.getData().getActiveOrders())){
userId = applyOrder.getData().getActiveOrders().get(0).getUserId();
}else {
userId = applyOrder.getData().getInvalidOrders().get(0).getUserId();
}
UserSysResult<XUser> userByUserId = userSdk.getService().findUserByUserId(userId);
UserSysResult<XUserDetail> userDetailByUserId = userSdk.getService().findUserDetailByUserId(userId);
return getUserBasicInfoResult(userByUserId,userDetailByUserId);
......
......@@ -64,7 +64,7 @@ public class XyqbServiceImpl implements IXyqbService {
@Override
public JsonResult<List<ApplyOrder>> findApplyOrders(ApplyOrderQuery applyOrderQuery) {
public JsonResult<ApplyOrder> findApplyOrders(ApplyOrderQuery applyOrderQuery) {
String logPre = "XyqbServiceImpl.findApplyOrders";
log.info("{} 申请订单查询 applyOrderQuery={}", logPre, applyOrderQuery);
String orderNo = applyOrderQuery.getOrderNo();
......@@ -84,15 +84,15 @@ public class XyqbServiceImpl implements IXyqbService {
Map<String, String> header = Maps.newHashMap();
header.put("Content-Type", "application/x-www-form-urlencoded");
String result = httpService.post(url, header, param);
log.info("{} 用户申请订单列表 url={}, header={},param={},result={}", logPre, url, header, param, result);
if (StringUtils.isBlank(result)) {
log.error("{} 调用信用钱包失败 url={}, header={},param={},result={}", logPre, url, header, param, result);
return JsonResult.buildErrorStateResult("申请订单查询失败", null);
}
TypeReference<JsonResult<List<ApplyOrder>>> typeToken = new TypeReference<JsonResult<List<ApplyOrder>>>() {
TypeReference<JsonResult<ApplyOrder>> typeToken = new TypeReference<JsonResult<ApplyOrder>>() {
};
JsonResult<List<ApplyOrder>> jsonResult = JSONTools.deserialize(result, typeToken);
JsonResult<ApplyOrder> jsonResult = JSONTools.deserialize(result, typeToken);
return jsonResult;
}
......
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