From e9085eb620dcae1ceae24bc8b70e1a6bca228b15 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期一, 27 十一月 2023 19:58:38 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 239 +++++++++++++++++++++++++---------------------------------- 1 files changed, 100 insertions(+), 139 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 05d74e9..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) { @@ -2320,13 +2279,14 @@ } //排课的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) ); @@ -2467,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