刘帅
2026-09-21 7a8af8c19b40b8028e25ee0b669463d06f723a30
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -3,7 +3,11 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.CoursePackageOrderStudent;
import com.dsh.course.feignClient.account.StudentHonorClient;
import com.dsh.course.feignClient.account.model.StudentHonor;
import com.dsh.course.feignClient.course.*;
import com.dsh.course.feignClient.course.model.*;
import com.dsh.guns.config.UserExt;
@@ -22,10 +26,8 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author zhibing.pu
@@ -58,6 +60,9 @@
    @Resource
    private CancelledClassesClient cancelledClassesClient;
    @Resource
    private StudentHonorClient studentHonorClient;
@@ -85,8 +90,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryCoursePackageLists.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryCoursePackageLists.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryCoursePackageLists.setSort(request.getParameter("sort"));
        queryCoursePackageLists.setOrder(request.getParameter("order"));
        queryCoursePackageLists.setSort("id");
        queryCoursePackageLists.setOrder("desc");
        Page<Map<String, Object>> mapPage = coursePackageClient.queryCoursePackageLists(queryCoursePackageLists);
        List<Map<String, Object>> records = mapPage.getRecords();
        for (Map<String, Object> record : records) {
@@ -355,8 +360,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryRegistrationRecord.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryRegistrationRecord.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryRegistrationRecord.setSort(request.getParameter("sort"));
        queryRegistrationRecord.setOrder(request.getParameter("order"));
        queryRegistrationRecord.setSort("id");
        queryRegistrationRecord.setOrder("desc");
        Page<Map<String, Object>> mapPage = coursePackagePaymentClient.queryRegistrationRecord(queryRegistrationRecord);
        return mapPage;
    }
@@ -374,8 +379,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryClassRecord.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryClassRecord.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryClassRecord.setSort(request.getParameter("sort"));
        queryClassRecord.setOrder(request.getParameter("order"));
        queryClassRecord.setSort("id");
        queryClassRecord.setOrder("desc");
        Page<Map<String, Object>> mapPage = coursePackageSchedulingClient.queryCoursePackageSchedulingList(queryClassRecord);
        return mapPage;
    }
@@ -395,8 +400,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryCoursePackageStudentList.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryCoursePackageStudentList.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryCoursePackageStudentList.setSort(request.getParameter("sort"));
        queryCoursePackageStudentList.setOrder(request.getParameter("order"));
        queryCoursePackageStudentList.setSort("id");
        queryCoursePackageStudentList.setOrder("desc");
        return coursePackageStudentClient.queryCoursePackageStudentList(queryCoursePackageStudentList);
    }
