Merge pull request #9646 from ulleo/dev

feat(X-Pack):【数据填报】创建表单可选择数据源增加配置项
This commit is contained in:
ulleo 2024-05-14 18:24:35 +08:00 committed by GitHub
commit b7fe5fa267
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 243 additions and 13 deletions

View File

@ -76,6 +76,8 @@ public class DatasourceController {
datasource.setCreateTime(null);
datasource.setType(updataDsRequest.getType());
datasource.setUpdateTime(System.currentTimeMillis());
datasource.setEnableDataFill(updataDsRequest.getEnableDataFill());
datasource.setEnableDataFillCreateTable(updataDsRequest.getEnableDataFillCreateTable());
if (StringUtils.isNotEmpty(updataDsRequest.getId())) {
datasource.setId(updataDsRequest.getId());
}

View File

@ -16,4 +16,6 @@ public class UpdataDsRequest {
@ApiModelProperty(value = "配置详情", required = true)
private String configuration;
private boolean configurationEncryption = false;
private Boolean enableDataFill;
private Boolean enableDataFillCreateTable;
}

View File

@ -114,8 +114,11 @@ public class DataFillDataService {
ds = datasource.get(datasourceId);
} else {
ds = datasource.getDataSourceDetails(datasourceId);
//todo 判断是否能创建
if (ds.getEnableDataFill() && ds.getEnableDataFillCreateTable()) {
ds.setConfiguration(new String(java.util.Base64.getDecoder().decode(ds.getConfiguration())));
} else {
return null;
}
}
}

View File

