puzhibing
2024-02-05 640ff18d2d7f4be02ddb7f8f75e899f05545eb98
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -10,11 +10,13 @@
import com.dsh.course.entity.dto.*;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
import com.dsh.course.feignclient.account.model.AppUser;
import com.dsh.course.feignclient.account.model.Student;
import com.dsh.course.mapper.CoursePackageSchedulingMapper;
import com.dsh.course.mapper.CoursePackageStudentMapper;
import com.dsh.course.model.dto.ToClassDto;
import com.dsh.course.service.*;
import com.dsh.course.util.ALiSendSms;
import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.UUIDUtil;
import io.swagger.annotations.Api;
@@ -50,7 +52,6 @@
    private TCoursePackageService coursePackageService;
    @Resource
    private CoursePackageStudentMapper cpsMapper;
    //获取退费记录
    @RequestMapping("/getRefund")
    @ResponseBody
@@ -58,20 +59,14 @@
        // 查询已通过申请的退费记录
        return counsumService.getRefund();
    }
    @Resource
    private CoursePackageSchedulingMapper coursePackageSchedulingService;
    @RequestMapping("/getStudentTotal")
    @ResponseBody
    public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) {
        List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto);
        return pays;
    }
    @RequestMapping("/bypac")
    @ResponseBody
@@ -178,6 +173,9 @@
    @Resource
    private AppUserClient appUserClient;
    @Autowired
    private ALiSendSms aLiSendSms;
    @Autowired
@@ -391,9 +389,9 @@
            courseCounsum.setReason("退费");
            courseCounsum.setPaymentId(o.getId());
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setAppUserId(o.getAppUserId());
            counsumService.save(courseCounsum);
            o.setTotalClassHours(0);
            o.setLaveClassHours(0);
            o.setStatus(2);
            o.setAppUserId(null);
@@ -511,6 +509,7 @@
            courseCounsum.setNum(laveClassHours);
            courseCounsum.setChangeType(0);
            courseCounsum.setPaymentId(orinPay.getId());
            courseCounsum.setAppUserId(orinPay.getAppUserId());
            counsumService.save(courseCounsum);
            CourseCounsum courseCounsum1 = new CourseCounsum();
@@ -523,6 +522,7 @@
            courseCounsum1.setNum(laveClassHours);
            courseCounsum1.setChangeType(1);
            courseCounsum1.setPaymentId(studentPay.getId());
            courseCounsum1.setAppUserId(studentPay.getAppUserId());
            counsumService.save(courseCounsum1);
            schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);
@@ -580,6 +580,7 @@
            courseCounsum.setNum(laveClassHours1);
            courseCounsum.setChangeType(0);
            courseCounsum.setPaymentId(orinPay.getId());
            courseCounsum.setAppUserId(orinPay.getAppUserId());
            counsumService.save(courseCounsum);
@@ -589,6 +590,7 @@
            courseCounsum1.setNum(laveClassHours1);
            courseCounsum1.setChangeType(1);
            courseCounsum1.setPaymentId(to.getId());
            courseCounsum1.setAppUserId(to.getAppUserId());
            counsumService.save(courseCounsum1);
            //开始排课
@@ -789,45 +791,60 @@
            Student student = studentClient.queryStudentById(Integer.valueOf(stuId));
            // 扣除 原来的课时数
        // 添加购买课时 paytyoe为7
        // 排课可期  判断课程时间段  添加排课表  添加上课记录表
        // 找到原来的课包 扣课时
