Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/saas' into saas

zouxuan 3 rokov pred
rodič
commit
ba8bb2c80a

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -106,7 +106,7 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     Msg payNotify(Msg msg) throws Exception;
 
-    void payCheck(TenantOrderRecord record);
+    Boolean payCheck(TenantOrderRecord record);
 
     Boolean payCheck(String orderNo) throws Exception;
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TenantOrderRecordService.java

@@ -23,6 +23,6 @@ public interface TenantOrderRecordService extends IService<TenantOrderRecord> {
 
     void checkTenantOrder();
 
-    void rechargeCheck(TenantOrderRecord record);
+    Boolean rechargeCheck(TenantOrderRecord record);
 }
 

+ 7 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -268,10 +268,10 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     }
 
     @Override
-    public void payCheck(TenantOrderRecord record) {
+    public Boolean payCheck(TenantOrderRecord record) {
         RBucket<Object> bucket = redissonClient.getBucket("tenant_check_order");
         if (!bucket.trySet(1, 3L, TimeUnit.SECONDS)) {
-            return;
+            return false;
         }
         log.info("checkCloudTeacherOrder  checkTenantOrder>>>>>");
         checkTransOrderState(record);
@@ -279,15 +279,17 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             tenantOrderRecordService.updateById(record);
             try {
                 this.paySuccess(record); // 充值成功
+                return true;
             } catch (Exception e) {
                 e.printStackTrace();
+                return false;
             }
             //TODO 发送短信
             // Map<Integer, String> userPhone = new HashMap<>();
             // sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CLOUD_TEACHER_ORDER_SUCCESS, userPhone, null, 0, null, null);
         }
         bucket.delete();
-
+        return false;
     }
 
     //主动去第三方查询订单状态
@@ -324,7 +326,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
     }
 
-    private void paySuccess(TenantOrderRecord record) throws Exception {
+    private boolean paySuccess(TenantOrderRecord record) throws Exception {
         log.info("tenant orderNotify update order status start" + record.getId().toString());
         if (record.getId() == null) {
             throw new Exception("订单未找到");
@@ -343,6 +345,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
 
         log.info("tenant orderNotify update order status end");
+        return true;
     }
 
     private TenantOrderRecord createOrderRecord(Integer tenantId, BigDecimal payAmount, String orderNo, TenantOrderRecordEnum tenantEnum, Integer orderState, List<CloudTeacherStudent> cloudTeacherStudents) throws Exception {

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java

@@ -55,6 +55,9 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         PaymentParam payParam = new PaymentParam(amount, orderNo, payChannel, returnUrl,
                 orderSubject, orderBody, sign, code, platform);
         log.info("executePayment >>>>> {}", JSON.toJSONString(payParam));
+        if (payParam.getAmount() == null) {
+            throw new Exception("PaymentParam query is null");
+        }
         //签名验证
         checkSing(payParam);
 
@@ -74,12 +77,15 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
                 //主动延迟检查订单
                 delayCheckTenant();
             } else if (platform.equals("cloudTeacherOrder")) {
+
                 // 云教练支付
                 TenantOrderRecord tenantOrderRecord = tenantOrderRecordService.getOne(new WrapperUtil<TenantOrderRecord>()
                                                                                               .hasEq("order_no_", payParam.getOrderNo()).queryWrapper());
+                log.info("executePayment >>>>> {}", payParam.getOrderNo());
                 if (tenantOrderRecord.getOrderState() == 1) {
-                    return null;
+                    throw new Exception("tenantOrderRecord order state is 1");
                 }
+                log.info("executePayment checkOrderAndGetParam >>>>> ");
                 payment = checkOrderAndGetParam(payParam,
                                                 tenantOrderRecord,
                                                 TenantOrderRecord::getEnumOrderState,
@@ -88,13 +94,14 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
                                                 tenantOrderRecordService::updateById
                 );
                 //主动延迟检查订单
+                log.info("executePayment delayCheckCloudTeacherOrder >>>>> ");
                 delayCheckCloudTeacherOrder(tenantOrderRecord);
             } else if (platform.equals("tenantRecharge")) {
                 // 机构充值
                 TenantOrderRecord tenantOrderRecord = tenantOrderRecordService.getOne(new WrapperUtil<TenantOrderRecord>()
                                                                                               .hasEq("order_no_", payParam.getOrderNo()).queryWrapper());
                 if (tenantOrderRecord.getOrderState() == 1) {
-                    return null;
+                    throw new Exception("tenantOrderRecord order state is 1");
                 }
                 payment = checkOrderAndGetParam(payParam,
                                                 tenantOrderRecord,
@@ -272,8 +279,9 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
             //检查5次
             for (int i = 0; i <= 5; i++) {
                 try {
+                    Boolean ret = cloudTeacherOrderService.payCheck(record);
+                    if (ret) break;
                     Thread.sleep(3000);//每3秒触发一次
-                    cloudTeacherOrderService.payCheck(record);
                     log.info("delayCheckCloudTeacherOrder >>>>>  start {}", i);
                 } catch (Exception e) {
                     log.info("delayCheckCloudTeacherOrder exception  ", e);
@@ -294,8 +302,9 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
             //检查5次
             for (int i = 0; i <= 5; i++) {
                 try {
+                    Boolean ret = tenantOrderRecordService.rechargeCheck(record);
+                    if (ret) break;
                     Thread.sleep(3000);//每3秒触发一次
-                    tenantOrderRecordService.rechargeCheck(record);
                     log.info("delayCheckTenant >>>>>  start {}", i);
                 } catch (InterruptedException e) {
                     return;

+ 14 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java

@@ -233,33 +233,41 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         tenantProductInfoService.updateById(productInfo);
     }
 
-    private void rechargeSuccess(TenantOrderRecord record) throws Exception {
+    private int rechargeSuccess(TenantOrderRecord record) throws Exception {
         // 更新 tenantAssetsInfo
+        log.info("checkRechargeCheck  updateAmount>>>>>");
         int ret = assetsInfoService.updateAmount(record.getTenantId(), record.getExpectAmount());
         if (ret != 1) {
             throw new Exception("更新支付失败");
         }
+        return ret;
     }
 
     @Override
-    public void rechargeCheck(TenantOrderRecord record) {
+    public Boolean rechargeCheck(TenantOrderRecord record) {
         RBucket<Object> bucket = redissonClient.getBucket("tenant_check_order");
         if (!bucket.trySet(1, 3L, TimeUnit.SECONDS)) {
-            return;
+            return false;
         }
-        log.info("checkCloudTeacherOrder  checkTenantOrder>>>>>");
+        log.info("checkRechargeCheck  checkTenantOrder>>>>>");
         checkTransOrderState(record);
         if (record.getOrderState() == 1) {
             baseMapper.updateById(record);
             try {
-                this.rechargeSuccess(record); // 充值成功
+                log.info("checkRechargeCheck  rechargeSuccess>>>>>");
+                int ret = this.rechargeSuccess(record); // 充值成功
+                if (ret == 0) {
+                    throw new Exception("更新失败");
+                }
+                return true;
             } catch (Exception e) {
                 e.printStackTrace();
+                return false;
             }
             // 发送短信
-
         }
         bucket.delete();
+        return false;
     }
 }