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<CoursePackageOrderMapper, CoursePackageOrder> 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<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) {
|
List<RegisterCourseVo> courseVos = new ArrayList<>();
|
List<CoursePackageOrder> list = this.list(new QueryWrapper<CoursePackageOrder>().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<CoursePackageStudent> coursePackageStudents = coursePackageStudentMapper.selectList(new QueryWrapper<CoursePackageStudent>()
|
.eq("coursePackageId", coursePackage.getId())
|
.eq("appUserId", appUserId));
|
|
List<Long> ids = new ArrayList<>();
|
for (CoursePackageStudent coursePackageStudent : coursePackageStudents) {
|
ids.add(coursePackageStudent.getCoursePackageSchedulingId());
|
}
|
List<CoursePackageScheduling> cps = new ArrayList<>();
|
|
if (!ids.isEmpty()) {
|
cps = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().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;
|
}
|
}
|