From e030255c23c7ba3e2cbad1036a810d6d72fa864f Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期四, 26 十月 2023 18:04:58 +0800
Subject: [PATCH] 修改bug

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java |  448 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 415 insertions(+), 33 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index 631575c..cae2ee6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -1,7 +1,9 @@
 package com.dsh.course.controller;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dsh.course.entity.*;
@@ -9,6 +11,7 @@
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.StudentClient;
 import com.dsh.course.feignclient.account.model.Student;
+import com.dsh.course.mapper.CoursePackageSchedulingMapper;
 import com.dsh.course.model.dto.ToClassDto;
 import com.dsh.course.service.*;
 import com.dsh.course.util.ResultUtil;
@@ -23,10 +26,9 @@
 
 import javax.annotation.Resource;
 import javax.swing.text.html.parser.Entity;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Api
@@ -38,6 +40,64 @@
     CoursePackageStudentService studentService ;
     @Autowired
     TCoursePackagePaymentService paymentService;
+    @Autowired
+    private CourseCounsumService counsumService;
+
+    //获取退费记录
+    @RequestMapping("/getRefund")
+    @ResponseBody
+    public List<MoneyBack> getRefund() {
+        // 查询已通过申请的退费记录
+       return counsumService.getRefund();
+    }
+
+
+    @Resource
+    private CoursePackageSchedulingMapper coursePackageSchedulingService;
+
+
+
+
+    @RequestMapping("/getStudentTotal")
+    @ResponseBody
+    public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) {
+        System.out.println("-====studentQeryDto========="+studentQeryDto);
+        List<Map<String, Object>>  pays =  paymentService.getStudentTotal(studentQeryDto);
+        System.out.println("=========pays======"+pays);
+
+        return  pays;
+
+    }
+
+
+    @RequestMapping("/bypac")
+    @ResponseBody
+    public List<Map<String, Object>> bypac(@RequestBody PacQueryDto pacQueryDto) {
+
+
+
+
+
+        System.out.println("-====studentQeryDto========="+pacQueryDto);
+        List<Map<String, Object>>  pays =  paymentService.bypac(pacQueryDto);
+        System.out.println("=========pays======"+pays);
+
+        return  pays;
+
+    }
+
+    @ResponseBody
+    @PostMapping("/queryIdsByStore")
+    public List<Integer> queryIdsByStore(@RequestBody Integer objectId){
+        List<TCoursePackage> list = packageService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, objectId));
+        List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
+        if(collect.size()==0){
+            collect.add(-1);
+        }
+        return collect;
+    }
+
+
     //获取学员课时数信息
     @RequestMapping("/getInfo")
     @ResponseBody
@@ -105,14 +165,18 @@
     //获取可转移学员
     @RequestMapping("/getSelect")
     @ResponseBody
-    public List<SelectDto> getSelect(@RequestParam("payId")Integer payId){
+    public List<SelectDto> getSelect(@RequestParam("payId")Long payId){
 
-        List<Integer> studentIds = paymentService.getStudentIds(payId);
+        TCoursePackagePayment byId = paymentService.getById(payId);
+
+        List<Integer> studentIds = paymentService.getStudentIds(payId,byId.getCoursePackageId(),byId.getAppUserId());
     System.out.println("=========studentIds=================>"+studentIds);
 
+    if (studentIds.size()>0){
         List<SelectDto> selectDtos =   appUserClient.getSelects(studentIds);
 
-        return selectDtos;
+        return selectDtos;}
+    else return null;
     }
 
 
@@ -155,7 +219,7 @@
         List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>()
                 .select("id", "name")
                 .eq("storeId", storeId)
-                .eq("type","1")
+                .eq("type","1").ne("id",id)
         );
         List<SelectDto> selectDtos = new ArrayList<>();
         for (TCoursePackage t :list){
@@ -171,8 +235,7 @@
         return selectDtos;
     }
 
