|
|
@ -20,7 +20,10 @@ import org.apache.ibatis.annotations.Param;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
@ -101,10 +104,10 @@ public class AdminDataController {
|
|
|
|
for (MultipartFile file : dataFile) {
|
|
|
|
for (MultipartFile file : dataFile) {
|
|
|
|
AdminFile adminFile = new AdminFile();
|
|
|
|
AdminFile adminFile = new AdminFile();
|
|
|
|
adminFile.setFileId(IdUtil.randomUUID());
|
|
|
|
adminFile.setFileId(IdUtil.randomUUID());
|
|
|
|
String pictureUrl = fileUtil.upload(file);
|
|
|
|
String dataUrl = fileUtil.upload(file);
|
|
|
|
String name = file.getName();
|
|
|
|
String fullFileName = file.getOriginalFilename();
|
|
|
|
adminFile.setFileUrl(pictureUrl);
|
|
|
|
adminFile.setFileUrl(dataUrl);
|
|
|
|
adminFile.setName(name);
|
|
|
|
adminFile.setName(fullFileName);
|
|
|
|
adminFile.setSource("数据表");
|
|
|
|
adminFile.setSource("数据表");
|
|
|
|
adminFile.setDataCaseId(dataId);
|
|
|
|
adminFile.setDataCaseId(dataId);
|
|
|
|
list.add(adminFile);
|
|
|
|
list.add(adminFile);
|
|
|
@ -168,58 +171,13 @@ public class AdminDataController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// @PostMapping("updateAdminData")
|
|
|
|
|
|
|
|
// @ApiOperation("编辑")
|
|
|
|
|
|
|
|
// @AnonymousAccess
|
|
|
|
|
|
|
|
// @Transactional
|
|
|
|
|
|
|
|
// ResultEntity<String> updateAdminData(@ModelAttribute AdminDataDto adminDataDto) {
|
|
|
|
|
|
|
|
// //新增
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
|
|
// AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(adminDataDto.getDataId());
|
|
|
|
|
|
|
|
// if (adminDataDto.getPictureUrl() != null) {
|
|
|
|
|
|
|
|
// String pictureUrl = fileUtil.upload(adminDataDto.getPictureFile());
|
|
|
|
|
|
|
|
// adminDataWithBLOBs.setPictureUrl(pictureUrl);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //更新标签
|
|
|
|
|
|
|
|
// if (adminDataDto.getAdminLabelList() != null && !adminDataDto.getAdminLabelList().isEmpty()) {
|
|
|
|
|
|
|
|
// List<AdminLabel> adminLabelList = adminDataDto.getAdminLabelList();
|
|
|
|
|
|
|
|
// List<String> ids = adminLabelList.stream().map(AdminLabel::getLabelId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
// AdminDataLabelExample example = new AdminDataLabelExample();
|
|
|
|
|
|
|
|
// example.createCriteria().andLabelIdIn(ids);
|
|
|
|
|
|
|
|
// List<AdminDataLabel> list = adminDataLabelMapper.selectByExample(example);
|
|
|
|
|
|
|
|
// for (AdminDataLabel adminDataLabel : list) {
|
|
|
|
|
|
|
|
// adminDataLabelMapper.updateByPrimaryKey(adminDataLabel);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (adminDataDto.getFileDataList() != null && !adminDataDto.getFileDataList().isEmpty()) {
|
|
|
|
|
|
|
|
// List<FileData> fileDataList = adminDataDto.getFileDataList();
|
|
|
|
|
|
|
|
// for (FileData fileData : fileDataList) {
|
|
|
|
|
|
|
|
// if (fileData.getFile() != null && fileData.getFileId() != null) {
|
|
|
|
|
|
|
|
// AdminFile adminFile = adminFileMapper.selectByPrimaryKey(fileData.getFileId());
|
|
|
|
|
|
|
|
// String url = fileUtil.upload(fileData.getFile());
|
|
|
|
|
|
|
|
// adminFile.setFileUrl(url);
|
|
|
|
|
|
|
|
// adminFileMapper.updateByPrimaryKey(adminFile);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //更新对象
|
|
|
|
|
|
|
|
// adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
|
|
|
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
|
|
|
// return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR,"编辑失败请联系管理员!");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// return new ResultEntity<>(HttpStatus.OK,"编辑成功!");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("updateAdminData")
|
|
|
|
@PostMapping("updateAdminData")
|
|
|
|
@ApiOperation("编辑")
|
|
|
|
@ApiOperation("编辑")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
ResultEntity<String> updateAdminData(@RequestParam String adminDataDtoJSON,
|
|
|
|
ResultEntity<String> updateAdminData(@RequestParam String adminDataDtoJSON,
|
|
|
|
@RequestParam(required = false) MultipartFile pictureFile,
|
|
|
|
@RequestParam(required = false) MultipartFile pictureFile,
|
|
|
|
@RequestPart List<FileData> fileDataList) {
|
|
|
|
@RequestParam(required = false) List<MultipartFile> dataFileList) {
|
|
|
|
Gson gson = new Gson();
|
|
|
|
Gson gson = new Gson();
|
|
|
|
AdminDataDto adminDataDto = null;
|
|
|
|
AdminDataDto adminDataDto = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -230,40 +188,84 @@ public class AdminDataController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//新增
|
|
|
|
//新增
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(adminDataDto.getDataId());
|
|
|
|
AdminDataWithBLOBs adminDataWithBLOBs = new AdminDataWithBLOBs();
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setDataId(adminDataDto.getDataId());
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setName(adminDataDto.getName());
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setDataScenarios(adminDataDto.getDataScenarios());
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setFieldDescription(adminDataDto.getFieldDescription());
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setStatus(adminDataDto.getStatus()); //默认下架,发布后上架
|
|
|
|
|
|
|
|
adminDataWithBLOBs.setCreateTime(adminDataDto.getCreateTime());
|
|
|
|
// 文件上传并行处理
|
|
|
|
// 文件上传并行处理
|
|
|
|
if (pictureFile != null) {
|
|
|
|
if (pictureFile != null) {
|
|
|
|
String pictureUrl = fileUtil.upload(pictureFile);
|
|
|
|
String pictureUrl = fileUtil.upload(pictureFile);
|
|
|
|
adminDataWithBLOBs.setPictureUrl(pictureUrl);
|
|
|
|
adminDataWithBLOBs.setPictureUrl(pictureUrl);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 更新标签,批量更新操作
|
|
|
|
// 更新标签,批量更新操作
|
|
|
|
if (adminDataDto.getAdminLabelList() != null && !adminDataDto.getAdminLabelList().isEmpty()) {
|
|
|
|
if (adminDataDto.getAdminLabelList() != null && !adminDataDto.getAdminLabelList().isEmpty()) {
|
|
|
|
List<AdminLabel> adminLabelList = adminDataDto.getAdminLabelList();
|
|
|
|
List<AdminLabel> adminLabelList = adminDataDto.getAdminLabelList();
|
|
|
|
List<String> ids = adminLabelList.stream().map(AdminLabel::getLabelId).collect(Collectors.toList());
|
|
|
|
AdminDataLabelExample example =new AdminDataLabelExample();
|
|
|
|
AdminDataLabelExample example = new AdminDataLabelExample();
|
|
|
|
example.createCriteria().andDataCaseIdEqualTo(adminDataDto.getDataId());
|
|
|
|
example.createCriteria().andLabelIdIn(ids);
|
|
|
|
adminDataLabelMapper.deleteByExample(example);
|
|
|
|
List<AdminDataLabel> list = adminDataLabelMapper.selectByExample(example);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//批量新增标签
|
|
|
|
|
|
|
|
List<AdminDataLabel> list = new ArrayList<>();
|
|
|
|
|
|
|
|
for (AdminLabel adminLabel : adminLabelList) {
|
|
|
|
|
|
|
|
AdminDataLabel label = new AdminDataLabel();
|
|
|
|
|
|
|
|
label.setId(IdUtil.randomUUID());
|
|
|
|
|
|
|
|
label.setLabelId(adminLabel.getLabelId());
|
|
|
|
|
|
|
|
label.setName(adminLabel.getName());
|
|
|
|
|
|
|
|
label.setDataCaseId(adminDataDto.getDataId());
|
|
|
|
|
|
|
|
label.setType(adminLabel.getType());
|
|
|
|
|
|
|
|
list.add(label);
|
|
|
|
|
|
|
|
}
|
|
|
|
// 使用批量更新操作
|
|
|
|
// 使用批量更新操作
|
|
|
|
if (!list.isEmpty()) {
|
|
|
|
if (!list.isEmpty()) {
|
|
|
|
adminDataLabelMapper.updateBatch(list);
|
|
|
|
adminDataLabelMapper.insertBatch(list);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 文件数据并行处理
|
|
|
|
List<FileData> fileDataList = new ArrayList<>();
|
|
|
|
if (fileDataList != null && !fileDataList.isEmpty()) {
|
|
|
|
if (adminDataDto.getIdList() != null && !adminDataDto.getIdList().isEmpty()
|
|
|
|
// 并行上传文件
|
|
|
|
&& dataFileList != null && !dataFileList.isEmpty()) {
|
|
|
|
fileDataList.parallelStream().forEach(fileData -> {
|
|
|
|
|
|
|
|
if (fileData.getFile() != null && fileData.getFileId() != null) {
|
|
|
|
List<String> idList = adminDataDto.getIdList();
|
|
|
|
AdminFile adminFile = adminFileMapper.selectByPrimaryKey(fileData.getFileId());
|
|
|
|
|
|
|
|
String url = fileUtil.upload(fileData.getFile());
|
|
|
|
//两个长度一样才新增
|
|
|
|
adminFile.setFileUrl(url);
|
|
|
|
if (idList.size() == dataFileList.size()) {
|
|
|
|
adminFileMapper.updateByPrimaryKey(adminFile); //todo 速度慢就改成批量更新
|
|
|
|
for (int i = 0; i < idList.size(); i++) {
|
|
|
|
|
|
|
|
FileData fileData = new FileData();
|
|
|
|
|
|
|
|
fileData.setFileId(idList.get(i));
|
|
|
|
|
|
|
|
fileData.setFile(dataFileList.get(i));
|
|
|
|
|
|
|
|
fileDataList.add(fileData);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//设置数据文件
|
|
|
|
|
|
|
|
if (!fileDataList.isEmpty()) {
|
|
|
|
|
|
|
|
List<AdminFile> list = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//原来的删了再新增
|
|
|
|
|
|
|
|
AdminFileExample example =new AdminFileExample();
|
|
|
|
|
|
|
|
List<String> ids = fileDataList.stream().map(FileData::getFileId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
example.createCriteria().andFileIdIn(ids);
|
|
|
|
|
|
|
|
adminFileMapper.deleteByExample(example);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (FileData file : fileDataList) {
|
|
|
|
|
|
|
|
AdminFile adminFile = new AdminFile();
|
|
|
|
|
|
|
|
adminFile.setFileId(IdUtil.randomUUID());
|
|
|
|
|
|
|
|
String fileUrl = fileUtil.upload(file.getFile());
|
|
|
|
|
|
|
|
String fullFileName = file.getFile().getOriginalFilename();
|
|
|
|
|
|
|
|
adminFile.setFileUrl(fileUrl);
|
|
|
|
|
|
|
|
adminFile.setName(fullFileName);
|
|
|
|
|
|
|
|
adminFile.setSource("数据表");
|
|
|
|
|
|
|
|
adminFile.setDataCaseId(adminDataDto.getDataId());
|
|
|
|
|
|
|
|
list.add(adminFile);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//批量新增数据文件
|
|
|
|
|
|
|
|
adminFileMapper.insertBatch(list);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 更新对象
|
|
|
|
// 更新对象
|
|
|
|
adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
|
|
|
|
adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
|
|
|
|