@ -276,6 +276,14 @@ public class DatasourceService {
public void updateDatasource(String id, Datasource datasource) {
if (datasource.getEnableDataFill() != null) {
Datasource ds = datasourceMapper.selectByPrimaryKey(id);
if (ds.getEnableDataFill()) {
datasource.setEnableDataFill(true);
}
}
DatasourceExample example = new DatasourceExample();
example.createCriteria().andIdEqualTo(id);
Status status = checkDatasourceStatus(datasource);
@ -469,7 +477,8 @@ public class DatasourceService {
record.setVersion(status.getVersion());
record.setStatus(status.getStatus());
datasourceMapper.updateByExampleSelective(record, example);
}catch (Exception ignore){}
} catch (Exception ignore) {
}
try {
handleConnectionPool(datasource, "add");
} catch (Exception e) {
@ -652,13 +661,14 @@ public class DatasourceService {
datasourceMapper.updateByPrimaryKeyWithBLOBs(datasource);
}
public void releaseDsconnections(){
List<DefaultJdbcProvider> providers = (List<DefaultJdbcProvider>)SpringContextUtil.getApplicationContext().getBeansOfType(DefaultJdbcProvider.class).values();
providers.forEach(provider ->{
public void releaseDsconnections() {
List<DefaultJdbcProvider> providers = (List<DefaultJdbcProvider>) SpringContextUtil.getApplicationContext().getBeansOfType(DefaultJdbcProvider.class).values();
providers.forEach(provider -> {
provider.getJdbcConnection().values().forEach(druidDataSource -> {
try {
druidDataSource.close();
}catch (Exception e){}
} catch (Exception e) {
}
});
});
}

View File

@ -0,0 +1,3 @@
alter table datasource
add enable_data_fill tinyint(1) default 0 null comment '开启数据填报',
add enable_data_fill_create_table tinyint(1) default 0 null comment '数据填报允许新建表';

View File

@ -597,6 +597,9 @@ export default {
},
data_fill: {
data_fill: 'Data Filling',
permission: 'Data Filling Permission',
enable: 'Enable',
enable_hint: 'Cannot disable after enable',
new_folder: 'New Folder',
form_manage: 'Form Manage',
my_job: 'My Job',

View File

@ -597,6 +597,9 @@ export default {
},
data_fill: {
data_fill: '數據填報',
permission: '填報權限',
enable: '開啟',
enable_hint: '數據填報開啟后,可將表單數據存放至數據源中,一旦開啟后,后期不允許關閉。',
new_folder: '新建文件夾',
form_manage: '表單管理',
my_job: '我的填報',

View File

@ -595,6 +595,9 @@ export default {
},
data_fill: {
data_fill: '数据填报',
permission: '填报权限',
enable: '开启',
enable_hint: '数据填报开启后,可将表单数据存放至数据源中,一旦开启后,后期不允许关闭。',
new_folder: '新建文件夹',
form_manage: '表单管理',
my_job: '我的填报',

View File

@ -117,7 +117,7 @@ export default {
_types.push({
name: dsMap[type][0]?.typeDesc,
type: type,
options: dsMap[type]
options: filter(dsMap[type], d => d.enableDataFill && d.enableDataFillCreateTable)
})
}
})

View File

@ -233,6 +233,44 @@
:component-name="datasourceType.type"
:obj="{ form, disabled }"
/>
<el-form-item
v-if="form.type === 'mysql' || form.type === 'mariadb'"
prop="enableDataFill"
label-position="left"
>
<span style="display: inline-block; width: 80px; font-weight: 700;">{{ $t('data_fill.data_fill') }}</span>
<el-checkbox
v-model="form.enableDataFill"
:disabled="disableEditDataFill"
>
{{ $t('data_fill.enable') }}
<el-tooltip
class="item"
effect="dark"
>
<div slot="content">
{{ $t('data_fill.enable_hint') }}
</div>
<i
class="el-icon-info"
style="cursor: pointer;"
/>
</el-tooltip>
</el-checkbox>
</el-form-item>
<el-form-item
v-if="(form.type === 'mysql' || form.type === 'mariadb') && form.enableDataFill"
prop="enableDataFill"
label-position="left"
>
<span style="display: inline-block; width: 80px; font-weight: 700;">{{ $t('data_fill.permission') }}</span>
<el-checkbox
v-model="form.enableDataFillCreateTable"
>允许新建表</el-checkbox>
</el-form-item>
</el-form>
</div>
</div>
@ -424,6 +462,7 @@ export default {
],
datasourceHistoryId: [{ required: true, message: i18n.t('dataset.pls_slc_data_source'), trigger: 'blur' }]
},
disableEditDataFill: false,
form: {
configuration: {
initialPoolSize: 5,
@ -758,6 +797,7 @@ export default {
if (res.data.apiConfigurationStr) {
res.data.apiConfiguration = JSON.parse(Base64.decode(res.data.apiConfigurationStr))
}
this.disableEditDataFill = res.data.enableDataFill
this.params = { ...res.data, showModel }
if (showModel === 'copy') {
this.params.id = ''

View File

@ -28,5 +28,9 @@ public class Datasource implements Serializable {
@ApiModelProperty(value = "配置详情", required = true)
private String configuration;
private Boolean enableDataFill;
private Boolean enableDataFillCreateTable;
private static final long serialVersionUID = 1L;
}

View File

@ -713,6 +713,126 @@ public class DatasourceExample {
addCriterion("version not between", value1, value2, "version");
return (Criteria) this;
}
public Criteria andEnableDataFillIsNull() {
addCriterion("enable_data_fill is null");
return (Criteria) this;
}
public Criteria andEnableDataFillIsNotNull() {
addCriterion("enable_data_fill is not null");
return (Criteria) this;
}
public Criteria andEnableDataFillEqualTo(Boolean value) {
addCriterion("enable_data_fill =", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillNotEqualTo(Boolean value) {
addCriterion("enable_data_fill <>", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillGreaterThan(Boolean value) {
addCriterion("enable_data_fill >", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillGreaterThanOrEqualTo(Boolean value) {
addCriterion("enable_data_fill >=", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillLessThan(Boolean value) {
addCriterion("enable_data_fill <", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillLessThanOrEqualTo(Boolean value) {
addCriterion("enable_data_fill <=", value, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillIn(List<Boolean> values) {
addCriterion("enable_data_fill in", values, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillNotIn(List<Boolean> values) {
addCriterion("enable_data_fill not in", values, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillBetween(Boolean value1, Boolean value2) {
addCriterion("enable_data_fill between", value1, value2, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillNotBetween(Boolean value1, Boolean value2) {
addCriterion("enable_data_fill not between", value1, value2, "enableDataFill");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableIsNull() {
addCriterion("enable_data_fill_create_table is null");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableIsNotNull() {
addCriterion("enable_data_fill_create_table is not null");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableEqualTo(Boolean value) {
addCriterion("enable_data_fill_create_table =", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableNotEqualTo(Boolean value) {
addCriterion("enable_data_fill_create_table <>", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableGreaterThan(Boolean value) {
addCriterion("enable_data_fill_create_table >", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableGreaterThanOrEqualTo(Boolean value) {
addCriterion("enable_data_fill_create_table >=", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableLessThan(Boolean value) {
addCriterion("enable_data_fill_create_table <", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableLessThanOrEqualTo(Boolean value) {
addCriterion("enable_data_fill_create_table <=", value, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableIn(List<Boolean> values) {
addCriterion("enable_data_fill_create_table in", values, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableNotIn(List<Boolean> values) {
addCriterion("enable_data_fill_create_table not in", values, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableBetween(Boolean value1, Boolean value2) {
addCriterion("enable_data_fill_create_table between", value1, value2, "enableDataFillCreateTable");
return (Criteria) this;
}
public Criteria andEnableDataFillCreateTableNotBetween(Boolean value1, Boolean value2) {
addCriterion("enable_data_fill_create_table not between", value1, value2, "enableDataFillCreateTable");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

View File

@ -11,6 +11,8 @@
<result column="update_time" jdbcType="BIGINT" property="updateTime" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="version" jdbcType="VARCHAR" property="version" />
<result column="enable_data_fill" jdbcType="BIT" property="enableDataFill" />
<result column="enable_data_fill_create_table" jdbcType="BIT" property="enableDataFillCreateTable" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="io.dataease.plugins.common.base.domain.Datasource">
<result column="status" jdbcType="LONGVARCHAR" property="status" />
@ -74,7 +76,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, `name`, `desc`, `type`, configuration, create_time, update_time, create_by, version
id, `name`, `desc`, `type`, configuration, create_time, update_time, create_by, version,
enable_data_fill, enable_data_fill_create_table
</sql>
<sql id="Blob_Column_List">
`status`
@ -131,11 +134,13 @@
insert into datasource (id, `name`, `desc`,
`type`, configuration, create_time,
update_time, create_by, version,
`status`)
enable_data_fill, enable_data_fill_create_table, `status`
)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{desc,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR}, #{configuration,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT},
#{updateTime,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{version,jdbcType=VARCHAR},
#{status,jdbcType=LONGVARCHAR})
#{enableDataFill,jdbcType=BIT}, #{enableDataFillCreateTable,jdbcType=BIT}, #{status,jdbcType=LONGVARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="io.dataease.plugins.common.base.domain.Datasource">
insert into datasource
@ -167,6 +172,12 @@
<if test="version != null">
version,
</if>
<if test="enableDataFill != null">
enable_data_fill,
</if>
<if test="enableDataFillCreateTable != null">
enable_data_fill_create_table,
</if>
<if test="status != null">
`status`,
</if>
@ -199,6 +210,12 @@
<if test="version != null">
#{version,jdbcType=VARCHAR},
</if>
<if test="enableDataFill != null">
#{enableDataFill,jdbcType=BIT},
</if>
<if test="enableDataFillCreateTable != null">
#{enableDataFillCreateTable,jdbcType=BIT},
</if>
<if test="status != null">
#{status,jdbcType=LONGVARCHAR},
</if>
@ -240,6 +257,12 @@
<if test="record.version != null">
version = #{record.version,jdbcType=VARCHAR},
</if>
<if test="record.enableDataFill != null">
enable_data_fill = #{record.enableDataFill,jdbcType=BIT},
</if>
<if test="record.enableDataFillCreateTable != null">
enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT},
</if>
<if test="record.status != null">
`status` = #{record.status,jdbcType=LONGVARCHAR},
</if>
@ -259,6 +282,8 @@
update_time = #{record.updateTime,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
version = #{record.version,jdbcType=VARCHAR},
enable_data_fill = #{record.enableDataFill,jdbcType=BIT},
enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT},
`status` = #{record.status,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -274,7 +299,9 @@
create_time = #{record.createTime,jdbcType=BIGINT},
update_time = #{record.updateTime,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
version = #{record.version,jdbcType=VARCHAR}
version = #{record.version,jdbcType=VARCHAR},
enable_data_fill = #{record.enableDataFill,jdbcType=BIT},
enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -306,6 +333,12 @@
<if test="version != null">
version = #{version,jdbcType=VARCHAR},
</if>
<if test="enableDataFill != null">
enable_data_fill = #{enableDataFill,jdbcType=BIT},
</if>
<if test="enableDataFillCreateTable != null">
enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT},
</if>
<if test="status != null">
`status` = #{status,jdbcType=LONGVARCHAR},
</if>
@ -322,6 +355,8 @@
update_time = #{updateTime,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},
version = #{version,jdbcType=VARCHAR},
enable_data_fill = #{enableDataFill,jdbcType=BIT},
enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT},
`status` = #{status,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
@ -334,7 +369,9 @@
create_time = #{createTime,jdbcType=BIGINT},
update_time = #{updateTime,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},
version = #{version,jdbcType=VARCHAR}
version = #{version,jdbcType=VARCHAR},
enable_data_fill = #{enableDataFill,jdbcType=BIT},
enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>