全部
This commit is contained in:
@ -4,22 +4,26 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.yj.earth.annotation.CheckAuth;
|
||||
import com.yj.earth.business.domain.MilitaryLibrary;
|
||||
import com.yj.earth.business.domain.MilitaryType;
|
||||
import com.yj.earth.business.domain.*;
|
||||
import com.yj.earth.business.service.MilitaryLibraryService;
|
||||
import com.yj.earth.business.service.SourceService;
|
||||
import com.yj.earth.common.util.ApiResponse;
|
||||
import com.yj.earth.common.util.FileCommonUtil;
|
||||
import com.yj.earth.common.util.JsonUtil;
|
||||
import com.yj.earth.common.util.SQLiteUtil;
|
||||
import com.yj.earth.dto.militaryLibrary.AddMilitaryTypeDto;
|
||||
import com.yj.earth.dto.militaryLibrary.CreateMilitaryLibraryDto;
|
||||
import com.yj.earth.dto.militaryLibrary.DragMilitaryTypeDto;
|
||||
import com.yj.earth.dto.militaryLibrary.UpdateMilitaryTypeNameDto;
|
||||
import com.yj.earth.params.MilitaryParam;
|
||||
import com.yj.earth.params.ModelParam;
|
||||
import com.yj.earth.vo.MilitaryDataVo;
|
||||
import com.yj.earth.vo.MilitaryTypeVo;
|
||||
import com.yj.earth.vo.MilitaryVo;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -50,6 +54,12 @@ public class MilitaryLibraryController {
|
||||
|
||||
@Resource
|
||||
private MilitaryLibraryService militaryLibraryService;
|
||||
@Resource
|
||||
private SourceService sourceService;
|
||||
@Value("${server.host}")
|
||||
private String serverHost;
|
||||
@Value("${server.port}")
|
||||
private int serverPort;
|
||||
|
||||
@Operation(summary = "创建军标库")
|
||||
@PostMapping("/createMilitaryLibrary")
|
||||
@ -337,13 +347,39 @@ public class MilitaryLibraryController {
|
||||
return ApiResponse.failure("请先创建或导入军标库");
|
||||
}
|
||||
|
||||
// 存储被删除的Source ID列表
|
||||
List<String> deletedSourceIds = new ArrayList<>();
|
||||
// 获取URL
|
||||
String MilitaryDataUrlByModelId = getMilitaryDataUrlByModelId(militaryId);
|
||||
// 查询资源
|
||||
LambdaQueryWrapper<Source> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// 查询类型为 model 的
|
||||
queryWrapper.eq(Source::getSourceType, "military");
|
||||
// 查询列表
|
||||
List<Source> sourceList = sourceService.list(queryWrapper);
|
||||
// 遍历数据
|
||||
for (Source source : sourceList) {
|
||||
// 取出 params 字段
|
||||
String dataParams = source.getParams();
|
||||
if (dataParams != null) {
|
||||
// 转换为 Model 对象
|
||||
MilitaryParam militaryParam = JsonUtil.jsonToObject(dataParams, MilitaryParam.class);
|
||||
if (MilitaryDataUrlByModelId.equals(militaryParam.getUrl())) {
|
||||
// 删除这个资源
|
||||
sourceService.removeById(source.getId());
|
||||
// 添加到被删除的ID列表
|
||||
deletedSourceIds.add(source.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 执行删除
|
||||
String deleteSql = "DELETE FROM military WHERE id = ?";
|
||||
List<Object> params = new ArrayList<>();
|
||||
params.add(militaryId);
|
||||
|
||||
SQLiteUtil.executeUpdate(militaryPath, deleteSql, params);
|
||||
return ApiResponse.success("删除军标成功");
|
||||
return ApiResponse.success(deletedSourceIds);
|
||||
}
|
||||
|
||||
|
||||
@ -514,6 +550,32 @@ public class MilitaryLibraryController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据军标ID获取模型数据访问URL
|
||||
*/
|
||||
private String getMilitaryDataUrlByModelId(String militaryId) {
|
||||
try {
|
||||
// 获取当前启用的军标库路径
|
||||
String militaryLibraryPath = getMilitaryLibrary();
|
||||
if (militaryLibraryPath == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 查询军标对应的类型后缀
|
||||
String sql = "SELECT military_type FROM military WHERE id = ?";
|
||||
List<Object> params = new ArrayList<>();
|
||||
params.add(militaryId);
|
||||
Military military = SQLiteUtil.queryForObject(militaryLibraryPath, sql, params, Military.class);
|
||||
// 得到类型ID
|
||||
String militaryType = military.getMilitaryType();
|
||||
// 拼接完整URL
|
||||
return "http://" + serverHost + ":" + serverPort + "/militaryLibrary/data/military/" + militaryId + "/" + militaryType;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isMilitaryTypeExist(String militaryPath, String typeId)
|
||||
throws SQLException, IllegalAccessException, InstantiationException {
|
||||
String checkSql = "SELECT id FROM military_type WHERE id = ?";
|
||||
|
||||
Reference in New Issue
Block a user