nickchange
2023-12-01 8050b6f4c162988ff0ae6d3fcc22aa0990ae0e4f
12.1
19个文件已修改
1个文件已添加
882 ■■■■■ 已修改文件
cloud-server-activity/src/main/resources/mapper/CouponMapper.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java 491 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/UserMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/CouponMapper.xml
@@ -89,6 +89,7 @@
        where 1 = 1 and distributionMethod = 4
        and auditStatus = 2
        and startTime < now()
          and state= 1
        <if test="cityCode != null">
            and id in(
            SELECT DISTINCT couponId FROM
@@ -116,8 +117,6 @@
        <if test="state != null">
            and `state` = #{state}
        </if>
        union all
        SELECT id,
        `name`,
@@ -135,23 +134,12 @@
        from t_coupon
        where 1 = 1 and distributionMethod = 4 and useScope = 1
        and auditStatus = 2
        and state= 1
        and startTime &lt; now()
        <if test="name != null">
            and `name` like concat('%', #{name}, '%')
        </if>
        <if test="type != null">
            and type = #{type}
        </if>
        <if test="userPopulation != null">
            and userPopulation = #{userPopulation}
        </if>
        <if test="status !=null">
            and `status` = #{status}
        </if>
        <if test="state != null">
            and `state` = #{state}
        </if>
    </select>
    <select id="queryCouponExamineList" resultType="java.util.Map">
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -2392,7 +2392,7 @@
    @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;
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -336,10 +336,15 @@
    }
    @Autowired
    private ICoursePackageOrderService coursePackageOrderService;
    @Autowired
    private ICoursePackageOrderStudentService coursePackageOrderStudentService;
    @RequestMapping("/queryByIds")
    @ResponseBody
    public List<TCoursePackagePayment> queryByIds(@RequestParam("ids") String ids) {
        List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>()
    public List<CoursePackageOrderStudent> queryByIds(@RequestParam("ids") String ids) {
        List<CoursePackageOrderStudent> paymentList = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                .in("id", Arrays.asList(ids.split(","))));
        System.out.println("========client==>" + paymentList);
@@ -414,6 +419,18 @@
        }
        paymentService.updateBatchById(id1);
    }
    @RequestMapping("/getOrder")
    @ResponseBody
    public List<CoursePackageOrder> getOrder(@RequestParam("id") Long id) {
        CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(id);
        List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).like("studentIds", coursePackageOrderStudent.getStudentId()));
            return  list;
    }
