package com.yanzhen.service; // 定义包名 import com.yanzhen.entity.Bed; // 导入Bed实体类 import com.yanzhen.entity.Building; // 导入Building实体类 import com.yanzhen.entity.DormitorySet; // 导入DormitorySet实体类 import com.yanzhen.mapper.BedMapper; // 导入BedMapper接口 import com.yanzhen.mapper.BuildingMapper; // 导入BuildingMapper接口 import com.yanzhen.mapper.DormitoryMapper; // 导入DormitoryMapper接口 import com.yanzhen.entity.Dormitory; // 导入Dormitory实体类 import com.github.pagehelper.PageHelper; // 导入PageHelper分页插件 import com.github.pagehelper.PageInfo; // 导入PageInfo分页信息类 import com.yanzhen.mapper.DormitorySetMapper; // 导入DormitorySetMapper接口 import org.springframework.beans.factory.annotation.Autowired; // 导入Spring的@Autowired注解 import org.springframework.stereotype.Service; // 导入Spring的@Service注解 import org.springframework.transaction.annotation.Transactional; // 导入Spring的@Transactional注解 import org.springframework.util.StringUtils; // 导入Spring的StringUtils工具类 import java.util.List; // 导入Java的List集合类 @Service // 标注这是一个服务层的Bean public class DormitoryService宿舍编号设置 {// “宿舍编号设置----管理员” @Autowired // 自动注入DormitoryMapper依赖 private DormitoryMapper dormitoryMapper; @Autowired // 自动注入DormitorySetMapper依赖 private DormitorySetMapper dormitorySetMapper; @Autowired // 自动注入BuildingMapper依赖 private BuildingMapper buildingMapper; @Autowired // 自动注入BedMapper依赖 private BedMapper bedMapper; public int create(Dormitory dormitory) { // 创建宿舍记录 return dormitoryMapper.create(dormitory); // 调用DormitoryMapper的create方法 } public int delete(String ids) { // 根据ID字符串批量删除宿舍记录 String[] arr = ids.split(","); // 将ID字符串按逗号分割成数组 int row = 0; // 初始化删除计数器 for (String s : arr) { // 遍历ID数组 if(!StringUtils.isEmpty(s)){ // 如果ID不为空 dormitoryMapper.delete(Integer.parseInt(s)); // 调用DormitoryMapper的delete方法删除记录 row++; // 删除计数器加1 } } return row; // 返回删除的记录数 } public int delete(Integer id) { // 根据ID删除单个宿舍记录 return dormitoryMapper.delete(id); // 调用DormitoryMapper的delete方法 } public int update(Dormitory dormitory) { // 更新宿舍记录 return dormitoryMapper.update(dormitory); // 调用DormitoryMapper的update方法 } public int updateSelective(Dormitory dormitory) { // 选择性更新宿舍记录 return dormitoryMapper.updateSelective(dormitory); // 调用DormitoryMapper的updateSelective方法 } public PageInfo query(Dormitory dormitory) { // 查询宿舍记录并分页 if(dormitory != null && dormitory.getPage() != null){ // 如果宿舍对象和分页信息不为空 PageHelper.startPage(dormitory.getPage(),dormitory.getLimit()); // 设置分页参数 } return new PageInfo(dormitoryMapper.query(dormitory)); // 返回分页后的宿舍记录列表 } public Dormitory detail(Integer id) { // 根据ID查询单个宿舍详情 return dormitoryMapper.detail(id); // 调用DormitoryMapper的detail方法 } public int count(Dormitory dormitory) { // 统计符合条件的宿舍记录数 return dormitoryMapper.count(dormitory); // 调用DormitoryMapper的count方法 } @Transactional // 声明该方法需要事务管理 public void init(Dormitory dormitory){ // 初始化宿舍数据 DormitorySet param = new DormitorySet(); // 创建DormitorySet对象 param.setBuildingId(dormitory.getBuildingId()); // 设置建筑ID param.setStoreyId(dormitory.getStoreyId()); // 设置楼层ID List dormitorySets = dormitorySetMapper.query(param); // 查询宿舍设置信息 Building building = buildingMapper.detail(dormitory.getBuildingId()); // 查询建筑详细信息 //删除已有床位(先查询出来,然后批量删除) List dormitoryList = dormitoryMapper.query(dormitory); // 查询现有的宿舍记录 dormitoryList.forEach(item->{ // 遍历宿舍记录列表 bedMapper.deleteByDormitoryId(item.getId()); // 删除每个宿舍对应的床位记录 }); //删除以有的数据(删除已有宿舍) dormitoryMapper.deleteByBuildingIdAndStoryId(dormitory.getBuildingId(),dormitory.getStoreyId()); // 删除指定建筑和楼层的所有宿舍记录 dormitorySets.forEach(dormitorySet -> { // 遍历宿舍设置信息列表 for(int i=dormitorySet.getStart();i<=dormitorySet.getEnd();i++){ // 根据起始和结束编号生成宿舍编号 Dormitory entity = new Dormitory(); // 创建新的宿舍对象 entity.setNo(dormitorySet.getPrefix()+i); // 设置宿舍编号 entity.setBuildingId(dormitory.getBuildingId()); // 设置建筑ID entity.setStoreyId(dormitory.getStoreyId()); // 设置楼层ID entity.setCapacity(dormitorySet.getCapacity()); // 设置宿舍容量 entity.setSex(building.getSex()); // 设置宿舍性别限制 entity.setType(building.getType()); // 设置宿舍类型 dormitoryMapper.create(entity); // 创建新的宿舍记录 for(int j=1;j<=entity.getCapacity();j++){ // 根据宿舍容量生成床位记录 Bed bed = new Bed(); // 创建新的床位对象 bed.setBno(entity.getNo()+"-"+j); // 设置床位编号 bed.setDormitoryId(entity.getId()); // 设置所属宿舍ID bedMapper.create(bed); // 创建新的床位记录 } } }); } }