package com.dsh.course.service.impl; 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.CoursePackageScheduling; import com.dsh.course.entity.CoursePackageStudent; import com.dsh.course.entity.StudentClassInfo; import com.dsh.course.entity.TAppUser; import com.dsh.course.entity.dto.ClassListDto; import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.StudentClient; import com.dsh.course.feignclient.account.model.AppUser; import com.dsh.course.feignclient.account.model.Student; import com.dsh.course.mapper.CoursePackageSchedulingMapper; import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.model.QueryCoursePackageStudentList; import com.dsh.course.service.CoursePackageSchedulingService; import com.dsh.course.service.CoursePackageStudentService; 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.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** *

* 学员上课记录 服务实现类 *

* * @author jqs * @since 2023-06-30 */ @Service public class CoursePackageStudentServiceImpl extends ServiceImpl implements CoursePackageStudentService { @Resource private AppUserClient appUserClient; @Resource private StudentClient studentClient; @Autowired private CoursePackageSchedulingMapper coursePackageSchedulingService; /** * 获取排课预约数据 * * @param queryCoursePackageStudentList * @return */ @Override public List> queryCoursePackageStudentList(Page> page, QueryCoursePackageStudentList queryCoursePackageStudentList) { List userId = null; List studentId = null; if (ToolUtil.isNotEmpty(queryCoursePackageStudentList.getUserName())) { List appUsers = appUserClient.queryAppUserListByName(queryCoursePackageStudentList.getUserName()); if (appUsers.size() > 0) { userId = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); } } if (ToolUtil.isNotEmpty(queryCoursePackageStudentList.getStudentName())) { List students = studentClient.queryStudentListByName(queryCoursePackageStudentList.getStudentName()); if (students.size() > 0) { studentId = students.stream().map(Student::getId).collect(Collectors.toList()); } } CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.selectById(queryCoursePackageStudentList.getCoursePackageSchedulingId()); List coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper() .eq("coursePackageId", coursePackageScheduling.getCoursePackageId()).eq("classDate", coursePackageScheduling.getClassDate())); List ids = new ArrayList<>(); for (CoursePackageScheduling packageScheduling : coursePackageSchedulings) { ids.add(packageScheduling.getId()); } List> list = this.baseMapper.queryCoursePackageStudentList(page, ids, userId, studentId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Integer now = Integer.valueOf(sdf.format(new Date())); for (Map map : list) { Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); Integer student_Id = Integer.valueOf(map.get("studentId").toString()); TAppUser appUser = appUserClient.queryAppUser1(appUserId); if(null != appUser){ map.put("userName", appUser.getName()); map.put("phone", appUser.getPhone()); } Student student = studentClient.queryStudentById(student_Id); if(null != student){ 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 StudentClassInfo listAll(Integer tStudentId) { return this.baseMapper.listAll(tStudentId); } @Override public List getClassList(Integer tStudentId) { List classList = this.baseMapper.getClassList(tStudentId); List holiList = this.baseMapper.getHoliList(tStudentId); classList.addAll(holiList); return classList; } @Override public Date getMaxDate(Integer tStudentId) { return this.baseMapper.getMaxDate(tStudentId); } @Override public Date getMinDate(Integer tStudentId) { return null; } @Override public void updateSignInOrNotById(Long id) { this.baseMapper.updateSignInOrNotById(id); } }