From 18b58aaf9bd99cadd0e7f80fe5d80586f2f4831a Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期五, 24 十一月 2023 18:32:43 +0800 Subject: [PATCH] 11.24 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 462 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 392 insertions(+), 70 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 7641115..0cc4ea6 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 @@ -203,7 +203,7 @@ coursePackageListVo.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin()); } //会员显示原价和会员价(最低)。非会员显示会员价和支付价(最低) - if(appUser.getIsVip() == 0){//非会员 +// if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) .eq("type", 1).eq("auditStatus", 2).eq("status",1)); Double vipPrice = coursePackagePaymentConfig.getCashPayment(); @@ -214,9 +214,10 @@ } } coursePackageListVo.setVipPrice(vipPrice); + coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); Double paymentPrice = coursePackagePaymentConfig.getCashPayment(); - List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) + List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) .eq("type", 3).eq("auditStatus", 2).eq("status",1)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (TCoursePackageDiscount coursePackageDiscount : list3) { @@ -292,19 +293,47 @@ } } coursePackageListVo.setPaymentPrice(paymentPrice); - }else{ - List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 1).eq("auditStatus", 2).eq("status",1)); - Double vipPrice = coursePackagePaymentConfig.getCashPayment(); - for (TCoursePackageDiscount coursePackageDiscount : list2) { - Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); - if(vipPrice.compareTo(num1) > 0){ - vipPrice = num1; - } - } - coursePackageListVo.setPaymentPrice(vipPrice); + + double vipPrice1 = coursePackageListVo.getVipPrice(); + double originalPrice1 = coursePackageListVo.getOriginalPrice(); + double paymentPrice1 = coursePackageListVo.getPaymentPrice(); + +// double minPrice = Math.min(vipPrice1, Math.min(originalPrice1, paymentPrice1)); +// double maxPrice = Math.max(vipPrice1, Math.max(originalPrice1, paymentPrice1)); +// coursePackageListVo.setPaymentPrice(minPrice); +// coursePackageListVo.setOriginalPrice(maxPrice); +// System.out.println("Minimum price: " + minPrice); + + + +// } +// else{ +// List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) +// .eq("type", 1).eq("auditStatus", 2).eq("status",1)); +// Double vipPrice = coursePackagePaymentConfig.getCashPayment(); +// for (TCoursePackageDiscount coursePackageDiscount : list2) { +// Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); +// if(vipPrice.compareTo(num1) > 0){ +// vipPrice = num1; +// } +// } +// coursePackageListVo.setPaymentPrice(vipPrice); +// coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); +// } + + if (coursePackageListVo.getPaymentPrice()<coursePackageListVo.getVipPrice()){ coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); +// coursePackageListVo.setVipPrice(null); } + + if(appUser.getIsVip() == 1) { + if (coursePackageListVo.getVipPrice() < coursePackageListVo.getPaymentPrice()) { + coursePackageListVo.setPaymentPrice(coursePackageListVo.getVipPrice()); + } + }else { + coursePackageListVo.setVipPrice(null); + } + Map<String, Double> distance = GeodesyUtil.getDistance(coursePackageList.getLon() + "," + coursePackageList.getLat(), store.getLon() + "," + store.getLat()); coursePackageListVo.setDistance(distance.get("WGS84") / 1000); @@ -604,6 +633,8 @@ coursePackageInfo.setDetailDrawing(coursePackage.getDetailDrawing()); coursePackageInfo.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); + + List<CoursePackagePaymentConfigVo> list = new ArrayList<>(); List<CoursePackagePaymentConfig> list1 = coursePackagePaymentConfigService.list(new QueryWrapper<CoursePackagePaymentConfig>().eq("coursePackageId", id).orderByAsc("classHours")); list1.forEach(coursePackagePaymentConfig -> { @@ -622,7 +653,7 @@ // coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType()); //会员显示原价和支付价(会员价)。非会员显示会员价和支付价(最低) - if(appUser.getIsVip() == 0){//非会员 +// if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) .eq("type", 1).eq("auditStatus", 2)); Double vipPrice = coursePackagePaymentConfig.getCashPayment(); @@ -633,7 +664,6 @@ } } coursePackagePaymentConfigVo.setVipPrice(vipPrice); - Double paymentPrice = coursePackagePaymentConfig.getCashPayment(); List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) .eq("type", 3).eq("auditStatus", 2)); @@ -711,19 +741,54 @@ } } coursePackagePaymentConfigVo.setPaymentPrice(paymentPrice); - }else{ - List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 1).eq("auditStatus", 2)); - Double vipPrice = coursePackagePaymentConfig.getCashPayment(); - for (TCoursePackageDiscount coursePackageDiscount : list2) { - Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); - if(vipPrice.compareTo(num1) > 0){ - vipPrice = num1; + + + +// TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) +// .eq("type", 2).eq("auditStatus", 2)); +// +// +// //这里是续课优惠 +// Double continuingMember = JSON.parseObject(discount.getContent()).getDouble("continuingUser"); +// Double vipcontinuingMember = JSON.parseObject(discount.getContent()).getDouble("continuingMember"); +// +// +// if (coursePackagePaymentConfigVo.getPaymentPrice()>continuingMember){ +// coursePackagePaymentConfigVo.setPaymentPrice(continuingMember); +// } +// if (coursePackagePaymentConfigVo.getVipPrice()>vipcontinuingMember){ +// coursePackagePaymentConfigVo.setVipPrice(vipcontinuingMember); +// } + if(appUser.getIsVip() == 1) { + if (coursePackagePaymentConfigVo.getVipPrice()<coursePackagePaymentConfigVo.getPaymentPrice()){ + coursePackagePaymentConfigVo.setPaymentPrice(coursePackagePaymentConfigVo.getVipPrice()); + coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); } + + } + + if (coursePackagePaymentConfigVo.getPaymentPrice()<coursePackagePaymentConfigVo.getVipPrice()){ + coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); + coursePackagePaymentConfigVo.setVipPrice(null); } - coursePackagePaymentConfigVo.setPaymentPrice(vipPrice); - coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); - } + + + + +// } +// else{ +// List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) +// .eq("type", 1).eq("auditStatus", 2)); +// Double vipPrice = coursePackagePaymentConfig.getCashPayment(); +// for (TCoursePackageDiscount coursePackageDiscount : list2) { +// Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); +// if(vipPrice.compareTo(num1) > 0){ +// vipPrice = num1; +// } +// } +// coursePackagePaymentConfigVo.setPaymentPrice(vipPrice); +// coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); +// } list.add(coursePackagePaymentConfigVo); }); coursePackageInfo.setList(list); @@ -756,8 +821,11 @@ //校验是否已经报满 Integer integer = coursePackagePaymentService.queryCountNumber(paymentCourseVo.getId()); TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); - if (integer+paymentCourseVo.getStudentIds().split(";").length>course.getMaxSubscribeNumber()){ - return ResultUtil.error("报名失败,已达最大报名人数"); + if (course.getType()!=3) { + + if (integer + paymentCourseVo.getStudentIds().split(";").length > course.getMaxSubscribeNumber()) { + return ResultUtil.error("报名失败,已达最大报名人数"); + } } List<CoursePackagePaymentConfigVo> list = coursePackageInfo.getList(); String[] students = paymentCourseVo.getStudentIds().split(";"); @@ -789,9 +857,10 @@ paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币 playPaiCoin = new BigDecimal(students.length).multiply(new BigDecimal(playPaiCoin)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ - return ResultUtil.error("支付金额异常,请刷新后重试"); - } + +// if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ +// return ResultUtil.error("支付金额异常,请刷新后重试"); +// } if(paymentCourseVo.getPayType() == 3 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){ return ResultUtil.error("支付金额异常,请刷新后重试"); } @@ -803,7 +872,7 @@ if(null != couponId && paymentCourseVo.getPayType() != 3){ UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId); if(userCoupon.getStatus() == 2){ - return ResultUtil.error("优惠券已被核销"); + return ResultUtil.error("优惠券已被使用"); } Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId()); long time = coupon.getEndTime().getTime(); @@ -829,6 +898,9 @@ } price = new BigDecimal(price).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } + userCoupon.setStatus(2); + userCouponClient.edit(userCoupon); + } if(paymentCourseVo.getPayType() == 1){//微信支付 @@ -964,6 +1036,8 @@ return weixinpay; } + @Autowired + private TOrderService orderService; /** * 课程支付宝支付 @@ -978,6 +1052,10 @@ String[] split = paymentCourseVo.getStudentIds().split(";"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + List<Long> pays = new ArrayList<>(); + + int isContinue = 0; + for (String s : split) { // TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); // coursePackagePayment.setCode(code); @@ -1011,18 +1089,35 @@ TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId())); + //赠送课时 + int weekday = DateUtil.dayOfWeek(new Date()) - 1; + TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1")); + + Integer hour = 0; + if (discount!=null) { + JSONArray objects = JSONObject.parseArray(discount.getContent()); + JSONObject parse = JSONObject.parseObject(JSONObject.toJSONString(objects.get(0))); + hour = parse.getInteger("hour"); + if (hour == null) { + hour = 0; + } + } + + + if (coursePackagePaymentServiceOne==null) { + isContinue = 1; TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); coursePackagePayment.setCode(code); coursePackagePayment.setAppUserId(uid); coursePackagePayment.setStudentId(Integer.valueOf(s)); coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); coursePackagePayment.setPayType(paymentCourseVo.getPayType()); - coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()+hour); coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); coursePackagePayment.setPlayPaiCoin(paymentPrice.intValue()); - coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()+hour); coursePackagePayment.setAbsencesNumber(0); coursePackagePayment.setPayUserType(1); coursePackagePayment.setPayStatus(1); @@ -1037,6 +1132,8 @@ sId = student.getId(); } + pays.add(coursePackagePayment.getId()); + // coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); // addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePayment.getId()); @@ -1049,39 +1146,83 @@ courseCounsum.setReason("购买课包"); courseCounsumService.save(courseCounsum); - }else { - coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()); - coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); - coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); - coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()); - coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()); - coursePackagePaymentServiceOne.setCode(code); - coursePackagePaymentServiceOne.setAppUserId(null); - coursePackagePaymentServiceOne.setPayStatus(1); - coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); -// coursePackagePaymentService.save(coursePackagePayment); - Integer sId = null; - Student student = studentClient.queryDefaultStudent(uid); - if (student != null) { - sId = student.getId(); + + if (hour!=0){ + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setPaymentId(coursePackagePayment.getId()); + courseCounsum1.setChangeType(1); + courseCounsum1.setNum(hour); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("赠送课时"); + courseCounsumService.save(courseCounsum); + } - coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + + //保存订单 -// addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePaymentServiceOne.getId()); - CourseCounsum courseCounsum = new CourseCounsum(); - courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); - courseCounsum.setChangeType(1); - courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); - courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("续课"); - courseCounsumService.save(courseCounsum); + + }else { + if (coursePackagePaymentServiceOne.getPayStatus()==1){ + isContinue = 1; + + } +// coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()); +// coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); +// coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); +// coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()); +// coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()); + coursePackagePaymentServiceOne.setCode(code); +// + coursePackagePaymentServiceOne.setPayStatus(1); +// coursePackagePaymentServiceOne.setSalesName("续课"); + coursePackagePaymentServiceOne.setAppUserId(null); +// coursePackagePaymentServiceOne.setPayStatus(2); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + pays.add(coursePackagePaymentServiceOne.getId()); + + +// +// Integer sId = null; +// Student student = studentClient.queryDefaultStudent(uid); +// if (student != null) { +// sId = student.getId(); +// } +// coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); +// +// +// CourseCounsum courseCounsum = new CourseCounsum(); +// courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); +// courseCounsum.setChangeType(1); +// courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); +// courseCounsum.setInsertTime(new Date()); +// courseCounsum.setReason("续课"); +// courseCounsumService.save(courseCounsum); } + } + + + //新的订单添加 + if (paymentCourseVo.getOrderId()==null) { + TOrder order = new TOrder(); + order.setIsPay(1); + order.setPayType(1); + order.setAppUserId(uid); + order.setPrice(paymentPrice); + order.setCode(code); + + String paysStr = pays.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + order.setPaysId(paysStr); + + orderService.save(order); + } Student student = studentClient.queryDefaultStudent(uid); @@ -1093,10 +1234,13 @@ ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", student.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); if(alipay.getCode() == 200){ Integer finalSid = sid; + int finalIsContinue = isContinue; new Thread(new Runnable() { @Override public void run() { try { + Thread.sleep(1000); + int num = 1; int wait = 0; while (num <= 10){ @@ -1105,11 +1249,17 @@ Thread.sleep(wait); List<TCoursePackagePayment> list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("state", 1).eq("code", code).eq("payType", 2)); TCoursePackagePayment one = list.get(0); - if(one.getPayStatus() == 2){ + + List<TOrder> list1 = orderService.list(new QueryWrapper<TOrder>().eq("code", code).eq("payType", 1)); + TOrder order = list1.get(0); + + + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); + if(order.getIsPay() == 2){ break; } - AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); - if( one.getPayStatus() == 1){ + + if(order.getIsPay() == 1){ /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 @@ -1120,7 +1270,8 @@ String tradeNo = alipayTradeQueryResponse.getTradeNo(); if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ - for (TCoursePackagePayment coursePackagePayment : list) { + for (TCoursePackagePayment coursePackagePayment : list) { + coursePackagePayment.setStatus(3); } coursePackagePaymentService.updateBatchById(list); @@ -1132,7 +1283,79 @@ coursePackagePayment.setOrderNumber(tradeNo); coursePackagePayment.setAppUserId(null); } + coursePackagePaymentService.updateBatchById(list); + + + for (TOrder tOrder : list1) { + tOrder.setIsPay(2); + tOrder.setOrderNum(tradeNo); + } + orderService.updateBatchById(list1); + + + + for (String s1 : split) { + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s1).eq("coursePackageId", paymentCourseVo.getId())); + if (finalIsContinue !=1) { + + TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1")); + + Integer hour = 0; + if (discount!=null) { + JSONArray objects = JSONObject.parseArray(discount.getContent()); + JSONObject parse = JSONObject.parseObject(JSONObject.toJSONString(objects.get(0))); + hour = parse.getInteger("hour"); + if (hour == null) { + hour = 0; + } + } + + + + coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); + coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setCode(code); + + coursePackagePaymentServiceOne.setAppUserId(null); + coursePackagePaymentServiceOne.setPayStatus(2); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + + Integer sId = null; + Student student = studentClient.queryDefaultStudent(uid); + if (student != null) { + sId = student.getId(); + } + coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课"); + courseCounsumService.save(courseCounsum); + + + if (hour!=0){ + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum1.setChangeType(1); + courseCounsum1.setNum(hour); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("赠送课时"); + courseCounsumService.save(courseCounsum); + + } + + + } + } + System.out.println("===========到达支付"); // 2.0 String[] coupons = coursePackagePaymentConfig.getCouponIds().split(","); @@ -1142,9 +1365,7 @@ userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); for (TCoursePackagePayment coursePackagePayment : list) { - addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice()); - - + addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentPrice); } moneyOut(tradeNo,tradeNo); @@ -1279,6 +1500,11 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + List<Long> pays = new ArrayList<>(); + + + TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); + //赠送课时 int weekday = DateUtil.dayOfWeek(new Date()) - 1; @@ -1318,6 +1544,16 @@ coursePackagePayment.setStatus(1); coursePackagePayment.setState(1); coursePackagePayment.setInsertTime(new Date()); + + if (course.getValidDays()!=null) { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DATE, course.getValidDays()); + date = calendar.getTime(); + coursePackagePayment.setUseTime(date); + } + coursePackagePaymentService.save(coursePackagePayment); Integer sId = null; Student student = studentClient.queryDefaultStudent(appUser.getId()); @@ -1335,9 +1571,25 @@ courseCounsum.setReason("购买课包"); courseCounsumService.save(courseCounsum); - }else { + if (hour!=0){ + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setPaymentId(coursePackagePayment.getId()); + courseCounsum1.setChangeType(1); + courseCounsum1.setNum(hour); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("赠送课时"); + courseCounsumService.save(courseCounsum1); + } + + + pays.add(coursePackagePayment.getId()); + }else{ coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour); - coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); + if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) { + coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice() + paymentCourseVo.getPrice()); + }else { + coursePackagePaymentServiceOne.setOriginalPrice(paymentCourseVo.getPrice()); + } if (coursePackagePaymentServiceOne.getPlayPaiCoin()==null){ coursePackagePaymentServiceOne.setPlayPaiCoin(paymentPrice.intValue()); @@ -1346,6 +1598,18 @@ coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour); coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour); coursePackagePaymentServiceOne.setAppUserId(null); + + + if (course.getValidDays()!=null) { + Date date = coursePackagePaymentServiceOne.getUseTime(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DATE, course.getValidDays()); + date = calendar.getTime(); + coursePackagePaymentServiceOne.setUseTime(date); + } + + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); // coursePackagePaymentService.save(coursePackagePayment); @@ -1365,10 +1629,44 @@ courseCounsum.setReason("续课"); courseCounsumService.save(courseCounsum); + if (hour!=0){ + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum1.setChangeType(1); + courseCounsum1.setNum(hour); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("赠送课时"); + courseCounsumService.save(courseCounsum1); + } + + + pays.add(coursePackagePaymentServiceOne.getId()); + + } } + + + if (paymentCourseVo.getOrderId()==null) { + TOrder order = new TOrder(); + order.setIsPay(1); + order.setPayType(2); + order.setAppUserId(appUser.getId()); + order.setPrice(paymentPrice); + order.setCode(code); + + String paysStr = pays.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + order.setPaysId(paysStr); + + orderService.save(order); + + } + + Integer playPaiCoins = appUser.getPlayPaiCoins(); appUser.setPlayPaiCoins(playPaiCoins - paymentPrice.intValue()); @@ -1454,7 +1752,10 @@ if (count == can) { break; } - int wei = DateUtil.dayOfWeek(date); + int wei = DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei = 7; + } if (week.contains(wei)) { for (int i1 = 0; i1 < split.length; i1++) { if (count == can) { @@ -1545,6 +1846,27 @@ } } } + }else if (tCoursePackage.getType()==3){ + + if (price!=null) { + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(paymentId); + courseCounsum.setChangeType(3); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买体验课;" + price); + courseCounsum.setAppUserId(userId); + courseCounsumService.save(courseCounsum); + } + + + //生成当天的排课记录 + + //生成学员的上课表 + + + + + } @@ -1862,7 +2184,7 @@ } @Override - public Integer getHours(Integer coursePackageId) { + public List<Integer> getHours(Integer coursePackageId) { return this.baseMapper.getHours(coursePackageId); } -- Gitblit v1.7.1