From 35fec86ca49916eb8a8082f7f1e99185ee1e3c24 Mon Sep 17 00:00:00 2001 From: luo <2855143437@qq.com> Date: 星期一, 25 九月 2023 18:02:17 +0800 Subject: [PATCH] 9.25 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 576 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 497 insertions(+), 79 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 67ee58f..57f34a3 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 @@ -5,12 +5,17 @@ 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.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.*; +import com.dsh.course.entity.TAppUser; import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.CoachClient; +import com.dsh.course.feignclient.account.StudentClient; import com.dsh.course.feignclient.account.model.AppUser; import com.dsh.course.feignclient.account.model.Coach; +import com.dsh.course.feignclient.account.model.Student; +import com.dsh.course.feignclient.account.model.TCourseInfoRecord; import com.dsh.course.feignclient.activity.BenefitVideoClient; import com.dsh.course.feignclient.activity.CouponClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; @@ -19,20 +24,23 @@ 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.*; 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; -import com.dsh.course.model.vo.request.CourseWithDetailsRequest; -import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest; -import com.dsh.course.model.vo.response.AppUserVideoResponse; -import com.dsh.course.model.vo.response.CourseDetailsResponse; -import com.dsh.course.model.vo.response.CourseOfVideoResponse; +import com.dsh.course.model.vo.request.*; +import com.dsh.course.model.vo.response.*; +import com.dsh.course.service.ICoursePackageSchedulingService; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.math.BigDecimal; @@ -58,7 +66,6 @@ @Resource private BenefitVideoClient bfvoClient; - @Resource private UserVideoDetailsMapper uvdmapper; @@ -83,7 +90,6 @@ @Resource private TCoursePackageDiscountMapper tcpdMapper; - @Resource private CoursePackagePaymentConfigMapper cpConfigMapper; @@ -96,6 +102,35 @@ @Resource private AppUserClient appuClient; + @Resource + private StudentClient studentClient; + + @Autowired + private ICoursePackageSchedulingService coursePackageSchedulingService; + + + @Autowired + private RestTemplate internalRestTemplate; + + + + + + @Override + public List<CoursePackagePaymentVO> listAll(CoursePackagePaymentQuery query) { + return cpConfigMapper.listAll(query); + } + + @Override + public int changeState(CoursePackagePayDTO dto) { + List<String> ids = dto.getIds(); + List<Long> list = new ArrayList<>(); + for (String id : ids) { + long value = Long.parseLong(id); + list.add(value); + } + return cpConfigMapper.changeState(list,dto.getPayUserName(),dto.getUserId()); + } /** * 获取课包购买人数 @@ -201,27 +236,36 @@ .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(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); + try { + for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { + TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + Store store = stoClient.queryStoreById(coursePackage.getStoreId()); + RegisterCourseVo registerCourseVo = new RegisterCourseVo(); + // 2.0 + registerCourseVo.setType(coursePackage.getType()); + + 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()); + // 2.0 + registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(tCoursePackagePayment.getInsertTime())); + Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); + 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); } - registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); - courseVos.add(registerCourseVo); + }catch (Exception e){ + e.printStackTrace(); } if (ToolUtil.isNotEmpty(courseTypeId.getSearch())){ @@ -246,7 +290,7 @@ } @Override - public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePayId, Integer appUserId) { + public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId) { CourseDetailsResponse response = new CourseDetailsResponse(); TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); @@ -272,22 +316,29 @@ Integer payType = tCoursePackagePayment.getPayType(); BigDecimal cashPayment = tCoursePackagePayment.getCashPayment(); - double cashPaymentValue = cashPayment.doubleValue(); + double cashPaymentValue = 0.0; + if(cashPayment!=null){ + + 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); + if(coursePackageDiscount!=null){ + String content = coursePackageDiscount.getContent(); + 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: @@ -560,61 +611,70 @@ 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>() + List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ) .eq("studentId",stuId) .eq("appUserId",appUserId) .eq("reservationStatus",1)); - if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 1){ + if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){ + for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) { + RecordAppoint recordVo = new RecordAppoint(); + recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); - recordVo.setCourseStuRecordId(coursePackageStudent.getId()); - String classWeeks = coursePackage.getClassWeeks(); - String[] split = classWeeks.split(";"); - List<String> integerList = Arrays.asList(split); - String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); + TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); - if (integerList.contains(weekOfDate)){ - String dat = simpleDateFormat.format(date) +" "+ classStartTime; + recordVo.setCoursePackageName(coursePackage.getName()); + recordVo.setCourseHours(tCoursePackagePayment.getClassHours()); + Date date = DateUtil.getDate(); - 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); + 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()); + 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 if(coursePackageStudent.getSignInOrNot()==2){ + recordVo.setStatus(5); + }else { + CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() + .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )); + if (ToolUtil.isNotEmpty(cancelledClasses)){ + recordVo.setStatus(3); + // 消课 到课状态0 旷课 + if(coursePackageStudent.getSignInOrNot()==0){ + recordVo.setStatus(6); + } + + }else { + recordVo.setStatus(2); + } + } + }else { + recordVo.setStatus(1); } - }else { - recordVo.setStatus(1); + recordVoList.add(recordVo); } + }else { - recordVo.setStatus(4); +// recordVo.setStatus(4); } - recordVoList.add(recordVo); } } return recordVoList; @@ -632,5 +692,363 @@ return ResultUtil.success(); } + @Override + public List<BillingRequest> queryAmountDatas(Integer appUserId, String monthStart, String monthEnd) { + return this.baseMapper.billingDataRequestVo(appUserId,monthStart,monthEnd); + } + + + /** + * 获取课包报名信息 + * @param page + * @param queryRegistrationRecord + * @return + */ + @Override + public List<Map<String, Object>> queryRegistrationRecord(Page<Map<String, Object>> page, QueryRegistrationRecord queryRegistrationRecord) { + Integer coursePackageId = queryRegistrationRecord.getCoursePackageId(); + String userName = queryRegistrationRecord.getUserName(); + List<Integer> userIds = null; + List<Integer> studentIds = null; + if(ToolUtil.isNotEmpty(userName)){ + List<AppUser> appUsers = appuClient.queryAppUserListByName(userName); + if(appUsers.size() > 0){ + userIds = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); + } + } + String studentName = queryRegistrationRecord.getStudentName(); + if(ToolUtil.isNotEmpty(studentName)){ + List<Student> students = studentClient.queryStudentListByName(studentName); + if(students.size() > 0){ + studentIds = students.stream().map(Student::getId).collect(Collectors.toList()); + } + } + List<Map<String, Object>> list = this.baseMapper.queryRegistrationRecord(page, coursePackageId, userIds, studentIds); + for (Map<String, Object> map : list) { + + Long id = Long.valueOf(map.get("id").toString()); + Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); + Integer studentId = Integer.valueOf(map.get("studentId").toString()); + + TAppUser appUser = appuClient.queryAppUser1(appUserId); + map.put("userName", null != appUser ? appUser.getName() : ""); + map.put("phone", null != appUser ? appUser.getPhone() : ""); + Student student = studentClient.queryStudentById(studentId); + map.put("studentName", null != student ? student.getName() : ""); + Integer integer = cpsMapper.selectCount(new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId) + .eq("studentId", studentId).eq("coursePackagePaymentId", id).eq("signInOrNot", 2)); + map.put("already", integer); +// if (student != null && student.getName().equals("杨锴1")) { +// map.put("totalClassHours", "测试"); +// } + ; + } + return list; + } + + + /** + * 获取未预约排课学员列表 + * @param page + * @param queryWalkInStudentList + * @return + */ + @Override + public List<Map<String, Object>> queryWalkInStudentList(Page<Map<String, Object>> page, QueryWalkInStudentList queryWalkInStudentList) { + Long coursePackageSchedulingId = queryWalkInStudentList.getCoursePackageSchedulingId(); + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getById(coursePackageSchedulingId); + String userName = queryWalkInStudentList.getUserName(); + List<Integer> userIds = null; + List<Integer> studentIds = null; + if(ToolUtil.isNotEmpty(userName)){ + List<AppUser> appUsers = appuClient.queryAppUserListByName(userName); + if(appUsers.size() > 0){ + userIds = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); + } + } + String studentName = queryWalkInStudentList.getStudentName(); + if(ToolUtil.isNotEmpty(studentName)){ + List<Student> students = studentClient.queryStudentListByName(studentName); + if(students.size() > 0){ + studentIds = students.stream().map(Student::getId).collect(Collectors.toList()); + } + } + List<Long> coursePackagePaymentId = null; + List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", coursePackageSchedulingId).eq("reservationStatus", 1)); + if(coursePackageStudents.size() > 0){ + coursePackagePaymentId = coursePackageStudents.stream().map(CoursePackageStudent::getCoursePackagePaymentId).collect(Collectors.toList()); + } + + List<Map<String, Object>> list = this.baseMapper.queryWalkInStudentList(page, coursePackageScheduling.getCoursePackageId(), coursePackagePaymentId, userIds, studentIds); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); + Integer now = Integer.valueOf(sdf.format(new Date())); + for (Map<String, Object> map : list) { + Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); + Integer student_Id = Integer.valueOf(map.get("studentId").toString()); + AppUser appUser = appuClient.queryAppUser(appUserId); + Student student = studentClient.queryStudentById(student_Id); + map.put("userName", appUser.getName()); + map.put("phone", student.getPhone()); + map.put("studentName", student.getName()); + map.put("age", null != student.getBirthday() ? now - Integer.valueOf(sdf.format(student.getBirthday())) : "-"); + map.put("sex", student.getSex()); + } + return list; + } + + @Override + public List<PayCourseRes> getMyCourseList(Integer storeId, Integer appUserId) { + // 找到购买的课包 + List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, appUserId)); + ArrayList<PayCourseRes> payCourseRes = new ArrayList<>(); + for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { + TCoursePackage tCoursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + if(tCoursePackage.getStoreId().equals(storeId)){ + PayCourseRes payCourseRes1 = new PayCourseRes(); + payCourseRes1.setId(tCoursePackagePayment.getId()); + payCourseRes1.setName(tCoursePackage.getName()); + payCourseRes1.setCourseNum(tCoursePackagePayment.getLaveClassHours()); + payCourseRes.add(payCourseRes1); + + } + } + return payCourseRes; + } + + @Override + public PayCourseInfoReq payCourseInfo(Integer courseId){ + PayCourseInfoReq payCourseInfoReq = new PayCourseInfoReq(); + TCoursePackage tCoursePackage = tcpmapper.selectById(courseId); + payCourseInfoReq.setId(courseId); + payCourseInfoReq.setName(tCoursePackage.getName()); + payCourseInfoReq.setNum(tCoursePackage.getNeedNum()); + payCourseInfoReq.setWeek(tCoursePackage.getClassWeeks()); + String classStartTime = tCoursePackage.getClassStartTime(); + String classEndTime = tCoursePackage.getClassEndTime(); + String[] split = classStartTime.split(","); + String[] split1 = classEndTime.split(","); + ArrayList<String> strings = new ArrayList<>(); + for (int i = 0; i < classStartTime.split(",").length; i++) { + String s = split[i] + "-" + split1[i]; + strings.add(s); + } + payCourseInfoReq.setTime(strings); + List<Integer> week = week(tCoursePackage.getClassWeeks()); + + // 今天周几 + int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; + + SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd"); + ArrayList<String> strings1 = new ArrayList<>(); + + for (Integer integer : week) { + if(integer<i){ + // 找下一周的时间 + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,7-(i-integer)); + Date time = instance.getTime(); + strings1.add(format.format(time)); + + }else if(integer>i) { + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,integer-i); + Date time = instance.getTime(); + strings1.add(format.format(time)); + }else { + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,7); + Date time = instance.getTime(); + strings1.add(format.format(time)); + } + } + payCourseInfoReq.setDay(strings1); + return payCourseInfoReq; + } + private static List<Integer> week(String week){ + String[] split = week.split(";"); + ArrayList<Integer> integers = new ArrayList<>(); + for (String s : split) { + switch (s){ + case "周一": + integers.add(1); + break; + case "周二": + integers.add(2); + break; + case "周三": + integers.add(3); + break; + case "周四": + integers.add(4); + break; + case "周五": + integers.add(5); + break; + case "周六": + integers.add(6); + break; + case "周日": + integers.add(7); + break; + } + } + return integers; + } + + public static void main(String[] args) { + List<Integer> week = week("周一,周二"); + // 今天周几 + int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; + + SimpleDateFormat format = new SimpleDateFormat("MM.dd"); + + ArrayList<String> strings = new ArrayList<>(); + for (Integer integer : week) { + if(integer<i){ + // 找下一周的时间 + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,7-(i-integer)); + Date time = instance.getTime(); + strings.add(format.format(time)); + + }else if(integer>i) { + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,integer-i); + Date time = instance.getTime(); + strings.add(format.format(time)); + }else { + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,7); + Date time = instance.getTime(); + strings.add(format.format(time)); + } + } + System.out.println(strings); + } + @Override + @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW) + public ResultUtil payCourse(PayCourseReq req,Integer userId){ + // 扣除 原来的课时数 + // 添加购买课时 paytyoe为7 + // 排课可期 判断课程时间段 添加排课表 添加上课记录表 + // 找到原来的课包 扣课时 + TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(req.getOldCourseId()); + if(req.getNum()>tCoursePackagePayment.getLaveClassHours()){ + return ResultUtil.error("当前课包课时数不足"); + } + tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours()-req.getNum()); + this.baseMapper.updateHoursById(tCoursePackagePayment.getId(),-req.getNum()); + + + TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); + // 添加课包 + TCoursePackagePayment tCoursePackagePayment1 = new TCoursePackagePayment(); + tCoursePackagePayment1.setAppUserId(userId); + Student student = studentClient.queryDefaultStudent(userId); + // student ID + Integer sId=null; + if(student!=null){ + tCoursePackagePayment1.setStudentId(student.getId()); + sId=student.getId(); + } + tCoursePackagePayment1.setCoursePackageId(tCoursePackage.getId()); + tCoursePackagePayment1.setPayType(7); + tCoursePackagePayment1.setClassHours(req.getNum()); + tCoursePackagePayment1.setOriginalPrice(0.0); + tCoursePackagePayment1.setTotalClassHours(req.getNum()); + tCoursePackagePayment1.setLaveClassHours(req.getNum()); + tCoursePackagePayment1.setAbsencesNumber(0); + tCoursePackagePayment1.setPayUserType(1); + tCoursePackagePayment1.setPayStatus(2); + tCoursePackagePayment1.setPayUserId(userId); + tCoursePackagePayment1.setStatus(1); + tCoursePackagePayment1.setState(1); + tCoursePackagePayment1.setInsertTime(new Date()); + this.baseMapper.insert(tCoursePackagePayment1); + // 找出课包时间段 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String classStartTime = tCoursePackage.getClassStartTime(); + String classEndTime = tCoursePackage.getClassEndTime(); + String[] split = classStartTime.split(","); + String[] split1 = classEndTime.split(","); + List<String> time = req.getTime(); + for (String s : time) { + for (int i = 0; i < split.length; i++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + try { + Date parse = format.parse(s + " " + split[i]); + Date parse1 = format.parse(s + " " + split1[i]); + 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(tCoursePackagePayment1.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(0); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + } catch (Exception e) { + e.printStackTrace(); + } + + } + } + + + // 2.0 + TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); + tCourseInfoRecord.setUserId(userId); + tCourseInfoRecord.setCourseId(req.getCourseId()); + tCourseInfoRecord.setName("体验购课"); + tCourseInfoRecord.setNum(req.getNum()); + tCourseInfoRecord.setTime(new Date()); + tCourseInfoRecord.setType(2); + appuClient.addCourseInfoRecord(tCourseInfoRecord); + + + if(tCoursePackagePayment.getLaveClassHours()<=3){ + Integer appUserId = userId; + + //调用推送 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + String s1 = appUserId + "_" + "Three"; + //定时修改排课状态 + String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id="+s1, String.class); + JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); + if(jsonObject1.getIntValue("code") != 200){ + System.err.println(jsonObject1.getString("msg")); + } + } + + return ResultUtil.success(); + + } + + @Override + public void updateUseTime(Long id, Date date) { + this.baseMapper.updateUseTime(id,date); + } + + @Override + public List<Integer> getStudentIds(Long payId) { + return this.baseMapper.getStudentIds(payId); + } + + @Override + public boolean updateHoursById(TCoursePackagePayment byId, int i) { + return this.baseMapper.updateHoursById(byId.getId(),i); + } + + + } -- Gitblit v1.7.1