package com.dsh.course.service.impl; 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.CoachClient; import com.dsh.course.feignclient.account.model.Coach; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.CoursePackageOrderMapper; import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.model.vo.RegisterCourseVo; import com.dsh.course.model.vo.request.CourseOfAfterRequest; import com.dsh.course.service.ICoursePackageOrderService; import com.dsh.course.service.ICoursePackageSchedulingService; import com.dsh.course.service.TCoursePackageService; import com.dsh.course.util.ToolUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * @author zhibing.pu * @Date 2023/11/25 11:49 */ @Service public class CoursePackageOrderServiceImpl extends ServiceImpl implements ICoursePackageOrderService { @Autowired private TCoursePackageService coursePackageService; @Resource private StoreClient storeClient; @Resource private CoachClient coachClient; @Resource private CoursePackageStudentMapper coursePackageStudentMapper; @Autowired private ICoursePackageSchedulingService coursePackageSchedulingService; /** * 获取用户已报名课程 * * @param courseTypeId * @param appUserId * @return */ @Override public List queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) { List courseVos = new ArrayList<>(); List list = this.list(new QueryWrapper().eq("appUserId", appUserId).eq("state", 1)); for (CoursePackageOrder order : list) { TCoursePackage coursePackage = coursePackageService.getById(order.getCoursePackageId()); Store store = storeClient.queryStoreById(coursePackage.getStoreId()); RegisterCourseVo registerCourseVo = new RegisterCourseVo(); // 2.0 registerCourseVo.setType(coursePackage.getType()); registerCourseVo.setOrderId(order.getId()); registerCourseVo.setCoursePayId(order.getId()); registerCourseVo.setCoursePackageId(order.getCoursePackageId()); registerCourseVo.setCoursePackTypeId(coursePackage.getCoursePackageTypeId()); registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); String storeAndCourse = coursePackage.getName() + "(" + store.getName() + ")"; registerCourseVo.setCourseNameStore(storeAndCourse); // 2.0 registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(order.getInsertTime())); Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); if (coursePackage.getType() == 2) { registerCourseVo.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime())); } List coursePackageStudents = coursePackageStudentMapper.selectList(new QueryWrapper() .eq("coursePackageId", coursePackage.getId()) .eq("appUserId", appUserId)); List ids = new ArrayList<>(); for (CoursePackageStudent coursePackageStudent : coursePackageStudents) { ids.add(coursePackageStudent.getCoursePackageSchedulingId()); } List cps = new ArrayList<>(); if (!ids.isEmpty()) { cps = coursePackageSchedulingService.list(new QueryWrapper().in("id", ids)); } Integer counts = 0; for (CoursePackageScheduling cp : cps) { if (cp.getDeductClassHour() != null) { counts = counts + cp.getDeductClassHour(); } } if (coursePackageStudents.size() > 0) { registerCourseVo.setCourseNums(counts); } registerCourseVo.setPayStatus(order.getPayStatus()); courseVos.add(registerCourseVo); } return courseVos; } }