-    @Autowired
-    private CourseCounsumService counsumService;
+
     @RequestMapping("/queryCounsum")
     @ResponseBody
     public List<CourseCounsum> queryCounsum(@RequestBody ConsumeQuery consumeQuery){
@@ -214,6 +277,15 @@
         moneyBack.setIds(insertBackDto.getIds());
         moneyBackService.save(moneyBack);
 
+        List<TCoursePackagePayment> pays = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", insertBackDto.getIds()));
+        for (TCoursePackagePayment o :pays){
+            o.setStatus(4);
+            o.setAppUserId(null);
+        }
+
+
+
+        paymentService.updateBatchById(pays);
     }
 
 
@@ -236,6 +308,15 @@
 
     }
 
+    @RequestMapping("/noStatus")
+    @ResponseBody
+    public void noStatus(@RequestParam("id")Integer id){
+        MoneyBack byId = moneyBackService.getById(id);
+        byId.setStatus(2);
+        moneyBackService.updateById(byId);
+
+    }
+
     @RequestMapping("/zeroClass")
     @ResponseBody
     public void zeroClass(@RequestParam("id")Integer id){
@@ -244,20 +325,47 @@
         System.out.println("========split===>"+split);
         List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split));
         for (TCoursePackagePayment o :id1){
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setNum(o.getLaveClassHours());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setReason("退费");
+            courseCounsum.setPaymentId(o.getId());
+            courseCounsum.setInsertTime(new Date());
+            counsumService.save(courseCounsum);
+
             o.setTotalClassHours(0);
             o.setLaveClassHours(0);
+            o.setStatus(2);
             o.setAppUserId(null);
+
+
+
+
         }
         paymentService.updateBatchById(id1);
     }
 
