From aa7815675bafe30675a93420f8f2776dabb48cfd Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期一, 27 十一月 2023 20:25:43 +0800 Subject: [PATCH] 11.27,5 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 272 ++++++++++++++++++++++++------------------------------ 1 files changed, 121 insertions(+), 151 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index c0019bf..2097da1 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -1,11 +1,8 @@ package com.dsh.course.controller; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.*; import com.dsh.course.entity.TAppUser; @@ -15,8 +12,6 @@ import com.dsh.course.feignclient.account.model.Student; import com.dsh.course.feignclient.account.model.TCourseInfoRecord; import com.dsh.course.feignclient.account.model.TStudent; -import com.dsh.course.feignclient.activity.CouponClient; -import com.dsh.course.feignclient.activity.model.Coupon; import com.dsh.course.feignclient.model.*; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; @@ -29,7 +24,6 @@ import com.dsh.course.model.vo.request.*; import com.dsh.course.model.vo.response.*; import com.dsh.course.service.*; -import com.dsh.course.service.impl.CoursePackageOrderStudentServiceImpl; import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -37,16 +31,10 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import net.bytebuddy.asm.Advice; -import org.aspectj.weaver.ast.Var; -import io.swagger.models.auth.In; -import org.checkerframework.checker.units.qual.C; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; @@ -135,11 +123,12 @@ @Autowired private CoursePackageStudentService coursePackageStudentService; + @Autowired + private TOrderService orderService; private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); - @Autowired - private TOrderService orderService; + @Autowired private ICoursePackageOrderStudentService coursePackageOrderStudentService; @@ -172,124 +161,54 @@ */ @RequestMapping("/base/coursePackagePayment/add") public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) { - packagePayment.setInsertTime(new Date()); - packagePayment.setInsertTime(new Date()); - Integer studentId = packagePayment.getStudentId(); - // 添加学员上课记录 - CoursePackageStudent coursePackageStudent = new CoursePackageStudent(); - TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment.getStudentId()) - .orderByDesc("insertTime") - .last("LIMIT 1")); - if (one != null) { - Integer totalClassHours = one.getTotalClassHours(); - Integer absencesNumber = one.getAbsencesNumber(); - // 没有过期 - if (one.getUseTime().after(new Date())) { - if (one.getLaveClassHours() - packagePayment.getClassHours() < 0) { - return 5002; - } - packagePayment.setTotalClassHours(one.getTotalClassHours()); - packagePayment.setLaveClassHours(one.getLaveClassHours() - packagePayment.getClassHours()); - packagePayment.setAbsencesNumber(one.getAbsencesNumber()); + //校验是否已经报满 + Integer cpId = Integer.valueOf((int) packagePayment.getCoursePackageId()); + Integer integer = coursePackagePaymentService.queryCountNumber(cpId); + TCoursePackage course = coursePackageService.getById(packagePayment.getId()); + if (course.getType() != 3) { + if (integer + 1 > course.getMaxSubscribeNumber()) { + return 5001; } - packagePayment.setTotalClassHours(packagePayment.getClassHours()); - packagePayment.setLaveClassHours(packagePayment.getClassHours()); - packagePayment.setAbsencesNumber(one.getAbsencesNumber()); - } else { - packagePayment.setTotalClassHours(packagePayment.getClassHours()); - packagePayment.setLaveClassHours(packagePayment.getClassHours()); - packagePayment.setAbsencesNumber(0); + } + // 如果重复购买 累加课时 + CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); + coursePackageOrder.setAppUserId(packagePayment.getAppUserId()); + coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId())); + coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId()); + coursePackageOrder.setClassHours(packagePayment.getClassHours()); + coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice()); + coursePackageOrder.setCashPayment(packagePayment.getCashPayment()); + coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin()); + coursePackageOrder.setPayStatus(1); + coursePackageOrder.setState(1); + coursePackageOrder.setInsertTime(new Date()); + coursePackageOrder.setSalesName(packagePayment.getSalesName()); + coursePackageOrderService.save(coursePackageOrder); + TCoursePackage byId = coursePackageService.getById(packagePayment.getCoursePackageId()); + if (byId.getType()==1){ + CoursePackageOrderStudent coursePackageOrderStudent = new CoursePackageOrderStudent(); + coursePackageOrderStudent.setAppUserId(packagePayment.getAppUserId()); + coursePackageOrderStudent.setStudentId(packagePayment.getStudentId()); + coursePackageOrderStudent.setCoursePackageId(packagePayment.getCoursePackageId()); + coursePackageOrderStudent.setTotalClassHours(packagePayment.getClassHours()); + coursePackageOrderStudent.setLaveClassHours(packagePayment.getClassHours()); + coursePackageOrderStudent.setAbsencesNumber(0); + coursePackageOrderStudent.setDropoutsNumber(0); + coursePackageOrderStudent.setStatus(1); + coursePackageOrderStudent.setState(1); + coursePackageOrderStudent.setInsertTime(new Date()); + coursePackageOrderStudent.setGiftClassHours(packagePayment.getGiftClassHours()); + // 获取常规课的有效期 计算是哪一天 + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH, byId.getValidDays()); + Date time = calendar.getTime(); + coursePackageOrderStudent.setUseTime(time); + return coursePackageOrderStudentService.save(coursePackageOrderStudent); } // 生成排课数据 - TCoursePackage coursePackage = tcpService.getById(packagePayment.getCoursePackageId()); - //生成排课数据 - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); - List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); - String value = coursePackage.getClassStartTime(); - String value1 = coursePackage.getClassEndTime(); + return null; - String[] star = value.split(","); - String[] end = value1.split(","); - for (int i = 0; i < star.length; i++) { - // int index = star[i].indexOf(","); - // String result = value.substring(0, index).trim(); - String classStartTime = star[i]; - String[] split = classStartTime.split(":"); - // String value1 = en; - int index1 = value1.indexOf(","); - // String result1 = value.substring(0, index1).trim(); - String classEndTime = end[i]; - String[] split1 = classEndTime.split(":"); - Calendar s = Calendar.getInstance(); - s.setTime(date); - s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); - s.set(Calendar.MINUTE, Integer.valueOf(split[1])); - s.set(Calendar.SECOND, 0); - - Calendar e = Calendar.getInstance(); - e.setTime(date); - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); - long timeInMillis = e.getTimeInMillis(); - - while (true) { - int w = s.get(Calendar.DAY_OF_WEEK); - WeekEnum weekEnum = WeekEnum.getWeekEnum(w); - if (list.contains(weekEnum.getChineseName())) { - Calendar classDate = Calendar.getInstance(); - classDate.setTime(s.getTime()); - classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); - classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); - classDate.set(Calendar.SECOND, 0); - - Calendar endDate = Calendar.getInstance(); - endDate.setTime(s.getTime()); - endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); - endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); - endDate.set(Calendar.SECOND, 0); - - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(coursePackage.getId()); - coursePackageScheduling.setClassDate(classDate.getTime()); - coursePackageScheduling.setEndDate(endDate.getTime()); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - coursePackageStudent.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - - List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() - .eq("coursePackageId", coursePackage.getId()) - .eq("classDate", classDate.getTime()) - .eq("endDate", endDate.getTime())); - if (list1.size() + 1 > coursePackage.getMaxSubscribeNumber()) { - // 当前课包预约人数已满 - return 5001; - } - } - s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - if (s.getTimeInMillis() > timeInMillis) { - break; - } - } - } - } catch (ParseException e) { - e.printStackTrace(); - } - - coursePackageStudent.setStudentId(packagePayment.getStudentId()); - coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId()); - - - coursePackageStudent.setSignInOrNot(0); - coursePackageStudent.setReservationStatus(1); - coursePackageStudent.setInsertTime(new Date()); - coursePackageStudent.setAppUserId(packagePayment.getAppUserId()); - packagePaymentService.save(packagePayment); - coursePackageStudent.setCoursePackagePaymentId(packagePayment.getId()); - return coursePackageStudentService.save(coursePackageStudent); } /** @@ -728,11 +647,11 @@ Integer totalNu = 0; Integer dedutNu = 0; Integer remainNu = 0; - List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() + List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .eq("appUserId", getStuOfCoursesDetails.getAppUserId()) .eq("studentId", getStuOfCoursesDetails.getStuId())); if (byUserId.size() > 0) { - for (TCoursePackagePayment tCoursePackagePayment : byUserId) { + for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) { totalNu = totalNu + tCoursePackagePayment.getTotalClassHours(); dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours(); remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours()); @@ -841,18 +760,28 @@ return videoVos; } + + + @PostMapping("/base/coursePack/allPaymentCourseList") @ResponseBody public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) { List<CouponPaymentVo> paymentVos = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() - .eq("appUserId", appUserId) - .eq("payType", 3) +// List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() +// .eq("appUserId", appUserId) +// .eq("payType", 3) +// .eq("payStatus", 2) +// .eq("state", 1)); + + + List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("appUserId", appUserId).eq("payType", 3) .eq("payStatus", 2) .eq("state", 1)); + + if (list.size() > 0) { - for (TCoursePackagePayment tCoursePackagePayment : list) { + for (CoursePackageOrder tCoursePackagePayment : list) { CouponPaymentVo couponPaymentVo = new CouponPaymentVo(); couponPaymentVo.setTime(simpleDateFormat.format(tCoursePackagePayment.getInsertTime())); couponPaymentVo.setAmount(tCoursePackagePayment.getPlayPaiCoin()); @@ -1115,6 +1044,7 @@ } + /** * 已报名课程详情 */ @@ -1138,10 +1068,12 @@ CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat); - if (orderId != null) { - TOrder byId = orderService.getById(orderId); - courseDetailsResponse.setAmount(byId.getPrice()); - } + + +// if (orderId != null) { +// TOrder byId = orderService.getById(orderId); +// courseDetailsResponse.setAmount(byId.getPrice()); +// } return ResultUtil.success(courseDetailsResponse); } catch (Exception e) { e.printStackTrace(); @@ -2104,6 +2036,33 @@ } +// @Autowired +// private ICoursePackageOrderStudentService orderStudentService; + + + @ResponseBody + @PostMapping("/coursePackagePayment/consumeCourse") + public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) { + CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId); + + TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); + + if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){ + return ResultUtil.error("当前学员课时数不足"); + } + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum()); + orderStudentService.updateById(coursePackageOrderStudent); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(coursePackage.getNeedNum()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("补课"); + courseCounsumService.save(courseCounsum); + return ResultUtil.success("补课成功"); + } + + @ResponseBody @PostMapping("/coursePackagePayment/CountqueryByClassId") public Integer CountqueryByClassId(@RequestBody Integer id) { @@ -2160,10 +2119,10 @@ if (null == appUserId) { return ResultUtil.tokenErr(); } - List<TCoursePackagePayment> packagePayment = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>() - .eq(TCoursePackagePayment::getCoursePackageId, courseID) - .eq(TCoursePackagePayment::getAppUserId, appUserId) - .eq(TCoursePackagePayment::getStudentId, stuId) + List<CoursePackageOrderStudent> packagePayment = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() + .eq("coursePackageId", courseID) + .eq("appUserId", appUserId) + .eq("studentId", stuId) ); if (ToolUtil.isEmpty(packagePayment) || packagePayment.size() == 0) { @@ -2175,7 +2134,7 @@ ); List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>() - .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList())) + .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList())) .in(CoursePackageStudent::getCoursePackageSchedulingId, coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList())) .eq(CoursePackageStudent::getCoursePackageId, courseID) .eq(CoursePackageStudent::getStudentId, stuId) @@ -2238,25 +2197,32 @@ map.put("name", store.getName()); map.put("lon", lon); map.put("lat", lat); - - // 找出门店的所有课程 排出体验 List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week)); List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList()); if (collect.size() == 0) { collect.add(-1); } + + List<CoursePackageScheduling> list8 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>() + .eq(CoursePackageScheduling::getAppUserId, courseDetailReq.getAppUserId()) + .eq(CoursePackageScheduling::getStudentId, courseDetailReq.getStuId()) + .in(CoursePackageScheduling::getCoursePackageId, collect) + ); + List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList()); // 找出购买的课包 List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .eq("appUserId", courseDetailReq.getAppUserId()) .eq("studentId", courseDetailReq.getStuId()) - .in("coursePackageId", collect) + .in("coursePackageId", collect1) .eq("status", 1) .eq("state", 1) ); - List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList()); - List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()); + + +// List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList()); +// List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()); for (TCoursePackage tCoursePackage : list) { @@ -2297,6 +2263,9 @@ detailsListVo.setMoney(cashPayment); } detailsListVo.setNum(tCoursePackage.getNeedNum()); + + + if (collect1.contains(tCoursePackage.getId())) { // 找出排课记录 List<CoursePackageScheduling> list3 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>() @@ -2310,16 +2279,16 @@ } //排课的ids List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); - if (collect2.isEmpty()) { + if (collect2.isEmpty()){ collect2.add(-1l); } List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>() .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId()) + .eq(CoursePackageStudent::getStudentId, courseDetailReq.getStuId()) .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId()) - .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2). - in(CoursePackageStudent::getCoursePackagePaymentId, ids) + .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2) ); List<CoursePackageStudent> list5 = cspsService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", courseDetailReq.getStuId()).eq("coursePackageId", tCoursePackage.getId())); @@ -2458,7 +2427,8 @@ List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.listOne(userPt); int sum = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getTotalClassHours).sum(); int sum1 = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getLaveClassHours).sum(); - map.put("allCourse", sum - sum1); + // 查询介绍有礼课时数量 + map.put("allCourse",sum-sum1); //所有课包 List<TCoursePackage> coursePackages = tcpService.list(); -- Gitblit v1.7.1