From f88cfa02e36752e4acad7adc4b045155e8e50f21 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 08 十二月 2023 09:16:29 +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 | 542 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 442 insertions(+), 100 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 2097da1..565114e 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 @@ -16,6 +16,7 @@ import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.CoursePackageSchedulingMapper; +import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.mapper.TCoursePackageMapper; import com.dsh.course.model.*; import com.dsh.course.model.dto.DiscountJsonDto; @@ -27,10 +28,12 @@ import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.obs.services.internal.ServiceException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -60,6 +63,8 @@ @Autowired private TCoursePackagePaymentService packagePaymentService; + @Resource + private CoursePackageStudentMapper cpsMapper; @Autowired private ICoursePackageOrderService coursePackageOrderService; @@ -161,22 +166,21 @@ */ @RequestMapping("/base/coursePackagePayment/add") public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) { - //校验是否已经报满 Integer cpId = Integer.valueOf((int) packagePayment.getCoursePackageId()); Integer integer = coursePackagePaymentService.queryCountNumber(cpId); - TCoursePackage course = coursePackageService.getById(packagePayment.getId()); + TCoursePackage course = coursePackageService.getById(packagePayment.getCoursePackageId()); if (course.getType() != 3) { if (integer + 1 > course.getMaxSubscribeNumber()) { return 5001; } } - // 如果重复购买 累加课时 CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); coursePackageOrder.setAppUserId(packagePayment.getAppUserId()); coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId())); coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId()); coursePackageOrder.setClassHours(packagePayment.getClassHours()); + coursePackageOrder.setLaveClassHours(packagePayment.getClassHours()); coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice()); coursePackageOrder.setCashPayment(packagePayment.getCashPayment()); coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin()); @@ -185,29 +189,8 @@ 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); - } // 生成排课数据 - return null; + return 200; } @@ -218,13 +201,99 @@ */ @RequestMapping("/base/coursePackagePayment/changeState") public Object changeState(@RequestBody CoursePackagePayDTO dto) { + String ids = dto.getIds(); + Long aLong = Long.valueOf(ids); + CoursePackageOrder byId1 = coursePackageOrderService.getById(aLong); + TCoursePackage byId = coursePackageService.getById(byId1.getCoursePackageId()); + if (byId.getType()==1){ + // 如果重复购买 累加课时 + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService + .getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", Integer.valueOf(byId1.getStudentIds())) + .eq("coursePackageId", byId1.getCoursePackageId()).eq("status", 1).eq("state", 1)); + if (null == coursePackageOrderStudent) { + coursePackageOrderStudent = new CoursePackageOrderStudent(); + coursePackageOrderStudent.setAppUserId(byId1.getAppUserId()); + coursePackageOrderStudent.setStudentId(Integer.valueOf(byId1.getStudentIds())); + coursePackageOrderStudent.setCoursePackageId(byId1.getCoursePackageId()); + coursePackageOrderStudent.setTotalClassHours(byId1.getClassHours()); + coursePackageOrderStudent.setLaveClassHours(byId1.getClassHours()); + coursePackageOrderStudent.setAbsencesNumber(0); + coursePackageOrderStudent.setStatus(1); + coursePackageOrderStudent.setState(1); + coursePackageOrderStudent.setInsertTime(new Date()); + // 判断这个订单购买的是哪一个课时规格 + CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", byId.getId()) + .eq("classHours", byId1.getClassHours())); + // 判断当前购买的课包有没有赠送课时 + TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId()) + .eq("type", 4).eq("auditStatus", 2).eq("status", 1) + .eq("coursePackagePaymentConfigId",one1.getId())); + if (one!=null){ + Integer giftClassHours = getGiftClassHours(one,null); + coursePackageOrderStudent.setGiftClassHours(giftClassHours); + coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours); + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours); + }else{ + coursePackageOrderStudent.setGiftClassHours(0); + } + Integer validDays = byId.getValidDays(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); + coursePackageOrderStudent.setUseTime(calendar.getTime()); + coursePackageOrderStudent.setInsertTime(new Date()); + coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); + Integer studentId = Integer.valueOf(byId1.getStudentIds()); + //开始排课 + addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent); + } else { + Date useTime = coursePackageOrderStudent.getUseTime(); + coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + byId1.getClassHours()); + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + byId1.getClassHours()); + Integer validDays = byId.getValidDays(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); + coursePackageOrderStudent.setUseTime(calendar.getTime()); + // 判断这个订单购买的是哪一个课时规格 + CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", byId.getId()) + .eq("classHours", byId1.getClassHours())); + // 判断当前购买的课包有没有赠送课时 + TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId()) + .eq("type", 4).eq("auditStatus", 2).eq("status", 1) + .eq("coursePackagePaymentConfigId",one1.getId())); + if (one!=null){ + Integer giftClassHours = getGiftClassHours(one,null); + coursePackageOrderStudent.setGiftClassHours(giftClassHours); + }else{ + coursePackageOrderStudent.setGiftClassHours(0); + } + // 获取常规课的有效期 计算是哪一天 + Calendar calendar9 = Calendar.getInstance(); + calendar9.add(Calendar.DAY_OF_MONTH, byId.getValidDays()); + Date time = calendar9.getTime(); + coursePackageOrderStudent.setUseTime(time); + coursePackageOrderStudent.setInsertTime(new Date()); + coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); + Integer studentId = Integer.valueOf(byId1.getStudentIds()); + //中间断课,没有连续续费的情况需要重新排课 + if (useTime.compareTo(new Date()) < 0) { + addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent); + } + } + } + if(byId.getType() == 2){ + addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), byId1, null); + } return packagePaymentService.changeState(dto); } @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}") - public List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) { - List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() + public List<CoursePackageOrderStudent> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) { + List<CoursePackageOrderStudent> list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .eq("appUserId", appUserId) .eq("coursePackageId", coursePackageId)); return list; @@ -239,17 +308,46 @@ List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query); List<CoursePackagePaymentVO> result = new ArrayList<>(); for (CoursePackagePaymentVO re : res) { + // 判断这条记录有没有赠送课时 + Integer coursePackageId = re.getCoursePackageId(); + Integer classHours = re.getClassHours(); + CoursePackagePaymentConfig one = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", coursePackageId) + .eq("classHours", classHours)); + if (one!=null){ + TCoursePackageDiscount one1 = discountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId) + .eq("coursePackagePaymentConfigId", one.getId()) + .eq("auditStatus",2).eq("status",1).eq("type",4)); + if (one1 == null){ + re.setGiftClassHours(0); + }else{ + Integer giftClassHours = getGiftClassHours(one1,re.getInsertTime()); + re.setGiftClassHours(giftClassHours); + } + }else{ + re.setGiftClassHours(0); + } if (re.getCashPayment() == null) { if (re.getPlayPaiCoin() != null) { String value = String.valueOf(re.getPlayPaiCoin()); re.setCashPayment(new BigDecimal(value)); } } - Store store = storeClient.queryStoreById(re.getStoreId()); TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); - Student student = studentClient.queryStudentById(re.getStudentId()); - re.setPayStudent(student.getName()); + String studentId = re.getStudentId(); + String[] split = studentId.split(";"); + StringBuilder stringBuilder = new StringBuilder(""); + + for (String s : split) { + Student student = studentClient.queryStudentById(Integer.valueOf(s)); + stringBuilder.append(student.getName()+","); + } + String string = stringBuilder.toString(); + if (string.length() > 0) { + String stringWithoutLastCharacter = string.substring(0, string.length() - 1); + re.setPayStudent(stringWithoutLastCharacter); + } re.setPayUser(appUser.getName()); re.setPhone(appUser.getPhone()); re.setStoreName(store.getName()); @@ -262,7 +360,7 @@ } else { List<Student> students = studentClient.queryStudentListByName(query.getPayStudent()); for (Student student1 : students) { - if (student.getName().equals(student1.getName())) { + if (string.contains(student1.getName())) { result.add(re); } } @@ -270,7 +368,6 @@ } } } - if (re.getPayType() != null) { if (re.getPayType() == 1) { re.setBuyTypeName("微信支付"); @@ -298,7 +395,7 @@ if (discountService.list(new QueryWrapper<TCoursePackageDiscount>() .eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) { re.setBuyType(3); - re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney())); + re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment())); } else { re.setBuyType(2); } @@ -593,17 +690,17 @@ @PostMapping("/base/coursePack/getRecord") public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) { - List<CoursePackageOrderStudent> list = new ArrayList<>(); +// List<CoursePackageOrderStudent> list = new ArrayList<>(); Integer[] changes = {1, 0}; - if (recordTimeRequest.getType() == null) { - list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); - } else { - - list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); - } - List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList()); +// if (recordTimeRequest.getType() == null) { +// list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); +// } else { +// +// list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); +// } +// List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList()); List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() - .in("appUserId", appUserIds) + .eq("studentId", recordTimeRequest.getStuId()) .eq("coursePackageId", recordTimeRequest.getLessionId()) .eq("state", 1) ); @@ -760,9 +857,6 @@ return videoVos; } - - - @PostMapping("/base/coursePack/allPaymentCourseList") @ResponseBody public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) { @@ -828,7 +922,6 @@ Set<BaseVo> set = new HashSet<>(list); List<BaseVo> back = new ArrayList<>(set); - return ResultUtil.success(back); } catch (Exception e) { e.printStackTrace(); @@ -846,25 +939,11 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception { -// try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if (null == appUserId) { return ResultUtil.tokenErr(); } -// -// List<Integer> courseIds = new ArrayList<>(); -// QueryWrapper<TCoursePackagePayment> queryWrapper = new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId) -// .groupBy("coursePackageId"); -// if (ToolUtil.isNotEmpty(search.getCourseTypeId())){ -// queryWrapper.eq("coursePackageId",search.getCourseTypeId()); -// } -// List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(queryWrapper); -// if (tCoursePackagePayments.size() > 0 ){ -// courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); -// } - - QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId()); if (ToolUtil.isNotEmpty(search.getCourseTypeId())) { queryWrapper1.eq("coursePackageId", search.getCourseTypeId()); @@ -877,7 +956,6 @@ } System.out.println("======longs========" + longs); -// List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId")); List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs); if (search.getSearch() != null) { @@ -892,11 +970,6 @@ } return ResultUtil.success(coursePackageSchedulings1); - - -// }catch (Exception e){ -// return ResultUtil.runErr(); -// } } /** @@ -1044,7 +1117,6 @@ } - /** * 已报名课程详情 */ @@ -1059,7 +1131,7 @@ @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int") }) - public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat, Integer orderId) { + public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat) { try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if (null == appUserId) { @@ -1067,9 +1139,7 @@ } CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat); - - - +// // if (orderId != null) { // TOrder byId = orderService.getById(orderId); // courseDetailsResponse.setAmount(byId.getPrice()); @@ -1114,7 +1184,6 @@ */ @PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback") public void alipayCallback(HttpServletRequest request, HttpServletResponse response) { - System.err.println("========支付宝支付回调========"); try { Map<String, String> map = payMoneyUtil.alipayCallback(request); if (null != map) { @@ -1661,7 +1730,7 @@ if (student != null) { sId = student.getId(); } - addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId()); + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment, coursePackagePayment.getId()); CourseCounsum courseCounsum = new CourseCounsum(); @@ -1684,7 +1753,7 @@ if (student != null) { sId = student.getId(); } - addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId()); + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne, coursePackagePaymentServiceOne.getId()); CourseCounsum courseCounsum = new CourseCounsum(); @@ -1693,6 +1762,7 @@ courseCounsum.setNum(orderDto.getClassHours()); courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("积分兑换"); + courseCounsum.setInsertTime(new Date()); courseCounsumService.save(courseCounsum); @@ -1717,10 +1787,269 @@ return dateList.toArray(new Date[0]); } + public Integer getGiftClassHours(TCoursePackageDiscount one,Date insertTime){ + if (insertTime!=null){ + // 判断购买时间 是否满足折扣规则 + char c = one.getContent().charAt(0); + String value1 = String.valueOf(c); + JSONObject jsonObject ; + if (value1.equals("[")){ + jsonObject = JSONObject.fromObject(one.getContent() + .substring(1,one.getContent().length() - 1)); + }else{ + jsonObject = JSONObject.fromObject(one.getContent()); + } + // 赠送课时 判断当前课包有没有赠送课时 + String weeks = jsonObject.getString("weeks"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(insertTime); + // 获取星期几,星期日是1,星期一是2,以此类推 + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + // 将星期日(Calendar定义为1)转换为7 + if (dayOfWeek == Calendar.SUNDAY) { + dayOfWeek = 7; + } else { + // 其他星期减一即可得到1-6的数字表示 + dayOfWeek -= 1; + } + // todo + if (weeks.contains(String.valueOf(dayOfWeek))){ + // 限时折扣判断是否在有效期 + try { + // 判断当日时间是否能享受到折扣 + String startTime = jsonObject.getString("startTime"); + String endTime = jsonObject.getString("endTime"); + + // 定义时间格式 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + // 解析开始时间和结束时间为Date对象 + Date startTime1 = sdf.parse(startTime); + Date endTime1 = sdf.parse(endTime); + Date date1 = new Date(); + date1.setHours(startTime1.getHours()); + date1.setMinutes(startTime1.getMinutes()); + date1.setSeconds(startTime1.getSeconds()); + Date date2 = new Date(); + date2.setHours(endTime1.getHours()); + date2.setMinutes(endTime1.getMinutes()); + date2.setSeconds(endTime1.getSeconds()); + // 检查当前时间是否在开始时间和结束时间之间 + if (insertTime.after(date1) && insertTime.before(date2)) { + System.out.println("当前时间在开始时间和结束时间之间。"); + String hour = jsonObject.getString("hour"); + return Integer.valueOf(hour); + } else { + System.out.println("当前时间不在开始时间和结束时间之间。"); + return 0; + } + } catch (ParseException e) { + e.printStackTrace(); + } + } + } + // 判断购买时间 是否满足折扣规则 + char c = one.getContent().charAt(0); + String value1 = String.valueOf(c); + JSONObject jsonObject ; + if (value1.equals("[")){ + jsonObject = JSONObject.fromObject(one.getContent() + .substring(1,one.getContent().length() - 1)); + }else{ + jsonObject = JSONObject.fromObject(one.getContent()); + } + // 赠送课时 判断当前课包有没有赠送课时 + String weeks = jsonObject.getString("weeks"); + // 判断当前周几 是否满足折扣规则 + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 获取当前日期是星期几的数字表示 + int dayOfWeekAsNumber = currentDate.getDayOfWeek().getValue(); + if (weeks.contains(String.valueOf(dayOfWeekAsNumber))){ + // 限时折扣判断是否在有效期 + try { + // 判断当日时间是否能享受到折扣 + String startTime = jsonObject.getString("startTime"); + String endTime = jsonObject.getString("endTime"); + // 获取当前时间 + Date currentTime = new Date(); + // 定义时间格式 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + // 解析开始时间和结束时间为Date对象 + Date startTime1 = sdf.parse(startTime); + Date endTime1 = sdf.parse(endTime); + Date date1 = new Date(); + date1.setHours(startTime1.getHours()); + date1.setMinutes(startTime1.getMinutes()); + date1.setSeconds(startTime1.getSeconds()); + Date date2 = new Date(); + date2.setHours(endTime1.getHours()); + date2.setMinutes(endTime1.getMinutes()); + date2.setSeconds(endTime1.getSeconds()); + // 检查当前时间是否在开始时间和结束时间之间 + if (currentTime.after(date1) && currentTime.before(date2)) { + System.out.println("当前时间在开始时间和结束时间之间。"); + String hour = jsonObject.getString("hour"); + + return Integer.valueOf(hour); + } else { + System.out.println("当前时间不在开始时间和结束时间之间。"); + return 0; + } + } catch (ParseException e) { + e.printStackTrace(); + } + } + return 0; + } + @Autowired private TCoursePackageService coursePackageService; - private void addPackageStudent(Integer courseId, Integer userId, Integer sId, Long paymentId) throws ParseException { + private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrder coursePackageOrder, CoursePackageOrderStudent coursePackageOrderStudent) { + try { + //1常规 2假期 3体验 + if (tCoursePackage.getType() == 1) { + //上课星期 + 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"); + //剩余课时 + Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + //扣除课时数 + Integer codeTime = tCoursePackage.getCodeTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + 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(); + + for (int i = 0; i < num; i++) { + Date time = calendar.getTime(); + + //判断当天是否在排课星期内 + 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() >= useTime.getTime()) { + break; + } + for (int j = 0; j < split.length; j++) { + //剩余数量不足以排课 + if (laveClassHours.compareTo(codeTime) < 0) { + break; + } + + laveClassHours -= codeTime; + + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(tCoursePackage.getType()); + coursePackageScheduling.setAppUserId(userId); + coursePackageScheduling.setStudentId(sId); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentIds(coursePackageOrder.getId().toString()); + 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.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + } + } + + if (tCoursePackage.getType() == 2) { + //上课星期 + 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"); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 + Calendar calendar = Calendar.getInstance(); + //假期开始使用当前时间为起始时间进行排课 + 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(); + + //判断当天是否在排课星期内 + 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; + } + for (int j = 0; j < split.length; j++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(tCoursePackage.getType()); + coursePackageScheduling.setAppUserId(userId); + coursePackageScheduling.setStudentId(sId); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentIds(coursePackageOrder.getId().toString()); + 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.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(null); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + private void addPackageStudent(Integer courseId, Integer userId, Integer sId, TCoursePackagePayment coursePackagePayment, Long paymentId) throws ParseException { // 课包 TCoursePackage tCoursePackage = coursePackageService.getById(courseId); @@ -1771,6 +2100,7 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentIds(coursePackagePayment.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); @@ -1834,6 +2164,7 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentIds(coursePackagePayment.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); @@ -1855,8 +2186,6 @@ } } } - - // 2.0 TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); tCourseInfoRecord.setUserId(userId); @@ -1866,8 +2195,6 @@ tCourseInfoRecord.setTime(new Date()); tCourseInfoRecord.setType(2); appUserClient.addCourseInfoRecord(tCourseInfoRecord); - - } @ResponseBody @@ -1950,6 +2277,7 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentIds(pay.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); @@ -2035,6 +2363,12 @@ return packagePaymentService.getById(id); } + @ResponseBody + @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1") + public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) { + return coursePackageOrderStudentService.getById(id); + } + // @Autowired // private ICoursePackageOrderStudentService orderStudentService; @@ -2042,13 +2376,13 @@ @ResponseBody @PostMapping("/coursePackagePayment/consumeCourse") - public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) { + public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) { CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId); TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){ - return ResultUtil.error("当前学员课时数不足"); + return 1; } coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum()); orderStudentService.updateById(coursePackageOrderStudent); @@ -2059,14 +2393,14 @@ courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("补课"); courseCounsumService.save(courseCounsum); - return ResultUtil.success("补课成功"); + return 2; } @ResponseBody @PostMapping("/coursePackagePayment/CountqueryByClassId") public Integer CountqueryByClassId(@RequestBody Integer id) { - int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id)); + int coursePackageId = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id)); return coursePackageId; @@ -2097,6 +2431,16 @@ System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackagePayment); // coursePackagePayment.setCoursePackageId(null); packagePaymentService.updateBytime(coursePackagePayment); + } + + @ResponseBody + @PostMapping("/coursePackagePayment/editCoursePackagePayment2") + public void editCoursePackagePayment2(@RequestBody CoursePackageOrderStudent coursePackageOrderStudent) { + System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackageOrderStudent); +// coursePackagePayment.setCoursePackageId(null); +// packagePaymentService.updateBytime(coursePackagePayment); + + coursePackageOrderStudentService.updateById(coursePackageOrderStudent); } @@ -2198,7 +2542,9 @@ 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<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); @@ -2210,21 +2556,6 @@ .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", 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()); - - for (TCoursePackage tCoursePackage : list) { DetailsListVo detailsListVo = new DetailsListVo(); detailsListVo.setId(tCoursePackage.getId()); @@ -2303,14 +2634,25 @@ detailsListVo.setIsType(list4.get(0).getType()); for (CoursePackageStudent coursePackageStudent : list4) { + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId()); + if (coursePackageScheduling.getStatus()==4){ + detailsListVo.setIsType(3); + } + Integer signInOrNot1 = coursePackageStudent.getSignInOrNot(); detailsListVo.setType(1); if (signInOrNot1 == 2) { detailsListVo.setType(3); } + //体验购课去掉按钮 + if(coursePackageScheduling.getType() == 3){ + detailsListVo.setCourseType(3); + detailsListVo.setType(2); + } + + detailsListVo.setIsType(coursePackageStudent.getType()); - CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId()); Date classDate = coursePackageScheduling.getClassDate(); Date endDate = coursePackageScheduling.getEndDate(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); -- Gitblit v1.7.1