From c036557db88c6297b9a626a892dce35c14ab8ee5 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期四, 09 十一月 2023 18:30:31 +0800
Subject: [PATCH] 11.6

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java |  183 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 152 insertions(+), 31 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 96e9b12..bbf7b33 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
@@ -35,9 +35,7 @@
 import com.dsh.course.model.vo.RegisterCourseVo;
 import com.dsh.course.model.vo.request.*;
 import com.dsh.course.model.vo.response.*;
-import com.dsh.course.service.CoursePackageSchedulingService;
-import com.dsh.course.service.ICoursePackageSchedulingService;
-import com.dsh.course.service.TCoursePackagePaymentService;
+import com.dsh.course.service.*;
 import com.dsh.course.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -56,6 +54,8 @@
 import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -320,28 +320,35 @@
         }
         return responses;
     }
-
+    @Autowired
+    private TCourseService courseService;
     @Override
     public CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest,Integer appUserId) {
         CourseOfVideoResponse response = new CourseOfVideoResponse();
-        BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId());
+//        BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId());
+        TCourse byId = courseService.getById(detailsRequest.getVideoId());
         TCoursePackage coursePackage = tcpmapper.selectById(detailsRequest.getCoursePackageId());
-        if (null != videosWithIds && null != coursePackage){
+
+        if (null != coursePackage){
             response.setCoursePackageId(coursePackage.getId());
-            response.setVideoId(videosWithIds.getId());
-            response.setVideoURL(videosWithIds.getVideos());
-            response.setVideoName(videosWithIds.getName());
-            response.setIntegral(videosWithIds.getIntegral());
+            response.setVideoId(byId.getId());
+            response.setVideoURL(byId.getCourseVideo());
+            response.setVideoName(coursePackage.getName());
+//            response.setIntegral(byId.getIntegral());
             UserVideoDetails userVideoDetails = uvdmapper.selectOne(new QueryWrapper<UserVideoDetails>()
                     .eq("appUserId",appUserId )
                     .eq("coursePackageId",coursePackage.getId())
-                    .eq("courseId",videosWithIds.getId()));
+                    .eq("courseId",detailsRequest.getVideoId()));
 
-            response.setStudyStatus(userVideoDetails.getState());
+            if (userVideoDetails!=null) {
+                response.setStudyStatus(userVideoDetails.getState());
+            }else {
+                response.setStudyStatus(1);
+            }
             response.setPackageName(coursePackage.getName());
-            response.setSynopsis(videosWithIds.getIntroduction());
-            response.setDetailedDiagram(coursePackage.getIntroduceDrawing());
-            response.setCover(videosWithIds.getCover());
+            response.setSynopsis(byId.getIntroduce());
+            response.setDetailedDiagram(byId.getIntroductionDrawing());
+            response.setCover(byId.getCoverDrawing());
         }
 
         return response;
@@ -433,23 +440,45 @@
 
         if (null != tCoursePackagePayment){
             TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+            if (coursePackage.getType()==2) {
+                response.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime()));
+            }
+
+
             response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
             response.setCoverDrawing(coursePackage.getCoverDrawing());
             response.setDetailDrawing(coursePackage.getDetailDrawing());
             response.setCoursePackageName(coursePackage.getName());
             response.setCoursePayId(tCoursePackagePayment.getId());
+            response.setType(coursePackage.getType());
             List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks());
+            String classWeeks = coursePackage.getClassWeeks();
             if (integers.size() > 0){
-                StringBuilder courWeeks = new StringBuilder("每");
-                for (Integer integer : integers) {
-                    courWeeks.append(integer).append("、");
-                }
-                if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
-                    courWeeks.deleteCharAt(courWeeks.length() - 1);
-                }
+                StringBuilder courWeeks = new StringBuilder("每"+classWeeks);
+//                for (Integer integer : integers) {
+//                    courWeeks.append(integer).append("、");
+//                }
+//                if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
+//                    courWeeks.deleteCharAt(courWeeks.length() - 1);
+//                }
                 response.setWeeks(courWeeks.toString());
             }
-            response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
+            ArrayList<String> classTime = new ArrayList<>();
+            String[] split4 = coursePackage.getClassStartTime().split(",");
+            String[] split3 = coursePackage.getClassEndTime().split(",");
+            if(ToolUtil.isNotEmpty(coursePackage.getClassStartTime())){
+                for (int i = 0; i < split4.length; i++) {
+                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
+                    classTime.add(s);
+                }
+            }
+
+            String joinedString = String.join("|", classTime);
+
+            response.setCourseTimeFrame(joinedString);
+
+
+//            response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
             response.setIntroduceDrawing(coursePackage.getIntroduceDrawing());
 
             Integer payType = tCoursePackagePayment.getPayType();
