package com.mindskip.xzs.service.impl; import com.mindskip.xzs.context.WebContext; import com.mindskip.xzs.domain.Subject; import com.mindskip.xzs.domain.enums.RoleEnum; import com.mindskip.xzs.repository.BaseMapper; import com.mindskip.xzs.repository.DepartmentMapper; import com.mindskip.xzs.repository.SubjectMapper; import com.mindskip.xzs.service.SubjectService; import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class SubjectServiceImpl extends BaseServiceImpl implements SubjectService { private final SubjectMapper subjectMapper; private final WebContext webContext; private final DepartmentMapper departmentMapper; public SubjectServiceImpl(BaseMapper baseMapper, SubjectMapper subjectMapper, WebContext webContext, DepartmentMapper departmentMapper) { super(baseMapper); this.subjectMapper = subjectMapper; this.webContext = webContext; this.departmentMapper = departmentMapper; } @Override public Subject selectById(Integer id) { return super.selectById(id); } @Override public int updateByIdFilter(Subject record) { return super.updateByIdFilter(record); } @Override public List getSubjectByLevel(Integer level) { return subjectMapper.getSubjectByLevel(level); } @Override public List allSubject() { // 只查自己部门的课目 List deptIds = webContext.getAdminDeptIds(); Boolean admin = RoleEnum.ADMIN.getCode().equals(webContext.getCurrentUser().getRole()); return subjectMapper.allSubject(deptIds, admin); } @Override public Integer levelBySubjectId(Integer id) { return this.selectById(id).getLevel(); } @Override public PageInfo page(SubjectPageRequestVM requestVM) { return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> subjectMapper.page(requestVM) ); } @Override public List getNames(String[] names) { return subjectMapper.getNames(names); } @Override public List selectByIds(Integer[] ids) { return subjectMapper.selectByIds(ids); } @Override public List listByDeptId(Integer deptId) { return subjectMapper.listByDeptId(deptId); } }