puzhibing
2023-11-25 53e7558400dcacecdce70e39ebfe1727740f9296
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.dsh.course.controller;
 
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.course.entity.CancelledClasses;
import com.dsh.course.entity.CourseCounsum;
import com.dsh.course.entity.CoursePackageStudent;
import com.dsh.course.entity.TCoursePackage;
import com.dsh.course.feignclient.model.GetStudentCourse;
import com.dsh.course.service.CancelledClassesService;
import com.dsh.course.service.CourseCounsumService;
import com.dsh.course.service.CoursePackageStudentService;
import com.dsh.course.service.TCoursePackageService;
import com.dsh.course.util.ToolUtil;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;
 
@Api
@CrossOrigin
@RestController
@RequestMapping("")
public class CourseRecordController {
 
 
    @Autowired
    private CoursePackageStudentService cosService;
 
    @Autowired
    private TCoursePackageService tcpService;
 
    @Autowired
    private CancelledClassesService caccService;
 
 
    @PostMapping("/base/courseRecord/queryDeduClassHours")
    public Integer getDeductionClassHour(@RequestBody GetStudentCourse course) {
        Integer sult = 0;
        TCoursePackage coursePackage = tcpService.getById(course.getCourseId());
        if (null != coursePackage && coursePackage.getStatus() == 3) {
            List<CoursePackageStudent> coursePackageStudents = cosService.list(new QueryWrapper<CoursePackageStudent>()
                    .eq("coursePackageId", course.getCourseId())
                    .eq("studentId", course.getStuId())
                    .eq("appUserId", course.getAppUserId())
                    .eq("signInOrNot", 1));
 
            if (coursePackageStudents.size() > 0) {
                List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>()
                        .eq("coursePackageId", course.getCourseId()));
                if (list.size() > 0) {
                    for (CancelledClasses cancelledClasses : list) {
                        sult = sult + cancelledClasses.getCancelledClassesNumber();
                    }
                }
            }
        }
        return sult;
    }
 
    @Autowired
    private CourseCounsumService courseCounsumService;
 
    @PostMapping("/base/courseRecord/save")
    public void save(@RequestBody CourseCounsum courseCounsum) {
        courseCounsumService.save(courseCounsum);
    }
 
 
    @PostMapping("/base/courseRecord/cancelCourseData")
    public Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId) {
        int sult = 0;
        CoursePackageStudent packageStudent = cosService.getById(courseRecordId);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
        String tis = simpleDateFormat.format(new Date());
 
        if (ToolUtil.isNotEmpty(packageStudent)) {
            TCoursePackage coursePackage = tcpService.getById(packageStudent.getCoursePackageId());
            String startTime = tis + " " + coursePackage.getClassStartTime();
            Date parse = null;
            try {
                parse = format.parse(startTime);
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
            LocalDateTime localDateTime = parse.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
            // 计算时间间隔
            long hours = ChronoUnit.HOURS.between(LocalDateTime.now(), localDateTime);
            // 判断是否在前三小时内
            if (hours <= 3 && hours >= 0) {
                sult = 1;
            } else {
                sult = 2;
            }
        }
        return sult;
    }
 
}