From 1882d607549762a84b1a5326f7262eba01363b85 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 14 八月 2023 10:00:16 +0800 Subject: [PATCH] 更新课包功能 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 157 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 136 insertions(+), 21 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 4c913de..7502215 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,15 @@ 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.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.activity.BenefitVideoClient; import com.dsh.course.feignclient.activity.CouponClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; @@ -19,6 +22,8 @@ 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.QueryRegistrationRecord; +import com.dsh.course.model.QueryWalkInStudentList; import com.dsh.course.model.dto.DiscountJsonDto; import com.dsh.course.model.vo.RegisterCourseVo; import com.dsh.course.model.vo.request.ClasspaymentRequest; @@ -28,10 +33,12 @@ 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.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.stereotype.Service; import javax.annotation.Resource; @@ -58,7 +65,6 @@ @Resource private BenefitVideoClient bfvoClient; - @Resource private UserVideoDetailsMapper uvdmapper; @@ -83,7 +89,6 @@ @Resource private TCoursePackageDiscountMapper tcpdMapper; - @Resource private CoursePackagePaymentConfigMapper cpConfigMapper; @@ -95,6 +100,16 @@ @Resource private AppUserClient appuClient; + + @Resource + private StudentClient studentClient; + + @Autowired + private ICoursePackageSchedulingService coursePackageSchedulingService; + + + + /** @@ -116,6 +131,7 @@ 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.selectList(new QueryWrapper<UserVideoDetails>() @@ -129,23 +145,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; @@ -171,6 +187,7 @@ response.setPackageName(coursePackage.getName()); response.setSynopsis(videosWithIds.getIntroduction()); response.setDetailedDiagram(coursePackage.getIntroduceDrawing()); + response.setCover(videosWithIds.getCover()); } return response; @@ -197,6 +214,7 @@ List<RegisterCourseVo> courseVos = new ArrayList<>(); 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()); @@ -210,11 +228,13 @@ registerCourseVo.setCourseNameStore(storeAndCourse); registerCourseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); - registerCourseVo.setCourseTeacher(coach.getName()); + registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() .eq("coursePackageId",coursePackage.getId()) .eq("studentId",appUserId )); - registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); + if (coursePackageStudents.size() > 0 ){ + registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); + } registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); courseVos.add(registerCourseVo); } @@ -230,12 +250,18 @@ .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 coursePayId, Integer appUserId) { + public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId) { CourseDetailsResponse response = new CourseDetailsResponse(); TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); @@ -573,12 +599,10 @@ recordVo.setCourseStuRecordId(coursePackageStudent.getId()); String classWeeks = coursePackage.getClassWeeks(); String[] split = classWeeks.split(";"); - List<Integer> integerList = Arrays.stream(split) - .map(Integer::parseInt) - .collect(Collectors.toList()); - int dayOfWeek = DateTimeHelper.getDayOfWeek(new Date()); + List<String> integerList = Arrays.asList(split); + String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); - if (integerList.contains(dayOfWeek)){ + if (integerList.contains(weekOfDate)){ String dat = simpleDateFormat.format(date) +" "+ classStartTime; Date start = null; @@ -624,4 +648,95 @@ } + /** + * 获取课包报名信息 + * @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()); + AppUser appUser = appuClient.queryAppUser(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", 1)); + map.put("already", integer); + } + 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; + } } -- Gitblit v1.7.1