From eb4168a55e5cbfc04fe4e2b6c99d8a232f85ad2e Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 24 十一月 2023 18:30:42 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |  281 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 238 insertions(+), 43 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 4d0de4b..9fd9159 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
@@ -298,12 +298,14 @@
             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);
-            System.out.println("Maximum price: " + maxPrice);
+//            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())
@@ -318,6 +320,20 @@
 //                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);
@@ -637,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();
@@ -726,25 +742,53 @@
                     }
                     coursePackagePaymentConfigVo.setPaymentPrice(paymentPrice);
 
-                    if (coursePackagePaymentConfigVo.getPaymentPrice()<coursePackagePaymentConfigVo.getVipPrice()){
+
+
+//                    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);
                     }
 
-                }
-                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());
-                }
+
+
+
+//                }
+//                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);
@@ -813,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("支付金额异常,请刷新后重试");
                 }
@@ -827,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();
@@ -853,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){//微信支付
@@ -988,6 +1036,8 @@
         return weixinpay;
     }
 
+    @Autowired
+    private TOrderService orderService;
 
     /**
      * 课程支付宝支付
@@ -1002,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);
@@ -1035,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);
@@ -1061,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());
@@ -1073,17 +1146,41 @@
                 courseCounsum.setReason("购买课包");
                 courseCounsumService.save(courseCounsum);
 
+
+
+
+                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);
+
+                }
+
+                //保存订单
+
+
+
+
             }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.setCode(code);
 //
-//                coursePackagePaymentServiceOne.setAppUserId(null);
+                coursePackagePaymentServiceOne.setPayStatus(1);
+//                coursePackagePaymentServiceOne.setSalesName("续课");
+                coursePackagePaymentServiceOne.setAppUserId(null);
 //                coursePackagePaymentServiceOne.setPayStatus(2);
-//                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
+                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
+                pays.add(coursePackagePaymentServiceOne.getId());
+
+
 //
 //                Integer sId = null;
 //                Student student = studentClient.queryDefaultStudent(uid);
@@ -1105,6 +1202,25 @@
             }
         }
 
+
+
+        if (paymentCourseVo.getOrderId()==null) {
+            TOrder order = new TOrder();
+            order.setIsPay(1);
+            order.setPayType(2);
+            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);
         Integer sid=null;
         if(student!=null){
@@ -1114,10 +1230,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){
@@ -1126,10 +1245,11 @@
                             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);
+                            AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
                             if(one.getPayStatus() == 2){
                                 break;
                             }
-                            AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
+
                             if( one.getPayStatus() == 1){
                                 /**
                                  * WAIT_BUYER_PAY(交易创建,等待买家付款)、
@@ -1141,7 +1261,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);
@@ -1154,14 +1275,32 @@
                                         coursePackagePayment.setAppUserId(null);
                                     }
 
+                                    coursePackagePaymentService.updateBatchById(list);
+
+
                                     for (String s1 : split) {
-                                        TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId()));
-                                        if (coursePackagePaymentServiceOne!=null) {
-                                            coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours());
+                                        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());
-                                            coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours());
+                                            coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
+                                            coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                             coursePackagePaymentServiceOne.setCode(code);
 
                                             coursePackagePaymentServiceOne.setAppUserId(null);
@@ -1185,10 +1324,21 @@
                                             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);
+
+                                            }
+
+
                                         }
                                     }
 
-                                    coursePackagePaymentService.updateBatchById(list);
                                 System.out.println("===========到达支付");
                                     // 2.0
                                     String[] coupons = coursePackagePaymentConfig.getCouponIds().split(",");
@@ -1199,8 +1349,6 @@
 
                                     for (TCoursePackagePayment coursePackagePayment : list) {
                                         addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice());
-
-
                                     }
 
                                     moneyOut(tradeNo,tradeNo);
@@ -1335,6 +1483,8 @@
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
 
+        TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId());
+
 
         //赠送课时
         int weekday = DateUtil.dayOfWeek(new Date()) - 1;
@@ -1374,6 +1524,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());
@@ -1391,6 +1551,16 @@
                 courseCounsum.setReason("购买课包");
                 courseCounsumService.save(courseCounsum);
 
+                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);
+                }
+
             }else{
                 coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                 if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) {
@@ -1406,6 +1576,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);
@@ -1424,6 +1606,16 @@
                 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(courseCounsum1);
+                }
 
 
             }
@@ -1514,7 +1706,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) {

--
Gitblit v1.7.1