From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 11 七月 2024 10:47:51 +0800 Subject: [PATCH] 玩湃微信商户认证代码 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 627 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 500 insertions(+), 127 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 825445d..a767089 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; @@ -133,6 +138,12 @@ @Autowired private ICoursePackageOrderStudentService coursePackageOrderStudentService; + @Autowired + private ALiSendSms aLiSendSms; + + @Resource + private AppUserClient appuClient; + /** * 查询学员入学时间 根据第一次购买课包的时间 @@ -161,17 +172,15 @@ */ @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())); @@ -180,34 +189,15 @@ coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice()); coursePackageOrder.setCashPayment(packagePayment.getCashPayment()); coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin()); + coursePackageOrder.setCode(packagePayment.getCode()); coursePackageOrder.setPayStatus(1); + coursePackageOrder.setStatus(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); - } // 生成排课数据 - return null; + return 200; } @@ -218,13 +208,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 +315,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 +367,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 +375,6 @@ } } } - if (re.getPayType() != null) { if (re.getPayType() == 1) { re.setBuyTypeName("微信支付"); @@ -298,7 +402,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); } @@ -374,7 +478,8 @@ } } TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); - Student student = studentClient.queryStudentById(re.getStudentId()); + String[] split = re.getStudentIds().split(","); + Student student = studentClient.queryStudentById(Integer.valueOf(split[0])); re.setPayStudent(student.getName()); re.setPayUser(appUser.getName()); re.setPhone(appUser.getPhone()); @@ -593,17 +698,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) ); @@ -647,11 +752,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()); @@ -663,7 +768,6 @@ return lisco; } - @PostMapping("/base/coursePack/continuingCourse") public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) { StudentOfCourseVo courseVo = new StudentOfCourseVo(); @@ -672,7 +776,6 @@ .eq("coursePackageId", getStudentCourse.getCourseId()) .eq("studentId", getStudentCourse.getStuId())); if (tCoursePackagePayments.size() > 0) { - List<CourseHoursType> typeList = new ArrayList<>(); tCoursePackagePayments.forEach(cou -> { CourseHoursType hoursType = new CourseHoursType(); @@ -683,7 +786,6 @@ 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()); @@ -760,9 +862,6 @@ return videoVos; } - - - @PostMapping("/base/coursePack/allPaymentCourseList") @ResponseBody public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) { @@ -828,7 +927,6 @@ Set<BaseVo> set = new HashSet<>(list); List<BaseVo> back = new ArrayList<>(set); - return ResultUtil.success(back); } catch (Exception e) { e.printStackTrace(); @@ -846,25 +944,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 +961,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 +975,6 @@ } return ResultUtil.success(coursePackageSchedulings1); - - -// }catch (Exception e){ -// return ResultUtil.runErr(); -// } } /** @@ -1044,7 +1122,6 @@ } - /** * 已报名课程详情 */ @@ -1059,7 +1136,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 +1144,7 @@ } CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat); - - - +// // if (orderId != null) { // TOrder byId = orderService.getById(orderId); // courseDetailsResponse.setAmount(byId.getPrice()); @@ -1093,15 +1168,15 @@ }) public ResultUtil continuationOperation(ClasspaymentRequest request) { try { - Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); - if (null == userIdFormRedis) { + Integer userId = tokenUtil.getUserIdFormRedis(); + if (null == userId) { return ResultUtil.tokenErr(); } Integer couponId = request.getConponId(); if (couponId == null || couponId == 0) { request.setConponId(null); } - return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis, request); + return packagePaymentService.ContinuationOrpaymentCourse(userId, request); } catch (Exception e) { return ResultUtil.runErr(); } @@ -1114,7 +1189,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) { @@ -1244,6 +1318,12 @@ TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour()); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); + Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + if(3 >= laveClassHours){ + AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId()); + //发送短信提醒 + aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", ""); + } //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1) @@ -1661,7 +1741,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 +1764,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 +1773,7 @@ courseCounsum.setNum(orderDto.getClassHours()); courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("积分兑换"); + courseCounsum.setInsertTime(new Date()); courseCounsumService.save(courseCounsum); @@ -1717,10 +1798,266 @@ 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; + } + 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()); + 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()); + 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); @@ -1855,8 +2192,6 @@ } } } - - // 2.0 TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); tCourseInfoRecord.setUserId(userId); @@ -1866,8 +2201,6 @@ tCourseInfoRecord.setTime(new Date()); tCourseInfoRecord.setType(2); appUserClient.addCourseInfoRecord(tCourseInfoRecord); - - } @ResponseBody @@ -2035,6 +2368,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,16 +2381,23 @@ @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); + Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + if(3 >= laveClassHours){ + AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId()); + //发送短信提醒 + aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", ""); + } + CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); courseCounsum.setChangeType(0); @@ -2059,14 +2405,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; @@ -2085,7 +2431,6 @@ packagePaymentService.updateById(coursePackagePayment); } - /** * 修改数据 * @@ -2097,6 +2442,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 +2553,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 +2567,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()); @@ -2272,6 +2614,7 @@ .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId()) .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime()) ); + if (list3.isEmpty()) { detailsListVo.setType(2); objects.add(detailsListVo); @@ -2279,13 +2622,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) ); @@ -2302,14 +2646,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"); @@ -2338,6 +2693,10 @@ detailsListVo.setType(2); objects.add(detailsListVo); + } + //课程暂停 + if(tCoursePackage.getState() == 4){ + detailsListVo.setType(4); } } map.put("data", objects); @@ -2383,18 +2742,18 @@ ids.add(-1); } List<TCoursePackagePayment> list1 = packagePaymentService.listOne(ids); - List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); - if (collect.size() == 0) { - collect.add(-1); - } - List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect)); - for (TCoursePackagePayment tCoursePackagePayment : list1) { - for (TCoursePackage tCoursePackage : list2) { - if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) { - tCoursePackagePayment.setType(tCoursePackage.getType()); - } - } - } +// List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); +// if (collect.size() == 0) { +// collect.add(-1); +// } +// List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect)); +// for (TCoursePackagePayment tCoursePackagePayment : list1) { +// for (TCoursePackage tCoursePackage : list2) { +// if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) { +// tCoursePackagePayment.setType(tCoursePackage.getType()); +// } +// } +// } List<Map<String, Object>> mapList = new ArrayList<>(); @@ -2403,7 +2762,7 @@ map.put("name", tCoursePackageType.getName()); int a = 0; for (TCoursePackagePayment tCoursePackagePayment : list1) { - if (tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) { + if (null != tCoursePackagePayment.getType() && tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) { a += tCoursePackagePayment.getLaveClassHours(); } } @@ -2688,10 +3047,7 @@ weekData.add(count2); weekData.add(count1); weekData.add(count); - map.put("weekData", weekData); - - LocalDateTime currentDateTime = LocalDateTime.now(); List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0)); for (CoursePackageStudent coursePackageStudent : list) { @@ -2866,4 +3222,21 @@ return map; } + + + @ResponseBody + @PostMapping("/coursePackagePayment/queryPaymentCoursePackage") + public List<Integer> queryPaymentCoursePackage(@RequestBody List<Integer> storeIds){ + if(storeIds.size() == 0){ + return new ArrayList<>(); + } + List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("auditStatus", 2) + .ne("status", 4).eq("state", 1).in("storeId", storeIds)); + List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList()); + if(collect.size() == 0){ + return new ArrayList<>(); + } + List<CoursePackageOrder> list1 = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().in("coursePackageId", collect).eq("payStatus", 2).eq("status", 1)); + return list1.stream().map(CoursePackageOrder::getAppUserId).collect(Collectors.toList()); + } } -- Gitblit v1.7.1