@@ -753,133 +770,136 @@
    @RequestMapping(value = "/toHoli", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
    @ResponseBody
    public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException {
        String[] ids = toHoliDto.getIds();
        List<String> strings = new ArrayList<>();
        for (String id : ids) {
            //扣除课时
            TCoursePackagePayment payment = paymentService.getById(id);
            System.out.println("=====byId=========" + payment);
            Integer laveClassHours = payment.getLaveClassHours();
            Integer classNum = toHoliDto.getClassNum();
            Integer totalClassHours = payment.getTotalClassHours();
            Student student = studentClient.queryStudentById(payment.getStudentId());
            if (laveClassHours < classNum) {
                strings.add(student.getName());
                continue;
        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+":课时数不足";
        }
            Integer laveClassHoursnew = laveClassHours - classNum;
            Integer totalClassHoursnew = totalClassHours - classNum;
            payment.setLaveClassHours(laveClassHoursnew);
            payment.setTotalClassHours(totalClassHoursnew);
            payment.setAppUserId(null);
//            payment.setStatus(3);
        for (String stuId : stuIds) {
            Student student = studentClient.queryStudentById(Integer.valueOf(stuId));
            paymentService.updateById(payment);
            // 扣除 原来的课时数
        // 添加购买课时 paytyoe为7
        // 排课可期  判断课程时间段  添加排课表  添加上课记录表
        // 找到原来的课包 扣课时
//        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId());
        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
            //获取student信息
        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()));
            }
        }
            coursePackageOrderStudent.setAppUserId(null);
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
            orderStudentService.updateById(coursePackageOrderStudent);
            TCoursePackagePayment holi = new TCoursePackagePayment();
            holi.setAppUserId(student.getAppUserId());
            holi.setStudentId(student.getId());
            holi.setCoursePackageId(toHoliDto.getClassId());
            holi.setTotalClassHours(toHoliDto.getClassNum());
            holi.setLaveClassHours(toHoliDto.getClassNum());
            holi.setState(1);
            holi.setInsertTime(new Date());
            holi.setPayStatus(2);
            paymentService.save(holi);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setPaymentId(holi.getId());
            courseCounsum.setChangeType(0);
            courseCounsum.setNum(classNum);
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("报名假期班");
            courseCounsumService.save(courseCounsum);
            //排假期课
            TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId());
            String classWeeks = tCoursePackage.getClassWeeks();
            //上课星期
            String classWeeks = coursePackage1.getClassWeeks();
            List<Integer> week = week(classWeeks);
            Date today = new Date();
            Date startTime = tCoursePackage.getStartTime();
            Date endTime = tCoursePackage.getEndTime();
            LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            Period period = Period.between(startDate, endDate);
            int days = period.getDays() + 1;
            Integer can = 999;
            int count = 0;
            String[] split = tCoursePackage.getClassStartTime().split(",");
            String[] split1 = tCoursePackage.getClassEndTime().split(",");
            //上课时段
            String[] split = coursePackage1.getClassStartTime().split(",");
            String[] split1 = coursePackage1.getClassEndTime().split(",");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            Date startTime = coursePackage1.getStartTime();
            Date endTime = coursePackage1.getEndTime();
            //排课 本周+下周,课时不够扣则直接剩余不排课
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startTime);
            calendar.add(Calendar.DAY_OF_MONTH, -1);
            //假期开始使用当前时间为起始时间进行排课
            calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date());
            calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
            while (true) {
                Date time = calendar.getTime();
            Date[] dates = generateDateArray(days, calendar.getTime());
            for (Date date : dates) {
                if (count == can) {
                //判断当天是否在排课星期内
                int day = calendar.get(Calendar.DAY_OF_WEEK);
                day = day - 1 == 0 ? 7 : day - 1;
                if (!week.contains(day)) {
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                    continue;
                }
                //大于有效期不进行排课
                if (calendar.getTimeInMillis() > endTime.getTime()) {
                    break;
                }
                int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date) - 1;
                if (wei == 0) {
                    wei = 7;
                for (int j = 0; j < split.length; j++) {
                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                    coursePackageScheduling.setType(coursePackage1.getType());
                    coursePackageScheduling.setAppUserId(student.getAppUserId());
                    coursePackageScheduling.setStudentId(Integer.valueOf(stuId));
                    coursePackageScheduling.setCoursePackageId(coursePackage1.getId());
                    Date parse = format1.parse(format.format(time) + " " + split[j]);
                    Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
                    coursePackageScheduling.setClassDate(parse);
                    coursePackageScheduling.setEndDate(parse1);
                    coursePackageScheduling.setStatus(1);
                    coursePackageSchedulingService.insert(coursePackageScheduling);
                    CoursePackageStudent student1 = new CoursePackageStudent();
                    student1.setAppUserId(student.getAppUserId());
                    student1.setStudentId(Integer.valueOf(stuId));
                    student1.setCoursePackageId(coursePackage1.getId());
                    student1.setCoursePackagePaymentId(null);
                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                    student1.setSignInOrNot(1);
                    student1.setReservationStatus(1);
                    student1.setInsertTime(new Date());
                    cpsMapper.insert(student1);
                }
                if (week.contains(wei)) {
                    for (int i1 = 0; i1 < split.length; i1++) {
                        if (count == can) {
                            break;
                        }
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                        Date parse = format1.parse(format.format(date) + " " + split[i1]);
                        Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.insert(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
                        student1.setAppUserId(student.getAppUserId());
                        student1.setStudentId(student.getId());
                        student1.setCoursePackageId(toHoliDto.getClassId());
                        student1.setCoursePackagePaymentId(holi.getId());
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        studentService.save(student1);
                        count++;
                    }
                }
                //增加日期,用于判断
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
            }
            System.out.println("保存成功=============》=" + holi);
        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);
        }
        String[] stringArray = strings.toArray(new String[strings.size()]);
        String join = StringUtils.join(stringArray, ",");
        System.out.println("==========join========" + join);
        return join;
        return "报名成功";
    }
