|
@@ -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;
|