From 134d13688e4b6677133ba2d362d2978d8bda2b87 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 12 七月 2023 11:46:30 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 13 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index e147946..93feb54 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -6,7 +6,9 @@ import com.dsh.course.feignclient.account.CoachClient; import com.dsh.course.feignclient.account.model.Coach; import com.dsh.course.feignclient.activity.BenefitVideoClient; +import com.dsh.course.feignclient.activity.CouponClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; +import com.dsh.course.feignclient.activity.model.Coupon; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.*; @@ -20,8 +22,10 @@ import com.dsh.course.model.vo.response.CourseDetailsResponse; import com.dsh.course.model.vo.response.CourseOfVideoResponse; import com.dsh.course.service.TCoursePackagePaymentService; +import com.dsh.course.util.PayMoneyUtil; import com.dsh.course.util.ResultUtil; import com.dsh.course.util.StrUtils; +import com.dsh.course.util.UUIDUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +33,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -74,6 +79,11 @@ @Resource private TCoursePackageDiscountMapper tcpdMapper; + @Resource + private CouponClient client; + + @Autowired + private PayMoneyUtil payMoneyUtil; /** @@ -178,6 +188,7 @@ TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); Store store = stoClient.queryStoreById(coursePackage.getStoreId()); RegisterCourseVo registerCourseVo = new RegisterCourseVo(); + registerCourseVo.setCoursePayId(tCoursePackagePayment.getId()); registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")"; @@ -197,18 +208,16 @@ } @Override - public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) { + public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePayId, Integer appUserId) { CourseDetailsResponse response = new CourseDetailsResponse(); - List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>() - .eq("coursePackageId",coursePackageId ) - .eq("appUserId",appUserId)); + TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); - if (tCoursePackagePayments.size() > 0){ - TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0); + if (null != tCoursePackagePayment){ TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); response.setCoverDrawing(coursePackage.getCoverDrawing()); response.setCoursePackageName(coursePackage.getName()); + response.setCoursePayId(tCoursePackagePayment.getId()); List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks()); if (integers.size() > 0){ StringBuilder courWeeks = new StringBuilder("每"); @@ -282,16 +291,39 @@ @Override public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) { - // TODO: 2023/7/5 报名课程支付 + TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId()); + String code = ""; + if (tCoursePackagePayment.getPayStatus() == 1){ + code = tCoursePackagePayment.getCode(); + }else { + TCoursePackagePayment newPayment = new TCoursePackagePayment(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5)); + newPayment.setAppUserId(userIdFormRedis); + newPayment.setStudentId(request.getStuId()); + newPayment.setCoursePackageId(request.getLessonId()); + newPayment.setClassHours(tCoursePackagePayment.getClassHours()); + newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice()); + newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours()); + newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours()); + newPayment.setAbsencesNumber(0); + newPayment.setPayUserType(1); + newPayment.setPayStatus(1); + newPayment.setStatus(1); + newPayment.setState(1); + newPayment.setInsertTime(new Date()); + this.baseMapper.insert(newPayment); + code = newPayment.getCode(); + } switch (request.getPayType()){ case 1: - WeChatPayment(); + WeChatPayment(code,request); break; case 2: - AlipayPayment(); + AlipayPayment(code,request); break; case 3: - PlaypaiGoldPayment(); + PlaypaiGoldPayment(code,request); break; default: break; @@ -300,15 +332,72 @@ } - public void WeChatPayment(){ + public void WeChatPayment(String code, ClasspaymentRequest request){ } - public void AlipayPayment(){ + public ResultUtil AlipayPayment(String code, ClasspaymentRequest request){ + BigDecimal amount = BigDecimal.ZERO; + if (request.getUseConpon() == 1){ + Coupon coupon = client.queryCouponById(request.getConponId()); + // TODO: 2023/7/11 课包购买的微信支付 + } + + ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, amount.toString(), + "/base/coursePackage/alipayNewPaymentCallback"); +// if(alipay.getCode() == 200){ +// new Thread(new Runnable() { +// @Override +// public void run() { +// try { +// int num = 1; +// int wait = 0; +// while (num <= 10){ +// int min = 5000; +// wait += (min * num); +// Thread.sleep(wait); +// TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code); +// if(coursePackagePayment.getPayStatus() == 2){ +// break; +// } +// ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code); +// if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){ +// /** +// * WAIT_BUYER_PAY(交易创建,等待买家付款)、 +// * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 +// * TRADE_SUCCESS(交易支付成功)、 +// * TRADE_FINISHED(交易结束,不可退款) +// */ +// Map<String, String> data1 = resultUtil.getData(); +// String s = data1.get("tradeStatus"); +// String tradeNo = data1.get("tradeNo"); +// if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ +// coursePackagePayment.setState(3); +// couPayClient.delPaymentCoursePackage(coursePackagePayment.getId()); +// break; +// } +// if("TRADE_SUCCESS".equals(s)){ +// coursePackagePayment.setPayStatus(2); +// coursePackagePayment.setOrderNumber(tradeNo); +// couPayClient.updatePaymentCoursePackage(coursePackagePayment); +// break; +// } +// if("WAIT_BUYER_PAY".equals(s)){ +// num++; +// } +// } +// } +// }catch (Exception e){ +// e.printStackTrace(); +// } +// } +// }).start(); +// } + return alipay; } - public void PlaypaiGoldPayment(){ + public void PlaypaiGoldPayment(String code, ClasspaymentRequest request){ } -- Gitblit v1.7.1