@@ -940,150 +960,149 @@
    @RequestMapping(value = "/toTrans", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
    @ResponseBody
    public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException {
        String[] ids = toHoliDto.getIds();
        List<String> strings = new ArrayList<>();
        for (String id : ids) {
            //扣除课时
            TCoursePackagePayment payment = paymentService.getById(id);
            System.out.println("=====byId=========" + payment);
            Integer laveClassHours = payment.getLaveClassHours();
            Integer classNum = toHoliDto.getClassNum();
            Integer totalClassHours = payment.getTotalClassHours();
            Student student = studentClient.queryStudentById(payment.getStudentId());
//            if (laveClassHours < classNum){
//                strings.add(student.getName()); continue;
        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());
//            }
//
//            Integer laveClassHoursnew = laveClassHours - classNum;
//            Integer totalClassHoursnew = totalClassHours - classNum;
            payment.setLaveClassHours(0);
            payment.setTotalClassHours(0);
            payment.setAppUserId(null);
//        }
//        if (!notStudent.isEmpty()) {
//            String notStudentStr = String.join(",", notStudent);
//            return notStudentStr+":课时数不足";
//        }
            paymentService.updateById(payment);
            //获取student信息
        //转移课程
        for (String stuId : stuIds) {
//            CoursePackageOrderStudent orinPay = orderStudentService.getById(toHoliDto.getId());
            CoursePackageOrderStudent orinPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>()
                    .eq("studentId", stuId)
                    .eq("coursePackageId", toHoliDto.getId()));
            CoursePackageOrderStudent studentPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>()
                    .eq("studentId", stuId)
                    .eq("coursePackageId", toHoliDto.getClassId()));
            TCoursePackage coursePackage = packageService.getById(toHoliDto.getClassId());
            if (studentPay != null) {
                //转移
                Integer laveClassHours = orinPay.getLaveClassHours();
                Integer totalClassHours = orinPay.getTotalClassHours();
            //新增课时
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setInsertTime(new Date());
                Integer appUserId = orinPay.getAppUserId();
                Integer appUserId1 = studentPay.getAppUserId();
            TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId()));
                    courseCounsum.setReason("换课");
            TCoursePackagePayment holi = new TCoursePackagePayment();
            if (one == null) {
                holi.setAppUserId(student.getAppUserId());
                holi.setStudentId(student.getId());
                holi.setCoursePackageId(toHoliDto.getClassId());
                holi.setTotalClassHours(laveClassHours);
                holi.setLaveClassHours(laveClassHours);
                holi.setState(1);
                holi.setInsertTime(new Date());
                holi.setPayStatus(2);
                holi.setStatus(1);
                paymentService.save(holi);
                orinPay.setLaveClassHours(0);
                orinPay.setStatus(3);
                orinPay.setAppUserId(null);
                orderStudentService.updateById(orinPay);
                courseCounsum.setNum(laveClassHours);
                courseCounsum.setChangeType(0);
                courseCounsum.setPaymentId(orinPay.getId());
                counsumService.save(courseCounsum);
                CourseCounsum courseCounsum1 = new CourseCounsum();
                courseCounsum1.setInsertTime(new Date());
//                if (appUserId.compareTo(appUserId1) != 0) {
//                    courseCounsum1.setReason("赠课");
//                } else {
                    courseCounsum1.setReason("换课");
//                }
                courseCounsum1.setNum(laveClassHours);
                courseCounsum1.setChangeType(1);
                courseCounsum1.setPaymentId(studentPay.getId());
                counsumService.save(courseCounsum1);
                schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);
                //删除原排课数据
                List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
                        .eq("type", 1).eq("appUserId", appUserId)
                        .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())
                        .orderByAsc("classDate"));
                int num = totalClassHours - laveClassHours;
                for (int i = num; i < coursePackageSchedulings.size(); i++) {
                    CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i);
                    coursePackageSchedulingService.deleteById(packageScheduling.getId());
                    coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId()));
                }
            } else {
                one.setTotalClassHours(one.getTotalClassHours() + laveClassHours);
                one.setLaveClassHours(one.getLaveClassHours() + laveClassHours);
                one.setAppUserId(null);
                paymentService.updateById(one);
                holi = one;
            }
            System.out.println("保存成功=============》=" + holi);
                Integer totalClassHours = orinPay.getTotalClassHours();
                Integer laveClassHours = orinPay.getLaveClassHours();
                Student student = studentClient.queryStudentById(Integer.valueOf(stuId));
                CoursePackageOrderStudent to = new CoursePackageOrderStudent();
                to.setStudentId(Integer.valueOf(stuId));
                to.setTotalClassHours(laveClassHours);
                to.setLaveClassHours(laveClassHours);
                to.setCoursePackageId(toHoliDto.getClassId());
                to.setState(1);
                to.setAppUserId(student.getAppUserId());
                to.setStatus(1);
                to.setInsertTime(new Date());
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setPaymentId(holi.getId());
            courseCounsum.setChangeType(1);
            courseCounsum.setNum(laveClassHours);
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("换课");
            courseCounsumService.save(courseCounsum);
            TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId());
            String classWeeks = tCoursePackage.getClassWeeks();
            List<Integer> week = week(classWeeks);
            String[] split = tCoursePackage.getClassStartTime().split(",");
            String[] split1 = tCoursePackage.getClassEndTime().split(",");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            // 本周周几
            List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId()));
            List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            //拿到最后一天的排课记录
            if (collect.size() > 0) {
                coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId()));
            }
            Date today = new Date();
            TCoursePackagePayment pay = coursePackagePaymentService.getById(holi.getId());
            Integer laveClassHours1 = pay.getLaveClassHours();
            Integer codeTime = tCoursePackage.getCodeTime();
            Integer can = 0;
            int count = 0;
            // 本周周几