@@ -408,9 +413,9 @@
    @Override
    public ResultUtil cancelReservation(Long id) {
        CoursePackageStudent coursePackageStudent = coursePackageStudentClient.queryCoursePackageStudentById(id);
        if(coursePackageStudent.getSignInOrNot() == 1){
            return ResultUtil.error("当前学员已到课不能请假");
        }
//        if(coursePackageStudent.getSignInOrNot() == 1){
//            return ResultUtil.error("当前学员已到课不能请假");
//        }
//        TCoursePackagePayment payment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
//        payment.setAbsencesNumber(payment.getAbsencesNumber()+1);
//        coursePackagePaymentClient.editCoursePackagePayment(payment);
@@ -418,8 +423,8 @@
        coursePackageStudent = new CoursePackageStudent();
        coursePackageStudent.setId(id);
        coursePackageStudent.setReservationStatus(0);
//        coursePackageStudent.setReservationStatus(0);
        coursePackageStudent.setSignInOrNot(2);
        coursePackageStudent.getCoursePackagePaymentId();
@@ -547,64 +552,68 @@
     */
    @Override
    public ResultUtil cancellationRecord(Long id, String cancelClasses, Integer deductClassHour) {
//        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id);
        List<Long> integers = new ArrayList<>();
        List<CoursePackageScheduling> coursePackageSchedulings =  coursePackageSchedulingClient.queryCoursePackageSchedulingsById(id);
//        for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
//        if(coursePackageScheduling.getStatus() == 1 || coursePackageScheduling.getStatus() == 4){
//            return ResultUtil.error("不能添加消课凭证");
//        }
//        coursePackageScheduling.setCancelClasses(cancelClasses);
//        coursePackageScheduling.setDeductClassHour(deductClassHour);
        CoursePackageScheduling coursePackageScheduling1 = coursePackageSchedulings.get(0);
        Date classDate = coursePackageScheduling1.getEndDate();
        if (new Date().before(classDate)){
            return ResultUtil.error("课程未结束,无法消课");
        }
        List<Long> integers = new ArrayList<>();
        for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
            integers.add(coursePackageScheduling.getId());
            coursePackageScheduling.setCancelClasses(cancelClasses);
            coursePackageScheduling.setDeductClassHour(deductClassHour);
            coursePackageScheduling.setStatus(3);
        }
        coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageSchedulings);
        List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(integers);
        for (CoursePackageStudent coursePackageStudent : coursePackageStudents) {
            for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
                if (coursePackageStudent.getSignInOrNot()==2){
                    break;
                }
                integers.add(coursePackageScheduling.getId());
                coursePackageScheduling.setCancelClasses(cancelClasses);
                coursePackageScheduling.setDeductClassHour(deductClassHour);
            }
            if(coursePackageStudent.getReservationStatus() == 0){
            if(coursePackageStudent.getSignInOrNot() == 2){
                continue;
            }
            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
            CoursePackageOrderStudent coursePackageOrderStudent = coursePackagePaymentClient.queryCoursePackagePaymentById1(coursePackageStudent.getCoursePackagePaymentId());
            if (deductClassHour!=null) {
                if (tCoursePackagePayment.getLaveClassHours() - deductClassHour < 0) {
                if (coursePackageOrderStudent.getLaveClassHours() - deductClassHour < 0) {
                    coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
                    continue;
                }
                tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
                coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - deductClassHour);
            }
            if(coursePackageStudent.getReservationStatus() == 0){
                tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1);
                coursePackageOrderStudent.setAbsencesNumber(coursePackageOrderStudent.getAbsencesNumber() + 1);
            }
            System.out.println("====tCoursePackagePayment====="+tCoursePackagePayment);
            coursePackagePaymentClient.editCoursePackagePayment1(tCoursePackagePayment);
            System.out.println("====tCoursePackagePayment====="+coursePackageOrderStudent);
            coursePackagePaymentClient.editCoursePackagePayment2(coursePackageOrderStudent);
            CancelledClasses cancelledClasses = new CancelledClasses();
            cancelledClasses.setType(1);
            cancelledClasses.setCoursePackageId(coursePackageStudent.getCoursePackageId());
            cancelledClasses.setCoursePackagePaymentId(coursePackageStudent.getCoursePackagePaymentId());
            cancelledClasses.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
            cancelledClasses.setCoursePackageSchedulingId(coursePackageStudent.getCoursePackageSchedulingId());
            cancelledClasses.setVoucher(cancelClasses);
            if (deductClassHour!=null) {
            cancelledClasses.setCancelledClassesNumber(deductClassHour);}
                cancelledClasses.setCancelledClassesNumber(deductClassHour);
            }
            cancelledClasses.setInsertTime(new Date());
            cancelledClassesClient.addCancelledClasses(cancelledClasses);
            //添加勋章数据
            QueryCoursePackageStudent queryCoursePackageStudent = new QueryCoursePackageStudent();
            queryCoursePackageStudent.setAppUserId(coursePackageStudent.getAppUserId());
            queryCoursePackageStudent.setSignInOrNot(1);
            queryCoursePackageStudent.setReservationStatus(1);
            List<CoursePackageStudent> coursePackageStudents1 = coursePackageStudentClient.queryCoursePackageStudent(queryCoursePackageStudent);
            StudentHonor studentHonor = new StudentHonor();
            studentHonor.setAppUserId(coursePackageStudent.getAppUserId());
            studentHonor.setHonorType(1);
            studentHonor.setNumber(coursePackageStudents1.size());
            studentHonorClient.saveStudentHonor(studentHonor);
        }
        coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageSchedulings);
//        }
        return ResultUtil.success();
    }
@@ -626,8 +635,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryWalkInStudentList.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryWalkInStudentList.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryWalkInStudentList.setSort(request.getParameter("sort"));
        queryWalkInStudentList.setOrder(request.getParameter("order"));
        queryWalkInStudentList.setSort("id");
        queryWalkInStudentList.setOrder("desc");
        return coursePackagePaymentClient.queryWalkInStudentList(queryWalkInStudentList);
    }
@@ -707,18 +716,22 @@
     * @return
     */
    @Override
    public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId) {
        TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
        System.out.println("=========coursePackagePayment=====>"+coursePackagePayment);
        if(coursePackagePayment.getStatus() == 2){
            return ResultUtil.error("该学员已退课");
        }
        if(coursePackagePayment.getAbsencesNumber() == 0){
            return ResultUtil.error("当前不需要补课");
        }
        coursePackagePayment.setAbsencesNumber(coursePackagePayment.getAbsencesNumber() - 1);
        coursePackagePaymentClient.editCoursePackagePayment(coursePackagePayment);
        return ResultUtil.success();
    public ResultUtil makeUpMissedLessons(Integer coursePackagePaymentId){
//        try {
            Integer is = coursePackagePaymentClient.consumeCourse(coursePackagePaymentId);
            if (is==1){
                return ResultUtil.error("课时数不足");
            }else {
                return ResultUtil.success("补课成功");
            }
//            return  resultUtil;
//            return  ResultUtil.success("补课成功");
//        }catch (Exception e){
//            return  ResultUtil.success("课时数不足");
//
//        }
//        return resultUtil;
    }
@@ -742,8 +755,8 @@
        HttpServletRequest request = HttpKit.getRequest();
        queryExamineCoursePackageLists.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryExamineCoursePackageLists.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryExamineCoursePackageLists.setSort(request.getParameter("sort"));
        queryExamineCoursePackageLists.setOrder(request.getParameter("order"));
        queryExamineCoursePackageLists.setSort("id");
        queryExamineCoursePackageLists.setOrder("desc");
        Page<Map<String, Object>> mapPage = coursePackageClient.queryExamineCoursePackageLists(queryExamineCoursePackageLists);
        List<Map<String, Object>> records = mapPage.getRecords();
        for (Map<String, Object> record : records) {