puzhibing
2024-01-03 168d852672f8f671a01d6f0f053349d0d321ec7c
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -28,6 +28,7 @@
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.obs.services.internal.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -137,6 +138,12 @@
    @Autowired
    private ICoursePackageOrderStudentService coursePackageOrderStudentService;
    @Autowired
    private ALiSendSms aLiSendSms;
    @Resource
    private AppUserClient appuClient;
    /**
     * 查询学员入学时间 根据第一次购买课包的时间
@@ -182,12 +189,13 @@
        coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice());
        coursePackageOrder.setCashPayment(packagePayment.getCashPayment());
        coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin());
        coursePackageOrder.setCode(packagePayment.getCode());
        coursePackageOrder.setPayStatus(1);
        coursePackageOrder.setStatus(1);
        coursePackageOrder.setState(1);
        coursePackageOrder.setInsertTime(new Date());
        coursePackageOrder.setSalesName(packagePayment.getSalesName());
        coursePackageOrderService.save(coursePackageOrder);
        // 生成排课数据
        return 200;
@@ -230,7 +238,7 @@
                        .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
                        .eq("coursePackagePaymentConfigId",one1.getId()));
                if (one!=null){
                    Integer giftClassHours = getGiftClassHours(one);
                    Integer giftClassHours = getGiftClassHours(one,null);
                    coursePackageOrderStudent.setGiftClassHours(giftClassHours);
                    coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours);
                    coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours);
@@ -242,11 +250,11 @@
                calendar.setTime(new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                coursePackageOrderStudent.setUseTime(calendar.getTime());
                coursePackageOrderStudent.setInsertTime(new Date());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                Integer studentId = Integer.valueOf(byId1.getStudentIds());
                //开始排课
                addPackageStudent1(byId, byId1.getAppUserId(), studentId, coursePackageOrderStudent);
                addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
            } else {
                Date useTime = coursePackageOrderStudent.getUseTime();
                coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + byId1.getClassHours());
@@ -265,7 +273,7 @@
                        .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
                        .eq("coursePackagePaymentConfigId",one1.getId()));
                if (one!=null){
                    Integer giftClassHours = getGiftClassHours(one);
                    Integer giftClassHours = getGiftClassHours(one,null);
                    coursePackageOrderStudent.setGiftClassHours(giftClassHours);
                }else{
                    coursePackageOrderStudent.setGiftClassHours(0);
@@ -275,14 +283,18 @@
                calendar9.add(Calendar.DAY_OF_MONTH, byId.getValidDays());
                Date time = calendar9.getTime();
                coursePackageOrderStudent.setUseTime(time);
                coursePackageOrderStudent.setInsertTime(new Date());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                Integer studentId = Integer.valueOf(byId1.getStudentIds());
                //中间断课,没有连续续费的情况需要重新排课
                if (useTime.compareTo(new Date()) < 0) {
                    addPackageStudent1(byId, byId1.getAppUserId(), studentId, coursePackageOrderStudent);
                    addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
                }
            }
        }
            if(byId.getType() == 2){
                addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), byId1, null);
            }
        return packagePaymentService.changeState(dto);
    }
@@ -303,6 +315,25 @@
        List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query);
        List<CoursePackagePaymentVO> result = new ArrayList<>();
        for (CoursePackagePaymentVO re : res) {
            // 判断这条记录有没有赠送课时
            Integer coursePackageId = re.getCoursePackageId();
            Integer classHours = re.getClassHours();
            CoursePackagePaymentConfig one = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
                    .eq("coursePackageId", coursePackageId)
                    .eq("classHours", classHours));
            if (one!=null){
                TCoursePackageDiscount one1 = discountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId)
                        .eq("coursePackagePaymentConfigId", one.getId())
                        .eq("auditStatus",2).eq("status",1).eq("type",4));
                if (one1 == null){
                    re.setGiftClassHours(0);
                }else{
                    Integer giftClassHours = getGiftClassHours(one1,re.getInsertTime());
                    re.setGiftClassHours(giftClassHours);
                }
            }else{
                re.setGiftClassHours(0);
            }
            if (re.getCashPayment() == null) {
                if (re.getPlayPaiCoin() != null) {
                    String value = String.valueOf(re.getPlayPaiCoin());
@@ -312,7 +343,7 @@
            Store store = storeClient.queryStoreById(re.getStoreId());
            TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
            String studentId = re.getStudentId();
            String[] split = studentId.split(",");
            String[] split = studentId.split(";");
            StringBuilder stringBuilder = new StringBuilder("");
            for (String s : split) {
@@ -371,7 +402,7 @@
                    if (discountService.list(new QueryWrapper<TCoursePackageDiscount>()
                            .eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) {
                        re.setBuyType(3);
                        re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney()));
                        re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment()));
                    } else {
                        re.setBuyType(2);
                    }
@@ -447,7 +478,8 @@
                }
            }
            TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
            Student student = studentClient.queryStudentById(re.getStudentId());
            String[] split = re.getStudentIds().split(",");
            Student student = studentClient.queryStudentById(Integer.valueOf(split[0]));
            re.setPayStudent(student.getName());
            re.setPayUser(appUser.getName());
            re.setPhone(appUser.getPhone());
@@ -666,17 +698,17 @@
    @PostMapping("/base/coursePack/getRecord")
    public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
        List<CoursePackageOrderStudent> list = new ArrayList<>();
//        List<CoursePackageOrderStudent> list = new ArrayList<>();
        Integer[] changes = {1, 0};
        if (recordTimeRequest.getType() == null) {
            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
        } else {
            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
        }
        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
//        if (recordTimeRequest.getType() == null) {
//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
//        } else {
//
//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
//        }
//        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
        List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                .in("appUserId", appUserIds)
                .eq("studentId", recordTimeRequest.getStuId())
                .eq("coursePackageId", recordTimeRequest.getLessionId())
                .eq("state", 1)
        );
@@ -736,7 +768,6 @@
        return lisco;
    }
    @PostMapping("/base/coursePack/continuingCourse")
    public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
        StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -745,7 +776,6 @@
                .eq("coursePackageId", getStudentCourse.getCourseId())
                .eq("studentId", getStudentCourse.getStuId()));
        if (tCoursePackagePayments.size() > 0) {
            List<CourseHoursType> typeList = new ArrayList<>();
            tCoursePackagePayments.forEach(cou -> {
                CourseHoursType hoursType = new CourseHoursType();
@@ -756,7 +786,6 @@
            TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
            courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
            courseVo.setTypeList(typeList);
            TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
            courseVo.setPackageImg(coursePackage.getCoverDrawing());
            courseVo.setCourseName(coursePackage.getName());
@@ -833,9 +862,6 @@
        return videoVos;
    }
    @PostMapping("/base/coursePack/allPaymentCourseList")
    @ResponseBody
    public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
@@ -901,7 +927,6 @@
            Set<BaseVo> set = new HashSet<>(list);
            List<BaseVo> back = new ArrayList<>(set);
            return ResultUtil.success(back);
        } catch (Exception e) {
            e.printStackTrace();
@@ -919,25 +944,11 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception {
//        try {
        Integer appUserId = tokenUtil.getUserIdFormRedis();
        if (null == appUserId) {
            return ResultUtil.tokenErr();
        }
//
//            List<Integer> courseIds = new ArrayList<>();
//            QueryWrapper<TCoursePackagePayment> queryWrapper = new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId)
//                    .groupBy("coursePackageId");
//            if (ToolUtil.isNotEmpty(search.getCourseTypeId())){
//                queryWrapper.eq("coursePackageId",search.getCourseTypeId());
//            }
//            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(queryWrapper);
//            if (tCoursePackagePayments.size() > 0 ){
//                courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
//            }
        QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId());
        if (ToolUtil.isNotEmpty(search.getCourseTypeId())) {
            queryWrapper1.eq("coursePackageId", search.getCourseTypeId());
@@ -950,7 +961,6 @@
        }
        System.out.println("======longs========" + longs);
//           List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
        List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
        if (search.getSearch() != null) {
@@ -965,11 +975,6 @@
        }
        return ResultUtil.success(coursePackageSchedulings1);
//        }catch (Exception e){
//            return ResultUtil.runErr();
//        }
    }
    /**
@@ -1117,7 +1122,6 @@
    }
    /**
     * 已报名课程详情
     */
