qa-prevention-gwj/src/main/java/com/zcloud/service/bus/impl/ImgFilesServiceImpl.java

227 lines
6.0 KiB
Java
Raw Normal View History

2023-11-07 09:32:12 +08:00
package com.zcloud.service.bus.impl;
2023-11-08 08:53:50 +08:00
import java.io.File;
import java.io.IOException;
2023-11-07 09:32:12 +08:00
import java.util.ArrayList;
import java.util.List;
2023-11-08 08:53:50 +08:00
import com.zcloud.util.*;
import org.apache.commons.io.FileUtils;
2023-11-07 09:32:12 +08:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.mapper.datasource.bus.ImgFilesMapper;
import com.zcloud.service.bus.ImgFilesService;
2023-11-08 08:53:50 +08:00
import org.springframework.web.multipart.MultipartFile;
2023-11-07 09:32:12 +08:00
/**
*
* luoxiaobao
* 2020-12-24
* www.zcloudchina.com
*/
@Service
@Transactional //开启事物
public class ImgFilesServiceImpl implements ImgFilesService{
@Autowired
private ImgFilesMapper imgfilesMapper;
/**
* @param pd
* @throws Exception
*/
public void save(PageData pd)throws Exception{
imgfilesMapper.save(pd);
}
/**
* @param pd
* @throws Exception
*/
public void delete(PageData pd)throws Exception{
imgfilesMapper.delete(pd);
}
/**
* @param pd
* @throws Exception
*/
public void deleteList(PageData pd)throws Exception{
imgfilesMapper.deleteList(pd);
}
/**
* @param pd
* @throws Exception
*/
public void edit(PageData pd)throws Exception{
imgfilesMapper.edit(pd);
}
/**
* @param page
* @throws Exception
*/
public List<PageData> list(Page page)throws Exception{
return imgfilesMapper.datalistPage(page);
}
/**()
* @param pd
* @throws Exception
*/
public List<PageData> listAll(PageData pd)throws Exception{
return imgfilesMapper.listAll(pd);
}
/**id
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd)throws Exception{
return imgfilesMapper.findById(pd);
}
/**
* @param ArrayDATA_IDS
* @throws Exception
*/
public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
imgfilesMapper.deleteAll(ArrayDATA_IDS);
}
/**()
* @param pd
* @throws Exception
*/
public List<PageData> listAllByIds(PageData pd)throws Exception{
return imgfilesMapper.listAllByIds(pd);
}
/**
*
* @param key
* @param type
* @return
* @throws Exception
*/
public List<PageData> getListByKeyAndType (Object key ,String type) throws Exception{
if(!Tools.isEmpty(key)){
PageData pd = new PageData();
pd.put("FOREIGN_KEY",key);
pd.put("TYPE", type);
return imgfilesMapper.listAll(pd);
}
return new ArrayList<>();
}
/**
*
* @param key
* @param type
* @return
* @throws Exception
*/
public List<PageData> getListByKeyAndTypeV2 (PageData pd, String key ,String type) throws Exception{
if(!Tools.isEmpty(pd)){
PageData img = new PageData();
pd.put("FOREIGN_KEY",pd.get(key));
pd.put("TYPE", type);
return imgfilesMapper.listAll(pd);
}
return null;
}
@Override
public void deleteInspectionHiddenFile(PageData pd) throws Exception {
imgfilesMapper.deleteInspectionHiddenFile(pd);
}
@Override
public void deleteByPath(PageData pd) throws Exception {
imgfilesMapper.deleteByPath(pd);
}
@Override
public void hideImg(PageData forward) {
imgfilesMapper.hideImg(forward);
}
public List<PageData> getListByKeyAndType (Object key) throws Exception{
if(!Tools.isEmpty(key)){
PageData pd = new PageData();
pd.put("FOREIGN_KEY",key);
return imgfilesMapper.listAll(pd);
}
return new ArrayList<>();
}
2023-11-08 08:53:50 +08:00
@Override
public void uploadPicture(MultipartFile[] files, String TYPE, String FOREIGN_KEY) {
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
if (!"json".equals(suffixName) && !"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
return ;
}
}
for (int i = 0; i < files.length; i++) {
MultipartFile file = files[i];
// 保存文件
File tempFile = new File(file.getOriginalFilename());
try {
FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
if(!FileUpload.isImage(tempFile) && !TYPE.equals("2")) {//四色图改为json文件,不用判断类型
return ;
}
tempFile.delete();
if(TYPE.equals("2")) {//先删除原四色图
PageData pd2 = new PageData();
pd2.put("FOREIGN_KEY",FOREIGN_KEY);
pd2.put("TYPE",TYPE);
List<PageData> four = null;
try {
four = listAll(pd2);
} catch (Exception e) {
throw new RuntimeException(e);
}
for (PageData pageData : four) {
File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH"));
old.delete();
try {
delete(pageData);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
String ffile = DateUtil.getDays();
// String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile; //文件上传路径
// String fileName = FileUpload.fileUp(file, filePath, this.get32UUID()); //执行上传
String fileName = UuidUtil.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
try {
Smb.sshSftp(file, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
} catch (Exception e) {
throw new RuntimeException(e);
}
PageData pd = new PageData();
pd.put("IMGFILES_ID", UuidUtil.get32UUID());
pd.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
pd.put("TYPE", TYPE);
pd.put("FOREIGN_KEY", FOREIGN_KEY);
try {
save(pd);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
2023-11-07 09:32:12 +08:00
}