xiongzhu 3 lat temu
rodzic
commit
f01fc37037

+ 3 - 2
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -612,13 +612,14 @@ public class OrderService {
             if (transactionIds.parallelStream().anyMatch(transactionId -> {
                 try {
                     Map<String, Object> map = Payment.query(transactionId.toString());
-                    return "succeeded".equalsIgnoreCase(MapUtils.getString(map, "status"));
+                    return "succeeded".equalsIgnoreCase(MapUtils.getString(map, "status")) ||
+                            "pending".equalsIgnoreCase(MapUtils.getString(map, "status"));
                 } catch (BaseAdaPayException e) {
                     e.printStackTrace();
                 }
                 return false;
             })) {
-                log.info("订单已经支付成功,不能取消 {}", order.getId());
+                log.info("订单已经支付成功或待支付,不能取消 {}", order.getId());
                 return;
             }
         }

+ 6 - 0
src/main/java/com/izouma/nineth/web/OrderController.java

@@ -163,5 +163,11 @@ public class OrderController extends BaseController {
     public Object checkLimit(@RequestParam Long collectionId) {
         return orderService.checkLimit(collectionId, SecurityUtils.getAuthenticatedUser().getId());
     }
+
+    @PostMapping("/cancel")
+    @PreAuthorize("hasRole('ADMIN')")
+    public void cancel(@RequestParam Long id) {
+        orderService.cancel(id);
+    }
 }
 

+ 1 - 1
src/test/java/com/izouma/nineth/service/AdapayTest.java

@@ -217,7 +217,7 @@ public class AdapayTest {
 
     @Test
     public void singleQuery() throws BaseAdaPayException {
-        Map<String, Object> map = Payment.query("002112022021815230610340647575776317440");
+        Map<String, Object> map = Payment.query("002112022021816391410340666733272313856");
         System.out.println(JSON.toJSONString(map, SerializerFeature.PrettyFormat));
     }
 }