package com.dsh.course.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.CoursePackageStudentMapper; import com.dsh.course.model.QueryCoursePackageStudentList; 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.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; /** * 获取排课预约数据 * @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()); } } List> list = this.baseMapper.queryCoursePackageStudentList(page, queryCoursePackageStudentList.getCoursePackageSchedulingId(), 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); 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 StudentClassInfo listAll(Integer tStudentId) { return this.baseMapper.listAll(tStudentId); } @Override public List getClassList(Integer tStudentId) { return this.baseMapper.getClassList(tStudentId); } @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); } }