+
+    @RequestMapping("/backStausClass")
+    @ResponseBody
+    public void backStausClass(@RequestParam("id")Integer id){
+        MoneyBack byId = moneyBackService.getById(id);
+        String[] split = byId.getIds().split(",");
+        System.out.println("========split===>"+split);
+        List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split));
+        for (TCoursePackagePayment o :id1){
+            o.setStatus(1);
+            o.setAppUserId(null);
+        }
+        paymentService.updateBatchById(id1);
+    }
     @RequestMapping("/cancel")
     @ResponseBody
     public void cancel(@RequestParam("ids")String ids){
         String[] split = ids.split(",");
         List<CoursePackageStudent> coursePackagePaymentId = studentService.list(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", split));
       for (CoursePackageStudent student :coursePackagePaymentId){
-          student.setReservationStatus(2);
+          student.setReservationStatus(3);
           student.setAppUserId(null);
       }
         studentService.updateBatchById(coursePackagePaymentId);
@@ -290,12 +398,16 @@
 
             orinPay.setTotalClassHours(0);
             orinPay.setLaveClassHours(0);
+            orinPay.setStatus(5);
             orinPay.setAppUserId(null);
             paymentService.updateById(orinPay);
 
             CourseCounsum courseCounsum = new CourseCounsum();
             courseCounsum.setInsertTime(new Date());
-            courseCounsum.setReason("转课");
+            if (orinPay.getAppUserId()!=studentPay.getAppUserId()){
+                courseCounsum.setReason("赠课");
+            }else {            courseCounsum.setReason("转课");
+            }
             courseCounsum.setNum(laveClassHours);
             courseCounsum.setChangeType(0);
             courseCounsum.setPaymentId(orinPay.getId());
@@ -323,22 +435,6 @@
 
 
 
-            orinPay.setTotalClassHours(0);
-            orinPay.setLaveClassHours(0);
-            orinPay.setAppUserId(null);
-            paymentService.updateById(orinPay);
-
-
-            CourseCounsum courseCounsum = new CourseCounsum();
-            courseCounsum.setInsertTime(new Date());
-            courseCounsum.setReason("赠课");
-            courseCounsum.setNum(orinPay.getLaveClassHours());
-            courseCounsum.setChangeType(0);
-            courseCounsum.setPaymentId(orinPay.getId());
-            counsumService.save(courseCounsum);
-
-
-
             Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
             TCoursePackagePayment to = new TCoursePackagePayment();
             to.setStudentId(toClassDto.getToStudentId());
@@ -351,6 +447,28 @@
             to.setStatus(1);
             to.setInsertTime(new Date());
             paymentService.save(to);
+
+
+
+            orinPay.setTotalClassHours(0);
+            orinPay.setLaveClassHours(0);
+            orinPay.setAppUserId(null);
+            orinPay.setStatus(6);
+            paymentService.updateById(orinPay);
+
+
+
+
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setInsertTime(new Date());
+            courseCounsum.setReason("赠课");
+            courseCounsum.setNum(orinPay.getLaveClassHours());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setPaymentId(orinPay.getId());
+            counsumService.save(courseCounsum);
+
+
+
 
 
             CourseCounsum courseCounsum1 = new CourseCounsum();
@@ -397,6 +515,7 @@
             payment.setLaveClassHours(laveClassHoursnew);
             payment.setTotalClassHours(totalClassHoursnew);
             payment.setAppUserId(null);
+            payment.setStatus(3);
 
             paymentService.updateById(payment);
 
@@ -412,7 +531,126 @@
             holi.setLaveClassHours(toHoliDto.getClassNum());
             holi.setState(1);
             holi.setInsertTime(new Date());
+            holi.setPayStatus(2);
             paymentService.save(holi);
+
+            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");
+            // 本周周几
+            int i = DateUtil.dayOfWeek(new Date())-1;
+            for (Integer integer : week) {
+                if(integer<i){
+                    // 找下一周的时间
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7-(i-integer));
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        try {
+                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + 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());
+                            studentService.save(student1);
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+
+                }else if(integer>i) {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,integer-i);
+                    Date time1 = instance.getTime();
+                    List<Date> list = new ArrayList<>();
+                    list.add(time1);
+                    instance.add(Calendar.DATE,7);
+                    Date time2 = instance.getTime();
+                    list.add(time2);
+                    for (Date time : list) {
+                        for (int i1 = 0; i1 < split.length; i1++) {
+                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                            coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                            try {
+                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                Date parse1 = format1.parse(format.format(time) + " " + 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());
+                                studentService.save(student1);
+                            } catch (ParseException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+
+                }else {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7);
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        try {
+                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + 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());
+                            studentService.save(student1);
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+
+
+
 
             System.out.println("保存成功=============》="+holi);
 
@@ -427,7 +665,36 @@
 
 
 
-
+    }
+    private List<Integer> week(String week){
+        String[] split = week.split(";");
+        ArrayList<Integer> integers = new ArrayList<>();
+        for (String s : split) {
+            switch (s){
+                case "周一":
+                    integers.add(1);
+                    break;
+                case "周二":
+                    integers.add(2);
+                    break;
+                case "周三":
+                    integers.add(3);
+                    break;
+                case "周四":
+                    integers.add(4);
+                    break;
+                case "周五":
+                    integers.add(5);
+                    break;
+                case "周六":
+                    integers.add(6);
+                    break;
+                case "周日":
+                    integers.add(7);
+                    break;
+            }
+        }
+        return integers;
     }
 
     @RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
@@ -474,9 +741,128 @@
             holi.setLaveClassHours(laveClassHours);
             holi.setState(1);
             holi.setInsertTime(new Date());
+            holi.setPayStatus(2);
             paymentService.save(holi);
 
             System.out.println("保存成功=============》="+holi);
+
+
+
+            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");
+            // 本周周几
+            int i = DateUtil.dayOfWeek(new Date())-1;
+            for (Integer integer : week) {
+                if(integer<i){
+                    // 找下一周的时间
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7-(i-integer));
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        try {
+                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + 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());
+                            studentService.save(student1);
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+
+                }else if(integer>i) {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,integer-i);
+                    Date time1 = instance.getTime();
+                    List<Date> list = new ArrayList<>();
+                    list.add(time1);
+                    instance.add(Calendar.DATE,7);
+                    Date time2 = instance.getTime();
+                    list.add(time2);
+                    for (Date time : list) {
+                        for (int i1 = 0; i1 < split.length; i1++) {
+                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                            coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                            try {
+                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                Date parse1 = format1.parse(format.format(time) + " " + 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());
+                                studentService.save(student1);
+                            } catch (ParseException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+
+                }else {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7);
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        try {
+                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + 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());
+                            studentService.save(student1);
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+
 
 
 
@@ -486,10 +872,6 @@
         String join = StringUtils.join(stringArray, ",");
         System.out.println("==========join========"+join);
         return "转课成功";
-
-
-
-
     }
 
 

--
Gitblit v1.7.1