package cn.hellohao.service.impl; import cn.hellohao.pojo.Images; import cn.hellohao.pojo.Keys; import cn.hellohao.pojo.Msg; import cn.hellohao.service.ImgAndAlbumService; import cn.hellohao.service.ImgService; import cn.hellohao.service.ImgTempService; import cn.hellohao.utils.LocUpdateImg; import cn.hellohao.utils.progress.MyProgress; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.List; @Service public class deleImages { @Autowired private NOSImageupload nosImageupload; @Autowired private OSSImageupload ossImageupload; @Autowired private COSImageupload cosImageupload; @Autowired private KODOImageupload kodoImageupload; @Autowired private USSImageupload ussImageupload; @Autowired private UFileImageupload uFileImageupload; @Autowired private FTPImageupload ftpImageupload; @Autowired private ImgAndAlbumService imgAndAlbumService; @Autowired private ImgTempService imgTempService; @Autowired private ImgService imgService; @Autowired private KeysServiceImpl keysService; public Msg dele(HttpSession httpSession,Integer... imgIds) { Msg msg = new Msg(); MyProgress myProgress = new MyProgress(); myProgress.InitializeDelImg(); List ids = new ArrayList<>(); int successCount = 0; List errorIds = new ArrayList<>(); for (Integer id : imgIds) { //删除图片 boolean isDele = false; try { Images image = imgService.selectByPrimaryKey(id); Keys key = keysService.selectKeys(image.getSource()); if (key.getStorageType() == 1) { isDele = nosImageupload.delNOS(key.getId(), image); } else if (key.getStorageType() == 2) { isDele = ossImageupload.delOSS(key.getId(), image); } else if (key.getStorageType() == 3) { isDele = ussImageupload.delUSS(key.getId(), image); } else if (key.getStorageType() == 4) { isDele = kodoImageupload.delKODO(key.getId(), image); } else if (key.getStorageType() == 5) { isDele = LocUpdateImg.deleteLOCImg(image); } else if (key.getStorageType() == 6) { isDele = cosImageupload.delCOS(key.getId(), image); } else if (key.getStorageType() == 7) { isDele = ftpImageupload.delFTP(key.getId(), image); } else if (key.getStorageType() == 8) { isDele = uFileImageupload.delUFile(key.getId(), image); } else { System.err.println("未获取到对象存储参数,删除失败。"); } if(isDele){ try { imgAndAlbumService.deleteImgAndAlbum(image.getImgurl()); imgTempService.delImgAndExp(image.getImguid()); imgService.deleimg(image.getId()); ids.add(image.getId()); successCount++; System.out.println("删除成功加一个"+image.getId()); } catch (Exception e) { e.printStackTrace(); System.err.println(image.getImgname()+":图片数据库记录时发生错误"); errorIds.add(image.getImgurl()); } } myProgress.setDelSuccessCount(successCount); myProgress.setDelSuccessImgList(ids); myProgress.setDelErrorImgListt(errorIds); if(null !=httpSession){ httpSession.setAttribute("myProgressForDel",myProgress); } } catch (Exception e) { System.err.println("删除的时候发生了一些异常"); e.printStackTrace(); } } myProgress.setDelOCT(true); msg.setData(ids); return msg; } }