|  | @@ -50,10 +50,6 @@ public class StudentOrderController extends BaseController {
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private MusicGroupService musicGroupService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | -    private SporadicChargeInfoService sporadicChargeInfoService;
 | 
	
		
			
				|  |  | -    @Autowired
 | 
	
		
			
				|  |  | -    private YqPayFeignService yqQueryService;
 | 
	
		
			
				|  |  | -    @Autowired
 | 
	
		
			
				|  |  |      private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @PostMapping("/notify")
 | 
	
	
		
			
				|  | @@ -79,7 +75,7 @@ public class StudentOrderController extends BaseController {
 | 
	
		
			
				|  |  |              notifyMap.put("totalMoney", notifyMap.get("payAmount"));
 | 
	
		
			
				|  |  |              notifyMap.put("merOrderNo", notifyMap.get("merMerOrderNo"));
 | 
	
		
			
				|  |  |              notifyMap.put("channelType", channelType);
 | 
	
		
			
				|  |  | -            updateOrder(notifyMap);
 | 
	
		
			
				|  |  | +            studentPaymentOrderService.updateOrder(notifyMap);
 | 
	
		
			
				|  |  |              msg.setCode("000000");
 | 
	
		
			
				|  |  |              msg.setMsg("success");
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -154,131 +150,6 @@ public class StudentOrderController extends BaseController {
 | 
	
		
			
				|  |  |          return succeed(payment);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    //@Scheduled(cron = "0 */1 * * * ?")
 | 
	
		
			
				|  |  | -    public void getOrderStatus() throws Exception {
 | 
	
		
			
				|  |  | -        List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "YQPAY");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if(payingOrders.size() ==0){
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        List<String> orderNoList = payingOrders.stream().map(StudentPaymentOrder::getOrderNo).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -        String merOrderNos = payingOrders.stream().map(StudentPaymentOrder::getOrderNo).collect(Collectors.joining(","));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        String notifyUrl = ""; //回调地址
 | 
	
		
			
				|  |  | -        Map<String, Object> resultMap = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | -        resultMap.put("merOrderNoList", merOrderNos);
 | 
	
		
			
				|  |  | -        Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        RsqMsg rsqMsg = new RsqMsg(requestMap);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        Msg queryRs = yqQueryService.orderQuery(rsqMsg);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (queryRs.getCode().equals("88")) {
 | 
	
		
			
				|  |  | -            //更新订单状态
 | 
	
		
			
				|  |  | -            String[] statusArr = {"0", "1", "7"};
 | 
	
		
			
				|  |  | -            String responseParameters = queryRs.getResponseParameters();
 | 
	
		
			
				|  |  | -            List<Map<String, String>> responseList = JSON.parseObject(responseParameters, List.class);
 | 
	
		
			
				|  |  | -            for (Map<String, String> response : responseList) {
 | 
	
		
			
				|  |  | -                Map<String, String> rpMap = response;
 | 
	
		
			
				|  |  | -                String channelType = rpMap.get("channelType").equals("1") ? "WXPay" : (rpMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
 | 
	
		
			
				|  |  | -                rpMap.put("channelType", channelType);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
 | 
	
		
			
				|  |  | -                    updateOrder(rpMap); //更新订单
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if (orderNoList.contains(rpMap.get("merOrderNo"))) {
 | 
	
		
			
				|  |  | -                    orderNoList.remove(rpMap.get("merOrderNo"));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            closeOrders(orderNoList); //关闭订单
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void updateOrder(Map<String, String> rpMap) throws Exception {
 | 
	
		
			
				|  |  | -        DealStatusEnum status = rpMap.get("tradeState").equals("1") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAILED;
 | 
	
		
			
				|  |  | -        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(rpMap.get("merOrderNo"));
 | 
	
		
			
				|  |  | -        if (order == null || !order.getStatus().equals(DealStatusEnum.ING)) {
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (status.equals(DealStatusEnum.SUCCESS)) {
 | 
	
		
			
				|  |  | -            order.setPayTime(new Date());
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            order.setMemo(rpMap.get("remarks"));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        order.setStatus(status);
 | 
	
		
			
				|  |  | -        order.setTransNo(rpMap.get("orderNo"));
 | 
	
		
			
				|  |  | -        order.setPaymentBusinessChannel(rpMap.get("channelType"));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
 | 
	
		
			
				|  |  | -            studentRegistrationService.updateApplyOrder(order);
 | 
	
		
			
				|  |  | -        } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
 | 
	
		
			
				|  |  | -            vipGroupService.orderCallback(order);
 | 
	
		
			
				|  |  | -        } else if (order.getType().equals(OrderTypeEnum.RENEW)) {
 | 
	
		
			
				|  |  | -            musicGroupService.renewForCallback(order);
 | 
	
		
			
				|  |  | -        } else if (order.getType().equals(OrderTypeEnum.SPORADIC)) {
 | 
	
		
			
				|  |  | -            sporadicChargeInfoService.renewForCallback(order);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void closeOrders(List<String> orderNoList) throws Exception {
 | 
	
		
			
				|  |  | -        if (orderNoList.size() == 0) {
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        Calendar beforeTime = Calendar.getInstance();
 | 
	
		
			
				|  |  | -        beforeTime.add(Calendar.MINUTE, -30);// 30分钟之前的时间
 | 
	
		
			
				|  |  | -        Date beforeDate = beforeTime.getTime();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        List<StudentPaymentOrder> ordersOverTime = studentPaymentOrderService.findOrdersOverTime(orderNoList, DealStatusEnum.ING, beforeDate);
 | 
	
		
			
				|  |  | -        for (StudentPaymentOrder order : ordersOverTime) {
 | 
	
		
			
				|  |  | -            order.setStatus(DealStatusEnum.FAILED);
 | 
	
		
			
				|  |  | -            order.setMemo("超时未支付关闭");
 | 
	
		
			
				|  |  | -            if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
 | 
	
		
			
				|  |  | -                studentRegistrationService.updateApplyOrder(order);
 | 
	
		
			
				|  |  | -            } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
 | 
	
		
			
				|  |  | -                vipGroupService.orderCallback(order);
 | 
	
		
			
				|  |  | -            } else if (order.getType().equals(OrderTypeEnum.RENEW)) {
 | 
	
		
			
				|  |  | -                musicGroupService.renewForCallback(order);
 | 
	
		
			
				|  |  | -            } else if (order.getType().equals(OrderTypeEnum.SPORADIC)) {
 | 
	
		
			
				|  |  | -                sporadicChargeInfoService.renewForCallback(order);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    // @Scheduled(cron = "0/5 * * * * ?")
 | 
	
		
			
				|  |  | -    public void adaPayQuery() throws Exception {
 | 
	
		
			
				|  |  | -        List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "ADAPAY");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        List<String> orderNoList = new ArrayList<String>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        for (StudentPaymentOrder payingOrder : payingOrders) {
 | 
	
		
			
				|  |  | -            if (payingOrder.getTransNo() == null) {
 | 
	
		
			
				|  |  | -                orderNoList.add(payingOrder.getOrderNo());
 | 
	
		
			
				|  |  | -                continue;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            Payment payment = new Pay().queryPayment(payingOrder.getTransNo());
 | 
	
		
			
				|  |  | -            Map<String, String> rpMap = new HashMap<>();
 | 
	
		
			
				|  |  | -            rpMap.put("merOrderNo", payingOrder.getOrderNo());
 | 
	
		
			
				|  |  | -            rpMap.put("remarks", payment.getReason());
 | 
	
		
			
				|  |  | -            rpMap.put("orderNo", payment.getId());
 | 
	
		
			
				|  |  | -            rpMap.put("channelType", payment.getPayChannel());
 | 
	
		
			
				|  |  | -            if (payment.getStatus().equals("succeeded")) {
 | 
	
		
			
				|  |  | -                rpMap.put("tradeState", "1");
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (payment.getStatus().equals("failed")) {
 | 
	
		
			
				|  |  | -                rpMap.put("tradeState", "0");
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (payment.getStatus().equals("pending")) {
 | 
	
		
			
				|  |  | -                orderNoList.add(payingOrder.getOrderNo());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        closeOrders(orderNoList);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @PostMapping("/adaNotify")
 | 
	
		
			
				|  |  |      public void adaNotify(@ModelAttribute NotifyEvent notifyEvent) throws Exception {
 | 
	
		
			
				|  |  |          logger.info(notifyEvent.toString());
 | 
	
	
		
			
				|  | @@ -296,7 +167,7 @@ public class StudentOrderController extends BaseController {
 | 
	
		
			
				|  |  |              notifyMap.put("merOrderNo", notifyMap.get("order_no"));
 | 
	
		
			
				|  |  |              notifyMap.put("merOrderNo", notifyMap.get("order_no"));
 | 
	
		
			
				|  |  |              notifyMap.put("remarks", notifyMap.get("description"));
 | 
	
		
			
				|  |  | -            updateOrder(notifyMap);
 | 
	
		
			
				|  |  | +            studentPaymentOrderService.updateOrder(notifyMap);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -349,7 +220,7 @@ public class StudentOrderController extends BaseController {
 | 
	
		
			
				|  |  |              rpMap.put("channelType", channelType);
 | 
	
		
			
				|  |  |              if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
 | 
	
		
			
				|  |  |                  try {
 | 
	
		
			
				|  |  | -                    updateOrder(rpMap); //更新订单
 | 
	
		
			
				|  |  | +                    studentPaymentOrderService.updateOrder(rpMap); //更新订单
 | 
	
		
			
				|  |  |                  }catch (Exception e){
 | 
	
		
			
				|  |  |                      e.printStackTrace();
 | 
	
		
			
				|  |  |                      continue;
 |