package com.terra.system.controller.all; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.terra.common.controller.all.BaseController; import com.terra.common.annotation.SysLog; import com.terra.system.entity.all.BaseGeoEntity; import com.terra.common.entity.all.ResponseMsg; import com.terra.common.entity.all.StaticData; import com.terra.system.entity.ctrl.DownloadReqEntity; import com.terra.system.entity.ctrl.IdNameEntity; import com.terra.system.entity.ctrl.KeyValueEntity; import com.terra.system.entity.ctrl.TabEntity; import com.terra.system.entity.data.*; import com.terra.system.entity.sys.AttachEntity; import com.terra.system.entity.sys.UserEntity; import com.terra.system.helper.AesHelper; import com.terra.system.helper.ClassHelper; import com.terra.common.helper.StringHelper; import com.terra.system.mapper.all.BasicMapper; import com.terra.system.mapper.all.GeomBaseMapper; import com.terra.system.service.all.BaseQueryService; import com.terra.system.service.data.DictService; import com.terra.system.service.data.DirService; import com.terra.system.service.data.DownloadService; import com.terra.system.service.data.MetaService; import com.terra.system.service.show.DataLibService; import com.terra.system.service.sys.AttachService; import com.terra.system.service.sys.DepService; import com.terra.system.service.sys.DownlogService; import com.terra.system.service.sys.TokenService; import javax.annotation.Resource; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * 父查询控制器 * @author WWW */ public class BaseQueryController extends BaseController { @Resource AttachService attachService; @Resource TokenService tokenService; @Resource DepService depService; @Resource DirService dirService; @Resource MetaService metaService; @Resource DataLibService dataLibService; @Resource public DownlogService downlogService; @Resource public DownloadService downloadService; @Resource BaseQueryService baseQueryService; @Resource DictService dictService; @SysLog() @Operation(description = "查询记录数") @Parameters({ @Parameter(name = "name", description = "映射名称", example = "dlgagnp"), @Parameter(name = "filter", description = "过滤条件", example = "gid >= 50 and name like '县' and objectid < 5000.0"), @Parameter(name = "wkt", description = "WKT(著名文本)", example = "gAPpDbZ53XfoQfvT8dj/uhBWX5os8kBJQ1LrNvH3VX7byFQdUJMPiEr8Fkj0q2i1pw+L8KFrvR0MLXq2xaO21nlQQXmEPofJxpDQZwEWUIFZsToXo1kLRD3t6WQezxWB8YTzXHM20Ba73x/ZuuezVhOFOq1U8HKf1dXQdv7gBzEB6fWMmFDc3FuH8GDDHv3LfT86Gio9VgMO6ohlrUdf3ZKtTHeLSuzGF4t0RZuX97YBNo25IIzpeTfRTXBxfdxA") }) @GetMapping(value = "/selectCount") @PostMapping(value = "/selectCount") public ResponseMsg selectCount(String name, String filter, String wkt) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } QueryWrapper wrapper = new QueryWrapper(); baseQueryService.addFilterWrapper(wrapper, filter); baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt); long count = baseMapper.selectCount(wrapper); return success(count); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "分页查询") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp"), @Parameter(name = "depcode", description = "单位编码", in = ParameterIn.QUERY, example = "00"), @Parameter(name = "dirs", description = "目录编码", in = ParameterIn.QUERY, example = "00,01"), @Parameter(name = "filter", description = "过滤条件", in = ParameterIn.QUERY, example = "gid >= 50 and name like '县' and objectid < 5000.0"), @Parameter(name = "wkt", description = "WKT(著名文本)", in = ParameterIn.QUERY, example = ""), @Parameter(name = "pageIndex", description = "分页数(从1开始)", in = ParameterIn.QUERY, example = "1"), @Parameter(name = "pageSize", description = "每页条数", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "hasGeom", description = "是/否包含空间信息", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectByPage") @PostMapping(value = "/selectByPage") public ResponseMsg> selectByPage(String name, String depcode, String dirs, String filter, String wkt, Integer pageIndex, Integer pageSize, Integer hasGeom) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (null == baseMapper) { return fail("查询对象不存在", null); } QueryWrapper wrapper = new QueryWrapper(); baseQueryService.addFilterWrapper(wrapper, filter); baseQueryService.addGeomWrapper(baseMapper, wrapper, wkt); if (!StringHelper.isEmpty(depcode)) { wrapper.likeRight("depid", depcode); } dirs = DataLibService.copeCodes(dirs, "dirid"); if (!StringHelper.isEmpty(dirs)) { wrapper.apply(dirs); } boolean hasWkt = null != hasGeom && hasGeom > 0 && baseMapper instanceof GeomBaseMapper; if (hasWkt) { wrapper.select("ST_AsText(geom) as geom, *"); } Page page = new Page<>(pageIndex, pageSize); page.addOrder(OrderItem.desc("gid")); IPage paged = baseMapper.selectPage(page, wrapper); if (hasWkt && null != paged.getRecords()) { copeWkt(paged.getRecords()); } return success(paged.getTotal(), paged.getRecords()); } catch (Exception ex) { return fail(ex, null); } } /** * 处理WKT */ private void copeWkt(List list) { for (int i = 0, c = list.size(); i < c; i++) { Object obj = list.get(i); setWktEncrypt(obj); } } /** * 设置WKT加密 */ private void setWktEncrypt(Object obj) { if (obj instanceof BaseGeoEntity) { BaseGeoEntity entity = (BaseGeoEntity) obj; if (StringHelper.isEmpty(entity.getGeom())) { return; } try { String wkt = AesHelper.encrypt(entity.getGeom()); entity.setGeom(wkt); } catch (Exception ex) { entity.setGeom(null); log.error(ex.getMessage(), ex); } } } @SysLog() @Operation(description = "缓冲区查询") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp"), @Parameter(name = "wkt", description = "WKT(著名文本)", in = ParameterIn.QUERY, example = ""), @Parameter(name = "buffer", description = "缓冲区大小", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "limit", description = "限制条数", in = ParameterIn.QUERY, example = "20") }) @GetMapping(value = "/selectByBuffer") public ResponseMsg> selectByBuffer(String name, String wkt, Double buffer, Integer limit) { try { if (StringHelper.isEmpty(wkt)) { return fail("WKT不能为空", null); } if (null == limit || limit < 1 || limit > StaticData.I100) { limit = 20; } if (null == buffer || buffer < 0 || buffer > StaticData.I100000) { buffer = 10.0; } GeomBaseMapper baseMapper = ClassHelper.getGeoBaseMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } QueryWrapper wrapper = new QueryWrapper(); wrapper.select("ST_AsText(geom) as geom, *"); baseQueryService.addBufferWrapper(baseMapper, wrapper, wkt, buffer); wrapper.last("limit " + limit); List list = baseMapper.selectList(wrapper); return success(null == list ? 0 : list.size(), list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据父ID分页查询并返回记录数") @Parameters({ @Parameter(name = "metaid", description = "父ID", in = ParameterIn.QUERY, example = "0"), @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = ""), @Parameter(name = "pageSize", description = "每页条数", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "pageIndex", description = "分页数(从1开始)", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectPageAndCountByPid") public ResponseMsg> selectPageAndCountByPid(Integer metaid, String name, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("每页页数或分页数小于1", null); } if (null == metaid || metaid < 1) { return fail("父ID不能为空且大于1", null); } int count = metaService.selectCountByPid(metaid, name); if (count == 0) { return success(0, null); } List rs = metaService.selectPageByPid(metaid, name, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据ID查询WKT") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp"), @Parameter(name = "gid", description = "GID", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectWktById") public ResponseMsg selectWktById(String name, Integer gid) { try { GeomBaseMapper baseMapper = ClassHelper.getGeoBaseMapper(name); if (null == baseMapper) { return fail("查询对象不存在或不是空间表", null); } String tab = BaseQueryService.getTabName(baseMapper); if (StringHelper.isNull(tab)) { return fail("查询对象的表名不存在", null); } String wkt = baseMapper.selectWktById(tab, gid); if (!StringHelper.isEmpty(wkt)) { wkt = AesHelper.encrypt(wkt); } return success(wkt); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据GID查询") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp"), @Parameter(name = "gid", description = "GID", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectByGid") public ResponseMsg selectByGid(String name, int gid) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (null == baseMapper) { return fail("查询对象不存在", null); } QueryWrapper wrapper = new QueryWrapper(); if (baseMapper instanceof GeomBaseMapper) { wrapper.select("ST_AsText(geom) as geom, *"); } wrapper.eq("gid", gid); Object obj = baseMapper.selectOne(wrapper); setWktEncrypt(obj); return success(null == obj ? 0 : 1, obj); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据实体名查询表名") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp") }) @GetMapping(value = "/selectTabByEntity") public ResponseMsg selectTabByEntity(String name) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } String tab = BaseQueryService.getTabName(baseMapper); return success(tab); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "模糊搜索字段") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlgagnp"), @Parameter(name = "field", description = "字段", in = ParameterIn.QUERY, example = "name"), @Parameter(name = "value", description = "值", in = ParameterIn.QUERY, example = "'县'") }) @GetMapping(value = "/selectFieldFuzzy") public ResponseMsg> selectFieldFuzzy(String name, String field, String value) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } String tab = BaseQueryService.getTabName(baseMapper); if (StringHelper.isNull(tab)) { return fail("查询对象不存在", null); } if (StringHelper.isEmpty(field) || StringHelper.isSqlInjection(field)) { return fail("查询字段不正确", null); } value = StringHelper.isEmpty(value) ? "%" : StringHelper.getLikeUpperStr(value); List rs = baseMapper.selectFieldFuzzy(tab, field, value); return success(rs); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "模糊搜索用户") @Parameters({ @Parameter(name = "name", description = "用户名", in = ParameterIn.QUERY, example = "室") }) @GetMapping(value = "/selectUserFuzzy") public ResponseMsg> selectUserFuzzy(String name) { try { List rs = baseQueryService.selectUserFuzzy(name); return success(rs); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "模糊搜索单位") @Parameters({ @Parameter(name = "name", description = "单位名", in = ParameterIn.QUERY, example = "司") }) @GetMapping(value = "/selectDepFuzzy") public ResponseMsg> selectDepFuzzy(String name) { try { List rs = baseQueryService.selectDepFuzzy(name); return success(rs); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询所有表") @Parameters({ @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = "点"), @Parameter(name = "hasGeom", description = "含有Geom字段", in = ParameterIn.QUERY, example = "false") }) @GetMapping(value = "/selectTabs") public ResponseMsg> selectTabs(String name, Boolean hasGeom) { try { List list = dictService.selectDictTab(name, null == hasGeom || !hasGeom ? "gid" : "geom"); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据表名分页查询表") @GetMapping(value = "/selectTabsByPage") @Parameters({ @Parameter(name = "depcode", description = "单位编码", in = ParameterIn.QUERY, example = "00"), @Parameter(name = "dirs", description = "目录编码", in = ParameterIn.QUERY, example = "00,01"), @Parameter(name = "tab", description = "表名", in = ParameterIn.QUERY, example = "dlg_"), @Parameter(name = "types", description = "类别", in = ParameterIn.QUERY, example = "测绘(ESV)"), @Parameter(name = "hasGeom", description = "含有Geom字段", in = ParameterIn.QUERY, example = "false"), @Parameter(name = "pageSize", description = "每页条数", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "pageIndex", description = "分页数(从1开始)", in = ParameterIn.QUERY, example = "1") }) public ResponseMsg selectTabsByPage(String depcode, String dirs, String tab, String types, Boolean hasGeom, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("每页页数或分页数小于1", null); } if (StringHelper.isSqlInjection(depcode)) { return fail("单位代码含有非法字符", null); } String filters = "1=1"; if (!StringHelper.isEmpty(depcode)) { filters += String.format(" and depid like '%s%%'", depcode); } dirs = DataLibService.copeCodes(dirs, "dirid"); if (dirs != null) { filters += String.format(" and %s", dirs); } String typesFilter = getTypesFilter(types); String field = null == hasGeom || !hasGeom ? "gid" : "geom"; int count = baseQueryService.selectTabsForCount(tab, typesFilter, field); if (count == 0) { return success(0, null); } List rs = baseQueryService.selectTabsByPage(tab, typesFilter, field, filters, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex, null); } } /** * 获取类别过滤条件 */ private String getTypesFilter(String types) { if (StringHelper.isEmpty(types)) { return null; } List list = new ArrayList<>(); for (String type : types.split(StaticData.COMMA)) { switch (type) { case "测绘(ESV)": list.add("bak like '工程数据/测绘%'"); break; case "勘察(EGE)": list.add("bak like '工程数据/勘察%'"); break; case "地灾(EGD)": list.add("bak like '工程数据/地灾%'"); break; case "洞库(EGD)": list.add("bak like '工程数据/洞库%'"); break; case "基础测绘": list.add("bak like '基础数据/测绘%'"); break; case "基础地灾": list.add("bak like '基础数据/地灾%'"); break; case "基础勘察": list.add("bak like '基础数据/勘察%'"); break; case "合规数据": case "管理数据": default: break; } } return list.isEmpty() ? null : StringHelper.join(list, " or "); } @SysLog() @Operation(description = "查询字段信息") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlg25wAanp") }) @GetMapping(value = "/selectFields") public ResponseMsg> selectFields(String name) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } String tabName = BaseQueryService.getTabName(baseMapper); if (tabName == null) { return null; } String[] strs = tabName.split("\\."); List list = baseQueryService.selectFields(strs[0], strs[1]); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询字段信息") @Parameters({ @Parameter(name = "ns", description = "名称空间", in = ParameterIn.QUERY, example = "bd"), @Parameter(name = "tab", description = "表名", in = ParameterIn.QUERY, example = "dlg25wAanp") }) @GetMapping(value = "/selectTabFields") public ResponseMsg> selectTabFields(String ns, String tab) { try { if (StringHelper.isEmpty(ns) || StringHelper.isEmpty(tab)) { return fail("名称空间和表名不能为空", null); } List list = baseQueryService.selectFields(ns, tab); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询值域信息") @Parameters({ @Parameter(name = "name", description = "映射名称", in = ParameterIn.QUERY, example = "dlg25wAanp") }) @GetMapping(value = "/selectDomains") public ResponseMsg> selectDomains(String name) { try { BasicMapper baseMapper = ClassHelper.getBasicMapper(name); if (baseMapper == null) { return fail("查询对象不存在", null); } String tabName = BaseQueryService.getTabName(baseMapper); if (tabName == null) { return null; } String[] strs = tabName.split("\\."); List list = baseQueryService.selectDomains(strs[0], strs[1]); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询文件") @Parameters({ @Parameter(name = "tabName", description = "表名", in = ParameterIn.QUERY, example = "lf.sys_style"), @Parameter(name = "eventid", description = "主键", in = ParameterIn.QUERY, example = "fa25979a5ef8b43ba82a0be35b3fb0d4") }) @GetMapping(value = "/selectFiles") public ResponseMsg> selectFiles(String tabName, String eventid) { try { if (StringHelper.isEmpty(tabName) || StringHelper.isEmpty(eventid)) { return fail("参数不能为空", null); } List list = attachService.selectByTab(tabName, eventid); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "删除文件") @Parameters({ @Parameter(name = "ids", description = "ID数组", in = ParameterIn.QUERY, example = "1,2") }) @GetMapping(value = "/deletes") public ResponseMsg deleteFiles(@RequestParam List ids) { try { if (ids == null || ids.isEmpty()) { return fail("id数组不能为空", -1); } int rows = attachService.deletes(ids); return success(rows); } catch (Exception ex) { return fail(ex, 0); } } @SysLog() @Operation(description = "查询元数据中溢出的单位ID") @Parameters({ @Parameter(name = "reqEntity", description = "请求下载实体") }) @ResponseBody @PostMapping(value = "/selectMetaOverflowDep") public ResponseMsg selectMetaOverflowDep(@RequestBody DownloadReqEntity dr, HttpServletRequest req, HttpServletResponse res) { try { if (null == dr || null == dr.getIds() || dr.getIds().isEmpty()) { return fail("请选择要下载的文件ID"); } UserEntity ue = tokenService.getCurrentUser(req); if (StaticData.ADMIN.equals(ue.getUid())) { return success(new ArrayList()); } List list = metaService.selectMetaOverflowDep(ue, dr); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询DB中溢出的单位ID") @Parameters({ @Parameter(name = "reqEntity", description = "请求下载实体") }) @ResponseBody @PostMapping(value = "/selectDbOverflowDep") public ResponseMsg selectDbOverflowDep(@RequestBody DownloadReqEntity dr, HttpServletRequest req, HttpServletResponse res) { try { if (null == dr || null == dr.getEntities() || dr.getEntities().isEmpty()) { return fail("请选择要下载的实体名"); } if (!StringHelper.isEmpty(dr.getWkt())) { dr.setWkt(AesHelper.decrypt(dr.getWkt())); } UserEntity ue = tokenService.getCurrentUser(req); if (StaticData.ADMIN.equals(ue.getUid())) { return success(new ArrayList()); } List list = dataLibService.selectDbOverflowDep(ue, dr); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据单位编码数组查询单位") @Parameters({ @Parameter(name = "codes", description = "单位编码数组", in = ParameterIn.QUERY, schema = @Schema(type = "array"), example = "00,0001") }) @GetMapping(value = "/selectDepsByCodes") public ResponseMsg selectDepsByCodes(String[] codes) { try { if (null == codes || codes.length == 0) { return fail("单位ID集合为空"); } List list = depService.selectDepsByCodes(codes); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "下载DB数据") @Parameters({ @Parameter(name = "dr", description = "请求下载实体") }) @ResponseBody @PostMapping(value = "/downloadDbData") public ResponseMsg downloadDbData(@RequestBody DownloadReqEntity dr, HttpServletRequest req) { try { if (null == dr || null == dr.getEntities() || dr.getEntities().isEmpty()) { return fail("请选择要下载的实体名"); } if (StringHelper.isEmpty(dr.getPwd())) { return fail("密码不能为空"); } if (!DownloadService.decryptPwd(dr)) { return fail("密码解密失败", null); } if (StringHelper.isPwdInvalid(dr.getPwd())) { return fail("密码不符合要求"); } if (!StringHelper.isEmpty(dr.getWkt())) { dr.setWkt(AesHelper.decrypt(dr.getWkt())); } UserEntity ue = tokenService.getCurrentUser(req); String guid = dataLibService.downloadDbReq(ue, dr); return success(guid); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查看文件") @Parameters({ @Parameter(name = "guid", description = "附件Guid", in = ParameterIn.QUERY) }) @GetMapping(value = "/downloadForView") public void downloadForView(String guid, HttpServletResponse res) { metaService.downloadForView(guid, true, res); } @SysLog() @Operation(description = "分页查询下载文件") @Parameters({ @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = ""), @Parameter(name = "pageSize", description = "每页条数", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "pageIndex", description = "分页数(从1开始)", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectPageCountForDownload") public ResponseMsg> selectPageCountForDownload(String name, Integer pageSize, Integer pageIndex, HttpServletRequest req) { try { if (pageSize < 1 || pageIndex < 1) { return fail("每页页数或分页数小于1", null); } UserEntity ue = tokenService.getCurrentUser(req); if (ue == null) { return fail("用户未登录", null); } int count = downloadService.selectCountForUser(ue.getId(), "3,4", name); if (count == 0) { return success(0, null); } List rs = downloadService.selectByPageForUser(ue.getId(), "3,4", name, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询目录类别") @Parameters({ @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = "D") }) @GetMapping(value = "/selectDirTypes") public ResponseMsg selectDirTypes(String name) { try { List list = baseQueryService.selectDirTypes(name); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "查询项目名称") @Parameters({ @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = "西") }) @GetMapping(value = "/selectProject") public ResponseMsg selectProject(String name) { try { List list = dirService.selectProject(name); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(description = "根据元数据ID查询") @Parameters({ @Parameter(name = "id", description = "ID", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectMetaById") public ResponseMsg selectMetaById(int id) { try { MetaEntity entity = metaService.selectById(id); return success(entity); } catch (Exception ex) { return fail(ex, null); } } }