From f8521034c5007b11bf00040e101bcf21195dfeb8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 27 十一月 2023 16:49:04 +0800
Subject: [PATCH] 后台
---
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 970 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 939 insertions(+), 31 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 e60bb31..f3ad740 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,26 +1,39 @@
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.StudentClassInfo;
-import com.dsh.course.entity.TCoursePackagePayment;
-import com.dsh.course.entity.dto.ClassListDto;
-import com.dsh.course.entity.dto.SelectDto;
-import com.dsh.course.entity.dto.updateTimeDto;
+import com.dsh.course.entity.*;
+import com.dsh.course.entity.dto.*;
import com.dsh.course.feignclient.account.AppUserClient;
-import com.dsh.course.service.CoursePackageStudentService;
-import com.dsh.course.service.TCoursePackagePaymentService;
+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.mapper.CoursePackageStudentMapper;
+import com.dsh.course.model.dto.ToClassDto;
+import com.dsh.course.service.*;
import com.dsh.course.util.ResultUtil;
+import com.dsh.course.util.UUIDUtil;
import io.swagger.annotations.Api;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.swing.text.html.parser.Entity;
-import java.util.Date;
-import java.util.List;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
+import java.util.*;
+import java.util.stream.Collectors;
@Api
@CrossOrigin
@@ -28,13 +41,76 @@
@RequestMapping("/courdent")
public class CourseStudentController {
@Autowired
- CoursePackageStudentService studentService ;
+ CoursePackageStudentService studentService;
@Autowired
TCoursePackagePaymentService paymentService;
+ @Autowired
+ private CourseCounsumService counsumService;
+ @Autowired
+ private TCoursePackageService coursePackageService;
+ @Resource
+ private CoursePackageStudentMapper cpsMapper;
+
+ //获取退费记录
+ @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);
+ if (pacQueryDto.getStoreIds() != null && pacQueryDto.getStoreIds().size() != 0) {
+ // 根据门店id 查询课包ids
+ List<Integer> coursePackageIds = coursePackageService.list(new QueryWrapper<TCoursePackage>()
+ .in("storeId", pacQueryDto.getStoreIds())).stream()
+ .map(TCoursePackage::getId).collect(Collectors.toList());
+ pacQueryDto.setStoreIds(coursePackageIds);
+ }
+ 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
- public StudentClassInfo list(@RequestParam("tStudentId")Integer tStudentId) {
+ public StudentClassInfo list(@RequestParam("tStudentId") Integer tStudentId) {
// System.out.println("------------>"+tStudentId);
@@ -43,66 +119,898 @@
// Date maxDate = studentService.getMaxDate(tStudentId);
Date minDate = studentService.getMinDate(tStudentId);
- System.out.println("===========>"+studentClassInfo);
Integer totalHours = studentClassInfo.getTotalHours();
Integer hasHours = studentClassInfo.getRestHours();
- Integer restHours = totalHours-hasHours;
+ Integer restHours = totalHours - hasHours;
studentClassInfo.setHasHours(restHours);
studentClassInfo.setInDate(minDate);
+ System.out.println("===========>" + studentClassInfo);
+
return studentClassInfo;
}
+
//获取学员课程列表
@RequestMapping("/getClassList")
@ResponseBody
- public List<ClassListDto> listClass(@RequestParam("tStudentId")Integer tStudentId) {
- System.out.println("==========getClassList===tStudentId===="+tStudentId);
- List<ClassListDto> listDtos = studentService.getClassList(tStudentId);
- System.out.println("======listDtos======"+listDtos);
- return listDtos;
+ public List<ClassListDto> listClass(@RequestParam("tStudentId") Integer tStudentId) {
+ System.out.println("==========getClassList===tStudentId====" + tStudentId);
+ List<ClassListDto> listDtos = studentService.getClassList(tStudentId);
+ for (ClassListDto dto : listDtos) {
+ dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours());
+ }
+ System.out.println("======listDtos======" + listDtos);
+ return listDtos;
}
//获取学员有效期
@RequestMapping("/getUseTime")
@ResponseBody
- public Date getUseTime(@RequestParam("tStudentId")Integer tStudentId) {
- Date maxDate = studentService.getMaxDate(tStudentId);
+ public Date getUseTime(@RequestParam("tStudentId") Integer tStudentId) {
+ Date maxDate = studentService.getMaxDate(tStudentId);
- return maxDate;
+ return maxDate;
}
//批量修改有效期
@RequestMapping("/updateUseDate")
@ResponseBody
- public void updateUseDate(@RequestBody updateTimeDto updateTimeDto ){
- System.out.println("=========updateUseDate=====>="+updateTimeDto);
+ public void updateUseDate(@RequestBody updateTimeDto updateTimeDto) {
+ System.out.println("=========updateUseDate=====>=" + updateTimeDto);
List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", updateTimeDto.getTStudentId()));
- System.out.println("=========paymentList=====>="+paymentList);
+ System.out.println("=========paymentList=====>=" + paymentList);
- for (TCoursePackagePayment payment: paymentList) {
+ for (TCoursePackagePayment payment : paymentList) {
// payment.setUseTime(updateTimeDto.getDate());
- paymentService.updateUseTime(payment.getId(),updateTimeDto.getDate());
+ paymentService.updateUseTime(payment.getId(), updateTimeDto.getDate());
}
- System.out.println("=======updateUseDate=======>"+paymentList);
+ System.out.println("=======updateUseDate=======>" + paymentList);
}
+
@Resource
private AppUserClient appUserClient;
+
//获取可转移学员
@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);
- System.out.println("=========studentIds=================>"+studentIds);
+ TCoursePackagePayment byId = paymentService.getById(payId);
- List<SelectDto> selectDtos = appUserClient.getSelects(studentIds);
+ 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;
+ } else return null;
+ }
+
+
+ //根据payid获取对应门店的常规课程
+
+ @Autowired
+ private TCoursePackageService packageService;
+
+ @RequestMapping("/holiSelect")
+ @ResponseBody
+ public List<SelectDto> getHoliSelect(@RequestParam("courseId") Integer id) {
+
+ TCoursePackage byId = packageService.getById(id);
+ Integer storeId = byId.getStoreId();
+ List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>()
+ .select("id", "name")
+ .eq("storeId", storeId)
+ .eq("type", "2")
+ );
+ List<SelectDto> selectDtos = new ArrayList<>();
+ for (TCoursePackage t : list) {
+ SelectDto selectDto = new SelectDto();
+ selectDto.setId(t.getId());
+ selectDto.setValue(t.getName());
+ selectDtos.add(selectDto);
+ }
+
return selectDtos;
}
+ @RequestMapping("/transSelect")
+ @ResponseBody
+ public List<SelectDto> getTransSelect(@RequestParam("courseId") Integer id) {
+
+ TCoursePackage byId = packageService.getById(id);
+ Integer storeId = byId.getStoreId();
+ List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>()
+ .select("id", "name")
+ .eq("storeId", storeId)
+ .eq("type", "1").ne("id", id)
+ );
+ List<SelectDto> selectDtos = new ArrayList<>();
+ for (TCoursePackage t : list) {
+ SelectDto selectDto = new SelectDto();
+ selectDto.setId(t.getId());
+ selectDto.setValue(t.getName());
+ selectDtos.add(selectDto);
+ }
+
+
+ return selectDtos;
+ }
+
+
+ @RequestMapping("/queryCounsum")
+ @ResponseBody
+ public List<CourseCounsum> queryCounsum(@RequestBody ConsumeQuery consumeQuery) {
+ System.out.println("======queryCounsum===========" + consumeQuery);
+
+ QueryWrapper<CourseCounsum> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("paymentId", consumeQuery.getPayId());
+
+
+ if (consumeQuery.getChangeType() != null) {
+ queryWrapper.eq("changeType", consumeQuery.getChangeType());
+ }
+ if (consumeQuery.getStart() != null) {
+ queryWrapper.between("insertTime", consumeQuery.getStart(), consumeQuery.getEnd());
+ }
+ if (consumeQuery.getReason() != null && consumeQuery.getReason() != "") {
+ queryWrapper.like("reason", consumeQuery.getReason());
+
+ }
+ List<CourseCounsum> list = counsumService.list(queryWrapper);
+// List<CourseCounsum> list = counsumService.list(new QueryWrapper<CourseCounsum>().eq("paymentId", consumeQuery.getPayId()).eq("changeType", consumeQuery.getChangeType()).between("insertTime", consumeQuery.getStart(), consumeQuery.getEnd()).like("reason", consumeQuery.getReason()));
+ return list;
+ }
+
+
+ @Autowired
+ private ICoursePackageOrderStudentService orderStudentService;
+
+ @RequestMapping("/insertBack")
+ @ResponseBody
+ public void insertBack(@RequestBody InsertBackDto insertBackDto) {
+
+ MoneyBack moneyBack = new MoneyBack();
+ moneyBack.setStudentId(insertBackDto.getId());
+ moneyBack.setStatus(0);
+ moneyBack.setInsertTime(new Date());
+ moneyBack.setIds(insertBackDto.getIds());
+ moneyBackService.save(moneyBack);
+
+// List<TCoursePackagePayment> pays = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", insertBackDto.getIds()));
+
+
+ List<CoursePackageOrderStudent> pays = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().in("id", insertBackDto.getIds()));
+ for (CoursePackageOrderStudent o : pays) {
+ o.setStatus(4);
+ o.setAppUserId(null);
+ }
+
+ orderStudentService.updateBatchById(pays);
+ }
+
+
+ @RequestMapping("/queryByIds")
+ @ResponseBody
+ public List<TCoursePackagePayment> queryByIds(@RequestParam("ids") String ids) {
+ List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>()
+ .in("id", Arrays.asList(ids.split(","))));
+
+ System.out.println("========client==>" + paymentList);
+ return paymentList;
+ }
+
+ @RequestMapping("/changeStatus")
+ @ResponseBody
+ public void changeStatus(@RequestParam("id") Integer id) {
+ MoneyBack byId = moneyBackService.getById(id);
+ byId.setStatus(1);
+ moneyBackService.updateById(byId);
+
+ }
+
+ @RequestMapping("/noStatus")
+ @ResponseBody
+ public void noStatus(@RequestParam("id") Integer id) {
+ MoneyBack byId = moneyBackService.getById(id);
+ byId.setStatus(2);
+ moneyBackService.updateById(byId);
+
+ List<CoursePackageOrderStudent> pays = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().in("id", byId.getIds()));
+ for (CoursePackageOrderStudent o : pays) {
+ o.setStatus(1);
+ o.setAppUserId(null);
+ }
+ orderStudentService.updateBatchById(pays);
+
+ }
+
+ @RequestMapping("/zeroClass")
+ @ResponseBody
+ public void zeroClass(@RequestParam("id") Integer id) {
+ MoneyBack byId = moneyBackService.getById(id);
+ String[] split2 = byId.getIds().split(",");
+ System.out.println("========split===>" + split2);
+ List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split2));
+ 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);
+
+
+ TCoursePackage tCoursePackage = packageService.getById(o.getCoursePackageId());
+ 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", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId()));
+ 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", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId()));
+ }
+
+
+ }
+ 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(3);
+ student.setAppUserId(null);
+ }
+ studentService.updateBatchById(coursePackagePaymentId);
+
+
+ }
+
+ @Autowired
+ private MoneyBackService moneyBackService;
+
+ @RequestMapping("/getMoneyBack")
+ @ResponseBody
+ public List<MoneyBack> getMoneyBack(@RequestParam("tStudentId") Integer tStudentId) {
+
+ List<MoneyBack> moneyBacksck = moneyBackService.list(new QueryWrapper<MoneyBack>().eq("studentId", tStudentId));
+ return moneyBacksck;
+ }
+
+ //课程转移
+ @RequestMapping("/toClass")
+ @ResponseBody
+ public void toClass(@RequestBody ToClassDto toClassDto) throws ParseException {
+ System.out.println("===========到达getSelect=======" + toClassDto);
+ TCoursePackagePayment orinPay =
+ paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId()));
+ TCoursePackagePayment studentPay = paymentService.getOne
+ (new QueryWrapper<TCoursePackagePayment>()
+ .eq("studentId", toClassDto.getToStudentId())
+ .eq("coursePackageId", orinPay.getCoursePackageId()));
+ if (studentPay != null) {
+ System.out.println("======orinPay=====>" + orinPay);
+ System.out.println("======studentPay=====>" + studentPay);
+ Integer laveClassHours = orinPay.getLaveClassHours();
+ Integer totalClassHours = orinPay.getTotalClassHours();
+ orinPay.setTotalClassHours(0);
+ orinPay.setLaveClassHours(0);
+ orinPay.setStatus(1);
+ orinPay.setAppUserId(null);
+ paymentService.updateById(orinPay);
+ //删除orin的排课记录
+ List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()));
+ List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
+ //拿到最后一天的排课记录
+ if (collect1.size() > 0) {
+ coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1));
+ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ }
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setInsertTime(new Date());
+ if (orinPay.getAppUserId() != studentPay.getAppUserId()) {
+ courseCounsum.setReason("课时转移");
+ } else {
+ courseCounsum.setReason("课时转移");
+ }
+ courseCounsum.setNum(laveClassHours);
+ courseCounsum.setChangeType(0);
+ courseCounsum.setPaymentId(orinPay.getId());
+ counsumService.save(courseCounsum);
+
+ Integer laveClassHours1 = studentPay.getLaveClassHours();
+ Integer totalClassHours1 = studentPay.getTotalClassHours();
+ int total = totalClassHours + totalClassHours1;
+ int lave = laveClassHours + laveClassHours1;
+
+ studentPay.setAppUserId(null);
+ studentPay.setLaveClassHours(lave);
+ studentPay.setTotalClassHours(total);
+ paymentService.updateById(studentPay);
+
+ CourseCounsum courseCounsum1 = new CourseCounsum();
+ courseCounsum1.setInsertTime(new Date());
+ if (orinPay.getAppUserId() != studentPay.getAppUserId()) {
+ courseCounsum1.setReason("课时转移");
+ } else {
+ courseCounsum1.setReason("课时转移");
+ }
+ courseCounsum1.setNum(laveClassHours);
+ courseCounsum1.setChangeType(1);
+ courseCounsum1.setPaymentId(studentPay.getId());
+ counsumService.save(courseCounsum1);
+
+
+ //排课
+ TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId());
+ 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", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ 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", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ }
+
+ Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
+
+ Date today = new Date();
+
+
+ TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId());
+ Integer laveClassHours2 = 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 = laveClassHours2 / codeTime;
+
+ for (Date date : dates) {
+ if (count == can) {
+ break;
+ }
+ 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(studentPay.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ cpsMapper.insert(student1);
+ count++;
+ }
+ }
+ }
+
+
+ } else {
+
+
+ Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
+ TCoursePackagePayment to = new TCoursePackagePayment();
+ to.setStudentId(toClassDto.getToStudentId());
+ to.setTotalClassHours(orinPay.getTotalClassHours());
+ to.setLaveClassHours(orinPay.getLaveClassHours());
+ to.setCoursePackageId(orinPay.getCoursePackageId());
+ to.setState(1);
+ to.setAppUserId(student.getAppUserId());
+ to.setPayStatus(2);
+ to.setStatus(1);
+ to.setInsertTime(new Date());
+ paymentService.save(to);
+
+
+ orinPay.setTotalClassHours(0);
+ orinPay.setLaveClassHours(0);
+ orinPay.setAppUserId(null);
+ orinPay.setStatus(1);
+ paymentService.updateById(orinPay);
+
+
+ //删除orin的排课记录
+ List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()));
+ List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
+ //拿到最后一天的排课记录
+ if (collect1.size() > 0) {
+ coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1));
+ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ }
+
+
+ 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();
+ courseCounsum1.setInsertTime(new Date());
+ courseCounsum1.setReason("课时转移");
+ courseCounsum1.setNum(orinPay.getLaveClassHours());
+ courseCounsum1.setChangeType(1);
+ courseCounsum1.setPaymentId(to.getId());
+ counsumService.save(courseCounsum);
+
+
+ TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId());
+ 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", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ 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", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
+ }
+
+
+ Date today = new Date();
+
+
+ TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId());
+ Integer laveClassHours2 = 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 = laveClassHours2 / codeTime;
+
+ for (Date date : dates) {
+ if (count == can) {
+ break;
+ }
+ 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(studentPay.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ cpsMapper.insert(student1);
+ count++;
+ }
+ }
+ }
+
+ }
+
+
+ }
+
+ @Resource
+ private StudentClient studentClient;
+ @Autowired
+ private CourseCounsumService courseCounsumService;
+
+ @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;
+ }
+
+ Integer laveClassHoursnew = laveClassHours - classNum;
+ Integer totalClassHoursnew = totalClassHours - classNum;
+ payment.setLaveClassHours(laveClassHoursnew);
+ payment.setTotalClassHours(totalClassHoursnew);
+ payment.setAppUserId(null);
+// payment.setStatus(3);
+
+ paymentService.updateById(payment);
+
+ //获取student信息
+
+ //新增课时
+
+ 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();
+ 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(",");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(startTime);
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
+
+ Date[] dates = generateDateArray(days, calendar.getTime());
+ for (Date date : dates) {
+ if (count == can) {
+ break;
+ }
+ int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date) - 1;
+ if (wei == 0) {
+ wei = 7;
+ }
+ 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++;
+ }
+ }
+ }
+
+
+ System.out.println("保存成功=============》=" + holi);
+
+
+ }
+ String[] stringArray = strings.toArray(new String[strings.size()]);
+
+ String join = StringUtils.join(stringArray, ",");
+ System.out.println("==========join========" + join);
+ return join;
+
+
+ }
+
+
+ @Autowired
+ private TCoursePackagePaymentService coursePackagePaymentService;
+
+ public static Date[] generateDateArray(int numDays, Date date) {
+// LocalDate tomorrow = LocalDate.now().plusDays(1);
+ LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
+
+ Date[] dates = new Date[numDays];
+
+ for (int i = 0; i < numDays; i++) {
+ LocalDate currentDate = tomorrow.plusDays(i);
+ dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ }
+
+ return dates;
+ }
+
+ 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;
+ }
+
+
+ @Autowired
+ private CoursePackageStudentService coursePackageStudentService;
+
+ @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;
+// }
+//
+// Integer laveClassHoursnew = laveClassHours - classNum;
+// Integer totalClassHoursnew = totalClassHours - classNum;
+ payment.setLaveClassHours(0);
+ payment.setTotalClassHours(0);
+ payment.setAppUserId(null);
+
+ paymentService.updateById(payment);
+
+ //获取student信息
+
+ //新增课时
+
+ TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId()));
+
+ 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);
+
+ } else {
+ one.setTotalClassHours(one.getTotalClassHours() + laveClassHours);
+ one.setLaveClassHours(one.getLaveClassHours() + laveClassHours);
+ one.setAppUserId(null);
+ paymentService.updateById(one);
+ holi = one;
+ }
+ System.out.println("保存成功=============》=" + holi);
+
+
+ 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;
+ }
+ 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++;
+ }
+ }
+ }
+
+
+ }
+ String[] stringArray = strings.toArray(new String[strings.size()]);
+
+ String join = StringUtils.join(stringArray, ",");
+ System.out.println("==========join========" + join);
+ return "转课成功";
+ }
+
}
--
Gitblit v1.7.1