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.system.annotation.SysLog;
|
import com.terra.system.entity.all.BaseGeoEntity;
|
import com.terra.system.entity.all.ResponseMsg;
|
import com.terra.system.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.system.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.ArraySchema;
|
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<Long> 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<List<?>> 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<Object> 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<List<?>> 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<List<MetaEntity>> 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<MetaEntity> 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<String> 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<Object> 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<Object> 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<List<String>> 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<String> 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<List<IdNameEntity>> selectUserFuzzy(String name) {
|
try {
|
List<IdNameEntity> 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<List<IdNameEntity>> selectDepFuzzy(String name) {
|
try {
|
List<IdNameEntity> 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<List<TabEntity>> selectTabs(String name, Boolean hasGeom) {
|
try {
|
List<TabEntity> 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<Object> 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<TabEntity> 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<String> 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<List<DictEntity>> 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<DictEntity> 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<List<DictEntity>> selectTabFields(String ns, String tab) {
|
try {
|
if (StringHelper.isEmpty(ns) || StringHelper.isEmpty(tab)) {
|
return fail("名称空间和表名不能为空", null);
|
}
|
|
List<DictEntity> 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<List<DomainEntity>> 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<DomainEntity> 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<List<AttachEntity>> selectFiles(String tabName, String eventid) {
|
try {
|
if (StringHelper.isEmpty(tabName) || StringHelper.isEmpty(eventid)) {
|
return fail("参数不能为空", null);
|
}
|
|
List<AttachEntity> 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<Integer> deleteFiles(@RequestParam List<Integer> 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<Object> 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<String>());
|
}
|
|
List<String> 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<Object> 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<String>());
|
}
|
|
List<String> 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<Object> selectDepsByCodes(String[] codes) {
|
try {
|
if (null == codes || codes.length == 0) {
|
return fail("单位ID集合为空");
|
}
|
|
List<IdNameEntity> 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<Object> 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<List<DownloadEntity>> 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<DownloadEntity> 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<Object> selectDirTypes(String name) {
|
try {
|
List<KeyValueEntity> 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<Object> selectProject(String name) {
|
try {
|
List<DirEntity> 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<MetaEntity> selectMetaById(int id) {
|
try {
|
MetaEntity entity = metaService.selectById(id);
|
|
return success(entity);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
}
|