From e88d8861137a816a0ce8b79c390f319c46c6242d Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期五, 04 八月 2023 15:14:25 +0800 Subject: [PATCH] app端:开始上课-课后视频的字段添加 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 502 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 455 insertions(+), 47 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 497bc4e..67ee58f 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -1,15 +1,25 @@ package com.dsh.course.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alipay.api.domain.Person; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.*; +import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.CoachClient; +import com.dsh.course.feignclient.account.model.AppUser; import com.dsh.course.feignclient.account.model.Coach; import com.dsh.course.feignclient.activity.BenefitVideoClient; +import com.dsh.course.feignclient.activity.CouponClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; +import com.dsh.course.feignclient.activity.model.Coupon; +import com.dsh.course.feignclient.model.RecordAppoint; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.*; +import com.dsh.course.model.dto.DiscountJsonDto; import com.dsh.course.model.vo.RegisterCourseVo; import com.dsh.course.model.vo.request.ClasspaymentRequest; import com.dsh.course.model.vo.request.CourseOfAfterRequest; @@ -19,10 +29,15 @@ import com.dsh.course.model.vo.response.CourseDetailsResponse; import com.dsh.course.model.vo.response.CourseOfVideoResponse; import com.dsh.course.service.TCoursePackagePaymentService; -import com.dsh.course.util.ResultUtil; -import org.springframework.beans.factory.annotation.Autowired; +import com.dsh.course.util.*; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -40,37 +55,47 @@ public class TCoursePackagePaymentServiceImpl extends ServiceImpl<TCoursePackagePaymentMapper, TCoursePackagePayment> implements TCoursePackagePaymentService { - @Autowired + @Resource private BenefitVideoClient bfvoClient; - @Autowired + @Resource private UserVideoDetailsMapper uvdmapper; - @Autowired + @Resource private PostCourseVideoMapper pcvMapper; - @Autowired + @Resource private TCoursePackageMapper tcpmapper; - @Autowired + @Resource private StoreClient stoClient; - @Autowired + @Resource private CoachClient coachClient; - @Autowired + @Resource private CoursePackageStudentMapper cpsMapper; - @Autowired + @Resource private CancelledClassesMapper cacMapper; + @Resource + private TCoursePackageDiscountMapper tcpdMapper; - @Override - public List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime , Integer coursePackId, Integer stuId, Integer appUserId) { - return this.baseMapper.queryAllCoursePackage(startTime,endTime,coursePackId,stuId,appUserId); - } + @Resource + private CoursePackagePaymentConfigMapper cpConfigMapper; + + @Resource + private CouponClient client; + + @Resource + private PayMoneyUtil payMoneyUtil; + + @Resource + private AppUserClient appuClient; + /** * 获取课包购买人数 @@ -85,10 +110,17 @@ @Override public List<AppUserVideoResponse> queryAfterVideo(CourseOfAfterRequest search,List<Integer> courseIds) { List<AppUserVideoResponse> responses = new ArrayList<>(); - List<PostCourseVideo> videoList = pcvMapper.queryPostCourseVideolist(courseIds); + List<PostCourseVideo> videoList = new ArrayList<>(); + LambdaQueryWrapper<PostCourseVideo> queryWrapper = new LambdaQueryWrapper<PostCourseVideo>(); + if (courseIds.size() > 0 ){ + queryWrapper.in(PostCourseVideo::getCoursePackageId,courseIds); + } + videoList = pcvMapper.selectList(queryWrapper); + System.out.println(videoList); if (videoList.size() > 0){ List<Integer> videoIds = videoList.stream().map(PostCourseVideo::getCourseId).collect(Collectors.toList()); - List<UserVideoDetails> userVideoDetails = uvdmapper.queryAppUserWatchVideo(videoIds); + List<UserVideoDetails> userVideoDetails = uvdmapper.selectList(new QueryWrapper<UserVideoDetails>() + .in("courseId", videoIds)); if (userVideoDetails.size() > 0){ for (UserVideoDetails userVideoDetail : userVideoDetails) { AppUserVideoResponse response = new AppUserVideoResponse(); @@ -98,23 +130,23 @@ BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(userVideoDetail.getCourseId()); response.setVideoId(userVideoDetail.getCourseId()); response.setCoverImage(videosWithIds.getCover()); - if (null != search.getSearch()){ -// 根据正则模糊匹配 - String pattern = ".*" + search.getSearch() + ".*"; - Pattern regex = Pattern.compile(pattern); - Matcher matcher = regex.matcher(videosWithIds.getName()); - if (matcher.matches()) { - response.setVideoName(videosWithIds.getName()); - } - }else { - response.setVideoName(videosWithIds.getName()); - } + response.setVideoName(videosWithIds.getName()); response.setSynopsis(videosWithIds.getIntroduction()); response.setIntegral(videosWithIds.getIntegral()); response.setStudyStatus(userVideoDetail.getState()); responses.add(response); } Collections.sort(responses, Comparator.comparing(AppUserVideoResponse::getStudyStatus)); + } + if (ToolUtil.isNotEmpty(search.getSearch())){ + responses = responses.stream() + .filter(person -> person.getPackageName().contains(search.getSearch())) + .collect(Collectors.toList()); + } + if (ToolUtil.isNotEmpty(search.getCourseTypeId())){ + responses = responses.stream() + .filter(person -> Objects.equals(person.getCoursePackageId(), search.getCourseTypeId())) + .collect(Collectors.toList()); } } return responses; @@ -140,6 +172,7 @@ response.setPackageName(coursePackage.getName()); response.setSynopsis(videosWithIds.getIntroduction()); response.setDetailedDiagram(coursePackage.getIntroduceDrawing()); + response.setCover(videosWithIds.getCover()); } return response; @@ -158,53 +191,222 @@ uvdmapper.updateById(userVideoDetails); return "SUCCESS"; } - return null; + return "ERROR"; } @Override public List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) { List<RegisterCourseVo> courseVos = new ArrayList<>(); - List<TCoursePackagePayment> tCoursePackagePayments = this.queryAllCoursePackage(null,null,null,null,appUserId); + List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>() + .eq("appUserId",appUserId )); + System.out.println(tCoursePackagePayments); if (tCoursePackagePayments.size() > 0){ for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); Store store = stoClient.queryStoreById(coursePackage.getStoreId()); RegisterCourseVo registerCourseVo = new RegisterCourseVo(); + registerCourseVo.setCoursePayId(tCoursePackagePayment.getId()); registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); + registerCourseVo.setCoursePackTypeId(coursePackage.getCoursePackageTypeId()); registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")"; registerCourseVo.setCourseNameStore(storeAndCourse); registerCourseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); - registerCourseVo.setCourseTeacher(coach.getName()); - List<CoursePackageStudent> coursePackageStudents = - cpsMapper.queryStuDeduClassHourNums(coursePackage.getId(),null,appUserId); - registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); + registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); + List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() + .eq("coursePackageId",coursePackage.getId()) + .eq("studentId",appUserId )); + if (coursePackageStudents.size() > 0 ){ + registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); + } registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); courseVos.add(registerCourseVo); + } + + if (ToolUtil.isNotEmpty(courseTypeId.getSearch())){ + courseVos = courseVos.stream() + .filter(person -> person.getCourseNameStore().contains(courseTypeId.getSearch())) + .collect(Collectors.toList()); + } + + if (ToolUtil.isNotEmpty(courseTypeId.getCourseTypeId())){ + courseVos = courseVos.stream() + .filter(person -> Objects.equals(person.getCoursePackTypeId(), courseTypeId.getCourseTypeId())) + .collect(Collectors.toList()); + } + + if (courseVos.size() > 0 ){ + courseVos = courseVos.stream() + .sorted(Comparator.comparingInt(person -> person.getPayStatus() == 1 ? -1 : 1)) + .collect(Collectors.toList()); } } return courseVos; } @Override - public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) { - // TODO: 2023/7/6 已报名课程详情 - return null; + public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePayId, Integer appUserId) { + CourseDetailsResponse response = new CourseDetailsResponse(); + TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); + + if (null != tCoursePackagePayment){ + TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); + response.setCoverDrawing(coursePackage.getCoverDrawing()); + response.setCoursePackageName(coursePackage.getName()); + response.setCoursePayId(tCoursePackagePayment.getId()); + List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks()); + if (integers.size() > 0){ + StringBuilder courWeeks = new StringBuilder("每"); + for (Integer integer : integers) { + courWeeks.append(integer).append("、"); + } + if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){ + courWeeks.deleteCharAt(courWeeks.length() - 1); + } + response.setWeeks(courWeeks.toString()); + } + response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); + response.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); + + Integer payType = tCoursePackagePayment.getPayType(); + BigDecimal cashPayment = tCoursePackagePayment.getCashPayment(); + double cashPaymentValue = cashPayment.doubleValue(); + Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin(); + TCoursePackageDiscount coursePackageDiscount = tcpdMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>() + .eq("coursePackageId",coursePackage.getId() ) + .eq("type",1) + .eq("auditStatus",2)); + ObjectMapper objectMapper = new ObjectMapper(); + String content = coursePackageDiscount.getContent(); + double discountMember = 0.0; + DiscountJsonDto discountJsonDto = null; + try { + discountJsonDto = objectMapper.readValue(content, DiscountJsonDto.class); + discountMember = discountJsonDto.getDiscountMember(); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + switch (payType) { + case 1: + case 2: + response.setAmount(cashPaymentValue); + response.setVipAmount(discountMember); + break; + case 3: + response.setWpGold(playPaiCoin); + break; + } + response.setPayStatus(tCoursePackagePayment.getPayStatus()); + } + return response; } @Override - public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) { - // TODO: 2023/7/5 报名课程支付 + public ResultUtil ContinuationOrpaymentCourse(Integer ids, ClasspaymentRequest request) { + AppUser userIdFormRedis = appuClient.queryAppUser(ids); + TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId()); + String code = ""; + BigDecimal money = tCoursePackagePayment.getCashPayment(); + Integer wpGold = tCoursePackagePayment.getPlayPaiCoin(); + if (tCoursePackagePayment.getPayStatus() == 1){ +// 待支付的订单 + code = tCoursePackagePayment.getCode(); + tCoursePackagePayment.setPayType(request.getPayType()); + if (request.getUseConpon() == 1){ + tCoursePackagePayment.setUserCouponId(Long.valueOf(request.getUseConpon())); + } + this.baseMapper.updateById(tCoursePackagePayment); + }else { +// 续课的订单 +// 查询是否续课优惠 + + CoursePackagePaymentConfig paymentConfig = cpConfigMapper.selectOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", request.getLessonId()) + .eq("classHours", request.getCourseHoursNum())); + TCoursePackageDiscount coursePackageDiscount = tcpdMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>() + .eq("coursePackageId", request.getLessonId()) + .eq("type", 2) + .eq("auditStatus", 1) + .eq("coursePackagePaymentConfigId", paymentConfig.getCoursePackageId())); + if (ToolUtil.isNotEmpty(coursePackageDiscount)){ + String content = coursePackageDiscount.getContent(); + JSONObject jsonObject = JSON.parseObject(content); + if (userIdFormRedis.getIsVip() == 1){ + Double jsonObjectDouble = jsonObject.getDouble("num1"); + money = BigDecimal.valueOf(jsonObjectDouble); + }else { + Double jsonObjectDouble = jsonObject.getDouble("num2"); + money = BigDecimal.valueOf(jsonObjectDouble); + } + } + TCoursePackagePayment newPayment = new TCoursePackagePayment(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5)); + newPayment.setAppUserId(userIdFormRedis.getId()); + newPayment.setStudentId(request.getStuId()); + newPayment.setCoursePackageId(request.getLessonId()); + newPayment.setClassHours(tCoursePackagePayment.getClassHours()); + newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice()); + newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours()); + newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours()); + if (request.getUseConpon() == 1){ + newPayment.setUserCouponId(Long.valueOf(request.getUseConpon())); + } + newPayment.setAbsencesNumber(0); + newPayment.setPayUserType(1); + newPayment.setPayStatus(1); + newPayment.setStatus(1); + newPayment.setPayType(request.getPayType()); + newPayment.setState(1); + newPayment.setInsertTime(new Date()); + this.baseMapper.insert(newPayment); + code = newPayment.getCode(); + } switch (request.getPayType()){ case 1: - WeChatPayment(); - break; + if (request.getUseConpon() == 1){ + Coupon coupon = client.queryCouponById(request.getConponId()); + if (coupon.getType() == 1){ + Map<String, Object> couponRules = client.getCouponRules(coupon.getId()); + Double conditionalAmount = (Double) couponRules.get("conditionalAmount"); + Double deductionAmount = (Double) couponRules.get("deductionAmount"); + if (money.compareTo(BigDecimal.valueOf(conditionalAmount)) >= 0){ + money = BigDecimal.valueOf(deductionAmount); + } + } + if (coupon.getType() == 2){ + Map<String, Object> couponRules = client.getCouponRules(coupon.getId()); + Object amount = couponRules.get("deductionAmount"); + money = BigDecimal.valueOf((Double) amount); + } + } + try { + return WeChatPayment(code,money); + }catch (Exception e){ + return ResultUtil.runErr(); + } case 2: - AlipayPayment(); - break; + if (request.getUseConpon() == 1){ + Coupon coupon = client.queryCouponById(request.getConponId()); + if (coupon.getType() == 1){ + Map<String, Object> couponRules = client.getCouponRules(coupon.getId()); + Double conditionalAmount = (Double) couponRules.get("conditionalAmount"); + Double deductionAmount = (Double) couponRules.get("deductionAmount"); + if (money.compareTo(BigDecimal.valueOf(conditionalAmount)) >= 0){ + money = BigDecimal.valueOf(deductionAmount); + } + } + if (coupon.getType() == 2){ + Map<String, Object> couponRules = client.getCouponRules(coupon.getId()); + Object amount = couponRules.get("deductionAmount"); + money = BigDecimal.valueOf((Double) amount); + } + } + return AlipayPayment(code,money); case 3: - PlaypaiGoldPayment(); + PlaypaiGoldPayment(userIdFormRedis,code,wpGold); break; default: break; @@ -213,16 +415,222 @@ } - public void WeChatPayment(){ - + public ResultUtil WeChatPayment(String code, BigDecimal request) throws Exception { + TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; + ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, request.toString(), + "/base/coursePackage/wechatRegisteredCoursesCallback", "APP", ""); + if(weixinpay.getCode() == 200){ + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10){ + int min = 5000; + wait += (min * num); + Thread.sleep(wait); + TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); + if(coursePackagePayment.getPayStatus() == 2){ + break; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); + if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){ + /** + * SUCCESS—支付成功, + * REFUND—转入退款, + * NOTPAY—未支付, + * CLOSED—已关闭, + * REVOKED—已撤销(刷卡支付), + * USERPAYING--用户支付中, + * PAYERROR--支付失败(其他原因,如银行返回失败) + */ + Map<String, String> data1 = resultUtil.getData(); + String s = data1.get("trade_state"); + String transaction_id = data1.get("transaction_id"); + if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){ + coursePackagePayment.setState(3); + baseMapper1.deleteById(coursePackagePayment.getId()); + break; + } + if("SUCCESS".equals(s)){ + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setOrderNumber(transaction_id); + baseMapper1.updateById(coursePackagePayment); + break; + } + if("USERPAYING".equals(s)){ + num++; + } + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + }).start(); + } + return weixinpay; } - public void AlipayPayment(){ + + public ResultUtil AlipayPayment(String code, BigDecimal request){ + TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; + ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, request.toString(), + "/base/coursePackage/alipayRegisteredCoursesCallback"); + if(alipay.getCode() == 200){ + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10){ + int min = 5000; + wait += (min * num); + Thread.sleep(wait); + TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); + if(coursePackagePayment.getPayStatus() == 2){ + break; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code); + if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){ + /** + * WAIT_BUYER_PAY(交易创建,等待买家付款)、 + * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 + * TRADE_SUCCESS(交易支付成功)、 + * TRADE_FINISHED(交易结束,不可退款) + */ + Map<String, String> data1 = resultUtil.getData(); + String s = data1.get("tradeStatus"); + String tradeNo = data1.get("tradeNo"); + if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ + coursePackagePayment.setState(3); + baseMapper1.deleteById(coursePackagePayment.getId()); + break; + } + if("TRADE_SUCCESS".equals(s)){ + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setOrderNumber(tradeNo); + baseMapper1.updateById(coursePackagePayment); + break; + } + if("WAIT_BUYER_PAY".equals(s)){ + num++; + } + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + }).start(); + } + return alipay; } - public void PlaypaiGoldPayment(){ + public ResultUtil PlaypaiGoldPayment(AppUser appUser,String code, Integer wpGold){ + TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>() + .eq("code",code )); + if (appUser.getPlayPaiCoins() < wpGold){ + return ResultUtil.error("玩牌币不足!"); + } + packagePayment.setPayStatus(2); + packagePayment.setPayUserId(appUser.getId()); + packagePayment.setPlayPaiCoin(wpGold); + this.baseMapper.updateById(packagePayment); + appUser.setPlayPaiCoins(ToolUtil.isNotEmpty(appUser.getPlayPaiCoins()) ? appUser.getPlayPaiCoins()-wpGold : wpGold); + appuClient.updateAppUser(appUser); + return ResultUtil.success(); } + + @Override + public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId) { + List<RecordAppoint> recordVoList = new ArrayList<>(); + List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>() + .eq("studentId",stuId ) + .eq("appUserId",appUserId ) + .eq("payStatus",2 ) + .eq("status",1 ) + .orderByDesc("insertTime")); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); + if (tCoursePackagePayments.size() > 0 ){ + for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { + RecordAppoint recordVo = new RecordAppoint(); + recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); + + TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + + recordVo.setCoursePackageName(coursePackage.getName()); + recordVo.setCourseHours(tCoursePackagePayment.getClassHours()); + Date date = DateUtil.getDate(); + + String classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); + recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime); + Store store = stoClient.queryStoreById(coursePackage.getStoreId()); + recordVo.setStoreNameAddr(store.getName()+store.getAddress()); + CoursePackageStudent coursePackageStudent = cpsMapper.selectOne(new QueryWrapper<CoursePackageStudent>() + .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ) + .eq("studentId",stuId) + .eq("appUserId",appUserId) + .eq("reservationStatus",1)); + if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 1){ + + recordVo.setCourseStuRecordId(coursePackageStudent.getId()); + String classWeeks = coursePackage.getClassWeeks(); + String[] split = classWeeks.split(";"); + List<String> integerList = Arrays.asList(split); + String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); + + if (integerList.contains(weekOfDate)){ + String dat = simpleDateFormat.format(date) +" "+ classStartTime; + + Date start = null; + try { + start = format.parse(dat); + } catch (ParseException e) { + throw new RuntimeException(e); + } + if (start.after(new Date())){ + recordVo.setStatus(1); + }else { + CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() + .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )); + if (ToolUtil.isNotEmpty(cancelledClasses)){ + recordVo.setStatus(3); + }else { + recordVo.setStatus(2); + } + } + }else { + recordVo.setStatus(1); + } + }else { + recordVo.setStatus(4); + } + + recordVoList.add(recordVo); + } + } + return recordVoList; + } + + @Override + public ResultUtil insertVipPaymentCallback(String code, String orderNumber) { + TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code); + if(coursePackagePayment.getPayStatus() != 1){ + return ResultUtil.success(); + } + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setOrderNumber(orderNumber); + this.baseMapper.updateById(coursePackagePayment); + return ResultUtil.success(); + } + + } -- Gitblit v1.7.1