@@ -1132,7 +1136,7 @@
            @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int")
    })
    public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat, Integer orderId) {
    public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if (null == appUserId) {
@@ -1140,9 +1144,7 @@
            }
            CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
//
//            if (orderId != null) {
//                TOrder byId = orderService.getById(orderId);
//                courseDetailsResponse.setAmount(byId.getPrice());
@@ -1187,7 +1189,6 @@
     */
    @PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback")
    public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
        System.err.println("========支付宝支付回调========");
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if (null != map) {
@@ -1317,6 +1318,12 @@
            TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
            coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour());
            coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
            Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
            if(3 >= laveClassHours){
                AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
                //发送短信提醒
                aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
            }
            //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
            List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                    .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1734,7 +1741,7 @@
                if (student != null) {
                    sId = student.getId();
                }
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId());
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment, coursePackagePayment.getId());
                CourseCounsum courseCounsum = new CourseCounsum();
@@ -1757,7 +1764,7 @@
                if (student != null) {
                    sId = student.getId();
                }
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId());
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne, coursePackagePaymentServiceOne.getId());
                CourseCounsum courseCounsum = new CourseCounsum();
@@ -1766,6 +1773,7 @@
                courseCounsum.setNum(orderDto.getClassHours());
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("积分兑换");
                courseCounsum.setInsertTime(new Date());
                courseCounsumService.save(courseCounsum);