//        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId());
        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
            // 添加购买课时 paytyoe为7
            // 排课可期  判断课程时间段  添加排课表  添加上课记录表
            // 找到原来的课包 扣课时
            CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
        TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId());
        //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
        List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
                .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
                .eq("type", 1).orderByDesc("classDate"));
        //已经排课但没有使用的课时数量
        int number = list1.size() * coursePackage.getNeedNum();
        Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
        laveClassHours1 -= number;
        //需要购买使用的课时数
        Integer num = toHoliDto.getClassNum();
        //需要删除多余的排课记录
        if(num.compareTo(laveClassHours1) > 0){
            //课时数差额
            int number1 = num - laveClassHours1;
            double o = number1 % coursePackage.getNeedNum();
            int l = 0;
            if(0 != o){
                l = 1;
            }
            int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
            for (int i = 0; i < n; i++) {
                CoursePackageScheduling coursePackageScheduling = list1.get(i);
                coursePackageSchedulingService.deleteById(coursePackageScheduling.getId());
            TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
            TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId());
            //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
            List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
                    .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
                    .eq("type", 1).orderByDesc("classDate"));
            //已经排课但没有使用的课时数量
            int number = list1.size() * coursePackage.getNeedNum();
            Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
            laveClassHours1 -= number;
            //需要购买使用的课时数
            Integer num = toHoliDto.getClassNum();
            //需要删除多余的排课记录
            if(num.compareTo(laveClassHours1) > 0){
                //课时数差额
                int number1 = num - laveClassHours1;
                double o = number1 % coursePackage.getNeedNum();
                int l = 0;
                if(0 != o){
                    l = 1;
                }
                int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
                for (int i = 0; i < n; i++) {
                    CoursePackageScheduling coursePackageScheduling = list1.get(i);
                    coursePackageSchedulingService.deleteById(coursePackageScheduling.getId());
                coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
                        .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
                    coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
                            .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
                }
            }
        }
            coursePackageOrderStudent.setAppUserId(null);
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
            coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
            orderStudentService.updateById(coursePackageOrderStudent);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
            courseCounsum.setChangeType(0);
            courseCounsum.setNum(toHoliDto.getClassNum());
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("报名假期班");
            courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
            courseCounsumService.save(courseCounsum);
            Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
            if(3 >= laveClassHours){
                AppUser appUser = appUserClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
                //发送短信提醒
                aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
            }
            //上课星期
            String classWeeks = coursePackage1.getClassWeeks();
@@ -886,18 +903,6 @@
                //增加日期,用于判断
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
            }
        CourseCounsum courseCounsum = new CourseCounsum();
        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
        courseCounsum.setChangeType(0);
        courseCounsum.setNum(toHoliDto.getClassNum());
        courseCounsum.setInsertTime(new Date());
        courseCounsum.setReason("报名假期班");
//        courseCounsum.setAppUserId(userId);
        courseCounsumService.save(courseCounsum);
        }
        return "报名成功";
@@ -962,23 +967,8 @@
    @ResponseBody
    public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException {
        String[] stuIds = toHoliDto.getIds();
//        //查询出学员ids对应的棵树,判断剩余课时数是否够
//        List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds));
//        List<String> notStudent = new ArrayList<>();
//        for (CoursePackageOrderStudent coursePackageOrderStudent : list) {
//            if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) {
//                notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName());
//            }
//        }
//        if (!notStudent.isEmpty()) {
//            String notStudentStr = String.join(",", notStudent);
//            return notStudentStr+":课时数不足";
//        }
        //转移课程
        for (String stuId : stuIds) {
//            CoursePackageOrderStudent orinPay = orderStudentService.getById(toHoliDto.getId());
            CoursePackageOrderStudent orinPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>()
                    .eq("studentId", stuId)
                    .eq("coursePackageId", toHoliDto.getId()));
@@ -995,10 +985,7 @@
                courseCounsum.setInsertTime(new Date());
                Integer appUserId = orinPay.getAppUserId();
                Integer appUserId1 = studentPay.getAppUserId();
                    courseCounsum.setReason("换课");
                courseCounsum.setReason("换课");
                orinPay.setLaveClassHours(0);
                orinPay.setStatus(3);
                orinPay.setAppUserId(null);
@@ -1007,18 +994,16 @@
                courseCounsum.setNum(laveClassHours);
                courseCounsum.setChangeType(0);
                courseCounsum.setPaymentId(orinPay.getId());
                courseCounsum.setAppUserId(orinPay.getAppUserId());
                counsumService.save(courseCounsum);
                CourseCounsum courseCounsum1 = new CourseCounsum();
                courseCounsum1.setInsertTime(new Date());
//                if (appUserId.compareTo(appUserId1) != 0) {
//                    courseCounsum1.setReason("赠课");
//                } else {
                    courseCounsum1.setReason("换课");
//                }
                courseCounsum1.setReason("换课");
                courseCounsum1.setNum(laveClassHours);
                courseCounsum1.setChangeType(1);
                courseCounsum1.setPaymentId(studentPay.getId());
                courseCounsum1.setAppUserId(studentPay.getAppUserId());
                counsumService.save(courseCounsum1);
                schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);