//        int i = DateUtil.dayOfWeek(new Date())-1;
            Date[] dates = generateDateArray(14, today);
            can = laveClassHours1 / codeTime;
            for (Date date : dates) {
                if (count == can) {
                    break;
                Integer validDays = coursePackage.getValidDays();
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                to.setUseTime(calendar.getTime());
                orderStudentService.save(to);
                if (null == student.getValidity()) {
                    student.setValidity(calendar.getTime());
                } else if (student.getValidity().getTime() < calendar.getTime().getTime()) {
                    student.setValidity(calendar.getTime());
                }
                int wei = DateUtil.dayOfWeek(date);
                if (week.contains(wei)) {
                    for (int i1 = 0; i1 < split.length; i1++) {
                        if (count == can) {
                            break;
                        }
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                        Date parse = format1.parse(format.format(date) + " " + split[i1]);
                        Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.insert(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
                        student1.setAppUserId(student.getAppUserId());
                        student1.setStudentId(student.getId());
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(holi.getId());
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                        count++;
                    }
                studentClient.frozen(student);
                Integer laveClassHours1 = orinPay.getLaveClassHours();
                Integer appUserId = orinPay.getAppUserId();
                orinPay.setLaveClassHours(0);
                orinPay.setAppUserId(null);
                orinPay.setStatus(3);
                orderStudentService.updateById(orinPay);
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("换课");
                courseCounsum.setNum(laveClassHours1);
                courseCounsum.setChangeType(0);
                courseCounsum.setPaymentId(orinPay.getId());
                counsumService.save(courseCounsum);
                CourseCounsum courseCounsum1 = new CourseCounsum();
                courseCounsum1.setInsertTime(new Date());
                courseCounsum1.setReason("换课");
                courseCounsum1.setNum(laveClassHours1);
                courseCounsum1.setChangeType(1);
                courseCounsum1.setPaymentId(to.getId());
                counsumService.save(courseCounsum1);
                //开始排课
                addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to);
                //删除原排课数据
                List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
                        .eq("type", 1).eq("appUserId", appUserId)
                        .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())
                        .orderByAsc("classDate"));
                int num = totalClassHours - laveClassHours;
                for (int i = num; i < coursePackageSchedulings.size(); i++) {
                    CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i);
                    coursePackageSchedulingService.deleteById(packageScheduling.getId());
                    coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId()));
                }
            }
        }
        String[] stringArray = strings.toArray(new String[strings.size()]);
    return "换课成功";
        String join = StringUtils.join(stringArray, ",");
        System.out.println("==========join========" + join);
        return "转课成功";
    }
}
cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -91,4 +92,15 @@
    @TableField("useTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date useTime;
    private String name;
    private BigDecimal onePrice;
    private Integer hasHours;
    private BigDecimal restPrice;
    private BigDecimal cashPayment;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
@@ -2,11 +2,13 @@
import com.dsh.course.dto.ClassListDto;
import com.dsh.course.dto.updateTimeDto;
import com.dsh.course.entity.CoursePackageOrderStudent;
import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
import com.dsh.course.model.MoneyBack;
import com.dsh.course.model.dto.InsertBackDto;
import com.dsh.course.model.dto.StudentClassInfo;
import com.dsh.guns.modular.system.model.CourseCounsum;
import com.dsh.guns.modular.system.model.CoursePackageOrder;
import com.dsh.guns.modular.system.model.dto.ConsumeQuery;
import com.dsh.guns.modular.system.model.dto.SelectDto;
import com.dsh.guns.modular.system.model.dto.ToClassDto;
@@ -93,7 +95,7 @@
    @RequestMapping("/courdent/queryByIds")
    List<TCoursePackagePayment> queryByIds(@RequestParam("ids")String ids);
    List<CoursePackageOrderStudent> queryByIds(@RequestParam("ids")String ids);
    @RequestMapping("/courdent/queryCounsum")
@@ -120,4 +122,6 @@
    @RequestMapping("/courdent/backStausClass")
    void backStausClass(@RequestParam("id")Integer id);
    @RequestMapping("/courdent/getOrder")
    List<CoursePackageOrder> getOrder(@RequestParam("id")Long id);
}
cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java
@@ -31,7 +31,7 @@
    private String[] resource = new String[]{"html", "js", "css","icon","ico","png","img","jpeg","jpg", "gif"};
    private String[] releaseApi = new String[]{"/login", "/logout","/systemNotice/querySystemNoticeList","/systemNotice/queryNoReadNoticeNum"
            ,"/api/hotAddress/queryHotAddress"};
            ,"/api/hotAddress/queryHotAddress","/kaptcha","/update","/password.html","/getSMSCode"};
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -3,6 +3,7 @@
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.course.entity.CoursePackageOrderStudent;
import com.dsh.course.feignClient.account.*;
import com.dsh.course.feignClient.account.model.*;
import com.dsh.course.feignClient.activity.PointMercharsClient;
@@ -485,39 +486,39 @@
        List<MoneyBack> refund = refundCoursePackageClient.getRefund();
        for (MoneyBack moneyBack : refund) {
            List<TCoursePackagePayment> coursePackagePayments =  courseStuddentClient.queryByIds(moneyBack.getIds());
            List<CoursePackageOrderStudent> coursePackagePayments =  courseStuddentClient.queryByIds(moneyBack.getIds());
            BigDecimal totalAmount = BigDecimal.ZERO;
            for (TCoursePackagePayment payment : coursePackagePayments){
                //课包名称
                TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
                payment.setName(tCoursePackage.getName());
                payment.setId(Long.valueOf(tCoursePackage.getId()));
                BigDecimal cashPayment = payment.getCashPayment();
                if (cashPayment==null){
                    cashPayment = BigDecimal.ZERO;
                }
                Integer totalClassHours = payment.getTotalClassHours();
                BigDecimal result =  new BigDecimal(0);
                if (totalClassHours!=0) {
                    result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP);
                }
                //单价
                payment.setOnePrice(result);
                int has = payment.getTotalClassHours() - payment.getLaveClassHours();
                //剩余课时
                payment.setHasHours(has);
                BigDecimal onePrice = payment.getOnePrice();
                Integer laveClassHours = payment.getLaveClassHours();
                BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours));
                //总价
                payment.setRestPrice(result1);
                System.out.println("======="+result1);
                totalAmount = totalAmount.add(result1);
                IncomeVO temp = new IncomeVO();
                temp.setInsertTime(payment.getInsertTime());
                temp.setAmount(result1);
                incomeVOS.add(temp);
            }
