From 7f0ce5869d017291dfe2f01b485307764bbceafb Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 30 一月 2024 14:41:36 +0800
Subject: [PATCH] 更新bug修改
---
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 639 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 346 insertions(+), 293 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 ca92254..33021bf 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
@@ -10,11 +10,13 @@
import com.dsh.course.entity.dto.*;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
+import com.dsh.course.feignclient.account.model.AppUser;
import com.dsh.course.feignclient.account.model.Student;
import com.dsh.course.mapper.CoursePackageSchedulingMapper;
import com.dsh.course.mapper.CoursePackageStudentMapper;
import com.dsh.course.model.dto.ToClassDto;
import com.dsh.course.service.*;
+import com.dsh.course.util.ALiSendSms;
import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.UUIDUtil;
import io.swagger.annotations.Api;
@@ -50,7 +52,6 @@
private TCoursePackageService coursePackageService;
@Resource
private CoursePackageStudentMapper cpsMapper;
-
//获取退费记录
@RequestMapping("/getRefund")
@ResponseBody
@@ -58,39 +59,19 @@
// 查询已通过申请的退费记录
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;
}
@@ -106,6 +87,21 @@
return collect;
}
+
+
+
+ @ResponseBody
+ @PostMapping("/queryAble")
+ public Integer queryAble(@RequestBody Integer id) {
+
+ int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id));
+ if (coursePackageId>0){
+ return 1;
+ }else {
+ return 0;
+ }
+
+ }
//获取学员课时数信息
@RequestMapping("/getInfo")
@@ -126,6 +122,8 @@
studentClassInfo.setInDate(minDate);
System.out.println("===========>" + studentClassInfo);
+// appUserClient.queryGift(tStudentId);
+
return studentClassInfo;
}
@@ -136,7 +134,9 @@
System.out.println("==========getClassList===tStudentId====" + tStudentId);
List<ClassListDto> listDtos = studentService.getClassList(tStudentId);
for (ClassListDto dto : listDtos) {
- dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours());
+ if (dto.getClassType()!=2) {
+ dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours());
+ }
}
System.out.println("======listDtos======" + listDtos);
return listDtos;
@@ -173,6 +173,9 @@
@Resource
private AppUserClient appUserClient;
+
+ @Autowired
+ private ALiSendSms aLiSendSms;
@Autowired
@@ -287,7 +290,14 @@
@RequestMapping("/insertBack")
@ResponseBody
- public void insertBack(@RequestBody InsertBackDto insertBackDto) {
+ public Integer insertBack(@RequestBody InsertBackDto insertBackDto) {
+
+ List<MoneyBack> ids = moneyBackService.list(new QueryWrapper<MoneyBack>().eq("ids", insertBackDto.getIds()));
+
+ if (!ids.isEmpty()){
+ return 1 ;
+ }
+
MoneyBack moneyBack = new MoneyBack();
moneyBack.setStudentId(insertBackDto.getId());
@@ -303,16 +313,34 @@
for (CoursePackageOrderStudent o : pays) {
o.setStatus(4);
o.setAppUserId(null);
+ List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>().eq("studentId", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId()).ge("classDate", new Date()));
+ List<Long> scs = new ArrayList<>();
+ for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
+ scs.add(coursePackageScheduling.getId());
+ }
+ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId",scs));
+ coursePackageSchedulingService.deleteBatchIds(scs);
+
+
+
}
+
+
orderStudentService.updateBatchById(pays);
+ return 0;
}
+ @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);
@@ -328,6 +356,8 @@
}
+
+
@RequestMapping("/noStatus")
@ResponseBody
public void noStatus(@RequestParam("id") Integer id) {
@@ -339,6 +369,7 @@
for (CoursePackageOrderStudent o : pays) {
o.setStatus(1);
o.setAppUserId(null);
+ schedulingService.addNewCoursePackageScheduling(o.getId(),o.getLaveClassHours());
}
orderStudentService.updateBatchById(pays);
@@ -390,18 +421,30 @@
}
+
+ @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;
+ }
+
+
@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);
+// MoneyBack byId = moneyBackService.getById(id);
+// String[] split = byId.getIds().split(",");
+// System.out.println("========split===>" + split);
+// List<CoursePackageOrderStudent> id1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().in("id", split));
+// for (CoursePackageOrderStudent o : id1) {
+// o.setStatus(1);
+// o.setAppUserId(null);
+// }
+// coursePackageOrderStudentService.updateBatchById(id1);
}
@RequestMapping("/cancel")
@@ -450,8 +493,10 @@
CourseCounsum courseCounsum = new CourseCounsum();
courseCounsum.setInsertTime(new Date());
- if (orinPay.getAppUserId().compareTo(studentPay.getAppUserId()) != 0) {
- courseCounsum.setReason("课时赠送");
+ Integer appUserId = orinPay.getAppUserId();
+ Integer appUserId1 = studentPay.getAppUserId();
+ if (appUserId.compareTo(appUserId1) != 0) {
+ courseCounsum.setReason("赠课");
} else {
courseCounsum.setReason("课时转移");
}
@@ -466,20 +511,10 @@
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);
- orderStudentService.updateById(studentPay);
-
CourseCounsum courseCounsum1 = new CourseCounsum();
courseCounsum1.setInsertTime(new Date());
- if (orinPay.getAppUserId().compareTo(studentPay.getAppUserId()) != 0) {
- courseCounsum1.setReason("课时赠送");
+ if (appUserId.compareTo(appUserId1) != 0) {
+ courseCounsum1.setReason("赠课");
} else {
courseCounsum1.setReason("课时转移");
}
@@ -488,10 +523,10 @@
courseCounsum1.setPaymentId(studentPay.getId());
counsumService.save(courseCounsum1);
- schedulingService.addNewCoursePackageScheduling(studentPay.getId(),laveClassHours);
+ schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);
//删除原排课数据
List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
- .eq("type", 1).eq("appUserId", orinPay.getAppUserId())
+ .eq("type", 1).eq("appUserId", appUserId)
.eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())
.orderByAsc("classDate"));
int num = totalClassHours - laveClassHours;
@@ -501,12 +536,13 @@
coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId()));
}
} else {
+
Integer totalClassHours = orinPay.getTotalClassHours();
Integer laveClassHours = orinPay.getLaveClassHours();
Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
CoursePackageOrderStudent to = new CoursePackageOrderStudent();
to.setStudentId(toClassDto.getToStudentId());
- to.setTotalClassHours(totalClassHours);
+ to.setTotalClassHours(laveClassHours);
to.setLaveClassHours(laveClassHours);
to.setCoursePackageId(orinPay.getCoursePackageId());
to.setState(1);
@@ -519,10 +555,17 @@
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());
+ }
+ studentClient.frozen(student);
+ Integer laveClassHours1 = orinPay.getLaveClassHours();
+ Integer appUserId = orinPay.getAppUserId();
orinPay.setLaveClassHours(0);
orinPay.setAppUserId(null);
orinPay.setStatus(6);
@@ -531,8 +574,8 @@
CourseCounsum courseCounsum = new CourseCounsum();
courseCounsum.setInsertTime(new Date());
- courseCounsum.setReason("课时赠送");
- courseCounsum.setNum(orinPay.getLaveClassHours());
+ courseCounsum.setReason("赠课");
+ courseCounsum.setNum(laveClassHours1);
courseCounsum.setChangeType(0);
courseCounsum.setPaymentId(orinPay.getId());
counsumService.save(courseCounsum);
@@ -540,17 +583,17 @@
CourseCounsum courseCounsum1 = new CourseCounsum();
courseCounsum1.setInsertTime(new Date());
- courseCounsum1.setReason("课时赠送");
- courseCounsum1.setNum(orinPay.getLaveClassHours());
+ courseCounsum1.setReason("赠课");
+ courseCounsum1.setNum(laveClassHours1);
courseCounsum1.setChangeType(1);
courseCounsum1.setPaymentId(to.getId());
- counsumService.save(courseCounsum);
+ counsumService.save(courseCounsum1);
//开始排课
addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to);
//删除原排课数据
List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
- .eq("type", 1).eq("appUserId", orinPay.getAppUserId())
+ .eq("type", 1).eq("appUserId", appUserId)
.eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())
.orderByAsc("classDate"));
int num = totalClassHours - laveClassHours;
@@ -599,7 +642,9 @@
int day_week = calendar.get(Calendar.DAY_OF_WEEK);
day_week = day_week - 1 == 0 ? 7 : day_week - 1;
int num = 8 - day_week + 7;
- Date useTime = coursePackageOrderStudent.getUseTime();
+
+ Student student = studentClient.queryStudentById(coursePackageOrderStudent.getStudentId());
+ Date useTime = student.getValidity();
for (int i = 0; i < num; i++) {
Date time = calendar.getTime();
@@ -724,133 +769,142 @@
@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[] 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+":课时数不足";
+ }
- String[] ids = toHoliDto.getIds();
- List<String> strings = new ArrayList<>();
+ for (String stuId : stuIds) {
+ Student student = studentClient.queryStudentById(Integer.valueOf(stuId));
+ // 扣除 原来的课时数
+ // 添加购买课时 paytyoe为7
+ // 排课可期 判断课程时间段 添加排课表 添加上课记录表
+ // 找到原来的课包 扣课时
+// CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId());
+ CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
- for (String id : ids) {
- //扣除课时
- TCoursePackagePayment payment = paymentService.getById(id);
- System.out.println("=====byId=========" + payment);
+ 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());
-
- 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;
+ coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
+ .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
+ }
+ }
+ coursePackageOrderStudent.setAppUserId(null);
+ coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
+ orderStudentService.updateById(coursePackageOrderStudent);
+ Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+ if(3 >= laveClassHours){
+ AppUser appUser = appUserClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
+ //发送短信提醒
+ aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
}
- 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();
+ //上课星期
+ 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 "报名成功";
}
@@ -911,150 +965,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 "转课成功";
}
-
-
}
--
Gitblit v1.7.1