@@ -1790,7 +1798,65 @@
        return dateList.toArray(new Date[0]);
    }
    public Integer getGiftClassHours(TCoursePackageDiscount one){
    public Integer getGiftClassHours(TCoursePackageDiscount one,Date insertTime){
        if (insertTime!=null){
            // 判断购买时间 是否满足折扣规则
            char c = one.getContent().charAt(0);
            String value1 = String.valueOf(c);
            JSONObject jsonObject ;
            if (value1.equals("[")){
                jsonObject = JSONObject.fromObject(one.getContent()
                        .substring(1,one.getContent().length() - 1));
            }else{
                jsonObject = JSONObject.fromObject(one.getContent());
            }
            // 赠送课时 判断当前课包有没有赠送课时
            String weeks = jsonObject.getString("weeks");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(insertTime);
            // 获取星期几,星期日是1,星期一是2,以此类推
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
            // 将星期日(Calendar定义为1)转换为7
            if (dayOfWeek == Calendar.SUNDAY) {
                dayOfWeek = 7;
            } else {
                // 其他星期减一即可得到1-6的数字表示
                dayOfWeek -= 1;
            }
            if (weeks.contains(String.valueOf(dayOfWeek))){
                // 限时折扣判断是否在有效期
                try {
                    // 判断当日时间是否能享受到折扣
                    String startTime = jsonObject.getString("startTime");
                    String endTime = jsonObject.getString("endTime");
                    // 定义时间格式
                    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
                    // 解析开始时间和结束时间为Date对象
                    Date startTime1 = sdf.parse(startTime);
                    Date endTime1 = sdf.parse(endTime);
                    Date date1 = new Date();
                    date1.setHours(startTime1.getHours());
                    date1.setMinutes(startTime1.getMinutes());
                    date1.setSeconds(startTime1.getSeconds());
                    Date date2 = new Date();
                    date2.setHours(endTime1.getHours());
                    date2.setMinutes(endTime1.getMinutes());
                    date2.setSeconds(endTime1.getSeconds());
                    // 检查当前时间是否在开始时间和结束时间之间
                    if (insertTime.after(date1) && insertTime.before(date2)) {
                        System.out.println("当前时间在开始时间和结束时间之间。");
                        String hour = jsonObject.getString("hour");
                        return Integer.valueOf(hour);
                    } else {
                        System.out.println("当前时间不在开始时间和结束时间之间。");
                        return 0;
                    }
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        }
        // 判断购买时间 是否满足折扣规则
        char c = one.getContent().charAt(0);
        String value1 = String.valueOf(c);
@@ -1848,7 +1914,8 @@
    @Autowired
    private TCoursePackageService coursePackageService;
    private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrderStudent coursePackageOrderStudent) {
    private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrder coursePackageOrder, CoursePackageOrderStudent coursePackageOrderStudent) {
        try {
            //1常规 2假期 3体验
            if (tCoursePackage.getType() == 1) {
@@ -1860,8 +1927,6 @@
                String[] split1 = tCoursePackage.getClassEndTime().split(",");
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                //剩余课时
                Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
                //扣除课时数
@@ -1992,7 +2057,7 @@
            e.printStackTrace();
        }
    }
    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, Long paymentId) throws ParseException {
    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, TCoursePackagePayment coursePackagePayment, Long paymentId) throws ParseException {
        // 课包
        TCoursePackage tCoursePackage = coursePackageService.getById(courseId);
@@ -2303,6 +2368,12 @@
        return packagePaymentService.getById(id);
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
    public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) {
        return coursePackageOrderStudentService.getById(id);
    }
//    @Autowired
//    private ICoursePackageOrderStudentService orderStudentService;
@@ -2310,16 +2381,23 @@
    @ResponseBody
    @PostMapping("/coursePackagePayment/consumeCourse")
    public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) {
    public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) {
        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId);
        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
        if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){
            return ResultUtil.error("当前学员课时数不足");
           return 1;
        }
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
        orderStudentService.updateById(coursePackageOrderStudent);
        Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
        if(3 >= laveClassHours){
            AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
            //发送短信提醒
            aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
        }
        CourseCounsum courseCounsum = new CourseCounsum();
        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
        courseCounsum.setChangeType(0);
@@ -2327,14 +2405,14 @@
        courseCounsum.setInsertTime(new Date());
        courseCounsum.setReason("补课");
        courseCounsumService.save(courseCounsum);
        return ResultUtil.success("补课成功");
        return 2;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/CountqueryByClassId")
    public Integer CountqueryByClassId(@RequestBody Integer id) {
        int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id));
        int coursePackageId = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id));
        return coursePackageId;