//            for (TCoursePackagePayment payment : coursePackagePayments){
//                //课包名称
//                TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
//                payment.setName(tCoursePackage.getName());
//                payment.setId(Long.valueOf(tCoursePackage.getId()));
//                BigDecimal cashPayment = payment.getCashPayment();
//                if (cashPayment==null){
//                    cashPayment = BigDecimal.ZERO;
//                }
//                Integer totalClassHours = payment.getTotalClassHours();
//                BigDecimal result =  new BigDecimal(0);
//                if (totalClassHours!=0) {
//                    result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP);
//                }
//                //单价
//                payment.setOnePrice(result);
//                int has = payment.getTotalClassHours() - payment.getLaveClassHours();
//                //剩余课时
//                payment.setHasHours(has);
//                BigDecimal onePrice = payment.getOnePrice();
//                Integer laveClassHours = payment.getLaveClassHours();
//                BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours));
//                //总价
//                payment.setRestPrice(result1);
//                System.out.println("======="+result1);
//                totalAmount = totalAmount.add(result1);
//                IncomeVO temp = new IncomeVO();
//                temp.setInsertTime(payment.getInsertTime());
//                temp.setAmount(result1);
//                incomeVOS.add(temp);
//            }
        }
        // 获取赛事退费记录
        List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -40,6 +40,8 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
