You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ssgl/zsq/SelectionService学生查询管理.java

110 lines
5.0 KiB

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<Integer> clazzIds = selection.getClazzIds(); // 获取班级ID列表
//筛选出对应的班级
List<Integer> 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<Integer> clazzIds = selection.getClazzIds(); // 获取班级ID列表
//筛选出对应的班级
List<Integer> 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<Selection> query(Selection selection) {
if(selection != null && selection.getPage() != null){ // 如果Selection对象和分页信息不为空
PageHelper.startPage(selection.getPage(),selection.getLimit()); // 启动分页查询
}
return new PageInfo<Selection>(selectionMapper.query(selection)); // 执行查询并返回分页结果
}
public List<Selection> 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记录数并返回结果
}
}