mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 18:46:36 +08:00
commit:支持activiti
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<?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>common</artifactId>
|
||||
<groupId>com.flow.demo</groupId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>common-online-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<name>common-online-api</name>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.flow.demo</groupId>
|
||||
<artifactId>common-online</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**/*.*</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.flow.demo.common.online.api.config;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
|
||||
/**
|
||||
* common-online-api模块的自动配置引导类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@EnableConfigurationProperties({OnlineApiProperties.class})
|
||||
public class OnlineApiAutoConfig {
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.flow.demo.common.online.api.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 在线表单API的配置对象。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Data
|
||||
@ConfigurationProperties(prefix = "common-online-api")
|
||||
public class OnlineApiProperties {
|
||||
|
||||
/**
|
||||
* 在线表单的URL前缀。
|
||||
*/
|
||||
private String urlPrefix;
|
||||
|
||||
/**
|
||||
* 在线表单查看权限的URL列表。
|
||||
*/
|
||||
private List<String> viewUrlList;
|
||||
|
||||
/**
|
||||
* 在线表单编辑权限的URL列表。
|
||||
*/
|
||||
private List<String> editUrlList;
|
||||
}
|
||||
@@ -0,0 +1,400 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.jimmyshi.beanquery.BeanQuery;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineColumnDto;
|
||||
import com.flow.demo.common.online.dto.OnlineColumnRuleDto;
|
||||
import com.flow.demo.common.online.dto.OnlineRuleDto;
|
||||
import com.flow.demo.common.online.model.*;
|
||||
import com.flow.demo.common.online.object.SqlTableColumn;
|
||||
import com.flow.demo.common.online.service.*;
|
||||
import com.flow.demo.common.online.vo.OnlineColumnRuleVo;
|
||||
import com.flow.demo.common.online.vo.OnlineColumnVo;
|
||||
import com.flow.demo.common.online.vo.OnlineRuleVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 字段数据操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineColumn")
|
||||
public class OnlineColumnController {
|
||||
|
||||
@Autowired
|
||||
private OnlineColumnService onlineColumnService;
|
||||
@Autowired
|
||||
private OnlineTableService onlineTableService;
|
||||
@Autowired
|
||||
private OnlineVirtualColumnService onlineVirtualColumnService;
|
||||
@Autowired
|
||||
private OnlineDblinkService onlineDblinkService;
|
||||
@Autowired
|
||||
private OnlineRuleService onlineRuleService;
|
||||
|
||||
/**
|
||||
* 根据数据库表字段信息,在指定在线表中添加在线表字段对象。
|
||||
*
|
||||
* @param dblinkId 数据库链接Id。
|
||||
* @param tableName 数据库表名称。
|
||||
* @param columnName 数据库表字段名。
|
||||
* @param tableId 目的表Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Void> add(
|
||||
@MyRequestBody Long dblinkId,
|
||||
@MyRequestBody String tableName,
|
||||
@MyRequestBody String columnName,
|
||||
@MyRequestBody Long tableId) {
|
||||
OnlineDblink dblink = onlineDblinkService.getById(dblinkId);
|
||||
if (dblink == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
String errorMsg;
|
||||
SqlTableColumn sqlTableColumn = onlineDblinkService.getDblinkTableColumn(dblink, tableName, columnName);
|
||||
if (sqlTableColumn == null) {
|
||||
errorMsg = "数据验证失败,指定的数据表字段不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMsg);
|
||||
}
|
||||
if (!onlineTableService.existId(tableId)) {
|
||||
errorMsg = "数据验证失败,指定的数据表Id不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMsg);
|
||||
}
|
||||
onlineColumnService.saveNewList(CollUtil.newLinkedList(sqlTableColumn), tableId);
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新字段数据数据。
|
||||
*
|
||||
* @param onlineColumnDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineColumnDto onlineColumnDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineColumnDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineColumn onlineColumn = MyModelUtil.copyTo(onlineColumnDto, OnlineColumn.class);
|
||||
OnlineColumn originalOnlineColumn = onlineColumnService.getById(onlineColumn.getColumnId());
|
||||
if (originalOnlineColumn == null) {
|
||||
errorMessage = "数据验证失败,当前在线表字段并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineColumnService.verifyRelatedData(onlineColumn, originalOnlineColumn);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
if (!onlineColumnService.update(onlineColumn, originalOnlineColumn)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字段数据数据。
|
||||
*
|
||||
* @param columnId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long columnId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(columnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineColumn originalOnlineColumn = onlineColumnService.getById(columnId);
|
||||
if (originalOnlineColumn == null) {
|
||||
errorMessage = "数据验证失败,当前在线表字段并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
OnlineVirtualColumn virtualColumnFilter = new OnlineVirtualColumn();
|
||||
virtualColumnFilter.setAggregationColumnId(columnId);
|
||||
List<OnlineVirtualColumn> virtualColumnList =
|
||||
onlineVirtualColumnService.getOnlineVirtualColumnList(virtualColumnFilter, null);
|
||||
if (CollUtil.isNotEmpty(virtualColumnList)) {
|
||||
OnlineVirtualColumn virtualColumn = virtualColumnList.get(0);
|
||||
errorMessage = "数据验证失败,数据源关联正在被虚拟字段 [" + virtualColumn.getColumnPrompt() + "] 使用,不能被删除!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineColumnService.remove(originalOnlineColumn.getTableId(), columnId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的字段数据列表。
|
||||
*
|
||||
* @param onlineColumnDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineColumnVo>> list(
|
||||
@MyRequestBody OnlineColumnDto onlineColumnDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineColumn onlineColumnFilter = MyModelUtil.copyTo(onlineColumnDtoFilter, OnlineColumn.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineColumn.class);
|
||||
List<OnlineColumn> onlineColumnList =
|
||||
onlineColumnService.getOnlineColumnListWithRelation(onlineColumnFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineColumnList, OnlineColumn.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定字段数据对象详情。
|
||||
*
|
||||
* @param columnId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineColumnVo> view(@RequestParam Long columnId) {
|
||||
if (MyCommonUtil.existBlankArgument(columnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineColumn onlineColumn = onlineColumnService.getByIdWithRelation(columnId, MyRelationParam.full());
|
||||
if (onlineColumn == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineColumnVo onlineColumnVo = OnlineColumn.INSTANCE.fromModel(onlineColumn);
|
||||
return ResponseResult.success(onlineColumnVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数据库中的表字段信息刷新到已经导入的在线表字段信息。
|
||||
*
|
||||
* @param dblinkId 数据库链接Id。
|
||||
* @param tableName 数据库表名称。
|
||||
* @param columnName 数据库表字段名。
|
||||
* @param columnId 被刷新的在线字段Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/refresh")
|
||||
public ResponseResult<Void> refresh(
|
||||
@MyRequestBody Long dblinkId,
|
||||
@MyRequestBody String tableName,
|
||||
@MyRequestBody String columnName,
|
||||
@MyRequestBody Long columnId) {
|
||||
OnlineDblink dblink = onlineDblinkService.getById(dblinkId);
|
||||
if (dblink == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
String errorMsg;
|
||||
SqlTableColumn sqlTableColumn = onlineDblinkService.getDblinkTableColumn(dblink, tableName, columnName);
|
||||
if (sqlTableColumn == null) {
|
||||
errorMsg = "数据验证失败,指定的数据表字段不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMsg);
|
||||
}
|
||||
OnlineColumn onlineColumn = onlineColumnService.getById(columnId);
|
||||
if (onlineColumn == null) {
|
||||
errorMsg = "数据验证失败,指定的在线表字段Id不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMsg);
|
||||
}
|
||||
onlineColumnService.refresh(sqlTableColumn, onlineColumn);
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出不与指定字段数据存在多对多关系的 [验证规则] 列表数据。通常用于查看添加新 [验证规则] 对象的候选列表。
|
||||
*
|
||||
* @param columnId 主表关联字段。
|
||||
* @param onlineRuleDtoFilter [验证规则] 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,返回符合条件的数据列表。
|
||||
*/
|
||||
@PostMapping("/listNotInOnlineColumnRule")
|
||||
public ResponseResult<MyPageData<OnlineRuleVo>> listNotInOnlineColumnRule(
|
||||
@MyRequestBody Long columnId,
|
||||
@MyRequestBody OnlineRuleDto onlineRuleDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doOnlineColumnRuleVerify(columnId);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineRule filter = MyModelUtil.copyTo(onlineRuleDtoFilter, OnlineRule.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineRule.class);
|
||||
List<OnlineRule> onlineRuleList =
|
||||
onlineRuleService.getNotInOnlineRuleListByColumnId(columnId, filter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineRuleList, OnlineRule.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出与指定字段数据存在多对多关系的 [验证规则] 列表数据。
|
||||
*
|
||||
* @param columnId 主表关联字段。
|
||||
* @param onlineRuleDtoFilter [验证规则] 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,返回符合条件的数据列表。
|
||||
*/
|
||||
@PostMapping("/listOnlineColumnRule")
|
||||
public ResponseResult<MyPageData<OnlineRuleVo>> listOnlineColumnRule(
|
||||
@MyRequestBody Long columnId,
|
||||
@MyRequestBody OnlineRuleDto onlineRuleDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doOnlineColumnRuleVerify(columnId);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineRule filter = MyModelUtil.copyTo(onlineRuleDtoFilter, OnlineRule.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineRule.class);
|
||||
List<OnlineRule> onlineRuleList =
|
||||
onlineRuleService.getOnlineRuleListByColumnId(columnId, filter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineRuleList, OnlineRule.INSTANCE));
|
||||
}
|
||||
|
||||
private ResponseResult<Void> doOnlineColumnRuleVerify(Long columnId) {
|
||||
if (MyCommonUtil.existBlankArgument(columnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
if (!onlineColumnService.existId(columnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加字段数据和 [验证规则] 对象的多对多关联关系数据。
|
||||
*
|
||||
* @param columnId 主表主键Id。
|
||||
* @param onlineColumnRuleDtoList 关联对象列表。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/addOnlineColumnRule")
|
||||
public ResponseResult<Void> addOnlineColumnRule(
|
||||
@MyRequestBody Long columnId,
|
||||
@MyRequestBody(elementType = OnlineColumnRuleDto.class) List<OnlineColumnRuleDto> onlineColumnRuleDtoList) {
|
||||
if (MyCommonUtil.existBlankArgument(columnId, onlineColumnRuleDtoList)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
for (OnlineColumnRuleDto onlineColumnRule : onlineColumnRuleDtoList) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineColumnRule);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
Set<Long> ruleIdSet =
|
||||
onlineColumnRuleDtoList.stream().map(OnlineColumnRuleDto::getRuleId).collect(Collectors.toSet());
|
||||
if (!onlineColumnService.existId(columnId)
|
||||
|| !onlineRuleService.existUniqueKeyList("ruleId", ruleIdSet)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
|
||||
}
|
||||
List<OnlineColumnRule> onlineColumnRuleList =
|
||||
MyModelUtil.copyCollectionTo(onlineColumnRuleDtoList, OnlineColumnRule.class);
|
||||
onlineColumnService.addOnlineColumnRuleList(onlineColumnRuleList, columnId);
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新指定字段数据和指定 [验证规则] 的多对多关联数据。
|
||||
*
|
||||
* @param onlineColumnRuleDto 对多对中间表对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/updateOnlineColumnRule")
|
||||
public ResponseResult<Void> updateOnlineColumnRule(
|
||||
@MyRequestBody OnlineColumnRuleDto onlineColumnRuleDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineColumnRuleDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineColumnRule onlineColumnRule = MyModelUtil.copyTo(onlineColumnRuleDto, OnlineColumnRule.class);
|
||||
if (!onlineColumnService.updateOnlineColumnRule(onlineColumnRule)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示字段数据和指定 [验证规则] 的多对多关联详情数据。
|
||||
*
|
||||
* @param columnId 主表主键Id。
|
||||
* @param ruleId 从表主键Id。
|
||||
* @return 应答结果对象,包括中间表详情。
|
||||
*/
|
||||
@GetMapping("/viewOnlineColumnRule")
|
||||
public ResponseResult<OnlineColumnRuleVo> viewOnlineColumnRule(
|
||||
@RequestParam Long columnId, @RequestParam Long ruleId) {
|
||||
if (MyCommonUtil.existBlankArgument(columnId, ruleId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineColumnRule onlineColumnRule = onlineColumnService.getOnlineColumnRule(columnId, ruleId);
|
||||
if (onlineColumnRule == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineColumnRuleVo onlineColumnRuleVo = MyModelUtil.copyTo(onlineColumnRule, OnlineColumnRuleVo.class);
|
||||
return ResponseResult.success(onlineColumnRuleVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除指定字段数据和指定 [验证规则] 的多对多关联关系。
|
||||
*
|
||||
* @param columnId 主表主键Id。
|
||||
* @param ruleId 从表主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/deleteOnlineColumnRule")
|
||||
public ResponseResult<Void> deleteOnlineColumnRule(
|
||||
@MyRequestBody Long columnId, @MyRequestBody Long ruleId) {
|
||||
if (MyCommonUtil.existBlankArgument(columnId, ruleId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
if (!onlineColumnService.removeOnlineColumnRule(columnId, ruleId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 以字典形式返回全部字段数据数据集合。字典的键值为[columnId, columnName]。
|
||||
* 白名单接口,登录用户均可访问。
|
||||
*
|
||||
* @param filter 过滤对象。
|
||||
* @return 应答结果对象,包含的数据为 List<Map<String, String>>,map中包含两条记录,key的值分别是id和name,value对应具体数据。
|
||||
*/
|
||||
@GetMapping("/listDict")
|
||||
public ResponseResult<List<Map<String, Object>>> listDict(OnlineColumn filter) {
|
||||
List<OnlineColumn> resultList = onlineColumnService.getListByFilter(filter);
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"columnId as id", "columnName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.AddGroup;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineDatasourceDto;
|
||||
import com.flow.demo.common.online.model.*;
|
||||
import com.flow.demo.common.online.model.constant.PageType;
|
||||
import com.flow.demo.common.online.object.SqlTable;
|
||||
import com.flow.demo.common.online.object.SqlTableColumn;
|
||||
import com.flow.demo.common.online.service.*;
|
||||
import com.flow.demo.common.online.vo.OnlineDatasourceVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据模型操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineDatasource")
|
||||
public class OnlineDatasourceController {
|
||||
|
||||
@Autowired
|
||||
private OnlineDatasourceService onlineDatasourceService;
|
||||
@Autowired
|
||||
private OnlineFormService onlineFormService;
|
||||
@Autowired
|
||||
private OnlinePageService onlinePageService;
|
||||
@Autowired
|
||||
private OnlineTableService onlineTableService;
|
||||
@Autowired
|
||||
private OnlineDblinkService onlineDblinkService;
|
||||
|
||||
/**
|
||||
* 新增数据模型数据。
|
||||
*
|
||||
* @param onlineDatasourceDto 新增对象。
|
||||
* @param pageId 关联的页面Id。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(
|
||||
@MyRequestBody OnlineDatasourceDto onlineDatasourceDto,
|
||||
@MyRequestBody(required = true) Long pageId) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineDatasourceDto, Default.class, AddGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlinePage onlinePage = onlinePageService.getById(pageId);
|
||||
if (onlinePage == null) {
|
||||
errorMessage = "数据验证失败,页面Id不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDatasource onlineDatasource = MyModelUtil.copyTo(onlineDatasourceDto, OnlineDatasource.class);
|
||||
OnlineDblink onlineDblink = onlineDblinkService.getById(onlineDatasourceDto.getDblinkId());
|
||||
if (onlineDblink == null) {
|
||||
errorMessage = "数据验证失败,关联的数据库链接Id不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
SqlTable sqlTable = onlineDblinkService.getDblinkTable(onlineDblink, onlineDatasourceDto.getMasterTableName());
|
||||
if (sqlTable == null) {
|
||||
errorMessage = "数据验证失败,指定的数据表名不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
// 流程表单的主表主键,不能是自增主键。
|
||||
if (onlinePage.getPageType().equals(PageType.FLOW)) {
|
||||
for (SqlTableColumn tableColumn : sqlTable.getColumnList()) {
|
||||
if (tableColumn.getPrimaryKey()) {
|
||||
if (tableColumn.getAutoIncrement()) {
|
||||
errorMessage = "数据验证失败,流程页面所关联的主表主键,不能是自增主键!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
onlineDatasource = onlineDatasourceService.saveNew(onlineDatasource, sqlTable, pageId);
|
||||
return ResponseResult.success(onlineDatasource.getDatasourceId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据模型数据。
|
||||
*
|
||||
* @param onlineDatasourceDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineDatasourceDto onlineDatasourceDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineDatasourceDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDatasource onlineDatasource = MyModelUtil.copyTo(onlineDatasourceDto, OnlineDatasource.class);
|
||||
OnlineDatasource originalOnlineDatasource = onlineDatasourceService.getById(onlineDatasource.getDatasourceId());
|
||||
if (originalOnlineDatasource == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线数据源并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasource.getDblinkId().equals(originalOnlineDatasource.getDatasourceId())) {
|
||||
errorMessage = "数据验证失败,不能修改数据库链接Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasource.getMasterTableId().equals(originalOnlineDatasource.getDatasourceId())) {
|
||||
errorMessage = "数据验证失败,不能修改主表Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceService.update(onlineDatasource, originalOnlineDatasource)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据模型数据。
|
||||
*
|
||||
* @param datasourceId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long datasourceId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(datasourceId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineDatasource originalOnlineDatasource = onlineDatasourceService.getById(datasourceId);
|
||||
if (originalOnlineDatasource == null) {
|
||||
errorMessage = "数据验证失败,当前数据源并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
List<OnlineForm> formList = onlineFormService.getOnlineFormListByDatasourceId(datasourceId);
|
||||
if (CollUtil.isNotEmpty(formList)) {
|
||||
errorMessage = "数据验证失败,当前数据源正在被 [" + formList.get(0).getFormName() + "] 表单占用,请先删除关联数据!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceService.remove(datasourceId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的数据模型列表。
|
||||
*
|
||||
* @param onlineDatasourceDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineDatasourceVo>> list(
|
||||
@MyRequestBody OnlineDatasourceDto onlineDatasourceDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDatasource onlineDatasourceFilter = MyModelUtil.copyTo(onlineDatasourceDtoFilter, OnlineDatasource.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDatasource.class);
|
||||
List<OnlineDatasource> onlineDatasourceList =
|
||||
onlineDatasourceService.getOnlineDatasourceListWithRelation(onlineDatasourceFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDatasourceList, OnlineDatasource.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定数据模型对象详情。
|
||||
*
|
||||
* @param datasourceId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineDatasourceVo> view(@RequestParam Long datasourceId) {
|
||||
if (MyCommonUtil.existBlankArgument(datasourceId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineDatasource onlineDatasource =
|
||||
onlineDatasourceService.getByIdWithRelation(datasourceId, MyRelationParam.full());
|
||||
if (onlineDatasource == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineDatasourceVo onlineDatasourceVo = OnlineDatasource.INSTANCE.fromModel(onlineDatasource);
|
||||
List<OnlineTable> tableList = onlineTableService.getOnlineTableListByDatasourceId(datasourceId);
|
||||
if (CollUtil.isNotEmpty(tableList)) {
|
||||
onlineDatasourceVo.setTableList(OnlineTable.INSTANCE.fromModelList(tableList));
|
||||
}
|
||||
return ResponseResult.success(onlineDatasourceVo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.AddGroup;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineDatasourceRelationDto;
|
||||
import com.flow.demo.common.online.model.*;
|
||||
import com.flow.demo.common.online.object.SqlTable;
|
||||
import com.flow.demo.common.online.object.SqlTableColumn;
|
||||
import com.flow.demo.common.online.service.*;
|
||||
import com.flow.demo.common.online.vo.OnlineDatasourceRelationVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据源关联操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineDatasourceRelation")
|
||||
public class OnlineDatasourceRelationController {
|
||||
|
||||
@Autowired
|
||||
private OnlineDatasourceRelationService onlineDatasourceRelationService;
|
||||
@Autowired
|
||||
private OnlineDatasourceService onlineDatasourceService;
|
||||
@Autowired
|
||||
private OnlineVirtualColumnService onlineVirtualColumnService;
|
||||
@Autowired
|
||||
private OnlineDblinkService onlineDblinkService;
|
||||
@Autowired
|
||||
private OnlineFormService onlineFormService;
|
||||
|
||||
/**
|
||||
* 新增数据关联数据。
|
||||
*
|
||||
* @param onlineDatasourceRelationDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlineDatasourceRelationDto onlineDatasourceRelationDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(
|
||||
onlineDatasourceRelationDto, Default.class, AddGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDatasourceRelation onlineDatasourceRelation =
|
||||
MyModelUtil.copyTo(onlineDatasourceRelationDto, OnlineDatasourceRelation.class);
|
||||
OnlineDatasource onlineDatasource =
|
||||
onlineDatasourceService.getById(onlineDatasourceRelationDto.getDatasourceId());
|
||||
if (onlineDatasource == null) {
|
||||
errorMessage = "数据验证失败,关联的数据源Id不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDblink onlineDblink = onlineDblinkService.getById(onlineDatasource.getDblinkId());
|
||||
SqlTable slaveTable = onlineDblinkService.getDblinkTable(
|
||||
onlineDblink, onlineDatasourceRelationDto.getSlaveTableName());
|
||||
if (slaveTable == null) {
|
||||
errorMessage = "数据验证失败,指定的数据表不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
SqlTableColumn slaveColumn = null;
|
||||
for (SqlTableColumn column : slaveTable.getColumnList()) {
|
||||
if (column.getColumnName().equals(onlineDatasourceRelationDto.getSlaveColumnName())) {
|
||||
slaveColumn = column;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (slaveColumn == null) {
|
||||
errorMessage = "数据验证失败,指定的数据表字段 [" + onlineDatasourceRelationDto.getSlaveColumnName() + "] 不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult =
|
||||
onlineDatasourceRelationService.verifyRelatedData(onlineDatasourceRelation, null);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
onlineDatasourceRelation = onlineDatasourceRelationService.saveNew(onlineDatasourceRelation, slaveTable, slaveColumn);
|
||||
return ResponseResult.success(onlineDatasourceRelation.getRelationId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据关联数据。
|
||||
*
|
||||
* @param onlineDatasourceRelationDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineDatasourceRelationDto onlineDatasourceRelationDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(
|
||||
onlineDatasourceRelationDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDatasourceRelation onlineDatasourceRelation =
|
||||
MyModelUtil.copyTo(onlineDatasourceRelationDto, OnlineDatasourceRelation.class);
|
||||
OnlineDatasourceRelation originalOnlineDatasourceRelation =
|
||||
onlineDatasourceRelationService.getById(onlineDatasourceRelation.getRelationId());
|
||||
if (originalOnlineDatasourceRelation == null) {
|
||||
errorMessage = "数据验证失败,当前数据源关联并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceRelationDto.getRelationType().equals(originalOnlineDatasourceRelation.getRelationType())) {
|
||||
errorMessage = "数据验证失败,不能修改关联类型!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceRelationDto.getSlaveTableId().equals(originalOnlineDatasourceRelation.getSlaveTableId())) {
|
||||
errorMessage = "数据验证失败,不能修改从表Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceRelationDto.getDatasourceId().equals(originalOnlineDatasourceRelation.getDatasourceId())) {
|
||||
errorMessage = "数据验证失败,不能修改数据源Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineDatasourceRelationService
|
||||
.verifyRelatedData(onlineDatasourceRelation, originalOnlineDatasourceRelation);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceRelationService.update(onlineDatasourceRelation, originalOnlineDatasourceRelation)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据关联数据。
|
||||
*
|
||||
* @param relationId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long relationId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(relationId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineDatasourceRelation originalOnlineDatasourceRelation = onlineDatasourceRelationService.getById(relationId);
|
||||
if (originalOnlineDatasourceRelation == null) {
|
||||
errorMessage = "数据验证失败,当前数据源关联并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
OnlineVirtualColumn virtualColumnFilter = new OnlineVirtualColumn();
|
||||
virtualColumnFilter.setRelationId(relationId);
|
||||
List<OnlineVirtualColumn> virtualColumnList =
|
||||
onlineVirtualColumnService.getOnlineVirtualColumnList(virtualColumnFilter, null);
|
||||
if (CollUtil.isNotEmpty(virtualColumnList)) {
|
||||
OnlineVirtualColumn virtualColumn = virtualColumnList.get(0);
|
||||
errorMessage = "数据验证失败,数据源关联正在被虚拟字段 [" + virtualColumn.getColumnPrompt() + "] 使用,不能被删除!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
List<OnlineForm> formList =
|
||||
onlineFormService.getOnlineFormListByTableId(originalOnlineDatasourceRelation.getSlaveTableId());
|
||||
if (CollUtil.isNotEmpty(formList)) {
|
||||
errorMessage = "数据验证失败,当前数据源关联正在被 [" + formList.get(0).getFormName() + "] 表单占用,请先删除关联数据!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDatasourceRelationService.remove(relationId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的数据关联列表。
|
||||
*
|
||||
* @param onlineDatasourceRelationDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分 页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineDatasourceRelationVo>> list(
|
||||
@MyRequestBody OnlineDatasourceRelationDto onlineDatasourceRelationDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDatasourceRelation onlineDatasourceRelationFilter =
|
||||
MyModelUtil.copyTo(onlineDatasourceRelationDtoFilter, OnlineDatasourceRelation.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDatasourceRelation.class);
|
||||
List<OnlineDatasourceRelation> onlineDatasourceRelationList =
|
||||
onlineDatasourceRelationService.getOnlineDatasourceRelationListWithRelation(onlineDatasourceRelationFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDatasourceRelationList, OnlineDatasourceRelation.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定数据关联对象详情。
|
||||
*
|
||||
* @param relationId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineDatasourceRelationVo> view(@RequestParam Long relationId) {
|
||||
if (MyCommonUtil.existBlankArgument(relationId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineDatasourceRelation onlineDatasourceRelation =
|
||||
onlineDatasourceRelationService.getByIdWithRelation(relationId, MyRelationParam.full());
|
||||
if (onlineDatasourceRelation == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineDatasourceRelationVo onlineDatasourceRelationVo =
|
||||
OnlineDatasourceRelation.INSTANCE.fromModel(onlineDatasourceRelation);
|
||||
return ResponseResult.success(onlineDatasourceRelationVo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.MyOrderParam;
|
||||
import com.flow.demo.common.core.object.MyPageData;
|
||||
import com.flow.demo.common.core.object.MyPageParam;
|
||||
import com.flow.demo.common.core.object.ResponseResult;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.online.dto.OnlineDblinkDto;
|
||||
import com.flow.demo.common.online.model.OnlineDblink;
|
||||
import com.flow.demo.common.online.object.SqlTable;
|
||||
import com.flow.demo.common.online.object.SqlTableColumn;
|
||||
import com.flow.demo.common.online.service.OnlineDblinkService;
|
||||
import com.flow.demo.common.online.vo.OnlineDblinkVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据库链接操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineDblink")
|
||||
public class OnlineDblinkController {
|
||||
|
||||
@Autowired
|
||||
private OnlineDblinkService onlineDblinkService;
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的数据库链接列表。
|
||||
*
|
||||
* @param onlineDblinkDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineDblinkVo>> list(
|
||||
@MyRequestBody OnlineDblinkDto onlineDblinkDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDblink onlineDblinkFilter = MyModelUtil.copyTo(onlineDblinkDtoFilter, OnlineDblink.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDblink.class);
|
||||
List<OnlineDblink> onlineDblinkList =
|
||||
onlineDblinkService.getOnlineDblinkListWithRelation(onlineDblinkFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDblinkList, OnlineDblink.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定数据库链接下的所有动态表单依赖的数据表列表。
|
||||
*
|
||||
* @param dblinkId 数据库链接Id。
|
||||
* @return 所有动态表单依赖的数据表列表
|
||||
*/
|
||||
@GetMapping("/listDblinkTables")
|
||||
public ResponseResult<List<SqlTable>> listDblinkTables(@RequestParam Long dblinkId) {
|
||||
OnlineDblink dblink = onlineDblinkService.getById(dblinkId);
|
||||
if (dblink == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success(onlineDblinkService.getDblinkTableList(dblink));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定数据库链接下,指定数据表的所有字段信息。
|
||||
*
|
||||
* @param dblinkId 数据库链接Id。
|
||||
* @param tableName 表名。
|
||||
* @return 该表的所有字段列表。
|
||||
*/
|
||||
@GetMapping("/listDblinkTableColumns")
|
||||
public ResponseResult<List<SqlTableColumn>> listDblinkTableColumns(
|
||||
@RequestParam Long dblinkId, @RequestParam String tableName) {
|
||||
OnlineDblink dblink = onlineDblinkService.getById(dblinkId);
|
||||
if (dblink == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success(onlineDblinkService.getDblinkTableColumnList(dblink, tableName));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineDictDto;
|
||||
import com.flow.demo.common.online.model.OnlineDict;
|
||||
import com.flow.demo.common.online.service.OnlineDictService;
|
||||
import com.flow.demo.common.online.vo.OnlineDictVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 在线表单字典操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineDict")
|
||||
public class OnlineDictController {
|
||||
|
||||
@Autowired
|
||||
private OnlineDictService onlineDictService;
|
||||
|
||||
/**
|
||||
* 新增在线表单字典数据。
|
||||
*
|
||||
* @param onlineDictDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlineDictDto onlineDictDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineDictDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDict onlineDict = MyModelUtil.copyTo(onlineDictDto, OnlineDict.class);
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineDictService.verifyRelatedData(onlineDict, null);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
onlineDict = onlineDictService.saveNew(onlineDict);
|
||||
return ResponseResult.success(onlineDict.getDictId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新在线表单字典数据。
|
||||
*
|
||||
* @param onlineDictDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineDictDto onlineDictDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineDictDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineDict onlineDict = MyModelUtil.copyTo(onlineDictDto, OnlineDict.class);
|
||||
OnlineDict originalOnlineDict = onlineDictService.getById(onlineDict.getDictId());
|
||||
if (originalOnlineDict == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线字典并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineDictService.verifyRelatedData(onlineDict, originalOnlineDict);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
if (!onlineDictService.update(onlineDict, originalOnlineDict)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除在线表单字典数据。
|
||||
*
|
||||
* @param dictId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long dictId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(dictId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineDict originalOnlineDict = onlineDictService.getById(dictId);
|
||||
if (originalOnlineDict == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线字典并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineDictService.remove(dictId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的在线表单字典列表。
|
||||
*
|
||||
* @param onlineDictDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineDictVo>> list(
|
||||
@MyRequestBody OnlineDictDto onlineDictDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDict onlineDictFilter = MyModelUtil.copyTo(onlineDictDtoFilter, OnlineDict.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDict.class);
|
||||
List<OnlineDict> onlineDictList = onlineDictService.getOnlineDictListWithRelation(onlineDictFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDictList, OnlineDict.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定在线表单字典对象详情。
|
||||
*
|
||||
* @param dictId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineDictVo> view(@RequestParam Long dictId) {
|
||||
if (MyCommonUtil.existBlankArgument(dictId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineDict onlineDict = onlineDictService.getByIdWithRelation(dictId, MyRelationParam.full());
|
||||
if (onlineDict == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineDictVo onlineDictVo = OnlineDict.INSTANCE.fromModel(onlineDict);
|
||||
return ResponseResult.success(onlineDictVo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineFormDto;
|
||||
import com.flow.demo.common.online.model.*;
|
||||
import com.flow.demo.common.online.service.*;
|
||||
import com.flow.demo.common.online.vo.OnlineFormVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 在线表单操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineForm")
|
||||
public class OnlineFormController {
|
||||
|
||||
@Autowired
|
||||
private OnlineFormService onlineFormService;
|
||||
@Autowired
|
||||
private OnlineDatasourceService onlineDatasourceService;
|
||||
@Autowired
|
||||
private OnlineDatasourceRelationService onlineDatasourceRelationService;
|
||||
@Autowired
|
||||
private OnlineTableService onlineTableService;
|
||||
@Autowired
|
||||
private OnlineColumnService onlineColumnService;
|
||||
@Autowired
|
||||
private OnlineVirtualColumnService onlineVirtualColumnService;
|
||||
@Autowired
|
||||
private OnlineDictService onlineDictService;
|
||||
@Autowired
|
||||
private OnlineRuleService onlineRuleService;
|
||||
|
||||
/**
|
||||
* 新增在线表单数据。
|
||||
*
|
||||
* @param onlineFormDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlineFormDto onlineFormDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineFormDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineForm onlineForm = MyModelUtil.copyTo(onlineFormDto, OnlineForm.class);
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineFormService.verifyRelatedData(onlineForm, null);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
Set<Long> datasourceIdSet = null;
|
||||
if (CollUtil.isNotEmpty(onlineFormDto.getDatasourceIdList())) {
|
||||
datasourceIdSet = new HashSet<>(onlineFormDto.getDatasourceIdList());
|
||||
if (!onlineDatasourceService.existAllPrimaryKeys(datasourceIdSet)) {
|
||||
errorMessage = "数据验证失败,当前在线表单包含不存在的数据源Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
onlineForm = onlineFormService.saveNew(onlineForm, datasourceIdSet);
|
||||
return ResponseResult.success(onlineForm.getFormId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新在线表单数据。
|
||||
*
|
||||
* @param onlineFormDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineFormDto onlineFormDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineFormDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineForm onlineForm = MyModelUtil.copyTo(onlineFormDto, OnlineForm.class);
|
||||
OnlineForm originalOnlineForm = onlineFormService.getById(onlineForm.getFormId());
|
||||
if (originalOnlineForm == null) {
|
||||
errorMessage = "数据验证失败,当前在线表单并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
CallResult callResult = onlineFormService.verifyRelatedData(onlineForm, originalOnlineForm);
|
||||
if (!callResult.isSuccess()) {
|
||||
errorMessage = callResult.getErrorMessage();
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
Set<Long> datasourceIdSet = null;
|
||||
if (CollUtil.isNotEmpty(onlineFormDto.getDatasourceIdList())) {
|
||||
datasourceIdSet = new HashSet<>(onlineFormDto.getDatasourceIdList());
|
||||
if (!onlineDatasourceService.existAllPrimaryKeys(datasourceIdSet)) {
|
||||
errorMessage = "数据验证失败,当前在线表单包含不存在的数据源Id!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
if (!onlineFormService.update(onlineForm, originalOnlineForm, datasourceIdSet)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除在线表单数据。
|
||||
*
|
||||
* @param formId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long formId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(formId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineForm originalOnlineForm = onlineFormService.getById(formId);
|
||||
if (originalOnlineForm == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线表单并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineFormService.remove(formId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的在线表单列表。
|
||||
*
|
||||
* @param onlineFormDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineFormVo>> list(
|
||||
@MyRequestBody OnlineFormDto onlineFormDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineForm onlineFormFilter = MyModelUtil.copyTo(onlineFormDtoFilter, OnlineForm.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineForm.class);
|
||||
List<OnlineForm> onlineFormList =
|
||||
onlineFormService.getOnlineFormListWithRelation(onlineFormFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineFormList, OnlineForm.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定在线表单对象详情。
|
||||
*
|
||||
* @param formId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineFormVo> view(@RequestParam Long formId) {
|
||||
if (MyCommonUtil.existBlankArgument(formId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineForm onlineForm = onlineFormService.getByIdWithRelation(formId, MyRelationParam.full());
|
||||
if (onlineForm == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineFormVo onlineFormVo = OnlineForm.INSTANCE.fromModel(onlineForm);
|
||||
List<OnlineFormDatasource> formDatasourceList = onlineFormService.getFormDatasourceListByFormId(formId);
|
||||
if (CollUtil.isNotEmpty(formDatasourceList)) {
|
||||
onlineFormVo.setDatasourceIdList(formDatasourceList.stream()
|
||||
.map(OnlineFormDatasource::getDatasourceId).collect(Collectors.toList()));
|
||||
}
|
||||
return ResponseResult.success(onlineFormVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定在线表单对象在前端渲染时所需的所有数据对象。
|
||||
*
|
||||
* @param formId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/render")
|
||||
public ResponseResult<JSONObject> render(@RequestParam Long formId) {
|
||||
if (MyCommonUtil.existBlankArgument(formId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineForm onlineForm = onlineFormService.getByIdWithRelation(formId, MyRelationParam.full());
|
||||
if (onlineForm == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineFormVo onlineFormVo = OnlineForm.INSTANCE.fromModel(onlineForm);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.putOpt("onlineForm", onlineFormVo);
|
||||
List<OnlineFormDatasource> formDatasourceList = onlineFormService.getFormDatasourceListByFormId(formId);
|
||||
if (CollUtil.isEmpty(formDatasourceList)) {
|
||||
return ResponseResult.success(jsonObject);
|
||||
}
|
||||
Set<Long> datasourceIdSet = formDatasourceList.stream()
|
||||
.map(OnlineFormDatasource::getDatasourceId).collect(Collectors.toSet());
|
||||
List<OnlineDatasource> onlineDatasourceList = onlineDatasourceService.getOnlineDatasourceList(datasourceIdSet);
|
||||
jsonObject.putOpt("onlineDatasourceList", onlineDatasourceList);
|
||||
List<OnlineDatasourceRelation> onlineDatasourceRelationList =
|
||||
onlineDatasourceRelationService.getOnlineDatasourceRelationListByDatasourceIds(datasourceIdSet, null);
|
||||
if (CollUtil.isNotEmpty(onlineDatasourceRelationList)) {
|
||||
jsonObject.putOpt("onlineDatasourceRelationList", onlineDatasourceRelationList);
|
||||
}
|
||||
List<OnlineDatasourceTable> onlineDatasourceTableList =
|
||||
onlineDatasourceService.getOnlineDatasourceTableList(datasourceIdSet);
|
||||
if (CollUtil.isNotEmpty(onlineDatasourceTableList)) {
|
||||
Set<Long> tableIdSet = onlineDatasourceTableList.stream()
|
||||
.map(OnlineDatasourceTable::getTableId).collect(Collectors.toSet());
|
||||
List<OnlineTable> onlineTableList = onlineTableService.getOnlineTableList(tableIdSet);
|
||||
jsonObject.putOpt("onlineTableList", onlineTableList);
|
||||
List<OnlineColumn> onlineColumnList = onlineColumnService.getOnlineColumnListByTableIds(tableIdSet);
|
||||
jsonObject.putOpt("onlineColumnList", onlineColumnList);
|
||||
List<OnlineVirtualColumn> virtualColumnList =
|
||||
onlineVirtualColumnService.getOnlineVirtualColumnListByTableIds(tableIdSet);
|
||||
jsonObject.putOpt("onlineVirtualColumnList", virtualColumnList);
|
||||
Set<Long> dictIdSet = onlineColumnList.stream()
|
||||
.filter(c -> c.getDictId() != null).map(OnlineColumn::getDictId).collect(Collectors.toSet());
|
||||
if (CollUtil.isNotEmpty(dictIdSet)) {
|
||||
List<OnlineDict> onlineDictList = onlineDictService.getOnlineDictList(dictIdSet);
|
||||
if (CollUtil.isNotEmpty(onlineDictList)) {
|
||||
jsonObject.putOpt("onlineDictList", onlineDictList);
|
||||
}
|
||||
}
|
||||
Set<Long> columnIdSet = onlineColumnList.stream().map(OnlineColumn::getColumnId).collect(Collectors.toSet());
|
||||
List<OnlineColumnRule> colunmRuleList = onlineRuleService.getOnlineColumnRuleListByColumnIds(columnIdSet);
|
||||
if (CollUtil.isNotEmpty(colunmRuleList)) {
|
||||
jsonObject.putOpt("onlineColumnRuleList", colunmRuleList);
|
||||
}
|
||||
}
|
||||
return ResponseResult.success(jsonObject);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineDatasourceDto;
|
||||
import com.flow.demo.common.online.dto.OnlinePageDatasourceDto;
|
||||
import com.flow.demo.common.online.dto.OnlinePageDto;
|
||||
import com.flow.demo.common.online.model.OnlineDatasource;
|
||||
import com.flow.demo.common.online.model.OnlinePage;
|
||||
import com.flow.demo.common.online.model.OnlinePageDatasource;
|
||||
import com.flow.demo.common.online.model.constant.PageStatus;
|
||||
import com.flow.demo.common.online.service.OnlineDatasourceService;
|
||||
import com.flow.demo.common.online.service.OnlineFormService;
|
||||
import com.flow.demo.common.online.service.OnlinePageService;
|
||||
import com.flow.demo.common.online.vo.OnlineDatasourceVo;
|
||||
import com.flow.demo.common.online.vo.OnlinePageDatasourceVo;
|
||||
import com.flow.demo.common.online.vo.OnlinePageVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 在线表单页面操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlinePage")
|
||||
public class OnlinePageController {
|
||||
|
||||
@Autowired
|
||||
private OnlinePageService onlinePageService;
|
||||
@Autowired
|
||||
private OnlineFormService onlineFormService;
|
||||
@Autowired
|
||||
private OnlineDatasourceService onlineDatasourceService;
|
||||
|
||||
/**
|
||||
* 新增在线表单页面数据。
|
||||
*
|
||||
* @param onlinePageDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlinePageDto onlinePageDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlinePageDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlinePage onlinePage = MyModelUtil.copyTo(onlinePageDto, OnlinePage.class);
|
||||
onlinePage = onlinePageService.saveNew(onlinePage);
|
||||
return ResponseResult.success(onlinePage.getPageId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新在线表单页面数据。
|
||||
*
|
||||
* @param onlinePageDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlinePageDto onlinePageDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlinePageDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlinePage onlinePage = MyModelUtil.copyTo(onlinePageDto, OnlinePage.class);
|
||||
OnlinePage originalOnlinePage = onlinePageService.getById(onlinePage.getPageId());
|
||||
if (originalOnlinePage == null) {
|
||||
errorMessage = "数据验证失败,当前页面对象并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlinePage.getPageType().equals(originalOnlinePage.getPageType())) {
|
||||
errorMessage = "数据验证失败,页面类型不能修改!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlinePageService.update(onlinePage, originalOnlinePage)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新在线表单页面对象的发布状态字段。
|
||||
*
|
||||
* @param pageId 待更新的页面对象主键Id。
|
||||
* @param published 发布状态。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/updatePublished")
|
||||
public ResponseResult<Void> updateStatus(
|
||||
@MyRequestBody(required = true) Long pageId,
|
||||
@MyRequestBody(required = true) Boolean published) {
|
||||
String errorMessage;
|
||||
// 验证关联Id的数据合法性
|
||||
OnlinePage originalOnlinePage = onlinePageService.getById(pageId);
|
||||
if (originalOnlinePage == null) {
|
||||
errorMessage = "数据验证失败,当前页面对象并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!published.equals(originalOnlinePage.getPublished())) {
|
||||
if (published && !originalOnlinePage.getStatus().equals(PageStatus.FORM_DESIGN)) {
|
||||
errorMessage = "数据验证失败,当前页面状态不为 [设计] 状态,因此不能发布!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
onlinePageService.updatePublished(pageId, published);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除在线表单页面数据。
|
||||
*
|
||||
* @param pageId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long pageId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(pageId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlinePage originalOnlinePage = onlinePageService.getById(pageId);
|
||||
if (originalOnlinePage == null) {
|
||||
errorMessage = "数据验证失败,当前页面对象并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlinePageService.remove(pageId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的在线表单页面列表。
|
||||
*
|
||||
* @param onlinePageDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlinePageVo>> list(
|
||||
@MyRequestBody OnlinePageDto onlinePageDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlinePage onlinePageFilter = MyModelUtil.copyTo(onlinePageDtoFilter, OnlinePage.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlinePage.class);
|
||||
List<OnlinePage> onlinePageList = onlinePageService.getOnlinePageListWithRelation(onlinePageFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlinePageList, OnlinePage.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统中配置的所有Page和表单的列表。
|
||||
*
|
||||
* @return 系统中配置的所有Page和表单的列表。
|
||||
*/
|
||||
@PostMapping("/listAllPageAndForm")
|
||||
public ResponseResult<JSONObject> listAllPageAndForm() {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("pageList", onlinePageService.getAllList());
|
||||
jsonObject.put("formList", onlineFormService.getAllList());
|
||||
return ResponseResult.success(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定在线表单页面对象详情。
|
||||
*
|
||||
* @param pageId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlinePageVo> view(@RequestParam Long pageId) {
|
||||
if (MyCommonUtil.existBlankArgument(pageId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlinePage onlinePage = onlinePageService.getByIdWithRelation(pageId, MyRelationParam.full());
|
||||
if (onlinePage == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlinePageVo onlinePageVo = OnlinePage.INSTANCE.fromModel(onlinePage);
|
||||
return ResponseResult.success(onlinePageVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出不与指定在线表单页面存在多对多关系的在线数据源列表数据。通常用于查看添加新在线数据源对象的候选列表。
|
||||
*
|
||||
* @param pageId 主表关联字段。
|
||||
* @param onlineDatasourceDtoFilter 在线数据源过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,返回符合条件的数据列表。
|
||||
*/
|
||||
@PostMapping("/listNotInOnlinePageDatasource")
|
||||
public ResponseResult<MyPageData<OnlineDatasourceVo>> listNotInOnlinePageDatasource(
|
||||
@MyRequestBody Long pageId,
|
||||
@MyRequestBody OnlineDatasourceDto onlineDatasourceDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doOnlinePageDatasourceVerify(pageId);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDatasource filter = MyModelUtil.copyTo(onlineDatasourceDtoFilter, OnlineDatasource.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDatasource.class);
|
||||
List<OnlineDatasource> onlineDatasourceList =
|
||||
onlineDatasourceService.getNotInOnlineDatasourceListByPageId(pageId, filter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDatasourceList, OnlineDatasource.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出与指定在线表单页面存在多对多关系的在线数据源列表数据。
|
||||
*
|
||||
* @param pageId 主表关联字段。
|
||||
* @param onlineDatasourceDtoFilter 在线数据源过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,返回符合条件的数据列表。
|
||||
*/
|
||||
@PostMapping("/listOnlinePageDatasource")
|
||||
public ResponseResult<MyPageData<OnlineDatasourceVo>> listOnlinePageDatasource(
|
||||
@MyRequestBody Long pageId,
|
||||
@MyRequestBody OnlineDatasourceDto onlineDatasourceDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doOnlinePageDatasourceVerify(pageId);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineDatasource filter = MyModelUtil.copyTo(onlineDatasourceDtoFilter, OnlineDatasource.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineDatasource.class);
|
||||
List<OnlineDatasource> onlineDatasourceList =
|
||||
onlineDatasourceService.getOnlineDatasourceListByPageId(pageId, filter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineDatasourceList, OnlineDatasource.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加在线表单页面和在线数据源对象的多对多关联关系数据。
|
||||
*
|
||||
* @param pageId 主表主键Id。
|
||||
* @param onlinePageDatasourceDtoList 关联对象列表。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/addOnlinePageDatasource")
|
||||
public ResponseResult<Void> addOnlinePageDatasource(
|
||||
@MyRequestBody Long pageId,
|
||||
@MyRequestBody(value = "onlinePageDatasourceList", elementType = OnlinePageDatasourceDto.class) List<OnlinePageDatasourceDto> onlinePageDatasourceDtoList) {
|
||||
if (MyCommonUtil.existBlankArgument(pageId, onlinePageDatasourceDtoList)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
for (OnlinePageDatasourceDto onlinePageDatasource : onlinePageDatasourceDtoList) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlinePageDatasource);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
Set<Long> datasourceIdSet =
|
||||
onlinePageDatasourceDtoList.stream().map(OnlinePageDatasourceDto::getDatasourceId).collect(Collectors.toSet());
|
||||
if (!onlinePageService.existId(pageId)
|
||||
|| !onlineDatasourceService.existUniqueKeyList("datasourceId", datasourceIdSet)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
|
||||
}
|
||||
List<OnlinePageDatasource> onlinePageDatasourceList =
|
||||
MyModelUtil.copyCollectionTo(onlinePageDatasourceDtoList, OnlinePageDatasource.class);
|
||||
onlinePageService.addOnlinePageDatasourceList(onlinePageDatasourceList, pageId);
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示在线表单页面和指定数据源的多对多关联详情数据。
|
||||
*
|
||||
* @param pageId 主表主键Id。
|
||||
* @param datasourceId 从表主键Id。
|
||||
* @return 应答结果对象,包括中间表详情。
|
||||
*/
|
||||
@GetMapping("/viewOnlinePageDatasource")
|
||||
public ResponseResult<OnlinePageDatasourceVo> viewOnlinePageDatasource(
|
||||
@RequestParam Long pageId, @RequestParam Long datasourceId) {
|
||||
if (MyCommonUtil.existBlankArgument(pageId, datasourceId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlinePageDatasource onlinePageDatasource = onlinePageService.getOnlinePageDatasource(pageId, datasourceId);
|
||||
if (onlinePageDatasource == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlinePageDatasourceVo onlinePageDatasourceVo = MyModelUtil.copyTo(onlinePageDatasource, OnlinePageDatasourceVo.class);
|
||||
return ResponseResult.success(onlinePageDatasourceVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除指定在线表单页面和指定数据源的多对多关联关系。
|
||||
*
|
||||
* @param pageId 主表主键Id。
|
||||
* @param datasourceId 从表主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/deleteOnlinePageDatasource")
|
||||
public ResponseResult<Void> deleteOnlinePageDatasource(
|
||||
@MyRequestBody Long pageId, @MyRequestBody Long datasourceId) {
|
||||
if (MyCommonUtil.existBlankArgument(pageId, datasourceId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
if (!onlinePageService.removeOnlinePageDatasource(pageId, datasourceId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
private ResponseResult<Void> doOnlinePageDatasourceVerify(Long pageId) {
|
||||
if (MyCommonUtil.existBlankArgument(pageId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
if (!onlinePageService.existId(pageId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineRuleDto;
|
||||
import com.flow.demo.common.online.model.OnlineRule;
|
||||
import com.flow.demo.common.online.service.OnlineRuleService;
|
||||
import com.flow.demo.common.online.vo.OnlineRuleVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 验证规则操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineRule")
|
||||
public class OnlineRuleController {
|
||||
|
||||
@Autowired
|
||||
private OnlineRuleService onlineRuleService;
|
||||
|
||||
/**
|
||||
* 新增验证规则数据。
|
||||
*
|
||||
* @param onlineRuleDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlineRuleDto onlineRuleDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineRuleDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineRule onlineRule = MyModelUtil.copyTo(onlineRuleDto, OnlineRule.class);
|
||||
onlineRule = onlineRuleService.saveNew(onlineRule);
|
||||
return ResponseResult.success(onlineRule.getRuleId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新验证规则数据。
|
||||
*
|
||||
* @param onlineRuleDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineRuleDto onlineRuleDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineRuleDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineRule onlineRule = MyModelUtil.copyTo(onlineRuleDto, OnlineRule.class);
|
||||
OnlineRule originalOnlineRule = onlineRuleService.getById(onlineRule.getRuleId());
|
||||
if (originalOnlineRule == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线字段规则并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineRuleService.update(onlineRule, originalOnlineRule)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除验证规则数据。
|
||||
*
|
||||
* @param ruleId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long ruleId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(ruleId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineRule originalOnlineRule = onlineRuleService.getById(ruleId);
|
||||
if (originalOnlineRule == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线字段规则并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineRuleService.remove(ruleId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的验证规则列表。
|
||||
*
|
||||
* @param onlineRuleDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineRuleVo>> list(
|
||||
@MyRequestBody OnlineRuleDto onlineRuleDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineRule onlineRuleFilter = MyModelUtil.copyTo(onlineRuleDtoFilter, OnlineRule.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineRule.class);
|
||||
List<OnlineRule> onlineRuleList = onlineRuleService.getOnlineRuleListWithRelation(onlineRuleFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineRuleList, OnlineRule.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定验证规则对象详情。
|
||||
*
|
||||
* @param ruleId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineRuleVo> view(@RequestParam Long ruleId) {
|
||||
if (MyCommonUtil.existBlankArgument(ruleId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineRule onlineRule = onlineRuleService.getByIdWithRelation(ruleId, MyRelationParam.full());
|
||||
if (onlineRule == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineRuleVo onlineRuleVo = OnlineRule.INSTANCE.fromModel(onlineRule);
|
||||
return ResponseResult.success(onlineRuleVo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import cn.jimmyshi.beanquery.BeanQuery;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.MyCommonUtil;
|
||||
import com.flow.demo.common.core.util.MyModelUtil;
|
||||
import com.flow.demo.common.core.util.MyPageUtil;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineTableDto;
|
||||
import com.flow.demo.common.online.model.OnlineTable;
|
||||
import com.flow.demo.common.online.service.OnlineTableService;
|
||||
import com.flow.demo.common.online.vo.OnlineTableVo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.groups.Default;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 数据表操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineTable")
|
||||
public class OnlineTableController {
|
||||
|
||||
@Autowired
|
||||
private OnlineTableService onlineTableService;
|
||||
|
||||
/**
|
||||
* 更新数据表数据。
|
||||
*
|
||||
* @param onlineTableDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineTableDto onlineTableDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineTableDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineTable onlineTable = MyModelUtil.copyTo(onlineTableDto, OnlineTable.class);
|
||||
OnlineTable originalOnlineTable = onlineTableService.getById(onlineTable.getTableId());
|
||||
if (originalOnlineTable == null) {
|
||||
// NOTE: 修改下面方括号中的话述
|
||||
errorMessage = "数据验证失败,当前在线数据表并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineTableService.update(onlineTable, originalOnlineTable)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的数据表列表。
|
||||
*
|
||||
* @param onlineTableDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineTableVo>> list(
|
||||
@MyRequestBody OnlineTableDto onlineTableDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineTable onlineTableFilter = MyModelUtil.copyTo(onlineTableDtoFilter, OnlineTable.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineTable.class);
|
||||
List<OnlineTable> onlineTableList =
|
||||
onlineTableService.getOnlineTableListWithRelation(onlineTableFilter, orderBy);
|
||||
return ResponseResult.success(MyPageUtil.makeResponseData(onlineTableList, OnlineTable.INSTANCE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定数据表对象详情。
|
||||
*
|
||||
* @param tableId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineTableVo> view(@RequestParam Long tableId) {
|
||||
if (MyCommonUtil.existBlankArgument(tableId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineTable onlineTable = onlineTableService.getByIdWithRelation(tableId, MyRelationParam.full());
|
||||
if (onlineTable == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineTableVo onlineTableVo = OnlineTable.INSTANCE.fromModel(onlineTable);
|
||||
return ResponseResult.success(onlineTableVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 以字典形式返回全部数据表数据集合。字典的键值为[tableId, modelName]。
|
||||
* 白名单接口,登录用户均可访问。
|
||||
*
|
||||
* @param filter 过滤对象。
|
||||
* @return 应答结果对象,包含的数据为 List<Map<String, String>>,map中包含两条记录,key的值分别是id和name,value对应具体数据。
|
||||
*/
|
||||
@GetMapping("/listDict")
|
||||
public ResponseResult<List<Map<String, Object>>> listDict(OnlineTable filter) {
|
||||
List<OnlineTable> resultList = onlineTableService.getListByFilter(filter);
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"tableId as id", "modelName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
package com.flow.demo.common.online.api.controller;
|
||||
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import com.flow.demo.common.core.object.*;
|
||||
import com.flow.demo.common.core.util.*;
|
||||
import com.flow.demo.common.core.constant.*;
|
||||
import com.flow.demo.common.core.annotation.MyRequestBody;
|
||||
import com.flow.demo.common.core.validator.UpdateGroup;
|
||||
import com.flow.demo.common.online.dto.OnlineVirtualColumnDto;
|
||||
import com.flow.demo.common.online.model.OnlineVirtualColumn;
|
||||
import com.flow.demo.common.online.model.constant.VirtualType;
|
||||
import com.flow.demo.common.online.service.OnlineVirtualColumnService;
|
||||
import com.flow.demo.common.online.vo.OnlineVirtualColumnVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.groups.Default;
|
||||
|
||||
/**
|
||||
* 虚拟字段操作控制器类。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2021-06-06
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("${common-online-api.urlPrefix}/onlineVirtualColumn")
|
||||
public class OnlineVirtualColumnController {
|
||||
|
||||
@Autowired
|
||||
private OnlineVirtualColumnService onlineVirtualColumnService;
|
||||
|
||||
/**
|
||||
* 新增虚拟字段数据。
|
||||
*
|
||||
* @param onlineVirtualColumnDto 新增对象。
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody OnlineVirtualColumnDto onlineVirtualColumnDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(onlineVirtualColumnDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineVirtualColumn onlineVirtualColumn =
|
||||
MyModelUtil.copyTo(onlineVirtualColumnDto, OnlineVirtualColumn.class);
|
||||
ResponseResult<Void> verifyResult = this.doVerify(onlineVirtualColumn, null);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
onlineVirtualColumn = onlineVirtualColumnService.saveNew(onlineVirtualColumn);
|
||||
return ResponseResult.success(onlineVirtualColumn.getVirtualColumnId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新虚拟字段数据。
|
||||
*
|
||||
* @param onlineVirtualColumnDto 更新对象。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody OnlineVirtualColumnDto onlineVirtualColumnDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(
|
||||
onlineVirtualColumnDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
OnlineVirtualColumn onlineVirtualColumn =
|
||||
MyModelUtil.copyTo(onlineVirtualColumnDto, OnlineVirtualColumn.class);
|
||||
OnlineVirtualColumn originalOnlineVirtualColumn =
|
||||
onlineVirtualColumnService.getById(onlineVirtualColumn.getVirtualColumnId());
|
||||
if (originalOnlineVirtualColumn == null) {
|
||||
errorMessage = "数据验证失败,当前虚拟字段并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
ResponseResult<Void> verifyResult = this.doVerify(onlineVirtualColumn, originalOnlineVirtualColumn);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
if (!onlineVirtualColumnService.update(onlineVirtualColumn, originalOnlineVirtualColumn)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除虚拟字段数据。
|
||||
*
|
||||
* @param virtualColumnId 删除对象主键Id。
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult<Void> delete(@MyRequestBody Long virtualColumnId) {
|
||||
String errorMessage;
|
||||
if (MyCommonUtil.existBlankArgument(virtualColumnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
// 验证关联Id的数据合法性
|
||||
OnlineVirtualColumn originalOnlineVirtualColumn = onlineVirtualColumnService.getById(virtualColumnId);
|
||||
if (originalOnlineVirtualColumn == null) {
|
||||
errorMessage = "数据验证失败,当前虚拟字段并不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
if (!onlineVirtualColumnService.remove(virtualColumnId)) {
|
||||
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出符合过滤条件的虚拟字段列表。
|
||||
*
|
||||
* @param onlineVirtualColumnDtoFilter 过滤对象。
|
||||
* @param orderParam 排序参数。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含查询结果集。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<OnlineVirtualColumnVo>> list(
|
||||
@MyRequestBody OnlineVirtualColumnDto onlineVirtualColumnDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
OnlineVirtualColumn onlineVirtualColumnFilter =
|
||||
MyModelUtil.copyTo(onlineVirtualColumnDtoFilter, OnlineVirtualColumn.class);
|
||||
String orderBy = MyOrderParam.buildOrderBy(orderParam, OnlineVirtualColumn.class);
|
||||
List<OnlineVirtualColumn> onlineVirtualColumnList =
|
||||
onlineVirtualColumnService.getOnlineVirtualColumnListWithRelation(onlineVirtualColumnFilter, orderBy);
|
||||
MyPageData<OnlineVirtualColumnVo> pageData =
|
||||
MyPageUtil.makeResponseData(onlineVirtualColumnList, OnlineVirtualColumn.INSTANCE);
|
||||
return ResponseResult.success(pageData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看指定虚拟字段对象详情。
|
||||
*
|
||||
* @param virtualColumnId 指定对象主键Id。
|
||||
* @return 应答结果对象,包含对象详情。
|
||||
*/
|
||||
@GetMapping("/view")
|
||||
public ResponseResult<OnlineVirtualColumnVo> view(@RequestParam Long virtualColumnId) {
|
||||
if (MyCommonUtil.existBlankArgument(virtualColumnId)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
OnlineVirtualColumn onlineVirtualColumn =
|
||||
onlineVirtualColumnService.getByIdWithRelation(virtualColumnId, MyRelationParam.full());
|
||||
if (onlineVirtualColumn == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
OnlineVirtualColumnVo onlineVirtualColumnVo =
|
||||
OnlineVirtualColumn.INSTANCE.fromModel(onlineVirtualColumn);
|
||||
return ResponseResult.success(onlineVirtualColumnVo);
|
||||
}
|
||||
|
||||
private ResponseResult<Void> doVerify(
|
||||
OnlineVirtualColumn virtualColumn, OnlineVirtualColumn originalVirtualColumn) {
|
||||
if (!virtualColumn.getVirtualType().equals(VirtualType.AGGREGATION)) {
|
||||
return ResponseResult.success();
|
||||
}
|
||||
if (MyCommonUtil.existBlankArgument(
|
||||
virtualColumn.getAggregationColumnId(),
|
||||
virtualColumn.getAggregationTableId(),
|
||||
virtualColumn.getDatasourceId(),
|
||||
virtualColumn.getRelationId(),
|
||||
virtualColumn.getAggregationType())) {
|
||||
String errorMessage = "数据验证失败,数据源、关联关系、聚合表、聚合字段和聚合类型,均不能为空!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
CallResult verifyResult = onlineVirtualColumnService.verifyRelatedData(virtualColumn, null);
|
||||
if (!verifyResult.isSuccess()) {
|
||||
return ResponseResult.errorFrom(verifyResult);
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
com.flow.demo.common.online.api.config.OnlineApiAutoConfig
|
||||
Reference in New Issue
Block a user