@@ -977,6 +979,23 @@
                    }
                }
            }
            if (Integer.parseInt(vo.get("status").toString())==1 ){
                String dateTimeStr = vo.get("times").toString();
                String formattedDateTimeStr = dateTimeStr.substring(0, 11) + dateTimeStr.substring(17);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                try {
                    Date date = sdf.parse(formattedDateTimeStr);
                    if (new Date().after(date)){
                        vo.put("status",4);
                    }
                    System.out.println(date);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        }
        return orders;
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java
@@ -25,6 +25,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 部门控制器
@@ -101,7 +102,7 @@
        deptSetPids(dept);
        dept.setObjectType(UserExt.getUser().getObjectType());
        dept.setObjectId(UserExt.getUser().getObjectId());
        dept.setVersion(UserExt.getUser().getId());
        return this.deptService.save(dept);
    }
@@ -113,6 +114,13 @@
    @ResponseBody
    public Object list(String condition) {
        List<Map<String, Object>> list = this.deptService.list(condition);
        if (UserExt.getUser().getObjectType()==2){
            List<Map<String, Object>> filteredRoles = list.stream()
                    .filter(role -> role.containsKey("version") && role.get("version").equals(1))
                    .collect(Collectors.toList());
            return filteredRoles;
        }
        return super.warpObject(new DeptWarpper(list));
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -32,6 +32,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.activation.MailcapCommandMap;
import javax.annotation.Resource;
@@ -76,10 +77,33 @@
    /**
     * 跳转到修改密码页面
     */
    @PostMapping("/update")
    @RequestMapping(value = "/update", method = RequestMethod.GET)
    public String updatePassword(Model model) {
        return "/password.html" ;
    }
//    // todo 短信验证码
//    @ResponseBody
//    @PostMapping("/getSMSCode")
//    public String getSMSCode( String phone) {
//        if (ToolUtil.isEmpty(phone)) {
//            return ResultUtil.paranErr("phone");
//        }
//        if (ToolUtil.isEmpty(type)) {
//            return ResultUtil.paranErr("type");
//        }
////        try {
//            String smsCode = appUserClient.getSMSCode(phone);
//            return smsCode;
////        } catch (Exception e) {
////            e.printStackTrace();
////            return ResultUtil.runErr();
////        }
//    }
//    @Autowired
//    private RedisUtil redisUtil;
//    /**
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java
@@ -31,6 +31,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 角色控制器
@@ -110,6 +111,14 @@
    @ResponseBody
    public Object list(@RequestParam(required = false) String roleName) {
        List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName"));
        //运营商
        if (UserExt.getUser().getObjectType()==2){
            List<Map<String, Object>> filteredRoles = roles.stream()
                    .filter(role -> role.containsKey("version") && role.get("version").equals(UserExt.getUser().getId()))
                    .collect(Collectors.toList());
            return super.warpObject(new RoleWarpper(filteredRoles));
        }
        return super.warpObject(new RoleWarpper(roles));
    }
@@ -127,6 +136,7 @@
        role.setId(null);
        role.setObjType(UserExt.getUser().getObjectType());
        role.setObjId(UserExt.getUser().getObjectId());
        role.setVersion(UserExt.getUser().getId());
        this.roleService.save(role);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.course.dto.*;
import com.dsh.course.entity.CoursePackageOrderStudent;
import com.dsh.course.entity.EvaluateStudent;
import com.dsh.course.feignClient.account.AppUserClient;
import com.dsh.course.feignClient.account.StudentClient;
@@ -198,18 +199,31 @@
        String formattedDate = dateFormat.format(new Date());
        model.addAttribute("reDate", formattedDate);
        List<TCoursePackagePayment> coursePackagePayments =  courseStuddentClient.queryByIds(ids);
        List<CoursePackageOrderStudent> coursePackagePayments =  courseStuddentClient.queryByIds(ids);
        BigDecimal countAll = new BigDecimal(0);
        for (TCoursePackagePayment payment : coursePackagePayments){
        for (CoursePackageOrderStudent payment : coursePackagePayments){
            //课包名称
            TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
             List<CoursePackageOrder> ordes =  courseStuddentClient.getOrder(payment.getId());
            payment.setName(tCoursePackage.getName());
            payment.setId(Long.valueOf(tCoursePackage.getId()));
            BigDecimal cashPayment = payment.getCashPayment();
            BigDecimal cashPayment = BigDecimal.ZERO;
            for (CoursePackageOrder order : ordes) {
                BigDecimal cashPayment1 = order.getCashPayment();
                if (cashPayment1 != null) {
                    cashPayment = cashPayment.add(cashPayment1);
                }
            }
            payment.setCashPayment(cashPayment);
//            BigDecimal cashPayment = payment.getCashPayment();
            if (cashPayment==null){
                cashPayment = BigDecimal.ZERO;
            }
@@ -795,10 +809,10 @@
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil==""||resultUtil==null){
            return new ResultUtil<>(0,0,"报名成功");
        if (resultUtil.equals("报名成功")){
            return new ResultUtil<>(0,0,resultUtil);
        }else{
        return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
        return new ResultUtil<>(0,1,resultUtil);}
    }
@@ -819,12 +833,16 @@
        String resultUtil = courseStuddentClient.toTrans(toHoliDto);
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil.equals("换课成功")) {
//            return ResultUtil.success(resultUtil);
                        return new ResultUtil<>(0,0,resultUtil);
        if (resultUtil==""){
            return new ResultUtil<>(0,0,"报名成功");
        }else{
            return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
    }
        }else {
            return new ResultUtil<>(0,1,resultUtil);}
        }
