[Improvement][parameter] New data types and type filtering
This commit is contained in:
parent
ebcdaeb9ac
commit
c017ac8b5e
|
|
@ -61,7 +61,8 @@ public class ProjectParameterController extends BaseController {
|
|||
@Operation(summary = "createProjectParameter", description = "CREATE_PROJECT_PARAMETER_NOTES")
|
||||
@Parameters({
|
||||
@Parameter(name = "projectParameterName", description = "PROJECT_PARAMETER_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "projectParameterValue", description = "PROJECT_PARAMETER_VALUE", schema = @Schema(implementation = String.class))
|
||||
@Parameter(name = "projectParameterValue", description = "PROJECT_PARAMETER_VALUE", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "projectParameterDataType", description = "PROJECT_PARAMETER_DATA_TYPE", schema = @Schema(implementation = String.class))
|
||||
})
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
|
|
@ -69,9 +70,10 @@ public class ProjectParameterController extends BaseController {
|
|||
public Result createProjectParameter(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("projectParameterName") String projectParameterName,
|
||||
@RequestParam(value = "projectParameterValue") String projectParameterValue) {
|
||||
@RequestParam(value = "projectParameterValue") String projectParameterValue,
|
||||
@RequestParam(value = "projectParameterDataType") String projectParameterDataType) {
|
||||
return projectParameterService.createProjectParameter(loginUser, projectCode, projectParameterName,
|
||||
projectParameterValue);
|
||||
projectParameterValue, projectParameterDataType);
|
||||
}
|
||||
|
||||
@Operation(summary = "updateProjectParameter", description = "UPDATE_PROJECT_PARAMETER_NOTES")
|
||||
|
|
@ -79,6 +81,7 @@ public class ProjectParameterController extends BaseController {
|
|||
@Parameter(name = "code", description = "PROJECT_PARAMETER_CODE", schema = @Schema(implementation = long.class, example = "123456")),
|
||||
@Parameter(name = "projectParameterName", description = "PROJECT_PARAMETER_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "projectParameterValue", description = "PROJECT_PARAMETER_VALUE", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "projectParameterDataType", description = "PROJECT_PARAMETER_DATA_TYPE", schema = @Schema(implementation = String.class))
|
||||
})
|
||||
@PutMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -87,9 +90,10 @@ public class ProjectParameterController extends BaseController {
|
|||
@Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("code") Long code,
|
||||
@RequestParam("projectParameterName") String projectParameterName,
|
||||
@RequestParam(value = "projectParameterValue") String projectParameterValue) {
|
||||
@RequestParam(value = "projectParameterValue") String projectParameterValue,
|
||||
@RequestParam(value = "projectParameterDataType") String projectParameterDataType) {
|
||||
return projectParameterService.updateProjectParameter(loginUser, projectCode, code, projectParameterName,
|
||||
projectParameterValue);
|
||||
projectParameterValue, projectParameterDataType);
|
||||
}
|
||||
|
||||
@Operation(summary = "deleteProjectParametersByCode", description = "DELETE_PROJECT_PARAMETER_NOTES")
|
||||
|
|
@ -133,13 +137,14 @@ public class ProjectParameterController extends BaseController {
|
|||
@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "projectParameterDataType", required = false) String projectParameterDataType,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam("pageSize") Integer pageSize) {
|
||||
|
||||
checkPageParams(pageNo, pageSize);
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
return projectParameterService.queryProjectParameterListPaging(loginUser, projectCode, pageSize, pageNo,
|
||||
searchVal);
|
||||
searchVal, projectParameterDataType);
|
||||
}
|
||||
|
||||
@Operation(summary = "queryProjectParameterByCode", description = "QUERY_PROJECT_PARAMETER_NOTES")
|
||||
|
|
|
|||
|
|
@ -23,17 +23,17 @@ import org.apache.dolphinscheduler.dao.entity.User;
|
|||
public interface ProjectParameterService {
|
||||
|
||||
Result createProjectParameter(User loginUser, long projectCode, String projectParameterName,
|
||||
String projectParameterValue);
|
||||
String projectParameterValue, String projectParameterDataType);
|
||||
|
||||
Result updateProjectParameter(User loginUser, long projectCode, long code, String projectParameterName,
|
||||
String projectParameterValue);
|
||||
String projectParameterValue, String projectParameterDataType);
|
||||
|
||||
Result deleteProjectParametersByCode(User loginUser, long projectCode, long code);
|
||||
|
||||
Result batchDeleteProjectParametersByCodes(User loginUser, long projectCode, String codes);
|
||||
|
||||
Result queryProjectParameterListPaging(User loginUser, long projectCode, Integer pageSize, Integer pageNo,
|
||||
String searchVal);
|
||||
String searchVal, String projectParameterDataType);
|
||||
|
||||
Result queryProjectParameterByCode(User loginUser, long projectCode, long code);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
@Override
|
||||
@Transactional
|
||||
public Result createProjectParameter(User loginUser, long projectCode, String projectParameterName,
|
||||
String projectParameterValue) {
|
||||
String projectParameterValue, String projectParameterDataType) {
|
||||
Result result = new Result();
|
||||
|
||||
// check if user have write perm for project
|
||||
|
|
@ -97,6 +97,7 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
.builder()
|
||||
.paramName(projectParameterName)
|
||||
.paramValue(projectParameterValue)
|
||||
.paramDataType(projectParameterDataType)
|
||||
.code(CodeGenerateUtils.genCode())
|
||||
.projectCode(projectCode)
|
||||
.userId(loginUser.getId())
|
||||
|
|
@ -122,7 +123,7 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
|
||||
@Override
|
||||
public Result updateProjectParameter(User loginUser, long projectCode, long code, String projectParameterName,
|
||||
String projectParameterValue) {
|
||||
String projectParameterValue, String projectParameterDataType) {
|
||||
Result result = new Result();
|
||||
|
||||
// check if user have write perm for project
|
||||
|
|
@ -155,6 +156,7 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
|
||||
projectParameter.setParamName(projectParameterName);
|
||||
projectParameter.setParamValue(projectParameterValue);
|
||||
projectParameter.setParamDataType(projectParameterDataType);
|
||||
projectParameter.setUpdateTime(new Date());
|
||||
projectParameter.setOperator(loginUser.getId());
|
||||
|
||||
|
|
@ -236,7 +238,7 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
|
||||
@Override
|
||||
public Result queryProjectParameterListPaging(User loginUser, long projectCode, Integer pageSize, Integer pageNo,
|
||||
String searchVal) {
|
||||
String searchVal, String projectParameterDataType) {
|
||||
Result result = new Result();
|
||||
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
|
@ -249,7 +251,8 @@ public class ProjectParameterServiceImpl extends BaseServiceImpl implements Proj
|
|||
Page<ProjectParameter> page = new Page<>(pageNo, pageSize);
|
||||
|
||||
IPage<ProjectParameter> iPage =
|
||||
projectParameterMapper.queryProjectParameterListPaging(page, projectCode, null, searchVal);
|
||||
projectParameterMapper.queryProjectParameterListPaging(page, projectCode, null, searchVal,
|
||||
projectParameterDataType);
|
||||
|
||||
List<ProjectParameter> projectParameterList = iPage.getRecords();
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.apache.dolphinscheduler.api.service.impl.ProjectParameterServiceImpl;
|
|||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.plugin.task.api.enums.DataType;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -48,8 +49,9 @@ public class ProjectParameterControllerTest {
|
|||
User loginUser = getGeneralUser();
|
||||
|
||||
Mockito.when(projectParameterService.createProjectParameter(Mockito.any(), Mockito.anyLong(), Mockito.any(),
|
||||
Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.createProjectParameter(loginUser, 1, "key", "value");
|
||||
Mockito.any(), Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.createProjectParameter(loginUser, 1, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
|
|
@ -58,8 +60,9 @@ public class ProjectParameterControllerTest {
|
|||
User loginUser = getGeneralUser();
|
||||
|
||||
Mockito.when(projectParameterService.updateProjectParameter(Mockito.any(), Mockito.anyLong(), Mockito.anyLong(),
|
||||
Mockito.any(), Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.updateProjectParameter(loginUser, 1, 1L, "key", "value");
|
||||
Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.updateProjectParameter(loginUser, 1, 1L, "key", "value",
|
||||
DataType.LONG.name());
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
|
|
@ -88,8 +91,9 @@ public class ProjectParameterControllerTest {
|
|||
User loginUser = getGeneralUser();
|
||||
|
||||
Mockito.when(projectParameterService.queryProjectParameterListPaging(Mockito.any(), Mockito.anyLong(),
|
||||
Mockito.anyInt(), Mockito.anyInt(), Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.queryProjectParameterListPaging(loginUser, 1, "1", 1, 10);
|
||||
Mockito.anyInt(), Mockito.anyInt(), Mockito.any(), Mockito.any())).thenReturn(getSuccessResult());
|
||||
Result result = projectParameterController.queryProjectParameterListPaging(loginUser, 1, "1",
|
||||
DataType.VARCHAR.name(), 1, 10);
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import org.apache.dolphinscheduler.dao.entity.ProjectParameter;
|
|||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectParameterMapper;
|
||||
import org.apache.dolphinscheduler.plugin.task.api.enums.DataType;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
|
|
@ -76,7 +77,8 @@ public class ProjectParameterServiceTest {
|
|||
// PERMISSION DENIED
|
||||
when(projectService.hasProjectAndWritePerm(Mockito.any(), Mockito.any(), Mockito.any(Result.class)))
|
||||
.thenReturn(false);
|
||||
Result result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value");
|
||||
Result result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertNull(result.getData());
|
||||
assertNull(result.getCode());
|
||||
assertNull(result.getMsg());
|
||||
|
|
@ -88,25 +90,29 @@ public class ProjectParameterServiceTest {
|
|||
try (MockedStatic<CodeGenerateUtils> ignored = Mockito.mockStatic(CodeGenerateUtils.class)) {
|
||||
when(CodeGenerateUtils.genCode()).thenThrow(CodeGenerateUtils.CodeGenerateException.class);
|
||||
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value");
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.CREATE_PROJECT_PARAMETER_ERROR.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
// PROJECT_PARAMETER_ALREADY_EXISTS
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
|
||||
when(projectParameterMapper.selectOne(Mockito.any())).thenReturn(getProjectParameter());
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value");
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.PROJECT_PARAMETER_ALREADY_EXISTS.getCode(), result.getCode());
|
||||
|
||||
// INSERT DATA ERROR
|
||||
when(projectParameterMapper.selectOne(Mockito.any())).thenReturn(null);
|
||||
when(projectParameterMapper.insert(Mockito.any())).thenReturn(-1);
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key1", "value");
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key1", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.CREATE_PROJECT_PARAMETER_ERROR.getCode(), result.getCode());
|
||||
|
||||
// SUCCESS
|
||||
when(projectParameterMapper.insert(Mockito.any())).thenReturn(1);
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key1", "value");
|
||||
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key1", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
|
|
@ -117,7 +123,8 @@ public class ProjectParameterServiceTest {
|
|||
// NO PERMISSION
|
||||
when(projectService.hasProjectAndWritePerm(Mockito.any(), Mockito.any(), Mockito.any(Result.class)))
|
||||
.thenReturn(false);
|
||||
Result result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value");
|
||||
Result result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertNull(result.getData());
|
||||
assertNull(result.getCode());
|
||||
assertNull(result.getMsg());
|
||||
|
|
@ -127,28 +134,33 @@ public class ProjectParameterServiceTest {
|
|||
when(projectService.hasProjectAndWritePerm(Mockito.any(), Mockito.any(), Mockito.any(Result.class)))
|
||||
.thenReturn(true);
|
||||
when(projectParameterMapper.queryByCode(Mockito.anyLong())).thenReturn(null);
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value");
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.PROJECT_PARAMETER_NOT_EXISTS.getCode(), result.getCode());
|
||||
|
||||
// PROJECT_PARAMETER_ALREADY_EXISTS
|
||||
when(projectParameterMapper.queryByCode(Mockito.anyLong())).thenReturn(getProjectParameter());
|
||||
when(projectParameterMapper.selectOne(Mockito.any())).thenReturn(getProjectParameter());
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value");
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.PROJECT_PARAMETER_ALREADY_EXISTS.getCode(), result.getCode());
|
||||
|
||||
// PROJECT_UPDATE_ERROR
|
||||
when(projectParameterMapper.selectOne(Mockito.any())).thenReturn(null);
|
||||
when(projectParameterMapper.updateById(Mockito.any())).thenReturn(-1);
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key1", "value");
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key1", "value",
|
||||
DataType.VARCHAR.name());
|
||||
assertEquals(Status.UPDATE_PROJECT_PARAMETER_ERROR.getCode(), result.getCode());
|
||||
|
||||
// SUCCESS
|
||||
when(projectParameterMapper.updateById(Mockito.any())).thenReturn(1);
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key1", "value");
|
||||
result = projectParameterService.updateProjectParameter(loginUser, projectCode, 1, "key1", "value",
|
||||
DataType.LONG.name());
|
||||
assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
ProjectParameter projectParameter = (ProjectParameter) result.getData();
|
||||
assertNotNull(projectParameter.getOperator());
|
||||
assertNotNull(projectParameter.getUpdateTime());
|
||||
assertEquals(DataType.LONG.name(), projectParameter.getParamDataType());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -223,7 +235,8 @@ public class ProjectParameterServiceTest {
|
|||
.thenReturn(false);
|
||||
|
||||
Result result =
|
||||
projectParameterService.queryProjectParameterListPaging(loginUser, projectCode, pageSize, pageNo, null);
|
||||
projectParameterService.queryProjectParameterListPaging(loginUser, projectCode, pageSize, pageNo, null,
|
||||
DataType.VARCHAR.name());
|
||||
assertNull(result.getData());
|
||||
assertNull(result.getCode());
|
||||
assertNull(result.getMsg());
|
||||
|
|
@ -235,9 +248,10 @@ public class ProjectParameterServiceTest {
|
|||
Page<ProjectParameter> page = new Page<>(pageNo, pageSize);
|
||||
page.setRecords(Collections.singletonList(getProjectParameter()));
|
||||
|
||||
when(projectParameterMapper.queryProjectParameterListPaging(any(), anyLong(), any(), any())).thenReturn(page);
|
||||
when(projectParameterMapper.queryProjectParameterListPaging(any(), anyLong(), any(), any(), any()))
|
||||
.thenReturn(page);
|
||||
result = projectParameterService.queryProjectParameterListPaging(loginUser, projectCode, pageSize, pageNo,
|
||||
null);
|
||||
null, null);
|
||||
assertEquals(Status.SUCCESS.getCode(), result.getCode());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,9 @@ public class ProjectParameter {
|
|||
@TableField("param_value")
|
||||
private String paramValue;
|
||||
|
||||
@TableField("param_data_type")
|
||||
private String paramDataType;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private Date updateTime;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ public interface ProjectParameterMapper extends BaseMapper<ProjectParameter> {
|
|||
IPage<ProjectParameter> queryProjectParameterListPaging(IPage<ProjectParameter> page,
|
||||
@Param("projectCode") long projectCode,
|
||||
@Param("projectParameterIds") List<Integer> projectParameterIds,
|
||||
@Param("searchName") String searchName);
|
||||
@Param("searchName") String searchName,
|
||||
@Param("projectParameterDataType") String projectParameterDataType);
|
||||
|
||||
List<ProjectParameter> queryByProjectCode(@Param("projectCode") long projectCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="org.apache.dolphinscheduler.dao.mapper.ProjectParameterMapper">
|
||||
<sql id="baseSql">
|
||||
id, param_name, param_value, code, project_code, user_id, operator, create_time, update_time
|
||||
id, param_name, param_value, param_data_type, code, project_code, user_id, operator, create_time, update_time
|
||||
</sql>
|
||||
|
||||
<select id="queryByCode" resultType="org.apache.dolphinscheduler.dao.entity.ProjectParameter">
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
<select id="queryProjectParameterListPaging" resultType="org.apache.dolphinscheduler.dao.entity.ProjectParameter">
|
||||
select
|
||||
pp.id, param_name, param_value, code, project_code, user_id, operator, pp.create_time, pp.update_time,
|
||||
pp.id, param_name, param_value, param_data_type, code, project_code, user_id, operator, pp.create_time, pp.update_time,
|
||||
u.user_name as create_user,
|
||||
u2.user_name as modify_user
|
||||
from t_ds_project_parameter pp
|
||||
|
|
@ -69,6 +69,9 @@
|
|||
OR param_value LIKE concat('%', #{searchName}, '%')
|
||||
)
|
||||
</if>
|
||||
<if test="projectParameterDataType!=null and projectParameterDataType != ''">
|
||||
AND param_data_type = #{projectParameterDataType}
|
||||
</if>
|
||||
order by pp.update_time desc
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -667,6 +667,7 @@ CREATE TABLE t_ds_project_parameter
|
|||
id int(11) NOT NULL AUTO_INCREMENT,
|
||||
param_name varchar(255) NOT NULL,
|
||||
param_value text NOT NULL,
|
||||
param_data_type varchar(50) DEFAULT 'VARCHAR',
|
||||
code bigint(20) NOT NULL,
|
||||
project_code bigint(20) NOT NULL,
|
||||
user_id int(11) DEFAULT NULL,
|
||||
|
|
|
|||
|
|
@ -668,6 +668,7 @@ CREATE TABLE `t_ds_project_parameter` (
|
|||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'key',
|
||||
`param_name` varchar(255) NOT NULL COMMENT 'project parameter name',
|
||||
`param_value` text NOT NULL COMMENT 'project parameter value',
|
||||
`param_data_type` varchar(50) DEFAULT 'VARCHAR' COMMENT 'project parameter data type',
|
||||
`code` bigint(20) NOT NULL COMMENT 'encoding',
|
||||
`project_code` bigint(20) NOT NULL COMMENT 'project code',
|
||||
`user_id` int(11) DEFAULT NULL COMMENT 'creator id',
|
||||
|
|
|
|||
|
|
@ -595,6 +595,7 @@ CREATE TABLE t_ds_project_parameter (
|
|||
id int NOT NULL ,
|
||||
param_name varchar(255) NOT NULL ,
|
||||
param_value text NOT NULL ,
|
||||
param_data_type varchar(50) DEFAULT 'VARCHAR',
|
||||
code bigint NOT NULL,
|
||||
project_code bigint NOT NULL,
|
||||
user_id int DEFAULT NULL ,
|
||||
|
|
|
|||
|
|
@ -53,4 +53,6 @@ END;
|
|||
d//
|
||||
delimiter ;
|
||||
CALL modify_data_t_ds_audit_log_input_entry;
|
||||
DROP PROCEDURE modify_data_t_ds_audit_log_input_entry;
|
||||
DROP PROCEDURE modify_data_t_ds_audit_log_input_entry;
|
||||
|
||||
ALTER TABLE t_ds_project_parameter ADD `param_data_type` varchar (50) DEFAULT 'VARCHAR' COMMENT 'project parameter data type';
|
||||
|
|
@ -56,4 +56,6 @@ $$ LANGUAGE plpgsql;
|
|||
d//
|
||||
|
||||
select modify_data_t_ds_audit_log_input_entry();
|
||||
DROP FUNCTION IF EXISTS modify_data_t_ds_audit_log_input_entry();
|
||||
DROP FUNCTION IF EXISTS modify_data_t_ds_audit_log_input_entry();
|
||||
|
||||
ALTER TABLE t_ds_project_parameter ADD COLUMN IF NOT EXISTS param_data_type varchar(50) DEFAULT 'VARCHAR';
|
||||
|
|
@ -89,7 +89,7 @@ public class ProjectParameterMapperTest extends BaseDaoTest {
|
|||
insertOne(2, "name2", 2);
|
||||
|
||||
Page<ProjectParameter> page = new Page(1, 3);
|
||||
IPage<ProjectParameter> res = projectParameterMapper.queryProjectParameterListPaging(page, 1, null, null);
|
||||
IPage<ProjectParameter> res = projectParameterMapper.queryProjectParameterListPaging(page, 1, null, null, null);
|
||||
Assertions.assertEquals(1, res.getRecords().size());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@ public class CuringParamsServiceImpl implements CuringParamsService {
|
|||
projectParameterList.forEach(projectParameter -> {
|
||||
Property property = new Property(projectParameter.getParamName(),
|
||||
Direct.IN,
|
||||
DataType.VARCHAR,
|
||||
Enum.valueOf(DataType.class, projectParameter.getParamDataType()),
|
||||
projectParameter.getParamValue());
|
||||
result.put(projectParameter.getParamName(), property);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -930,12 +930,14 @@ export default {
|
|||
code: 'Parameter Code',
|
||||
name: 'Parameter Name',
|
||||
value: 'Parameter Value',
|
||||
data_type: 'Parameter Data Type',
|
||||
create_user: 'Create User',
|
||||
modify_user: 'Modify User',
|
||||
create_time: 'Create Time',
|
||||
update_time: 'Update Time',
|
||||
name_tips: 'Please enter your parameter name',
|
||||
value_tips: 'Please enter your parameter value',
|
||||
data_type_tips: 'Please choose your parameter data type',
|
||||
operation: 'Operation',
|
||||
edit: 'Edit',
|
||||
delete: 'Delete',
|
||||
|
|
|
|||
|
|
@ -900,12 +900,14 @@ export default {
|
|||
code: '参数编码',
|
||||
name: '参数名称',
|
||||
value: '参数值',
|
||||
data_type: '参数类型',
|
||||
create_user: '创建用户',
|
||||
modify_user: '修改用户',
|
||||
create_time: '创建时间',
|
||||
update_time: '更新时间',
|
||||
name_tips: '请输入参数名称',
|
||||
value_tips: '请输入参数值',
|
||||
data_type_tips: '请选择参数类型',
|
||||
operation: '操作',
|
||||
edit: '编辑',
|
||||
delete: '删除',
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ interface ListReq {
|
|||
pageNo: number
|
||||
pageSize: number
|
||||
searchVal?: string
|
||||
projectParameterDataType?: string
|
||||
}
|
||||
|
||||
interface ProjectParameterCodeReq {
|
||||
|
|
@ -28,6 +29,7 @@ interface ProjectParameterCodeReq {
|
|||
interface ProjectParameterReq {
|
||||
projectParameterName: string
|
||||
projectParameterValue: string
|
||||
projectParameterDataType: string
|
||||
}
|
||||
|
||||
interface UpdateProjectParameterReq extends ProjectParameterReq {
|
||||
|
|
@ -39,6 +41,7 @@ interface ProjectParameterList {
|
|||
code: number
|
||||
name: string
|
||||
value: string
|
||||
data_type: string
|
||||
createTime: string
|
||||
updateTime: string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,9 +23,10 @@ import {
|
|||
watch
|
||||
} from 'vue'
|
||||
import Modal from '@/components/modal'
|
||||
import { NForm, NFormItem, NInput } from 'naive-ui'
|
||||
import { NForm, NFormItem, NInput, NSelect } from 'naive-ui'
|
||||
import { useModal } from './use-modal'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { DATA_TYPES_MAP, DEFAULT_DATA_TYPE } from "@/views/projects/parameter/data_type"
|
||||
|
||||
const ParameterModal = defineComponent({
|
||||
name: 'ParameterModal',
|
||||
|
|
@ -52,9 +53,11 @@ const ParameterModal = defineComponent({
|
|||
if (props.statusRef === 0) {
|
||||
variables.model.projectParameterName = ''
|
||||
variables.model.projectParameterValue = ''
|
||||
variables.model.projectParameterDataType = DEFAULT_DATA_TYPE
|
||||
} else {
|
||||
variables.model.projectParameterName = props.row.paramName
|
||||
variables.model.projectParameterValue = props.row.paramValue
|
||||
variables.model.projectParameterDataType = props.row.paramDataType
|
||||
}
|
||||
ctx.emit('cancelModal', props.showModalRef)
|
||||
}
|
||||
|
|
@ -78,10 +81,12 @@ const ParameterModal = defineComponent({
|
|||
if (props.statusRef === 0) {
|
||||
variables.model.projectParameterName = ''
|
||||
variables.model.projectParameterValue = ''
|
||||
variables.model.projectParameterDataType = DEFAULT_DATA_TYPE
|
||||
} else {
|
||||
variables.model.code = props.row.code
|
||||
variables.model.projectParameterName = props.row.paramName
|
||||
variables.model.projectParameterValue = props.row.paramValue
|
||||
variables.model.projectParameterDataType = props.row.paramDataType
|
||||
}
|
||||
}
|
||||
)
|
||||
|
|
@ -92,6 +97,7 @@ const ParameterModal = defineComponent({
|
|||
variables.model.code = props.row.code
|
||||
variables.model.projectParameterName = props.row.paramName
|
||||
variables.model.projectParameterValue = props.row.paramValue
|
||||
variables.model.projectParameterDataType = props.row.paramDataType
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -112,7 +118,8 @@ const ParameterModal = defineComponent({
|
|||
onConfirm={this.confirmModal}
|
||||
confirmDisabled={
|
||||
!this.model.projectParameterName ||
|
||||
!this.model.projectParameterValue
|
||||
!this.model.projectParameterValue ||
|
||||
!this.model.projectParameterDataType
|
||||
}
|
||||
confirmClassName='btn-submit'
|
||||
cancelClassName='btn-cancel'
|
||||
|
|
@ -135,6 +142,15 @@ const ParameterModal = defineComponent({
|
|||
v-model={[this.model.projectParameterValue, 'value']}
|
||||
/>
|
||||
</NFormItem>
|
||||
<NFormItem label={t('project.parameter.data_type')} path='data_type'>
|
||||
<NSelect
|
||||
placeholder={t('project.parameter.data_type_tips')}
|
||||
options={Object.keys(DATA_TYPES_MAP).map((item) => {
|
||||
return { value: item, label: item }
|
||||
})}
|
||||
v-model={[this.model.projectParameterDataType, 'value']}
|
||||
/>
|
||||
</NFormItem>
|
||||
</NForm>
|
||||
)
|
||||
}}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import {
|
|||
UpdateProjectParameterReq
|
||||
} from '@/service/modules/projects-parameter/types'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { DEFAULT_DATA_TYPE } from "@/views/projects/parameter/data_type";
|
||||
|
||||
export function useModal(
|
||||
props: any,
|
||||
|
|
@ -41,7 +42,8 @@ export function useModal(
|
|||
model: {
|
||||
code: ref<number>(-1),
|
||||
projectParameterName: ref(''),
|
||||
projectParameterValue: ref('')
|
||||
projectParameterValue: ref(''),
|
||||
projectParameterDataType: ref(DEFAULT_DATA_TYPE)
|
||||
},
|
||||
saving: false,
|
||||
rules: {
|
||||
|
|
@ -62,6 +64,15 @@ export function useModal(
|
|||
return new Error(t('project.parameter.value_tips'))
|
||||
}
|
||||
}
|
||||
},
|
||||
data_type: {
|
||||
required: true,
|
||||
trigger: ['input', 'blur'],
|
||||
validator() {
|
||||
if (variables.model.projectParameterDataType === '') {
|
||||
return new Error(t('project.parameter.data_type_tips'))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
@ -83,12 +94,14 @@ export function useModal(
|
|||
const submitModal = () => {
|
||||
const data: ProjectParameterReq = {
|
||||
projectParameterName: variables.model.projectParameterName,
|
||||
projectParameterValue: variables.model.projectParameterValue
|
||||
projectParameterValue: variables.model.projectParameterValue,
|
||||
projectParameterDataType: variables.model.projectParameterDataType
|
||||
}
|
||||
|
||||
createProjectParameter(data, variables.projectCode).then(() => {
|
||||
variables.model.projectParameterName = ''
|
||||
variables.model.projectParameterValue = ''
|
||||
variables.model.projectParameterDataType = DEFAULT_DATA_TYPE
|
||||
ctx.emit('confirmModal', props.showModalRef)
|
||||
})
|
||||
}
|
||||
|
|
@ -97,7 +110,8 @@ export function useModal(
|
|||
const data: UpdateProjectParameterReq = {
|
||||
code: variables.model.code,
|
||||
projectParameterName: variables.model.projectParameterName,
|
||||
projectParameterValue: variables.model.projectParameterValue
|
||||
projectParameterValue: variables.model.projectParameterValue,
|
||||
projectParameterDataType: variables.model.projectParameterDataType
|
||||
}
|
||||
|
||||
updateProjectParameter(data, variables.projectCode).then(() => {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export const DATA_TYPES_MAP = {
|
||||
VARCHAR: {
|
||||
alias: 'VARCHAR'
|
||||
},
|
||||
INTEGER: {
|
||||
alias: 'INTEGER'
|
||||
},
|
||||
LONG: {
|
||||
alias: 'LONG'
|
||||
},
|
||||
FLOAT: {
|
||||
alias: 'FLOAT'
|
||||
},
|
||||
DOUBLE: {
|
||||
alias: 'DOUBLE'
|
||||
},
|
||||
DATE: {
|
||||
alias: 'DATE'
|
||||
},
|
||||
TIME: {
|
||||
alias: 'TIME'
|
||||
},
|
||||
TIMESTAMP: {
|
||||
alias: 'TIMESTAMP'
|
||||
},
|
||||
BOOLEAN: {
|
||||
alias: 'BOOLEAN'
|
||||
},
|
||||
LIST: {
|
||||
alias: 'LIST'
|
||||
},
|
||||
FILE: {
|
||||
alias: 'FILE'
|
||||
}
|
||||
}
|
||||
|
||||
export const DEFAULT_DATA_TYPE = 'VARCHAR'
|
||||
|
|
@ -21,7 +21,8 @@ import {
|
|||
NInput,
|
||||
NPagination,
|
||||
NSpace,
|
||||
NButton
|
||||
NButton,
|
||||
NSelect
|
||||
} from 'naive-ui'
|
||||
import { defineComponent, onMounted, toRefs, watch } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
|
@ -29,6 +30,7 @@ import { useTable } from '@/views/projects/parameter/use-table'
|
|||
import Card from '@/components/card'
|
||||
import ParameterModal from '@/views/projects/parameter/components/parameter-modal'
|
||||
import { SearchOutlined } from '@vicons/antd'
|
||||
import { DATA_TYPES_MAP } from "@/views/projects/parameter/data_type"
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ProjectParameterList',
|
||||
|
|
@ -40,6 +42,7 @@ export default defineComponent({
|
|||
pageSize: variables.pageSize,
|
||||
pageNo: variables.page,
|
||||
searchVal: variables.searchVal,
|
||||
projectParameterDataType: variables.projectParameterDataType,
|
||||
projectCode: variables.projectCode
|
||||
})
|
||||
}
|
||||
|
|
@ -116,6 +119,17 @@ export default defineComponent({
|
|||
v-model={[this.searchVal, 'value']}
|
||||
placeholder={t('project.parameter.name')}
|
||||
/>
|
||||
<NSelect
|
||||
v-model={[this.projectParameterDataType, 'value']}
|
||||
size='small'
|
||||
options={Object.keys(DATA_TYPES_MAP).map((item) => {
|
||||
return { value: item, label: item }
|
||||
})}
|
||||
placeholder={t('project.parameter.data_type_tips')}
|
||||
style={{ width: '180px' }}
|
||||
clearable
|
||||
onClear={this.onClearSearchTaskType}
|
||||
/>
|
||||
<NButton size='small' type='primary' onClick={handleSearch}>
|
||||
<NIcon>
|
||||
<SearchOutlined />
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ export function useTable() {
|
|||
page: ref(1),
|
||||
pageSize: ref(10),
|
||||
searchVal: ref(),
|
||||
projectParameterDataType: ref(),
|
||||
totalPage: ref(1),
|
||||
showRef: ref(false),
|
||||
statusRef: ref(0),
|
||||
|
|
@ -69,6 +70,11 @@ export function useTable() {
|
|||
key: 'paramValue',
|
||||
...COLUMN_WIDTH_CONFIG['name']
|
||||
},
|
||||
{
|
||||
title: t('project.parameter.data_type'),
|
||||
key: 'paramDataType',
|
||||
...COLUMN_WIDTH_CONFIG['name']
|
||||
},
|
||||
{
|
||||
title: t('project.parameter.create_user'),
|
||||
key: 'createUser',
|
||||
|
|
@ -192,7 +198,8 @@ export function useTable() {
|
|||
getTableData({
|
||||
pageSize: variables.pageSize,
|
||||
pageNo: variables.page,
|
||||
searchVal: variables.searchVal
|
||||
searchVal: variables.searchVal,
|
||||
projectParameterDataType: variables.projectParameterDataType
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue