| 
					
				 | 
			
			
				@@ -21,7 +21,9 @@ import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.snaker.engine.core.OrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.scheduling.annotation.EnableScheduling; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.scheduling.annotation.Scheduled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -32,6 +34,7 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequestMapping("studentOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Api(tags = "订单回调") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@EnableScheduling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class StudentOrderController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final Logger logger = LoggerFactory.getLogger(StudentOrderController.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,45 +49,73 @@ public class StudentOrderController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private YqQueryService yqQueryService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PostMapping("/notify") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public String notify(@ModelAttribute NotifyMsg notifyMsg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //       ArrayList<SysAccount> sysAccounts = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       Map<String,String[]> msg = request.getParameterMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        for (Map.Entry<String, String[]> stringObjectEntry : msg.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            SysAccount sysAccount = new SysAccount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            String KeyVal = "Key:" + stringObjectEntry.getKey() + " val:" + stringObjectEntry.getValue().toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            log.warn(KeyVal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            sysAccount.setMerNo(stringObjectEntry.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            sysAccount.setChannel(request.getParameter(stringObjectEntry.getKey())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            sysAccounts.add(sysAccount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    @PostMapping("/notify") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    public String notify(@ModelAttribute NotifyMsg notifyMsg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        //       ArrayList<SysAccount> sysAccounts = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////       Map<String,String[]> msg = request.getParameterMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////        for (Map.Entry<String, String[]> stringObjectEntry : msg.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            SysAccount sysAccount = new SysAccount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            String KeyVal = "Key:" + stringObjectEntry.getKey() + " val:" + stringObjectEntry.getValue().toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            log.warn(KeyVal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            sysAccount.setMerNo(stringObjectEntry.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            sysAccount.setChannel(request.getParameter(stringObjectEntry.getKey())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////            sysAccounts.add(sysAccount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        //sysAccountDao.batchInsert(sysAccounts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        // "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        //不是成功和失败的通知 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        if (!notifyMsg.getStatus().equals("TRADE_SUCCESS") && !notifyMsg.getStatus().equals("TRADE_CLOSED")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //sysAccountDao.batchInsert(sysAccounts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //不是成功和失败的通知 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!notifyMsg.getStatus().equals("TRADE_SUCCESS") && !notifyMsg.getStatus().equals("TRADE_CLOSED")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(notifyMsg.getMerOrderId().substring(4)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (order != null && !order.getStatus().equals(DealStatusEnum.ING)) { //订单状态不是在支付中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DealStatusEnum status = notifyMsg.getStatus().equals("TRADE_SUCCESS") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAilED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(notifyMsg.getMerOrderId().substring(4)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        if (order != null && !order.getStatus().equals(DealStatusEnum.ING)) { //订单状态不是在支付中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        DealStatusEnum status = notifyMsg.getStatus().equals("TRADE_SUCCESS") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAilED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        order.setStatus(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        order.setTransNo(notifyMsg.getSeqId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        order.setPaymentBusinessChannel(notifyMsg.getTargetSys()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        order.setPayTime(notifyMsg.getPayTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        order.setStatus(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        order.setTransNo(notifyMsg.getSeqId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        order.setPaymentBusinessChannel(notifyMsg.getTargetSys()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        order.setPayTime(notifyMsg.getPayTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/notify") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Msg notify(@ModelAttribute Msg msg) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.info(msg.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> rqMap = new LinkedHashMap<String, Object>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rqMap.put("code", msg.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rqMap.put("msg", msg.getMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rqMap.put("responseType", msg.getResponseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rqMap.put("responseParameters", msg.getResponseParameters()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rqMap.put("sign", msg.getSign()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //boolean rs = YqPayUtil.verify(rqMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        msg.setMsg("fail"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> notifyMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //if (rs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            notifyMap = JSON.parseObject(msg.getResponseParameters(), Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //支付中订单存在,更新状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (msg.getResponseType().equals("1") && notifyMap.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String tradeState = msg.getCode().equals("88") ? "1" : "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            notifyMap.put("tradeState", tradeState); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            notifyMap.put("totalMoney", notifyMap.get("payAmount")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            notifyMap.put("merOrderNo", notifyMap.get("merMerOrderNo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.updateOrder(notifyMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            msg.setCode("000000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            msg.setMsg("success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return "SUCCESS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return msg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,11 +140,15 @@ public class StudentOrderController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //            return failed("签名验证失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Payment payment = new Pay().executePayment(amount, orderNo, payChannel, orderSubject, orderBody); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        order.setTransNo(payment.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderService.update(order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return succeed(payment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Scheduled(cron = "0/5 * * * * ?") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //@Scheduled(cron = "0/5 * * * * ?") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void getOrderStatus() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "YQPAY"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String merOrderNos = ""; // 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -134,7 +169,9 @@ public class StudentOrderController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultMap.put("merOrderNoList", merOrderNos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Msg queryRs = yqQueryService.orderQuery(requestMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        logger.info("查询易乾结果" + queryRs.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // = yqQueryService.orderQuery(requestMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       logger.info("查询易乾结果" +queryRs.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       //logger.info("查询易乾结果" + queryRs.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (queryRs.getCode().equals("88")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //更新订单状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String[] statusArr = {"0", "1", "7"}; 
			 |