From 168d852672f8f671a01d6f0f053349d0d321ec7c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 03 一月 2024 11:43:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 151 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 104 insertions(+), 47 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index fd2c939..1d0b910 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -947,27 +947,40 @@ CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - //生成支付订单 - CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); - coursePackageOrder.setCode(code); - coursePackageOrder.setAppUserId(uid); - coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); - coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); - coursePackageOrder.setPayType(paymentCourseVo.getPayType()); - coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); - coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); - coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); - coursePackageOrder.setPayUserType(1); - coursePackageOrder.setPayStatus(1); - coursePackageOrder.setPayUserId(uid); - coursePackageOrder.setStatus(1); - coursePackageOrder.setState(1); - coursePackageOrder.setInsertTime(new Date()); - coursePackageOrderService.save(coursePackageOrder); + Long orderId = paymentCourseVo.getOrderId(); + if(null == orderId){ + //生成支付订单 + CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); + coursePackageOrder.setCode(code); + coursePackageOrder.setAppUserId(uid); + coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); + coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); + coursePackageOrder.setPayType(paymentCourseVo.getPayType()); + coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); + coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); + coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); + coursePackageOrder.setPayUserType(1); + coursePackageOrder.setPayStatus(1); + coursePackageOrder.setPayUserId(uid); + coursePackageOrder.setStatus(1); + coursePackageOrder.setState(1); + coursePackageOrder.setInsertTime(new Date()); + coursePackageOrderService.save(coursePackageOrder); + orderId = coursePackageOrder.getId(); + }else{ + CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(orderId); + code = coursePackageOrder.getCode(); + coursePackageOrder.setPayType(1); + coursePackageOrder.setAppUserId(null); + coursePackageOrder.setPayUserType(1); + coursePackageOrder.setPayUserId(uid); + coursePackageOrderService.updateById(coursePackageOrder); + } ResultUtil weixinpay = payMoneyUtil.weixinpay("购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/weChatPaymentCourseCallback", "APP", ""); if (weixinpay.getCode() == 200) { + String finalCode = code; new Thread(new Runnable() { @Override public void run() { @@ -979,11 +992,11 @@ wait += (min * num); Thread.sleep(wait); CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() - .eq("code", code).eq("state", 1)); + .eq("code", finalCode).eq("state", 1)); if (coursePackageOrder1.getPayStatus() == 2) { break; } - ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(finalCode, ""); if (resultUtil.getCode() == 200 && coursePackageOrder1.getPayStatus() == 1) { /** * SUCCESS—支付成功, @@ -1028,7 +1041,7 @@ return weixinpay; } - + private String smid = "2088330203191220";//平台支付宝商户号 /** * 课程支付宝支付 * @@ -1042,9 +1055,10 @@ CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + String smid1=""; //生成支付订单 - CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); if (paymentCourseVo.getOrderId()==null){ + CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); coursePackageOrder.setCode(code); coursePackageOrder.setAppUserId(uid); coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); @@ -1062,10 +1076,26 @@ coursePackageOrder.setInsertTime(new Date()); coursePackageOrderService.save(coursePackageOrder); }else { - code = coursePackageOrderService.getById(paymentCourseVo.getOrderId()).getCode(); + CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(paymentCourseVo.getOrderId()); + code = coursePackageOrder.getCode(); + coursePackageOrder.setPayType(2); + coursePackageOrder.setAppUserId(null); + coursePackageOrder.setPayUserType(1); + 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() { @@ -1073,7 +1103,6 @@ public void run() { try { Thread.sleep(1000); - int num = 1; int wait = 0; while (num <= 10) { @@ -1109,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++; @@ -1213,27 +1258,39 @@ CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - //生成支付订单 - CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); - coursePackageOrder.setCode(code); - coursePackageOrder.setAppUserId(appUser.getId()); - coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); - coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); - coursePackageOrder.setPayType(paymentCourseVo.getPayType()); - coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); - coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); - coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); - coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue()); - coursePackageOrder.setPayUserType(1); - coursePackageOrder.setPayStatus(2); - coursePackageOrder.setPayUserId(appUser.getId()); - coursePackageOrder.setStatus(1); - coursePackageOrder.setState(1); - coursePackageOrder.setInsertTime(new Date()); - coursePackageOrderService.save(coursePackageOrder); + Long orderId = paymentCourseVo.getOrderId(); + if(null == orderId){ + //生成支付订单 + CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); + coursePackageOrder.setCode(code); + coursePackageOrder.setAppUserId(appUser.getId()); + coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); + coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); + coursePackageOrder.setPayType(paymentCourseVo.getPayType()); + coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); + coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); + coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); + coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue()); + coursePackageOrder.setPayUserType(1); + coursePackageOrder.setPayStatus(2); + coursePackageOrder.setPayUserId(appUser.getId()); + coursePackageOrder.setStatus(1); + coursePackageOrder.setState(1); + coursePackageOrder.setInsertTime(new Date()); + coursePackageOrderService.save(coursePackageOrder); + orderId = coursePackageOrder.getId(); + }else{ + CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(orderId); + coursePackageOrder.setPayType(3); + coursePackageOrder.setAppUserId(null); + coursePackageOrder.setPayUserId(appUser.getId()); + coursePackageOrder.setPayUserType(1); + coursePackageOrder.setPayStatus(2); + coursePackageOrderService.updateById(coursePackageOrder); + } - addCoursePackageOrderStudent(coursePackageOrder.getId(), coursePackagePaymentConfig); + addCoursePackageOrderStudent(orderId, coursePackagePaymentConfig); return ResultUtil.success(); } -- Gitblit v1.7.1