Commit 3b357b38 by yuwei

项目初始化

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