@@ -2353,7 +2431,6 @@
        packagePaymentService.updateById(coursePackagePayment);
    }
    /**
     * 修改数据
     *
@@ -2365,6 +2442,16 @@
        System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackagePayment);
//        coursePackagePayment.setCoursePackageId(null);
        packagePaymentService.updateBytime(coursePackagePayment);
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/editCoursePackagePayment2")
    public void editCoursePackagePayment2(@RequestBody CoursePackageOrderStudent coursePackageOrderStudent) {
        System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackageOrderStudent);
//        coursePackagePayment.setCoursePackageId(null);
//        packagePaymentService.updateBytime(coursePackagePayment);
        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
    }
@@ -2466,7 +2553,9 @@
        map.put("lon", lon);
        map.put("lat", lat);
        // 找出门店的所有课程 排出体验
        List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
        List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>()
                .eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3)
                .eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
        List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
        if (collect.size() == 0) {
            collect.add(-1);
@@ -2478,21 +2567,6 @@
                .in(CoursePackageScheduling::getCoursePackageId, collect)
        );
        List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList());
        // 找出购买的课包
        List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                .eq("appUserId", courseDetailReq.getAppUserId())
                .eq("studentId", courseDetailReq.getStuId())
                .in("coursePackageId", collect1)
                .eq("status", 1)
                .eq("state", 1)
        );
//        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
//        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
        for (TCoursePackage tCoursePackage : list) {
            DetailsListVo detailsListVo = new DetailsListVo();
            detailsListVo.setId(tCoursePackage.getId());
@@ -2540,6 +2614,7 @@
                        .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                        .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                );
                if (list3.isEmpty()) {
                    detailsListVo.setType(2);
                    objects.add(detailsListVo);
@@ -2571,14 +2646,25 @@
                    detailsListVo.setIsType(list4.get(0).getType());
                    for (CoursePackageStudent coursePackageStudent : list4) {
                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                        if (coursePackageScheduling.getStatus()==4){
                            detailsListVo.setIsType(3);
                        }
                        Integer signInOrNot1 = coursePackageStudent.getSignInOrNot();
                        detailsListVo.setType(1);
                        if (signInOrNot1 == 2) {
                            detailsListVo.setType(3);
                        }
                        //体验购课去掉按钮
                        if(coursePackageScheduling.getType() == 3){
                            detailsListVo.setCourseType(3);
                            detailsListVo.setType(2);
                        }
                        detailsListVo.setIsType(coursePackageStudent.getType());
                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                        Date classDate = coursePackageScheduling.getClassDate();
                        Date endDate = coursePackageScheduling.getEndDate();
                        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
@@ -2607,6 +2693,10 @@
                detailsListVo.setType(2);
                objects.add(detailsListVo);
            }
            //课程暂停
            if(tCoursePackage.getState() == 4){
                detailsListVo.setType(4);
            }
        }
        map.put("data", objects);
@@ -2652,18 +2742,18 @@
            ids.add(-1);
        }
        List<TCoursePackagePayment> list1 = packagePaymentService.listOne(ids);
        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
        if (collect.size() == 0) {
            collect.add(-1);
        }
        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
        for (TCoursePackagePayment tCoursePackagePayment : list1) {
            for (TCoursePackage tCoursePackage : list2) {
                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
                    tCoursePackagePayment.setType(tCoursePackage.getType());
                }
            }
        }
//        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
//        if (collect.size() == 0) {
//            collect.add(-1);
//        }
//        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
//        for (TCoursePackagePayment tCoursePackagePayment : list1) {
//            for (TCoursePackage tCoursePackage : list2) {
//                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
//                    tCoursePackagePayment.setType(tCoursePackage.getType());
//                }
//            }
//        }
        List<Map<String, Object>> mapList = new ArrayList<>();
@@ -2672,7 +2762,7 @@
            map.put("name", tCoursePackageType.getName());
            int a = 0;
            for (TCoursePackagePayment tCoursePackagePayment : list1) {
                if (tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
                if (null != tCoursePackagePayment.getType() && tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
                    a += tCoursePackagePayment.getLaveClassHours();
                }
            }
@@ -2957,10 +3047,7 @@
        weekData.add(count2);
        weekData.add(count1);
        weekData.add(count);
        map.put("weekData", weekData);
        LocalDateTime currentDateTime = LocalDateTime.now();
        List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
        for (CoursePackageStudent coursePackageStudent : list) {
@@ -3135,4 +3222,21 @@
        return map;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/queryPaymentCoursePackage")
    public List<Integer> queryPaymentCoursePackage(@RequestBody List<Integer> storeIds){
        if(storeIds.size() == 0){
            return new ArrayList<>();
        }
        List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("auditStatus", 2)
                .ne("status", 4).eq("state", 1).in("storeId", storeIds));
        List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
        if(collect.size() == 0){
            return new ArrayList<>();
        }
        List<CoursePackageOrder> list1 = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().in("coursePackageId", collect).eq("payStatus", 2).eq("status", 1));
        return list1.stream().map(CoursePackageOrder::getAppUserId).collect(Collectors.toList());
    }
}