nickchange
2023-10-10 ee9cb0da4a43bcf523ebb157678f64a2895fba1a
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -54,6 +54,8 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -149,7 +151,10 @@
            Integer absencesNumber = one.getAbsencesNumber();
            // 没有过期
            if (one.getUseTime().after(new Date())){
                packagePayment.setTotalClassHours(packagePayment.getClassHours()+one.getTotalClassHours());
                if (one.getLaveClassHours()-packagePayment.getClassHours()<0){
                    return 5002;
                }
                packagePayment.setTotalClassHours(one.getTotalClassHours());
                packagePayment.setLaveClassHours(one.getLaveClassHours()-packagePayment.getClassHours());
                packagePayment.setAbsencesNumber(one.getAbsencesNumber());
            }
@@ -1555,4 +1560,154 @@
        return a;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/queryCourseData")
    public List<Map<String,Object>> queryCourseData(@RequestBody List<Integer> ids){
        // 找出课程类型  找出剩余的课时数
        List<TCoursePackageType> list = coursePackageTypeService.list();
        if(ids.size()==0){
            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<Map<String,Object>> mapList = new ArrayList<>();
        for (TCoursePackageType tCoursePackageType : list) {
            HashMap<String, Object> map = new HashMap<>();
            map.put("name",tCoursePackageType.getName());
            int a =0;
            for (TCoursePackagePayment tCoursePackagePayment : list1) {
                if(tCoursePackagePayment.getType().equals(tCoursePackageType.getId())){
                    a += tCoursePackagePayment.getLaveClassHours();
                }
            }
            map.put("value",a);
            mapList.add(map);
        }
        return mapList;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/coursePt")
    HashMap<String, Object> coursePt(@RequestBody List<Integer> userPt){
        if(userPt.size()==0){
            userPt.add(-1);
        }
        HashMap<String, Object> map = new HashMap<>();
        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.listOne(userPt);
        int sum = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getTotalClassHours).sum();
        int sum1 = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getLaveClassHours).sum();
        map.put("allCourse",sum-sum1);
        //所有课包
        List<TCoursePackage> coursePackages = tcpService.list();
        // 年
        List<CoursePackageStudent> list = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>().in(CoursePackageStudent::getAppUserId, userPt));
        for (CoursePackageStudent coursePackageStudent : list) {
            for (TCoursePackage coursePackage : coursePackages) {
                if(coursePackageStudent.getCoursePackageId().equals(coursePackage.getId())){
                    if(ToolUtil.isEmpty(coursePackage.getNeedNum())){
                        coursePackageStudent.setNeedNum(0);
                    }else {
                        coursePackageStudent.setNeedNum(coursePackageStudent.getNeedNum());
                    }
                }
            }
        }
        ArrayList<Object> integers = new ArrayList<>();
        int year = cn.hutool.core.date.DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
        ArrayList<Integer> years = new ArrayList<>();
        for (Object o : collect) {
            String s = o.toString();
            List<CoursePackageStudent> collect1 = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).collect(Collectors.toList());
            int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
            years.add(sum2);
        }
        map.put("yearData",years);
        ArrayList<Integer> months = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            }
            String s = year + "-" + m;
            List<CoursePackageStudent> collect1 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).collect(Collectors.toList());
            int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
            months.add(sum2);
        }
        map.put("monthData",months);
        // 周
        // 获取最近四周
        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
        // 周度数据
        String s1 = minNow.minusDays(6).toString();
        String s2 = maxNow.toString();
        String s3 = minNow.minusDays(13).toString();
        String s4 = maxNow.minusDays(6).toString();
        String s5 = minNow.minusDays(20).toString();
        String s6 = maxNow.minusDays(13).toString();
        String s7 = minNow.minusDays(27).toString();
        String s8 = maxNow.minusDays(20).toString();
//
//        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
//
//        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
//
//        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
//
//        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
//        map.put("count",count);
//        map.put("count1",count1);
//        map.put("count2",count2);
//        map.put("count3",count3);
        return null;
    }
}