package com.yanzhen.service; import com.yanzhen.entity.Org; import com.yanzhen.entity.SelectionJoiner; import com.yanzhen.mapper.SelectionJoinerMapper; import com.yanzhen.mapper.SelectionMapper; import com.yanzhen.entity.Selection; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @Service // 标记该类为Spring的服务组件 public class SelectionService { @Autowired // 自动注入SelectionMapper依赖 private SelectionMapper selectionMapper; @Autowired // 自动注入OrgService依赖 private OrgService orgService; @Autowired // 自动注入SelectionJoinerMapper依赖 private SelectionJoinerMapper selectionJoinerMapper; @Transactional // 声明该方法需要事务管理 public int create(Selection selection) { selectionMapper.create(selection); // 创建新的Selection记录 List clazzIds = selection.getClazzIds(); // 获取班级ID列表 //筛选出对应的班级 List selectIds = new ArrayList(); // 初始化选择的班级ID列表 clazzIds.forEach(item->{ // 遍历班级ID列表 Org detail = orgService.detail(item); // 获取班级详细信息 if(detail.getType() == 4){ // 如果班级类型为4 selectIds.add(detail.getId()); // 将班级ID添加到选择的班级ID列表中 } }); selectIds.forEach(item->{ // 遍历选择的班级ID列表 SelectionJoiner joiner = new SelectionJoiner(); // 创建新的SelectionJoiner对象 joiner.setClazzId(item); // 设置班级ID joiner.setSelectionId(selection.getId()); // 设置Selection ID selectionJoinerMapper.create(joiner); // 创建新的SelectionJoiner记录 }); return 1; // 返回操作成功标志 } public int delete(String ids) { String[] arr = ids.split(","); // 将传入的ID字符串按逗号分割成数组 int row = 0; // 初始化删除计数器 for (String s : arr) { // 遍历ID数组 if(!StringUtils.isEmpty(s)){ // 如果ID不为空 selectionMapper.delete(Integer.parseInt(s)); // 根据ID删除Selection记录 row++; // 删除计数器加一 } } return row; // 返回删除的记录数 } public int delete(Integer id) { return selectionMapper.delete(id); // 根据ID删除Selection记录并返回操作结果 } public int update(Selection selection) { selectionMapper.update(selection); // 更新Selection记录 //先删除已设置的信息 selectionJoinerMapper.deleteBySelectionId(selection.getId()); // 根据Selection ID删除所有相关的SelectionJoiner记录 List clazzIds = selection.getClazzIds(); // 获取班级ID列表 //筛选出对应的班级 List selectIds = new ArrayList(); // 初始化选择的班级ID列表 clazzIds.forEach(item->{ // 遍历班级ID列表 Org detail = orgService.detail(item); // 获取班级详细信息 if(detail.getType() == 4){ // 如果班级类型为4 selectIds.add(detail.getId()); // 将班级ID添加到选择的班级ID列表中 } }); selectIds.forEach(item->{ // 遍历选择的班级ID列表 SelectionJoiner joiner = new SelectionJoiner(); // 创建新的SelectionJoiner对象 joiner.setClazzId(item); // 设置班级ID joiner.setSelectionId(selection.getId()); // 设置Selection ID selectionJoinerMapper.create(joiner); // 创建新的SelectionJoiner记录 }); return 1; // 返回操作成功标志 } public int updateSelective(Selection selection) { return selectionMapper.updateSelective(selection); // 选择性更新Selection记录并返回操作结果 } public PageInfo query(Selection selection) { if(selection != null && selection.getPage() != null){ // 如果Selection对象和分页信息不为空 PageHelper.startPage(selection.getPage(),selection.getLimit()); // 启动分页查询 } return new PageInfo(selectionMapper.query(selection)); // 执行查询并返回分页结果 } public List queryByClazzId(Integer clazzId){ return selectionMapper.queryByClazzId(clazzId); // 根据班级ID查询Selection记录并返回结果列表 } public Selection detail(Integer id) { return selectionMapper.detail(id); // 根据ID查询Selection详情并返回结果 } public int count(Selection selection) { return selectionMapper.count(selection); // 统计符合条件的Selection记录数并返回结果 } }