puzhibing
2024-01-03 168d852672f8f671a01d6f0f053349d0d321ec7c
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1041,7 +1041,7 @@
        return weixinpay;
    }
    private String smid = "2088330203191220";//平台支付宝商户号
    /**
     * 课程支付宝支付
     *
@@ -1055,6 +1055,7 @@
        CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        String smid1="";
        //生成支付订单
        if (paymentCourseVo.getOrderId()==null){
            CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
@@ -1083,8 +1084,18 @@
            coursePackageOrder.setPayUserId(uid);
            coursePackageOrderService.updateById(coursePackageOrder);
        }
        ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
        // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
        Integer coursePackageId = paymentCourseVo.getId();
        TCoursePackage byId = coursePackageService.getById(coursePackageId);
        Store store = storeClient.queryStoreById(byId.getStoreId());
        if (store.getOperatorId() == null ){
            smid1 = smid;
        }else{
            smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
        }
        ResultUtil alipay = payMoneyUtil.alipay(smid1,"购买课程", "购买课程",
                coursePackagePaymentConfig.getId().toString(),
                code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
        if (alipay.getCode() == 200) {
            String finalCode = code;
            new Thread(new Runnable() {
@@ -1092,7 +1103,6 @@
                public void run() {
                    try {
                        Thread.sleep(1000);
                        int num = 1;
                        int wait = 0;
                        while (num <= 10) {
@@ -1128,7 +1138,23 @@
                                    coursePackageOrderService.updateById(coursePackageOrder1);
                                    addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                    moneyOut(tradeNo,tradeNo,finalCode);
                                    break;
                                    // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商
                                    Integer id = paymentCourseVo.getId();
                                    TCoursePackage byId = coursePackageService.getById(id);
                                    Integer storeId = byId.getStoreId();
                                    Store store = storeClient.queryStoreById(storeId);
                                    Integer operatorId = store.getOperatorId();
                                    if (operatorId==null){
                                        String smid ="2088330203191220";
                                            // 说明是平台的
                                            payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString());
                                        break;
                                    }else{
                                        // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商
                                        String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId);
                                        payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,paymentPrice.toString());
                                        break;
                                    }
                                }
                                if ("WAIT_BUYER_PAY".equals(s)) {
                                    num++;