@@ -740,8 +769,6 @@
 
     @Override
     public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId,Integer pageNum) {
-
-
         List<RecordAppoint> recordVoList = new ArrayList<>();
         List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>()
                 .eq("studentId",stuId )
@@ -759,7 +786,7 @@
         if (tCoursePackagePayments.size() > 0 ){
 
 //            int pageNum = 1; // 页码
-            int pageSize = 5; // 每页记录数
+            int pageSize = 100; // 每页记录数
             Page<CoursePackageStudent> page = new Page<>(1, pageSize);
 
 //            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
@@ -811,6 +838,10 @@
                         CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId());
 //                        String classStartTime = coursePackage.getClassStartTime();
 //                        String classEndTime = coursePackage.getClassEndTime();
+                            //这里是过滤今天之后的数据
+//                        if (byId == null||byId.getClassDate().after(new Date())){
+//                            continue;
+//                        }
 
                         if (byId == null){
                             continue;
@@ -831,7 +862,7 @@
                         List<String> integerList = Arrays.asList(split);
                         String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
                         if (integerList.contains(weekOfDate)){
-                            String dat = simpleDateFormat.format(date) +" "+ dateString2.substring(11);
+                            String dat = simpleDateFormat.format(byId.getClassDate()) +" "+ dateString1.substring(11);
 
                             Date start = null;
                             try {
@@ -839,11 +870,18 @@
                             } catch (ParseException e) {
                                 throw new RuntimeException(e);
                             }
-                            if (start.after(new Date())){
-                                recordVo.setStatus(1);
-                            }else if(coursePackageStudent.getSignInOrNot()==2){
+                            if (byId.getStatus()==4){
+                                recordVo.setStatus(4);
+                            } else if(coursePackageStudent.getSignInOrNot()==2){
                                 recordVo.setStatus(5);
-                            }else {
+                            }
+                            else if (start.after(new Date())){
+                                recordVo.setStatus(1);
+                            }
+//                            else if(coursePackageStudent.getSignInOrNot()==2){
+//                                recordVo.setStatus(5);
+//                            }
+                            else {
 //                                CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
 //                                        .eq("coursePackageId",coursePackageStudent.getCoursePackageId()));
                                 CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
@@ -1106,6 +1144,15 @@
         return integers;
     }
 
+    @Autowired
+    private TCoursePackageService packageService;
+
+
+    @Autowired
+    private TCoursePackagePaymentService packagePaymentService;
+    @Autowired
+    private CoursePackageStudentService coursePackageStudentService;
+
     @Override
     @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
     public ResultUtil payCourse(PayCourseReq req,Integer userId){
@@ -1119,6 +1166,67 @@
         }
         tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours()-req.getNum());
         this.baseMapper.updateHoursById(tCoursePackagePayment.getId(),-req.getNum());
+
+//
+//        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
+//        List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
+//        coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect));
+//        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
+//
+//        TCoursePackage tCoursePackage = packageService.getById(tCoursePackagePayment.getCoursePackageId());
+//        String classWeeks = tCoursePackage.getClassWeeks();
+//        List<Integer> week = week(classWeeks);
+//
+//        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", tCoursePackagePayment.getCoursePackageId()).eq("studentId", tCoursePackagePayment.getStudentId()));
+//
+//
+//        Date today = new Date();
+//
+//        Integer laveClassHours = pay.getLaveClassHours();
+//        Integer codeTime = tCoursePackage.getCodeTime();
+//        Integer can = laveClassHours/codeTime;
+//
+//        int count = 0;
+//        String[] split = tCoursePackage.getClassStartTime().split(",");
+//        String[] split1 = tCoursePackage.getClassEndTime().split(",");
+//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+//        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+//
+//        Date[] dates = generateDateArray(14,today);
+//        for (Date date : dates) {
+//            if (count==can){
+//                break;
+//            }
+//            int wei =  cn.hutool.core.date.DateUtil.dayOfWeek(date);
+//            if (week.contains(wei)){
+//                for (int i1 = 0; i1 < split.length; i1++) {
+//                    if (count==can){
+//                        break;
+//                    }
+//                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+//                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+//                    Date parse = format1.parse(format.format(date) + " " + split[i1]);
+//                    Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
+//                    coursePackageScheduling.setClassDate(parse);
+//                    coursePackageScheduling.setEndDate(parse1);
+//                    coursePackageScheduling.setStatus(1);
+//                    coursePackageSchedulingService.save(coursePackageScheduling);
+//                    CoursePackageStudent student1 = new CoursePackageStudent();
+//                    student1.setAppUserId(pay.getAppUserId());
+//                    student1.setStudentId(pay.getStudentId());
+//                    student1.setCoursePackageId(pay.getCoursePackageId());
+//                    student1.setCoursePackagePaymentId(pay.getId());
+//                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+//                    student1.setSignInOrNot(1);
+//                    student1.setReservationStatus(1);
+//                    student1.setInsertTime(new Date());
+//                    studentService.save(student1);
+//                    count++;
+//                }
+//            }
+//        }
+
+
 
 
         TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId());
@@ -1232,5 +1340,18 @@
 
 
 
+    public static Date[] generateDateArray(int numDays,Date date) {
+//        LocalDate tomorrow = LocalDate.now().plusDays(1);
+        LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
+
+        Date[] dates = new Date[numDays];
+
+        for (int i = 0; i < numDays; i++) {
+            LocalDate currentDate = tomorrow.plusDays(i);
+            dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+        }
+
+        return dates;
+    }
 
 }

--
Gitblit v1.7.1