package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.read.listener.PageReadListener; import com.ycl.handler.ImageResourceHandler; import com.ycl.platform.domain.dto.ImageResourceDTO; import com.ycl.platform.domain.entity.CheckIndexVideo; import com.ycl.platform.domain.entity.ImageResourceSecurity; import com.ycl.platform.domain.entity.ImageResourceSecurityDetail; import com.ycl.platform.mapper.CheckIndexVideoMapper; import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; import com.ycl.platform.mapper.ImageResourceSecurityMapper; import com.ycl.platform.service.IImageResourceSecurityService; import com.ycl.system.entity.SysDept; import com.ycl.system.service.ISysDeptService; import com.ycl.utils.DateUtils; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.*; /** * platformService业务层处理 * * @author flq * @date 2024-08-24 */ @Service @RequiredArgsConstructor public class ImageResourceSecurityServiceImpl implements IImageResourceSecurityService { private final ImageResourceSecurityMapper imageResourceSecurityMapper; private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper; private final ISysDeptService deptService; private final CheckIndexVideoMapper checkIndexVideoMapper; @Override public ImageResourceSecurity selectImageResourceSecurityById(Long id) { return imageResourceSecurityMapper.selectImageResourceSecurityById(id); } @Override public List selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity) { List list = imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity); List dtos = checkIndexVideoMapper.selectLastOneByDept(); for (ImageResourceSecurity item : list) { Long deptId = item.getDeptId(); boolean flag = false; for (ImageResourceDTO dto : dtos) { if(dto.getDeptId().equals(deptId)){ item.setImageResourceSecurity(dto.getImageResourceSecurity()); flag = true; } if(!flag){ item.setImageResourceSecurity(BigDecimal.ZERO); } } } return list; } @Override public int insertImageResourceSecurity(ImageResourceSecurity imageResourceSecurity) { imageResourceSecurity.setCreateTime(DateUtils.getNowDate()); return imageResourceSecurityMapper.insertImageResourceSecurity(imageResourceSecurity); } @Override public int updateImageResourceSecurity(ImageResourceSecurity imageResourceSecurity) { return imageResourceSecurityMapper.updateImageResourceSecurity(imageResourceSecurity); } @Override public int deleteImageResourceSecurityByIds(Long[] ids) { return imageResourceSecurityMapper.deleteImageResourceSecurityByIds(ids); } @Override public int deleteImageResourceSecurityById(Long id) { return imageResourceSecurityMapper.deleteImageResourceSecurityById(id); } @Override @SneakyThrows public void importTemplate(HttpServletResponse response) { EasyExcel.write(response.getOutputStream(), ImageResourceSecurityDetail.class).sheet("模板").registerWriteHandler(new ImageResourceHandler()).doWrite(Collections.emptyList()); } @Override @SneakyThrows public Boolean importData(MultipartFile file) { ArrayList list = new ArrayList<>(); List sysDept = deptService.selectDeptList(new SysDept()); EasyExcel.read(file.getInputStream(), ImageResourceSecurityDetail.class, new PageReadListener(dataList -> { for (ImageResourceSecurityDetail detail : dataList) { SysDept sysDept1 = sysDept.stream().filter(dept -> dept.getDeptName().equals(detail.getDeptName())).findFirst().orElseThrow(() -> new RuntimeException(detail.getDeptName() + "不存在")); detail.setDeptId(sysDept1.getDeptId()); list.add(detail); } })).sheet().doRead(); imageResourceSecurityDetailMapper.saveBatch(list); return true; } @Override public void saveBatch(ArrayList imageResourceSecurities) { imageResourceSecurityMapper.saveBatch(imageResourceSecurities); } }