package org.jeecg.modules.system.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.jeecg.common.api.vo.FileUploadResult;
|
import org.jeecg.common.util.FileUtil;
|
import org.jeecg.common.system.base.entity.SysUpload;
|
import org.jeecg.common.system.base.entity.SysUploadRela;
|
import org.jeecg.modules.system.mapper.UploadMapper;
|
import org.jeecg.modules.system.service.IAliUploadService;
|
import org.jeecg.modules.system.service.IUploadRelaService;
|
import org.jeecg.modules.system.service.IUploadService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
|
@Service
|
public class UploadServiceImpl extends ServiceImpl<UploadMapper, SysUpload> implements IUploadService {
|
|
@Autowired
|
private IAliUploadService aliUploadService;
|
|
@Autowired
|
private IUploadRelaService uploadRelaService;
|
|
|
|
// 由application.yml中获取文件上传方式:本地(local)、阿里云(alioss)
|
@Value(value = "${jeecg.uploadType}")
|
private String uploadType;
|
|
@Override
|
public IPage<SysUpload> page(Page<SysUpload> page, Wrapper<SysUpload> queryWrapper) {
|
IPage<SysUpload> pageList = super.page(page, queryWrapper);
|
List<String> uploadRelaStrList;
|
List<SysUploadRela> uploadRelaList;
|
String uploadRelaStr = "";
|
for (SysUpload upload : pageList.getRecords()) {
|
uploadRelaList = uploadRelaService.listByUploadId(upload.getId());
|
upload.setUploadRelaCount(uploadRelaList.size());
|
uploadRelaStrList = new ArrayList<>();
|
if (CollectionUtils.isNotEmpty(uploadRelaList)) {
|
for (SysUploadRela uploadRela : uploadRelaList) {
|
// if (uploadRela.getBusType().equals("part_route_file")) {// 产品工艺-文件
|
// PartRouteFile partRouteFile = partRouteFileService.getById(uploadRela.getBusId());
|
// if (partRouteFile != null) {
|
// PartRoute partRoute = partRouteService.getById(partRouteFile.getPartRouteId());
|
// Part part = partService.getById(partRoute.getPartId());
|
// Route route = routeService.getById(partRoute.getRouteId());
|
// uploadRelaStr = "产品工艺-文件:产品(" + part.getNum() + "/" + part.getName() + "/" + part.getModel()
|
// + ")";
|
// uploadRelaStr += "工艺(" + route.getNum() + "/" + route.getDescription() + ")";
|
// } else {
|
// uploadRelaStr = "产品工艺-文件:有误";
|
// }
|
//// uploadRelaStr = partRouteFile != null ? "产品工艺-文件:" + partRouteFile.getName() : "产品工艺-文件:有误";
|
//
|
// } else if (uploadRela.getBusType().equals("part_route_cnc")) {// 产品工艺-CNC程序
|
// PartRouteFile partRouteFile = partRouteFileService.getById(uploadRela.getBusId());
|
// if (partRouteFile != null) {
|
// PartRoute partRoute = partRouteService.getById(partRouteFile.getPartRouteId());
|
// Part part = partService.getById(partRoute.getPartId());
|
// Route route = routeService.getById(partRoute.getRouteId());
|
// uploadRelaStr = "产品工艺-CNC程序:产品(" + part.getNum() + "/" + part.getName() + "/"
|
// + part.getModel() + ")";
|
// uploadRelaStr += "工艺(" + route.getNum() + "/" + route.getDescription() + ")";
|
// } else {
|
// uploadRelaStr = "产品工艺-CNC程序:有误";
|
// }
|
//// uploadRelaStr = partRouteFile != null ? "产品工艺-CNC程序:" + partRouteFile.getName(): "产品工艺-CNC程序:有误";
|
// } else if (uploadRela.getBusType().equals("order")) {// 订单管理-订单
|
// // Order salesOrder = salesOrderService.getById(uploadRela.getBusId());
|
// // if (salesOrder != null) {
|
// // Client client = clientService.getById(salesOrder.getClientId());
|
// // uploadRelaStr = "订单管理:订单编号(" + salesOrder.getNum() + ")";
|
// // uploadRelaStr += "客户名称(" + client.getNum() + ")";
|
// // } else {
|
// // uploadRelaStr = "订单管理:有误";
|
// // }
|
//// uploadRelaStr = salesOrder != null ? "订单管理:订单" + salesOrder.getNum() : "订单管理:有误";
|
}
|
uploadRelaStrList.add(uploadRelaStr);
|
|
}
|
upload.setUploadRelaStrList(uploadRelaStrList);
|
}
|
return pageList;
|
}
|
|
@Override
|
public List<SysUpload> batchUploadFile(String type, List<MultipartFile> files, String description) throws Exception {
|
List<SysUpload> uploadList = new ArrayList<>();
|
for (MultipartFile file : files) {
|
SysUpload upload = new SysUpload();
|
upload.setDescription(description);
|
upload.setType(type);
|
upload.setName(file.getOriginalFilename());
|
upload.setSize(String.valueOf(file.getSize()));
|
upload.setFormat(FileUtil.getFileSuffix(file.getOriginalFilename()));
|
upload.setUploadType(uploadType);
|
if ("alioss".equals(uploadType)) {
|
String path = aliUploadService.uploadFile(file);
|
upload.setPath(path);
|
} else if ("local".equals(uploadType)) {
|
FileUploadResult result = FileUtil.uploadFile(file);
|
upload.setPath(result.getFilePath());
|
upload.setEncodeName(result.getFileEncodeName());
|
}
|
super.save(upload);
|
uploadList.add(upload);
|
}
|
return uploadList;
|
}
|
|
@Override
|
public boolean downloadFile(HttpServletResponse response, SysUpload upload) {
|
if ("alioss".equals(uploadType)) {
|
aliUploadService.downloadFile(response, upload.getPath(), upload.getName());
|
} else if ("local".equals(uploadType)) {
|
FileUtil.downLoadFile(response, upload.getEncodeName(), upload.getPath(), upload.getName());
|
}
|
return true;
|
}
|
|
|
|
}
|