//        if (resultUtil==""){
//        }else{
    //赠课
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -218,14 +218,20 @@
                return res;
            case 2:
                // 运营商查询运营商账号的员工和属于该运营商门店的员工
                userQuery.setObjectType(2);
                userQuery.setObjectId(objectId);
                // 获取属于这个运营商的门店的店长ids
                List<Integer> storeStaffIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId)
                        .ne("state", 3)).stream().map(TStore::getStoreStaffId).collect(Collectors.toList());
                userQuery.setStoreIds(storeStaffIds);
//                userQuery.setObjectType(2);
//                userQuery.setObjectId(objectId);
//                // 获取属于这个运营商的门店的店长ids
//                List<Integer> storeStaffIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId)
//                        .ne("state", 3)).stream().map(TStore::getStoreStaffId).collect(Collectors.toList());
//                userQuery.setStoreIds(storeStaffIds);
//                List<UserListVO> res1= userService.searchUsers(userQuery);
                List<UserListVO> res1= userService.searchUsers(userQuery);
                return res1;
                List<UserListVO> filteredList = res1.stream()
                        .filter(vo -> Objects.equals(vo.getVersion(), UserExt.getUser().getId()))
                        .collect(Collectors.toList());
//                return res1;
                return filteredList;
            case 3:
                // 门店只查询门店员工
                TStore store = storeService.getById(objectId);
@@ -282,7 +288,13 @@
        user.setStatus(ManagerStatus.OK.getCode());
        user.setCreatetime(new Date());
        User objectUser = UserFactory.createUser(user);
        objectUser.setObjectType(Integer.valueOf(user.getRoleid()));
        if (user.getRoleid().equals("")){
            objectUser.setObjectType(2);
        }else {
            objectUser.setObjectType(Integer.valueOf(user.getRoleid()));
        }
        objectUser.setObjectId(UserExt.getUser().getObjectId());
        objectUser.setRoleid(user.getRoleid());
        objectUser.setAccount(user.getPhone());
@@ -307,6 +319,7 @@
            objectUser.setRoleid("3");
            objectUser.setObjectId(UserExt.getUser().getObjectId());
        }
        objectUser.setVersion(UserExt.getUser().getId());
        this.userService.save(objectUser);
        return SUCCESS_TIP;
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java
New file
@@ -0,0 +1,115 @@
package com.dsh.guns.modular.system.model;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author zhibing.pu
 * @Date 2023/11/25 11:45
 */
