初始代码
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>yunzhupaas-visualdata</artifactId>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<version>5.2.0-RELEASE</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>yunzhupaas-visualdata-controller</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<artifactId>yunzhupaas-visualdata-biz</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,127 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualAssetsEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualassets.*;
|
||||
import com.yunzhupaas.visualdata.service.VisualAssetsService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 静态资源
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.5.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2023年7月7日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "全局变量", description = "assets")
|
||||
@RequestMapping("/api/blade-visual/assets")
|
||||
public class VisualAssetsController extends SuperController<VisualAssetsService, VisualAssetsEntity> {
|
||||
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
public ActionResult<VisualPageVO<VisualAssetsListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualAssetsEntity> data = getBaseService().getList(pagination);
|
||||
List<VisualAssetsListVO> list = JsonUtil.getJsonToList(data, VisualAssetsListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualAssetsInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualAssetsEntity entity = getBaseService().getInfo(id);
|
||||
VisualAssetsInfoVO vo = JsonUtil.getJsonToBean(entity, VisualAssetsInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param recordCrForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordCrForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody VisualAssetsCrForm recordCrForm) {
|
||||
VisualAssetsEntity entity = JsonUtil.getJsonToBean(recordCrForm, VisualAssetsEntity.class);
|
||||
getBaseService().create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param recordUpForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordUpForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualAssetsUpForm recordUpForm) {
|
||||
VisualAssetsEntity entity = JsonUtil.getJsonToBean(recordUpForm, VisualAssetsEntity.class);
|
||||
getBaseService().update(entity.getId(), entity);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
if (getBaseService().delete(ids)) {
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualCategoryEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.VisualPagination;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualcategory.VisualCategoryCrForm;
|
||||
import com.yunzhupaas.visualdata.model.visualcategory.VisualCategoryInfoVO;
|
||||
import com.yunzhupaas.visualdata.model.visualcategory.VisualCategoryListVO;
|
||||
import com.yunzhupaas.visualdata.model.visualcategory.VisualCategoryUpForm;
|
||||
import com.yunzhupaas.visualdata.service.VisualCategoryService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 大屏分类
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2024年6月15日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏分类", description = "category")
|
||||
@RequestMapping("/api/blade-visual/category")
|
||||
public class VisualCategoryController extends SuperController<VisualCategoryService, VisualCategoryEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualCategoryService categoryService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "列表")
|
||||
@GetMapping("/page")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualPageVO<VisualCategoryListVO>> page(VisualPaginationModel pagination) {
|
||||
List<VisualCategoryEntity> data = categoryService.getList(pagination,true);
|
||||
List<VisualCategoryListVO> list = JsonUtil.getJsonToList(data, VisualCategoryListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "列表")
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<List<VisualCategoryListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualCategoryEntity> data = categoryService.getList(pagination,false);
|
||||
List<VisualCategoryListVO> list = JsonUtil.getJsonToList(data, VisualCategoryListVO.class);
|
||||
return ActionResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
public ActionResult<VisualCategoryInfoVO> info(@RequestParam("id") String id) {
|
||||
VisualCategoryEntity entity = categoryService.getInfo(id);
|
||||
VisualCategoryInfoVO vo = JsonUtil.getJsonToBean(entity, VisualCategoryInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param categoryCrForm 大屏分类模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "categoryCrForm", description = "大屏分类模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody @Valid VisualCategoryCrForm categoryCrForm) {
|
||||
VisualCategoryEntity entity = JsonUtil.getJsonToBean(categoryCrForm, VisualCategoryEntity.class);
|
||||
if (categoryService.isExistByValue(entity.getCategoryvalue(), entity.getId())) {
|
||||
return ActionResult.fail(MsgCode.EXIST003.get());
|
||||
}
|
||||
categoryService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param categoryUpForm 大屏分类模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "categoryUpForm", description = "大屏分类模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualCategoryUpForm categoryUpForm) {
|
||||
VisualCategoryEntity entity = JsonUtil.getJsonToBean(categoryUpForm, VisualCategoryEntity.class);
|
||||
if (categoryService.isExistByValue(entity.getCategoryvalue(), entity.getId())) {
|
||||
return ActionResult.fail(MsgCode.EXIST003.get());
|
||||
}
|
||||
boolean flag = categoryService.update(categoryUpForm.getId(), entity);
|
||||
if (!flag) {
|
||||
return ActionResult.fail(MsgCode.FA001.get());
|
||||
}
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
VisualCategoryEntity entity = categoryService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
categoryService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.util.StringUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualComponentEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualcomponent.*;
|
||||
import com.yunzhupaas.visualdata.service.VisualComponentService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 大屏组件库
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.5.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2023年7月7日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏组件库配置", description = "component")
|
||||
@RequestMapping("/api/blade-visual/component")
|
||||
public class VisualComponentController extends SuperController<VisualComponentService, VisualComponentEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualComponentService componentService;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
public ActionResult<VisualPageVO<VisualComponentListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualComponentEntity> data = componentService.getList(pagination);
|
||||
List<VisualComponentListVO> list = JsonUtil.getJsonToList(data, VisualComponentListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualComponentInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualComponentEntity entity = componentService.getInfo(id);
|
||||
VisualComponentInfoVO vo = JsonUtil.getJsonToBean(entity, VisualComponentInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param recordCrForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordCrForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody VisualComponentCrForm recordCrForm) {
|
||||
VisualComponentEntity entity = JsonUtil.getJsonToBean(recordCrForm, VisualComponentEntity.class);
|
||||
componentService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param recordUpForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordUpForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualComponentUpForm recordUpForm) {
|
||||
VisualComponentEntity entity = JsonUtil.getJsonToBean(recordUpForm, VisualComponentEntity.class);
|
||||
componentService.update(entity.getId(), entity);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
VisualComponentEntity entity = componentService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
componentService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,439 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.Method;
|
||||
import cn.xuyanwu.spring.file.storage.FileInfo;
|
||||
import com.google.common.base.Joiner;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.base.vo.DownloadVO;
|
||||
import com.yunzhupaas.base.vo.ListVO;
|
||||
import com.yunzhupaas.config.ConfigValueUtil;
|
||||
import com.yunzhupaas.constant.FileTypeConstant;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.emnus.ModuleTypeEnum;
|
||||
import com.yunzhupaas.exception.DataException;
|
||||
import com.yunzhupaas.model.FileListVO;
|
||||
import com.yunzhupaas.util.*;
|
||||
import com.yunzhupaas.util.FileExport;
|
||||
import com.yunzhupaas.util.FileUploadUtils;
|
||||
import com.yunzhupaas.visualdata.entity.VisualCategoryEntity;
|
||||
import com.yunzhupaas.visualdata.entity.VisualConfigEntity;
|
||||
import com.yunzhupaas.visualdata.entity.VisualEntity;
|
||||
import com.yunzhupaas.visualdata.enums.VisualImgEnum;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.visual.*;
|
||||
import com.yunzhupaas.visualdata.model.visualcategory.VisualCategoryListVO;
|
||||
import com.yunzhupaas.visualdata.model.visualconfig.VisualConfigInfoModel;
|
||||
import com.yunzhupaas.visualdata.model.visualfile.ImageVO;
|
||||
import com.yunzhupaas.visualdata.service.VisualCategoryService;
|
||||
import com.yunzhupaas.visualdata.service.VisualConfigService;
|
||||
import com.yunzhupaas.visualdata.service.VisualService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 大屏基本信息
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2024年6月15日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏基本信息", description = "visual")
|
||||
@RequestMapping("/api/blade-visual/visual")
|
||||
@Slf4j
|
||||
public class VisualController extends SuperController<VisualService, VisualEntity> {
|
||||
|
||||
@Autowired
|
||||
private FileExport fileExport;
|
||||
@Autowired
|
||||
private VisualService visualService;
|
||||
@Autowired
|
||||
private VisualConfigService configService;
|
||||
@Autowired
|
||||
private ConfigValueUtil configValueUtil;
|
||||
@Autowired
|
||||
private VisualCategoryService categoryService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualPageVO<VisualListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualEntity> data = visualService.getList(pagination);
|
||||
List<VisualListVO> list = JsonUtil.getJsonToList(data, VisualListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
public ActionResult<VisualInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualEntity visual = visualService.getInfo(id);
|
||||
VisualConfigEntity config = configService.getInfo(id);
|
||||
VisualInfoVO vo = new VisualInfoVO();
|
||||
vo.setVisual(JsonUtil.getJsonToBean(visual, VisualInfoModel.class));
|
||||
vo.setConfig(JsonUtil.getJsonToBean(config, VisualConfigInfoModel.class));
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param visualCrform 大屏模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "visualCrform", description = "大屏模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody @Valid VisualCrform visualCrform) {
|
||||
VisualEntity visual = JsonUtil.getJsonToBean(visualCrform.getVisual(), VisualEntity.class);
|
||||
visual.setBackgroundUrl(VisusalImgUrl.url + configValueUtil.getBiVisualPath() + "bg/bg1.png");
|
||||
VisualConfigEntity config = JsonUtil.getJsonToBean(visualCrform.getConfig(), VisualConfigEntity.class);
|
||||
visualService.create(visual, config);
|
||||
Map<String, String> data = new HashMap<>(16);
|
||||
data.put("id", visual.getId());
|
||||
return ActionResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param categoryUpForm 大屏模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "categoryUpForm", description = "大屏模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualUpform categoryUpForm) {
|
||||
VisualEntity visual = JsonUtil.getJsonToBean(categoryUpForm.getVisual(), VisualEntity.class);
|
||||
VisualConfigEntity config = JsonUtil.getJsonToBean(categoryUpForm.getConfig(), VisualConfigEntity.class);
|
||||
visualService.update(visual.getId(), visual, config);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(@RequestParam("ids")String ids) {
|
||||
VisualEntity entity = visualService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
visualService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "复制")
|
||||
@PostMapping("/copy")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult copy(@RequestParam("id")String id) {
|
||||
VisualEntity entity = visualService.getInfo(id);
|
||||
VisualConfigEntity config = configService.getInfo(id);
|
||||
if (entity != null) {
|
||||
entity.setTitle(entity.getTitle() + "_复制");
|
||||
visualService.create(entity, config);
|
||||
return ActionResult.success(MsgCode.SU005.get(), entity.getId());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取类型
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取类型")
|
||||
@GetMapping("/category")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<List<VisualCategoryListVO>> list() {
|
||||
List<VisualCategoryEntity> data = categoryService.getList();
|
||||
List<VisualCategoryListVO> list = JsonUtil.getJsonToList(data, VisualCategoryListVO.class);
|
||||
return ActionResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param file 文件
|
||||
* @param type 类型
|
||||
* @return
|
||||
*/
|
||||
@NoDataSourceBind()
|
||||
@Operation(summary = "上传文件")
|
||||
@Parameters({
|
||||
@Parameter(name = "type", description = "类型",required = true),
|
||||
})
|
||||
@PostMapping(value = "/put-file/{type}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public ActionResult<ImageVO> file(MultipartFile file, @PathVariable("type") String type) {
|
||||
ImageVO vo = new ImageVO();
|
||||
VisualImgEnum imgEnum = VisualImgEnum.getByMessage(type);
|
||||
if (imgEnum != null) {
|
||||
String path = imgEnum.getMessage();
|
||||
String filePath = configValueUtil.getBiVisualPath() + path + "/";
|
||||
String name = RandomUtil.uuId() + "." + UpUtil.getFileType(file);
|
||||
//上传文件
|
||||
FileInfo fileInfo = FileUploadUtils.uploadFile(file, filePath, name);
|
||||
vo.setOriginalName(fileInfo.getOriginalFilename());
|
||||
vo.setLink(VisusalImgUrl.url + fileInfo.getPath() + fileInfo.getFilename());
|
||||
vo.setName(VisusalImgUrl.url + fileInfo.getPath() + fileInfo.getFilename());
|
||||
}
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图片列表
|
||||
*
|
||||
* @param type 文件夹
|
||||
* @return
|
||||
*/
|
||||
@NoDataSourceBind()
|
||||
@Operation(summary = "获取图片列表")
|
||||
@GetMapping("/{type}")
|
||||
@Parameters({
|
||||
@Parameter(name = "type", description = "文件夹", required = true),
|
||||
})
|
||||
public ActionResult<List<ImageVO>> getFile(@PathVariable("type") String type) {
|
||||
List<ImageVO> vo = new ArrayList<>();
|
||||
VisualImgEnum imgEnum = VisualImgEnum.getByMessage(type);
|
||||
if (imgEnum != null) {
|
||||
String path = configValueUtil.getBiVisualPath() + imgEnum.getMessage() + "/";
|
||||
List<FileListVO> fileList = FileUploadUtils.getFileList(path);
|
||||
fileList.forEach(fileListVO -> {
|
||||
ImageVO imageVO = new ImageVO();
|
||||
imageVO.setName(fileListVO.getFileName());
|
||||
imageVO.setLink(VisusalImgUrl.url + fileListVO.getFileName());
|
||||
imageVO.setOriginalName(fileListVO.getFileName());
|
||||
vo.add(imageVO);
|
||||
});
|
||||
}
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 大屏下拉框
|
||||
*/
|
||||
@Operation(summary = "大屏下拉框")
|
||||
@GetMapping("/Selector")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<ListVO<VisualSelectorVO>> selector() {
|
||||
List<VisualEntity> visualList = visualService.getList();
|
||||
List<VisualCategoryEntity> categoryList = categoryService.getList();
|
||||
List<VisualSelectorVO> listVos = new ArrayList<>();
|
||||
for (VisualCategoryEntity category : categoryList) {
|
||||
VisualSelectorVO categoryModel = new VisualSelectorVO();
|
||||
categoryModel.setId(category.getCategoryvalue());
|
||||
categoryModel.setFullName(category.getCategorykey());
|
||||
List<VisualEntity> visualAll = visualList.stream().filter(t -> t.getCategory().equals(Integer.parseInt(category.getCategoryvalue()))).collect(Collectors.toList());
|
||||
if (visualAll.size() > 0) {
|
||||
List<VisualSelectorVO> childList = new ArrayList<>();
|
||||
for (VisualEntity visual : visualAll) {
|
||||
VisualSelectorVO visualModel = new VisualSelectorVO();
|
||||
visualModel.setId(visual.getId());
|
||||
visualModel.setFullName(visual.getTitle());
|
||||
visualModel.setChildren(null);
|
||||
visualModel.setHasChildren(false);
|
||||
childList.add(visualModel);
|
||||
}
|
||||
categoryModel.setHasChildren(true);
|
||||
categoryModel.setChildren(childList);
|
||||
listVos.add(categoryModel);
|
||||
}
|
||||
}
|
||||
ListVO vo = new ListVO();
|
||||
vo.setList(listVos);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 大屏导出
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "大屏导出")
|
||||
@PostMapping("/{id}/Actions/ExportData")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<DownloadVO> exportData(@PathVariable("id") String id) {
|
||||
VisualEntity entity = visualService.getInfo(id);
|
||||
VisualConfigEntity configEntity = configService.getInfo(id);
|
||||
VisualModel model = new VisualModel();
|
||||
model.setEntity(entity);
|
||||
model.setConfigEntity(configEntity);
|
||||
DownloadVO downloadVO = fileExport.exportFile(model, configValueUtil.getTemporaryFilePath(), entity.getTitle(), ModuleTypeEnum.VISUAL_DATA.getTableName());
|
||||
return ActionResult.success(downloadVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 大屏导入
|
||||
*
|
||||
* @param multipartFile 文件
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "大屏导入")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
@PostMapping(value = "/Model/Actions/ImportData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public ActionResult ImportData(MultipartFile multipartFile) throws DataException {
|
||||
//判断是否为.json结尾
|
||||
if (FileUtil.existsSuffix(multipartFile, ModuleTypeEnum.VISUAL_DATA.getTableName())) {
|
||||
return ActionResult.fail(MsgCode.IMP002.get());
|
||||
}
|
||||
//获取文件内容
|
||||
String fileContent = FileUtil.getFileContent(multipartFile);
|
||||
VisualModel vo = JsonUtil.getJsonToBean(fileContent, VisualModel.class);
|
||||
visualService.createImport(vo.getEntity(), vo.getConfigEntity());
|
||||
return ActionResult.success(MsgCode.SU000.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取API动态数据
|
||||
*
|
||||
* @param apiRequest 大屏模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取API动态数据")
|
||||
@PostMapping(value = "/GetApiData")
|
||||
@Parameters({
|
||||
@Parameter(name = "apiRequest", description = "大屏模型",required = true),
|
||||
})
|
||||
public String getApiData(@RequestBody @Valid VisualApiRequest apiRequest) throws IOException {
|
||||
OkHttpClient client = new OkHttpClient.Builder().callTimeout(Duration.ofSeconds(apiRequest.getTimeout())).build();
|
||||
Headers headers;
|
||||
Request request;
|
||||
if (!apiRequest.getHeaders().isEmpty()) {
|
||||
Headers.Builder builder = new Headers.Builder();
|
||||
apiRequest.getHeaders().forEach((k, v) -> {
|
||||
builder.add(k, v);
|
||||
});
|
||||
headers = builder.build();
|
||||
} else {
|
||||
headers = new Headers.Builder().build();
|
||||
}
|
||||
if (apiRequest.getMethod().equalsIgnoreCase("post")) {
|
||||
request = new Request.Builder().url(apiRequest.getUrl())
|
||||
.post(okhttp3.RequestBody.create(okhttp3.MediaType.parse("application/json;charset=utf-8"), apiRequest.getParams().isEmpty() ? "" : JsonUtil.getObjectToString(apiRequest.getParams())))
|
||||
.headers(headers)
|
||||
.build();
|
||||
} else {
|
||||
String params = Joiner.on("&")
|
||||
.useForNull("")
|
||||
.withKeyValueSeparator("=")
|
||||
.join(apiRequest.getParams());
|
||||
request = new Request.Builder().url(apiRequest.getUrl() + (apiRequest.getUrl().contains("?") ? "&" : "?") + params)
|
||||
.get()
|
||||
.headers(headers)
|
||||
.build();
|
||||
}
|
||||
return client.newCall(request).execute().body().string();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取API动态数据
|
||||
*
|
||||
* @param proxyModel 代理模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取API动态数据")
|
||||
@PostMapping(value = "/proxy")
|
||||
@Parameters({
|
||||
@Parameter(name = "proxyModel", description = "代理模型",required = true),
|
||||
})
|
||||
public String getApiData(@RequestBody @Valid VisualProxyModel proxyModel) throws IOException {
|
||||
Map<String, String> headers;
|
||||
boolean isForm = false;
|
||||
if (!proxyModel.getHeaders().isEmpty()) {
|
||||
headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
|
||||
headers.putAll(proxyModel.getHeaders());
|
||||
if(headers.containsKey("form")){
|
||||
//头部指定当前为form表单
|
||||
isForm = true;
|
||||
}
|
||||
} else {
|
||||
headers = new HashMap<>(1, 1);
|
||||
}
|
||||
//Header无自定义TOKEN 取当前TOKEN
|
||||
if(!headers.containsKey("Authorization")){
|
||||
String token = UserProvider.getToken();
|
||||
if(StringUtil.isNotEmpty(token)){
|
||||
headers.put("Authorization", token);
|
||||
}
|
||||
}
|
||||
HttpRequest httpRequest = HttpRequest.of(proxyModel.getUrl()).method(Method.valueOf(proxyModel.getMethod().toUpperCase())).addHeaders(headers);
|
||||
if(isForm){
|
||||
httpRequest.form(proxyModel.getData());
|
||||
}else if(proxyModel.getData() != null && !proxyModel.getData().isEmpty()){
|
||||
httpRequest.body(JsonUtil.getObjectToString(proxyModel.getData()));
|
||||
}else {
|
||||
httpRequest.form(proxyModel.getParams());
|
||||
}
|
||||
try {
|
||||
return httpRequest.timeout(10000).execute().body();
|
||||
} catch (Exception e){
|
||||
log.info("接口请求失败 {} {}", proxyModel.getUrl(), e.getMessage());
|
||||
throw new DataException(MsgCode.FA037.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.DesUtil;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.util.StringUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualDbEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.VisualPagination;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualdb.*;
|
||||
import com.yunzhupaas.visualdata.service.VisualDbService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 大屏数据源配置
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2024年6月15日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏数据源配置", description = "db")
|
||||
@RequestMapping("/api/blade-visual/db")
|
||||
public class VisualDbController extends SuperController<VisualDbService, VisualDbEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualDbService dbService;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
public ActionResult<VisualPageVO<VisualDbListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualDbEntity> data = dbService.getList(pagination);
|
||||
List<VisualDbListVO> list = JsonUtil.getJsonToList(data, VisualDbListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualDbInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualDbEntity entity = dbService.getInfo(id);
|
||||
VisualDbInfoVO vo = JsonUtil.getJsonToBean(entity, VisualDbInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增或修改
|
||||
*
|
||||
* @param dbUpForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增或修改")
|
||||
@PostMapping("/submit")
|
||||
@Parameters({
|
||||
@Parameter(name = "dbUpForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult submit(@RequestBody VisualDbUpForm dbUpForm) {
|
||||
VisualDbEntity entity = JsonUtil.getJsonToBean(dbUpForm, VisualDbEntity.class);
|
||||
if (StringUtil.isEmpty(entity.getId())) {
|
||||
dbService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
} else {
|
||||
dbService.update(entity.getId(), entity);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
VisualDbEntity entity = dbService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
dbService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 下拉数据源
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "下拉数据源")
|
||||
@GetMapping("/db-list")
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<List<VisualDbSelectVO>> list() {
|
||||
List<VisualDbEntity> data = dbService.getList();
|
||||
List<VisualDbSelectVO> list = JsonUtil.getJsonToList(data, VisualDbSelectVO.class);
|
||||
return ActionResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据源测试连接
|
||||
*
|
||||
* @param dbCrForm 数据源模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "数据源测试连接")
|
||||
@PostMapping("/db-test")
|
||||
@Parameters({
|
||||
@Parameter(name = "dbCrForm", description = "数据源模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult test(@RequestBody VisualDbCrForm dbCrForm) {
|
||||
VisualDbEntity entity = JsonUtil.getJsonToBean(dbCrForm, VisualDbEntity.class);
|
||||
entity.setPassword(DesUtil.aesOrDecode(entity.getPassword(), false, true));
|
||||
boolean flag = dbService.dbTest(entity);
|
||||
if (flag) {
|
||||
return ActionResult.success(MsgCode.DB301.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.DB302.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 动态执行SQL
|
||||
*
|
||||
* @param queryForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "动态执行SQL")
|
||||
@PostMapping("/dynamic-query")
|
||||
@Parameters({
|
||||
@Parameter(name = "queryForm", description = "数据模型",required = true),
|
||||
})
|
||||
public ActionResult query(@RequestBody VisualDbQueryForm queryForm) {
|
||||
VisualDbEntity entity = dbService.getInfo(queryForm.getId());
|
||||
List<Map<String, Object>> data = new ArrayList<>();
|
||||
if (entity != null) {
|
||||
entity.setPassword(DesUtil.aesOrDecode(entity.getPassword(), false, true));
|
||||
queryForm.setSql(DesUtil.aesOrDecode(queryForm.getSql(), false, true));
|
||||
data = dbService.query(entity, queryForm.getSql());
|
||||
}
|
||||
return ActionResult.success(data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualGlobEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualglob.*;
|
||||
import com.yunzhupaas.visualdata.service.VisualGlobService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 全局变量
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.5.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2023年7月7日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "全局变量", description = "glob")
|
||||
@RequestMapping("/api/blade-visual/visual-global")
|
||||
public class VisualGlobController extends SuperController<VisualGlobService, VisualGlobEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualGlobService gloService;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
public ActionResult<VisualPageVO<VisualGlobListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualGlobEntity> data = gloService.getList(pagination);
|
||||
List<VisualGlobListVO> list = JsonUtil.getJsonToList(data, VisualGlobListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualGlobInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualGlobEntity entity = gloService.getInfo(id);
|
||||
VisualGlobInfoVO vo = JsonUtil.getJsonToBean(entity, VisualGlobInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param recordCrForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordCrForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody VisualGlobCrForm recordCrForm) {
|
||||
VisualGlobEntity entity = JsonUtil.getJsonToBean(recordCrForm, VisualGlobEntity.class);
|
||||
gloService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param recordUpForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordUpForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualGlobUpForm recordUpForm) {
|
||||
VisualGlobEntity entity = JsonUtil.getJsonToBean(recordUpForm, VisualGlobEntity.class);
|
||||
gloService.update(entity.getId(), entity);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
VisualGlobEntity entity = gloService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
gloService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualMapEntity;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualmap.*;
|
||||
import com.yunzhupaas.visualdata.service.VisualMapService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* 大屏地图
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2024年6月15日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏地图", description = "map")
|
||||
@RequestMapping("/api/blade-visual/map")
|
||||
public class VisualMapController extends SuperController<VisualMapService, VisualMapEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualMapService mapService;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/lazy-list")
|
||||
public ActionResult<List<VisualMapListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualMapEntity> data = mapService.getListWithColnums(pagination, VisualMapEntity::getId, VisualMapEntity::getName
|
||||
, VisualMapEntity::getCode, VisualMapEntity::getParentCode, VisualMapEntity::getParentId
|
||||
, VisualMapEntity::getAncestors, VisualMapEntity::getMapLevel);
|
||||
List<VisualMapListVO> list = JsonUtil.getJsonToList(data, VisualMapListVO.class);
|
||||
VisualMapEntity parent = getBaseService().getInfo(pagination.getParentId());
|
||||
list.forEach(m -> {
|
||||
m.setHasChildren(getBaseService().hasChild(m.getId()));
|
||||
if(parent != null){
|
||||
m.setParentName(parent.getName());
|
||||
}
|
||||
});
|
||||
return ActionResult.success(MsgCode.SU005.get(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
public ActionResult<VisualMapInfoVO> info(@RequestParam("id") String id) {
|
||||
VisualMapEntity entity = mapService.getInfo(id);
|
||||
VisualMapInfoVO vo = JsonUtil.getJsonToBean(entity, VisualMapInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param mapCrForm 地图模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "mapCrForm", description = "地图模型", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody VisualMapCrForm mapCrForm) {
|
||||
VisualMapEntity entity = JsonUtil.getJsonToBean(mapCrForm, VisualMapEntity.class);
|
||||
mapService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param mapUpForm 地图模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "mapUpForm", description = "地图模型", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualMapUpForm mapUpForm) {
|
||||
VisualMapEntity entity = JsonUtil.getJsonToBean(mapUpForm, VisualMapEntity.class);
|
||||
boolean flag = mapService.update(mapUpForm.getId(), entity);
|
||||
if (!flag) {
|
||||
return ActionResult.fail(MsgCode.FA001.get());
|
||||
}
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(@RequestParam("ids") String ids) {
|
||||
VisualMapEntity entity = mapService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
mapService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "数据详情")
|
||||
@GetMapping("/data")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
public String dataInfo(@RequestParam("id") String id) {
|
||||
VisualMapEntity entity = mapService.getInfo(id);
|
||||
Assert.notNull(entity, MsgCode.FA001::get);
|
||||
return entity.getData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.yunzhupaas.visualdata.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.tags.Tag;
|
||||
import com.yunzhupaas.base.ActionResult;
|
||||
import com.yunzhupaas.base.controller.SuperController;
|
||||
import com.yunzhupaas.constant.MsgCode;
|
||||
import com.yunzhupaas.util.JsonUtil;
|
||||
import com.yunzhupaas.util.StringUtil;
|
||||
import com.yunzhupaas.visualdata.entity.VisualRecordEntity;
|
||||
import com.yunzhupaas.visualdata.model.VisualPageVO;
|
||||
import com.yunzhupaas.visualdata.model.VisualPagination;
|
||||
import com.yunzhupaas.visualdata.model.visual.VisualPaginationModel;
|
||||
import com.yunzhupaas.visualdata.model.visualrecord.VisualRecordCrForm;
|
||||
import com.yunzhupaas.visualdata.model.visualrecord.VisualRecordInfoVO;
|
||||
import com.yunzhupaas.visualdata.model.visualrecord.VisualRecordListVO;
|
||||
import com.yunzhupaas.visualdata.model.visualrecord.VisualRecordUpForm;
|
||||
import com.yunzhupaas.visualdata.service.VisualRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 大屏数据源配置
|
||||
*
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.5.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2023年7月7日
|
||||
*/
|
||||
@RestController
|
||||
@Tag(name = "大屏数据集配置", description = "record")
|
||||
@RequestMapping("/api/blade-visual/record")
|
||||
public class VisualRecordController extends SuperController<VisualRecordService, VisualRecordEntity> {
|
||||
|
||||
@Autowired
|
||||
private VisualRecordService recordService;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param pagination 分页模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/list")
|
||||
public ActionResult<VisualPageVO<VisualRecordListVO>> list(VisualPaginationModel pagination) {
|
||||
List<VisualRecordEntity> data = recordService.getList(pagination);
|
||||
List<VisualRecordListVO> list = JsonUtil.getJsonToList(data, VisualRecordListVO.class);
|
||||
VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
|
||||
paginationVO.setRecords(list);
|
||||
return ActionResult.success(paginationVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "详情")
|
||||
@GetMapping("/detail")
|
||||
@Parameters({
|
||||
@Parameter(name = "id", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult<VisualRecordInfoVO> info(@RequestParam("id")String id) {
|
||||
VisualRecordEntity entity = recordService.getInfo(id);
|
||||
VisualRecordInfoVO vo = JsonUtil.getJsonToBean(entity, VisualRecordInfoVO.class);
|
||||
return ActionResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param recordCrForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "新增")
|
||||
@PostMapping("/save")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordCrForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult create(@RequestBody VisualRecordCrForm recordCrForm) {
|
||||
VisualRecordEntity entity = JsonUtil.getJsonToBean(recordCrForm, VisualRecordEntity.class);
|
||||
recordService.create(entity);
|
||||
return ActionResult.success(MsgCode.SU001.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param recordUpForm 数据模型
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改")
|
||||
@PostMapping("/update")
|
||||
@Parameters({
|
||||
@Parameter(name = "recordUpForm", description = "数据模型",required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult update(@RequestBody VisualRecordUpForm recordUpForm) {
|
||||
VisualRecordEntity entity = JsonUtil.getJsonToBean(recordUpForm, VisualRecordEntity.class);
|
||||
recordService.update(entity.getId(), entity);
|
||||
return ActionResult.success(MsgCode.SU004.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param ids 主键
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除")
|
||||
@PostMapping("/remove")
|
||||
@Parameters({
|
||||
@Parameter(name = "ids", description = "主键", required = true),
|
||||
})
|
||||
@SaCheckPermission("onlineDev.dataScreen")
|
||||
public ActionResult delete(String ids) {
|
||||
VisualRecordEntity entity = recordService.getInfo(ids);
|
||||
if (entity != null) {
|
||||
recordService.delete(entity);
|
||||
return ActionResult.success(MsgCode.SU003.get());
|
||||
}
|
||||
return ActionResult.fail(MsgCode.FA003.get());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.yunzhupaas.visualdata.controller.aop;
|
||||
|
||||
/**
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司(http://www.szlecheng.cn)
|
||||
* @date 2024-03-26
|
||||
*/
|
||||
|
||||
import com.yunzhupaas.base.UserInfo;
|
||||
import com.yunzhupaas.config.ConfigValueUtil;
|
||||
import com.yunzhupaas.database.util.TenantDataSourceUtil;
|
||||
import com.yunzhupaas.util.ServletUtil;
|
||||
import com.yunzhupaas.util.StringUtil;
|
||||
import com.yunzhupaas.util.UserProvider;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author 云筑产品开发平台组
|
||||
* @version V3.1.0
|
||||
* @copyright 深圳市乐程软件有限公司
|
||||
* @date 2024/3/15 17:12
|
||||
*/
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
@Order(1)
|
||||
public class VisualBindAspect {
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
private ConfigValueUtil configValueUtil;
|
||||
|
||||
@Pointcut("within(com.yunzhupaas.visualdata.controller.VisualCategoryController || com.yunzhupaas.visualdata.controller.VisualMapController) && (execution(* com.yunzhupaas.*.controller.VisualCategoryController.list(..)) || execution(* com.yunzhupaas.*.controller.VisualMapController.dataInfo(..)))")
|
||||
public void bindDataSource() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* NoDataSourceBind 不需要绑定数据库的注解
|
||||
*
|
||||
* @param pjp
|
||||
* @return
|
||||
* @throws Throwable
|
||||
*/
|
||||
@Around("bindDataSource()")
|
||||
public Object doAroundService(ProceedingJoinPoint pjp) throws Throwable {
|
||||
if (configValueUtil.isMultiTenancy()) {
|
||||
String jwtToken = ServletUtil.getRequest().getHeader("Authorization");
|
||||
if(StringUtil.isEmpty(jwtToken)){
|
||||
//兼容旧版大屏前端
|
||||
jwtToken = ServletUtil.getRequest().getParameter("token");
|
||||
}
|
||||
UserInfo userInfo = UserProvider.getUser(jwtToken);
|
||||
if(userInfo.getTenantId() == null){
|
||||
throw new RuntimeException("租户信息为空: " + jwtToken);
|
||||
}
|
||||
//设置租户
|
||||
TenantDataSourceUtil.switchTenant(userInfo.getTenantId());
|
||||
}
|
||||
Object obj = pjp.proceed();
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.yunzhupaas.visualdata.utils;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.yunzhupaas.properties.SecurityProperties;
|
||||
import com.yunzhupaas.util.ServletUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class VisualDataPermissionUtil {
|
||||
|
||||
private static SecurityProperties securityProperties;
|
||||
private static final String[] refererPath = new String[]{"**/DataV/view/{id}", "**/DataV/build/{id}"};
|
||||
|
||||
public VisualDataPermissionUtil(SecurityProperties securityProperties) {
|
||||
VisualDataPermissionUtil.securityProperties = securityProperties;
|
||||
}
|
||||
|
||||
public static void checkByReferer() {
|
||||
if (securityProperties.isEnablePreAuth()) {
|
||||
String referer = ServletUtil.getHeader("Referer");
|
||||
String id = null;
|
||||
for (String s : refererPath) {
|
||||
Map<String, String> pathVariables = ServletUtil.getPathVariables(s, referer);
|
||||
id = pathVariables.get("id");
|
||||
if (id != null) {
|
||||
id = id.split("[?]")[0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
StpUtil.checkPermissionOr("onlineDev.dataScreen", id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user