无关风月
2024-12-02 ecc4e57b4f7c6ecfd6823704688ee786b3350b1f
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -997,31 +997,7 @@
                                    coursePackageOrderService.updateById(coursePackageOrder1);
                                    //修改课时有效期
                                    addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                    if (store.getOperatorId()!=null && store.getOperatorId()!=0){
                                        // 休眠两分钟后再调用分账接口 避免提示订单正在处理中
                                        Thread.sleep(120000);
                                        // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例
                                        String proportionByOperatorId = storeClient.getProportionByOperatorId(store.getOperatorId());
                                        String[] split = proportionByOperatorId.split(",");
                                        String s1 = split[0];
                                        if (!s1.equals("未设置")){
                                            BigDecimal bigDecimal = new BigDecimal(s1);
                                            // 分账比例
                                            BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2);
                                            // 微信商户号
                                            String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
                                            BigDecimal bigDecimal2 = new BigDecimal(paymentPrice);
                                            String nonce_str = UUIDUtil.getRandomCode(16);
                                            ResultUtil fenzhang = payMoneyUtil.fenzhang(transaction_id, bigDecimal2.multiply(bigDecimal1), s2,nonce_str);
                                            if (!fenzhang.getCode().equals(500)){
                                                System.err.println("分账失败 原因是:"+fenzhang.getMsg());
                                            }else{
                                                coursePackageOrder1.setFenzhangNo(fenzhang.getMsg());
                                                coursePackageOrder1.setFenzhangOrderNo(nonce_str);
                                                coursePackageOrderService.updateById(coursePackageOrder1);
                                            }
                                        }
                                    }
@@ -1363,10 +1339,10 @@
     * @return
     */
    @Override
    public ResultUtil paymentCourseCallback(String code, String trade_no, String attach) throws AlipayApiException {
    public ResultUtil paymentCourseCallback(String code, String trade_no, String attach) throws Exception {
        CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>()
                .eq("code", code).eq("state", 1));
        if (coursePackageOrder1.getPayStatus() == 2) {
        if (null == coursePackageOrder1 || coursePackageOrder1.getPayStatus() == 2) {
            return ResultUtil.success();
        }
        coursePackageOrder1.setPayStatus(2);
@@ -1376,7 +1352,33 @@
        CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(attach);
        addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
        moneyOut(trade_no,trade_no,code);
        TCoursePackage byId = coursePackageService.getById(coursePackageOrder1.getCoursePackageId());
        Store store = storeClient.queryStoreById(byId.getStoreId());
//        moneyOut(trade_no,trade_no,code);
        if (store.getOperatorId()!=null && store.getOperatorId()!=0){
            // 休眠两分钟后再调用分账接口 避免提示订单正在处理中
            Thread.sleep(120000);
            // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例
            String proportionByOperatorId = storeClient.getProportionByOperatorId(store.getOperatorId());
            String[] split = proportionByOperatorId.split(",");
            String s1 = split[0];
            if (!s1.equals("未设置")){
                BigDecimal bigDecimal = new BigDecimal(s1);
                // 分账比例
                BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2);
                // 微信商户号
                String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
                String nonce_str = UUIDUtil.getRandomCode(16);
                ResultUtil fenzhang = payMoneyUtil.fenzhang(trade_no, coursePackageOrder1.getCashPayment().multiply(bigDecimal1), s2,nonce_str);
                if (!fenzhang.getCode().equals(200)){
                    System.err.println("分账失败 原因是:"+fenzhang.getData().toString());
                }else{
                    coursePackageOrder1.setFenzhangNo(fenzhang.getData().toString());
                    coursePackageOrder1.setFenzhangOrderNo(nonce_str);
                    coursePackageOrderService.updateById(coursePackageOrder1);
                }
            }
        }
        return ResultUtil.success();
    }