@Data
@TableName("t_course_package_order")
public class CoursePackageOrder {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.NONE)
    private Long id;
    /**
     * 业务编号
     */
    @TableField("code")
    private String code;
    /**
     * 用户id
     */
    @TableField("appUserId")
    private Integer appUserId;
    /**
     * 学员ids
     */
    @TableField("studentIds")
    private String studentIds;
    /**
     * 课包id
     */
    @TableField("coursePackageId")
    private Integer coursePackageId;
    /**
     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
     */
    @TableField("payType")
    private Integer payType;
    /**
     * 课时数
     */
    @TableField("classHours")
    private Integer classHours;
    /**
     * 原价
     */
    @TableField("originalPrice")
    private Double originalPrice;
    /**
     * 优惠券id
     */
    @TableField("userCouponId")
    private Long userCouponId;
    /**
     * 现金支付价格
     */
    @TableField("cashPayment")
    private BigDecimal cashPayment;
    /**
     * 玩湃币价格/积分
     */
    @TableField("playPaiCoin")
    private Integer playPaiCoin;
    /**
     * 支付用户类型(1=用户,2=管理员)
     */
    @TableField("payUserType")
    private Integer payUserType;
    /**
     * 支付状态(1=待支付,2=已支付)
     */
    @TableField("payStatus")
    private Integer payStatus;
    /**
     * 第三方支付流水号
     */
    @TableField("orderNumber")
    private String orderNumber;
    /**
     * 支付用户id
     */
    @TableField("payUserId")
    private Integer payUserId;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    @TableField("state")
    private Integer state;
    /**
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    /**
     * 平台手动支付时使用
     */
    @TableField("payUserName")
    private String payUserName;
    /**
     * 销售人员(线下购课添加购课订单时使用)
     */
    @TableField("salesName")
    private String salesName;
    private String name;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java
@@ -29,4 +29,6 @@
    private String deptName;
    // 状态 1=正常 2=冻结
    private Integer status;
    private Integer version;
}
cloud-server-management/src/main/resources/mapper/UserMapper.xml
@@ -116,7 +116,7 @@
        order by o.id desc
    </select>
    <select id="searchUsers" resultType="com.dsh.guns.modular.system.model.UserListVO">
        select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status
        select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status,t1.version
         ,t2.simplename as deptName from sys_user t1
         left join sys_dept t2 on t1.deptid = t2.id
        <where>
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html
@@ -91,7 +91,8 @@
                  "labelField": "value",
                  "valueField": "id",
                  "size": "md",
                  "searchable": true
                  "searchable": true,
                  "required": true
                },
                {
                  "type": "input-text",
@@ -99,7 +100,8 @@
                  "name": "classNum",
                  "id": "u:0333b5c5d05c",
                  "mode": "horizontal",
                  "size": "md"
                  "size": "md",
                  "required": true
                }
              ],
              "api": {
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html
@@ -92,7 +92,8 @@
                  "labelField": "value",
                  "valueField": "id",
                  "size": "md",
                  "searchable": true
                  "searchable": true,
                  "required": true
                }
              ],
              "api": {
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js
@@ -122,7 +122,7 @@
RegistrationRecord.holiClass = function () {
    if (this.check1()) {
        var ids = RegistrationRecord.seItem1.map(function(item) {
            return item.id;
            return item.studentId;
        }).join(",");
        let index = layer.open({
            type: 2,
@@ -139,7 +139,7 @@
RegistrationRecord.transClass = function () {
    if (this.check()) {
        var ids = RegistrationRecord.seItem1.map(function(item) {
            return item.id;
            return item.studentId;
        }).join(",");
        let index = layer.open({
            type: 2,
cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -29,15 +30,28 @@
    @Scheduled(fixedRate = 60000)
    public void taskMinute() {
        try {
                Date date = new Date(); // 要增加的日期
            List<SiteBooking> siteBookings = siteBookingMapper.
                    selectList(new LambdaQueryWrapper<SiteBooking>().eq(SiteBooking::getStatus, 0));
            for (SiteBooking siteBooking : siteBookings) {
                long time = siteBooking.getInsertTime().getTime();
                long l = time + 1800 * 1000;
                if (System.currentTimeMillis() > l) {
                Date insert = siteBooking.getInsertTime();
                // 创建 Calendar 对象,并设置为指定的日期
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(insert);
                // 增加 30 分钟
                calendar.add(Calendar.MINUTE, 30);
                // 获取增加后的日期
                Date newDate = calendar.getTime();
//                long time = siteBooking.getInsertTime().getTime();
//                long l = time + 1800 * 1000;
                if (date.after(newDate)) {
                    siteBooking.setStatus(5);
                    siteBookingMapper.updateById(siteBooking);
//                    siteBookingMapper.deleteById(siteBooking.getId());
                }
            }
            //定时修改赛事状态