package com.dsh.course.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.entity.TCoursePackage; import com.dsh.course.entity.TCoursePackagePayment; import com.dsh.course.feignclient.model.*; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.service.TCoursePackageService; import com.dsh.course.util.DateUtil; import com.dsh.course.util.StrUtils; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Api @CrossOrigin @RestController @RequestMapping("") public class CoursePackagePaymentController { private Logger logger = LoggerFactory.getLogger("business-log"); @Autowired private TCoursePackagePaymentService packagePaymentService; @Autowired private TCoursePackageService tcpService; private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); /** * 获取 没有学员信息的图片配置 * @param stuId 学员id * @return 课包列表 */ @PostMapping("/coursePack/queryPayment") public List getStuCoursePackagePayment(@RequestBody Integer stuId,@RequestBody Integer appUserId){ List resps = new ArrayList<>(); List byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); StuCourseResp resp = new StuCourseResp(); resp.setCourseId(tCoursePackage.getId()); resp.setCourseName(tCoursePackage.getName()); resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours()); resp.setResidueNums(tCoursePackagePayment.getLaveClassHours()); resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours()); resps.add(resp); } } return resps; } /** * * 获取发布的 课包列表 */ @PostMapping("/coursePack/storeOfCourse") public List getStuCourseWithStores(){ List courseOfStoreVos = tcpService.queryStoreOfCourse(); if (courseOfStoreVos.size() > 0){ for (CourseOfStoreVo courseOfStoreVo : courseOfStoreVos) { String[] split = courseOfStoreVo.getClassWeeks().split(";"); List integers = new ArrayList<>(); for (String s : split) { int num = Integer.parseInt(s); integers.add(num); } courseOfStoreVo.setClassWeekList(integers); } } return tcpService.queryStoreOfCourse(); } /** * * 课程名称列表 */ @PostMapping("/coursePack/sessionNames") public List getStuSessionList(@RequestBody Date startTime, @RequestBody Date endTime, @RequestBody Integer stuId, @RequestBody Integer appUserId){ List detailsVos = new ArrayList<>(); List byUserId = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId,appUserId); if (byUserId.size() > 0){ List collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); List list = tcpService.list(new QueryWrapper() .in("id", collect)); list.forEach(vo -> { StuSessionDetailsVo detVo = new StuSessionDetailsVo(); detVo.setSessionid(vo.getId()); detVo.setSessionName(vo.getName()); String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(),vo.getValidDays() + ""); detVo.setPeriodOfValidity(afterDayDate); detailsVos.add(detVo); }); } return detailsVos; } @PostMapping("/coursePack/paymentCourse") public List queryCourseDetails(@RequestBody Date startTime, @RequestBody Date endTime,@RequestBody Integer stuId, @RequestBody Integer appUserId) { List purchaseRecordVos = new ArrayList<>(); List coursePackage = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId, appUserId); if (coursePackage.size() > 0 ){ coursePackage.forEach( cspackage -> { PurchaseRecordVo recordVo = new PurchaseRecordVo(); recordVo.setPurchaseAmount("+"+cspackage.getClassHours()); recordVo.setPurchaseTime(format.format(cspackage.getInsertTime())); recordVo.setPurchaseType("购买课包"); purchaseRecordVos.add(recordVo); }); } return purchaseRecordVos; } @PostMapping("/coursePack/stuOfCourses") public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId, @RequestBody Integer appUserId){ StuWithCoursesListVo lisco = new StuWithCoursesListVo(); Integer totalNu = 0; Integer dedutNu = 0; Integer remainNu = 0; List byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { totalNu = totalNu + tCoursePackagePayment.getTotalClassHours(); dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours(); remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours()); } lisco.setTotalNums(totalNu); lisco.setDeductedNums(remainNu); lisco.setRemainingNums(dedutNu); } return lisco; } @PostMapping("/coursePack/continuingCourse") public StudentOfCourseVo getStudentCourse(@RequestBody Integer courseId,@RequestBody Integer stuId,@RequestBody Integer appUserId){ StudentOfCourseVo courseVo = new StudentOfCourseVo(); List tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,courseId,stuId,appUserId); if (tCoursePackagePayments.size() > 0 ){ List typeList = new ArrayList<>(); tCoursePackagePayments.forEach(cou -> { CourseHoursType hoursType = new CourseHoursType(); hoursType.setCourseConfigId(cou.getId()); hoursType.setCourseConfigId(cou.getClassHours()); typeList.add(hoursType); }); TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0); courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); courseVo.setTypeList(typeList); TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); courseVo.setPackageImg(coursePackage.getCoverDrawing()); courseVo.setCourseName(coursePackage.getName()); courseVo.setCoachId(coursePackage.getCoachId()); String classWeeks = coursePackage.getClassWeeks(); List integers = StrUtils.dealStrToList(classWeeks); if (integers.size() > 0){ StringBuilder courWeeks = new StringBuilder("每"); for (Integer integer : integers) { switch (integer){ case 1: courWeeks.append("周一、"); break; case 2: courWeeks.append("周二、"); break; case 3: courWeeks.append("周三、"); break; case 4: courWeeks.append("周四、"); break; case 5: courWeeks.append("周五、"); break; case 6: courWeeks.append("周六、"); break; case 7: courWeeks.append("周末、"); break; default: break; } } if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == ','){ courWeeks.deleteCharAt(courWeeks.length() - 1); } courseVo.setCourseWeek(courWeeks.toString()); } courseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); // TODO: 2023/6/30 查询会员折扣数据 String payType = tCoursePackagePayment.getPayType(); BigDecimal cashPayment = tCoursePackagePayment.getCashPayment(); double cashPaymentValue = cashPayment.doubleValue(); Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin(); switch (payType) { case "1;2": courseVo.setAmount(cashPaymentValue); courseVo.setWpGold(playPaiCoin); break; case "1": courseVo.setAmount(cashPaymentValue); break; case "2": courseVo.setWpGold(playPaiCoin); break; } courseVo.setStoreId(coursePackage.getStoreId()); } return courseVo; } }