| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.izouma.awesomeAdmin.service;
- import com.alibaba.excel.EasyExcel;
- import com.izouma.awesomeAdmin.domain.OrgInfo;
- import com.izouma.awesomeAdmin.dto.PageQuery;
- import com.izouma.awesomeAdmin.repo.OrgInfoRepo;
- import com.izouma.awesomeAdmin.service.storage.StorageService;
- import com.izouma.awesomeAdmin.utils.FileUtils;
- import com.izouma.awesomeAdmin.utils.JpaUtils;
- import com.izouma.awesomeAdmin.utils.excel.UploadDataListener;
- import lombok.AllArgsConstructor;
- import org.apache.commons.io.FilenameUtils;
- import org.apache.commons.lang3.RandomStringUtils;
- import org.apache.poi.util.TempFile;
- import org.springframework.data.domain.Page;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipInputStream;
- @Service
- @AllArgsConstructor
- public class OrgInfoService {
- private OrgInfoRepo orgInfoRepo;
- private StorageService storageService;
- public Page<OrgInfo> all(PageQuery pageQuery) {
- return orgInfoRepo
- .findAll(JpaUtils.toSpecification(pageQuery, OrgInfo.class), JpaUtils.toPageRequest(pageQuery));
- }
- public void upload(MultipartFile file) throws IOException {
- File destDir = TempFile.createTempDirectory("import");
- FileUtils.unzip(file.getInputStream(), destDir);
- File xlsxFile = FileUtils.findExcel(destDir);
- if (xlsxFile == null) return;
- UploadDataListener<OrgInfo> listener = new UploadDataListener<>();
- EasyExcel.read(new FileInputStream(xlsxFile), OrgInfo.class, listener).sheet().doReadSync();
- for (OrgInfo data : listener.getData()) {
- if (data.getLogo() != null) {
- File uploadFile = new File(destDir, data.getLogo());
- if (uploadFile.exists()) {
- String path = "image/" + new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())
- + RandomStringUtils.randomAlphabetic(8)
- + "." + FilenameUtils.getExtension(uploadFile.getName());
- String url = storageService.uploadFromInputStream(new FileInputStream(uploadFile), path);
- data.setLogo(url);
- }
- }
- }
- orgInfoRepo.saveAll(listener.getData());
- }
- }
|