Commit 3b357b38 by yuwei

项目初始化

parent 5821d898
......@@ -11,5 +11,6 @@ public class ModelDataEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String tableName;
private String id;
private Map<String, Object> datas;
}
......@@ -3,9 +3,15 @@ package cn.datax.service.data.masterdata.dao;
import cn.datax.service.data.masterdata.api.entity.ModelCommentEntity;
import cn.datax.service.data.masterdata.api.entity.ModelDataEntity;
import cn.datax.service.data.masterdata.api.entity.ModelEntity;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
@Mapper
public interface OracleDynamicDao {
......@@ -22,4 +28,8 @@ public interface OracleDynamicDao {
void updateData(ModelDataEntity modelDataEntity);
void deleteData(ModelDataEntity modelDataEntity);
IPage<Map<String, Object>> getPageModelDatas(Page<Object> page, @Param(Constants.WRAPPER) Wrapper wrapper, @Param("tableName") String tableName);
Map<String, Object> getData(ModelDataEntity modelDataEntity);
}
package cn.datax.service.data.masterdata.service.impl;
import cn.datax.common.exception.DataException;
import cn.datax.common.utils.SecurityUtil;
import cn.datax.service.data.masterdata.api.entity.ModelDataEntity;
import cn.datax.service.data.masterdata.api.query.ModelDataQuery;
import cn.datax.service.data.masterdata.dao.MysqlDynamicDao;
......@@ -8,11 +9,13 @@ import cn.datax.service.data.masterdata.service.ModelDataService;
import cn.datax.service.data.masterdata.utils.SearchUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
......@@ -24,6 +27,11 @@ public class ModelDataServiceImpl implements ModelDataService {
private MysqlDynamicDao dynamicDao;
private static String DEFAULT_PRIMARY_KEY = "id";
private static String DEFAULT_CREATE_BY = "create_by";
private static String DEFAULT_CREATE_TIME = "create_time";
private static String DEFAULT_CREATE_DEPT = "create_dept";
private static String DEFAULT_UPDATE_BY = "update_by";
private static String DEFAULT_UPDATE_TIME = "update_time";
private static List<String> SUPER_COLUMNS = Arrays.asList("id", "create_time");
......@@ -48,6 +56,13 @@ public class ModelDataServiceImpl implements ModelDataService {
if (StrUtil.isBlank(tableName)) {
throw new DataException("数据库表为空");
}
Map<String, Object> datas = modelDataEntity.getDatas();
datas.put(DEFAULT_PRIMARY_KEY, new DefaultIdentifierGenerator().nextId(null));
datas.put(DEFAULT_CREATE_BY, SecurityUtil.getUserId());
datas.put(DEFAULT_CREATE_TIME, LocalDateTime.now());
datas.put(DEFAULT_CREATE_DEPT, SecurityUtil.getUserDeptId());
datas.put(DEFAULT_UPDATE_BY, SecurityUtil.getUserId());
datas.put(DEFAULT_UPDATE_TIME, LocalDateTime.now());
dynamicDao.insertData(modelDataEntity);
}
......@@ -57,10 +72,13 @@ public class ModelDataServiceImpl implements ModelDataService {
if (StrUtil.isBlank(tableName)) {
throw new DataException("数据库表为空");
}
Map<String, Object> map = modelDataEntity.getDatas();
if (!map.containsKey(DEFAULT_PRIMARY_KEY)) {
String id = modelDataEntity.getId();
if (StrUtil.isBlank(id)) {
throw new DataException("数据库主键为空");
}
Map<String, Object> datas = modelDataEntity.getDatas();
datas.put(DEFAULT_UPDATE_BY, SecurityUtil.getUserId());
datas.put(DEFAULT_UPDATE_TIME, LocalDateTime.now());
dynamicDao.updateData(modelDataEntity);
}
......@@ -70,8 +88,8 @@ public class ModelDataServiceImpl implements ModelDataService {
if (StrUtil.isBlank(tableName)) {
throw new DataException("数据库表为空");
}
Map<String, Object> map = modelDataEntity.getDatas();
if (!map.containsKey(DEFAULT_PRIMARY_KEY)) {
String id = modelDataEntity.getId();
if (StrUtil.isBlank(id)) {
throw new DataException("数据库主键为空");
}
dynamicDao.deleteData(modelDataEntity);
......@@ -83,8 +101,8 @@ public class ModelDataServiceImpl implements ModelDataService {
if (StrUtil.isBlank(tableName)) {
throw new DataException("数据库表为空");
}
Map<String, Object> map = modelDataEntity.getDatas();
if (!map.containsKey(DEFAULT_PRIMARY_KEY)) {
String id = modelDataEntity.getId();
if (StrUtil.isBlank(id)) {
throw new DataException("数据库主键为空");
}
Map<String, Object> data = dynamicDao.getData(modelDataEntity);
......
......@@ -43,15 +43,15 @@
<!-- 更新数据 -->
<update id="updateData" parameterType="cn.datax.service.data.masterdata.api.entity.ModelDataEntity">
UPDATE ${tableName} SET
<foreach collection="datas.keys" index="key" item="value" separator=",">
<foreach collection="datas" index="key" item="value" separator=",">
${key} = #{value}
</foreach>
WHERE ID = #{datas[id]}
WHERE id = #{id}
</update>
<!-- 删除数据 -->
<delete id="deleteData" parameterType="cn.datax.service.data.masterdata.api.entity.ModelDataEntity">
DELETE FROM ${tableName} WHERE id = #{datas[id]}
DELETE FROM ${tableName} WHERE id = #{id}
</delete>
<select id="getPageModelDatas" resultType="java.util.Map">
......@@ -59,6 +59,6 @@
</select>
<select id="getData" resultType="java.util.Map">
SELECT * FROM ${tableName} WHERE id = #{datas[id]}
SELECT * FROM ${tableName} WHERE id = #{id}
</select>
</mapper>
......@@ -46,14 +46,22 @@
<!-- 更新数据 -->
<update id="updateData" parameterType="cn.datax.service.data.masterdata.api.entity.ModelDataEntity">
UPDATE ${tableName} SET
<foreach collection="datas.keys" index="key" item="value" separator=",">
<foreach collection="datas" index="key" item="value" separator=",">
${key} = #{value}
</foreach>
WHERE ID = #{datas[ID]}
WHERE ID = #{id}
</update>
<!-- 删除数据 -->
<delete id="deleteData" parameterType="cn.datax.service.data.masterdata.api.entity.ModelDataEntity">
DELETE FROM ${tableName} WHERE ID = #{datas[ID]}
DELETE FROM ${tableName} WHERE ID = #{id}
</delete>
<select id="getPageModelDatas" resultType="java.util.Map">
SELECT ${ew.SqlSelect} FROM ${tableName} ${ew.customSqlSegment}
</select>
<select id="getData" resultType="java.util.Map">
SELECT * FROM ${tableName} WHERE id = #{id}
</select>
</mapper>
......@@ -21,6 +21,7 @@
</el-col>
<el-col :span="18">
<el-card class="box-card" shadow="always">
<div v-if="tableName">
<el-form ref="queryForm" :model="queryParams" :inline="true">
<el-form-item v-for="(item, index) in queryParams.conditions" :label="item.columnName" :prop="item.column" :key="index">
<el-input
......@@ -132,6 +133,8 @@
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
<div v-else class="empty-info">从左侧选择数据模型</div>
</el-card>
</el-col>
</el-row>
......@@ -212,9 +215,9 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 20,
tableName: this.tableName,
columns: this.tableColumns.map(column => column.prop),
conditions: this.tableParamList
tableName: JSON.parse(JSON.stringify(this.tableName)),
columns: JSON.parse(JSON.stringify(this.tableColumns)).map(column => column.prop),
conditions: JSON.parse(JSON.stringify(this.tableParamList))
}
this.handleQuery()
},
......@@ -290,16 +293,16 @@ export default {
},
/** 节点单击事件 */
handleNodeClick(data) {
if (data.id) {
if (data.id && data.modelPhysicalTable !== this.tableName) {
getTableParam(data.id).then(response => {
if (response.success) {
const { data } = response
this.tableName = data.tableName
this.tableColumns = data.columnList
this.tableParamList = data.queryList
this.queryParams.tableName = data.tableName
this.queryParams.columns = data.columnList.map(column => column.prop)
this.queryParams.conditions = data.queryList
this.queryParams.tableName = JSON.parse(JSON.stringify(data.tableName))
this.queryParams.columns = JSON.parse(JSON.stringify(data.columnList)).map(column => column.prop)
this.queryParams.conditions = JSON.parse(JSON.stringify(data.queryList))
this.$nextTick(() => {
// 获取表格数据
this.getList()
......@@ -343,5 +346,9 @@ export default {
}
}
}
.empty-info{
text-align: center;
font-size: 18px;
margin-top: 20%;
}
</style>
......@@ -167,10 +167,10 @@
</el-table>
</el-form>
</el-tab-pane>
<el-tab-pane label="唯一约束" name="fourth">唯一约束</el-tab-pane>
<el-tab-pane label="条件约束" name="fifth">条件约束</el-tab-pane>
<el-tab-pane label="外键约束" name="sixth">外键约束</el-tab-pane>
<el-tab-pane label="索引" name="seventh">索引</el-tab-pane>
<!-- <el-tab-pane label="唯一约束" name="fourth">唯一约束</el-tab-pane>-->
<!-- <el-tab-pane label="条件约束" name="fifth">条件约束</el-tab-pane>-->
<!-- <el-tab-pane label="外键约束" name="sixth">外键约束</el-tab-pane>-->
<!-- <el-tab-pane label="索引" name="seventh">索引</el-tab-pane>-->
</el-tabs>
</div>
</el-card>
......@@ -238,9 +238,7 @@ export default {
// 列类型数据字典
columnTypeOptions: [],
// 查询方式数据字典
queryTypeOptions: [
{}
],
queryTypeOptions: [],
// 显示类型数据字典
htmlTypeOptions: [],
// 系统默认列
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment