支持直接删除表的行数据

This commit is contained in:
暮光:城中城
2021-08-14 12:53:36 +08:00
parent 74d5de9c7f
commit c05bc7be80
14 changed files with 121 additions and 9 deletions

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.util.TypeUtils;
import com.zyplayer.doc.core.annotation.AuthMan;
@@ -87,6 +88,20 @@ public class DbDataViewController {
return responseJson;
}
/**
* 删除表数据
*
* @param lineJson
* @return
*/
@PostMapping(value = "/deleteTableLineData")
public ResponseJson deleteTableLineData(Long sourceId, String dbName, String tableName, String lineJson) {
JSONArray lineJsonArr = JSON.parseArray(lineJson);
DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId);
dbBaseService.deleteTableLineData(sourceId, dbName, tableName, lineJsonArr);
return DocDbResponseJson.ok();
}
/**
* 单表数据下载
*

View File

@@ -1,5 +1,6 @@
package com.zyplayer.doc.db.framework.db.mapper.base;
import com.alibaba.fastjson.JSONObject;
import com.zyplayer.doc.db.controller.param.ProcedureListParam;
import com.zyplayer.doc.db.controller.vo.TableStatusVo;
import com.zyplayer.doc.db.framework.db.dto.*;
@@ -150,4 +151,11 @@ public interface BaseMapper {
* @since 2020年4月24日
*/
void deleteProcedure(@Param("dbName") String dbName, @Param("typeName") String typeName, @Param("procName") String procName);
/**
* 删除行数
* @author 暮光:城中城
* @since 2021-08-14
*/
void deleteTableLineData(@Param("dbName") String dbName, @Param("tableName") String tableName, @Param("lineParam") JSONObject lineParam);
}

View File

@@ -86,4 +86,11 @@
select 1 from ${dbName}.${tableName} where 0 = 1
</insert>
<delete id="deleteTableLineData">
delete from ${dbName}.${tableName} where
<foreach collection="lineParam.entrySet()" index="key" item="value">
${key} = #{value}
</foreach>
</delete>
</mapper>

View File

@@ -87,6 +87,13 @@
DROP ${typeName} IF EXISTS `${dbName}`.`${procName}`
</delete>
<delete id="deleteTableLineData">
delete from `${dbName}`.`${tableName}` where
<foreach collection="lineParam.entrySet()" index="key" item="value">
${key} = #{value}
</foreach>
</delete>
<sql id="ProcedureListCondition">
where db=#{param.dbName}
<if test="param.name != null and param.name != ''">and `name` like #{param.name}</if>

View File

@@ -72,4 +72,11 @@
comment on column ${dbName}.${tableName}.${columnName} is #{new Desc}
</insert>
<delete id="deleteTableLineData">
delete from ${dbName}.${tableName} where
<foreach collection="lineParam.entrySet()" index="key" item="value">
${key} = #{value}
</foreach>
</delete>
</mapper>

View File

@@ -87,5 +87,13 @@
</if>
</select>
<delete id="deleteTableLineData">
delete from ${dbName}.${tableName} where
<foreach collection="lineParam.entrySet()" index="key" item="value">
${key} = #{value}
</foreach>
</delete>
</mapper>

View File

@@ -96,5 +96,12 @@
, @level2type = 'COLUMN', @level2name = #{columnName}
</insert>
<delete id="deleteTableLineData">
delete from ${dbName}.${tableName} where
<foreach collection="lineParam.entrySet()" index="key" item="value">
${key} = #{value}
</foreach>
</delete>
</mapper>

View File

@@ -1,5 +1,7 @@
package com.zyplayer.doc.db.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.zyplayer.doc.core.exception.ConfirmException;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.support.consts.DocAuthConst;
@@ -19,13 +21,16 @@ import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteResult;
import com.zyplayer.doc.db.framework.db.mapper.base.SqlExecutor;
import com.zyplayer.doc.db.service.download.BaseDownloadService;
import com.zyplayer.doc.db.service.download.DownloadService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
/**
* 数据库的mapper持有对象接口
@@ -34,6 +39,7 @@ import java.util.stream.Collectors;
* @since 2018年8月8日
*/
public abstract class DbBaseService {
private static Logger logger = LoggerFactory.getLogger(DbBaseService.class);
@Resource
SqlExecutor sqlExecutor;
@@ -387,4 +393,16 @@ public abstract class DbBaseService {
}
return null;
}
public void deleteTableLineData(Long sourceId, String dbName, String tableName, JSONArray lineJsonArr) {
for (int i = 0; i < lineJsonArr.size(); i++) {
JSONObject lineParam = lineJsonArr.getJSONObject(i);
if (lineParam.isEmpty()) {
logger.error("待删除行的条件参数为空,不允许删除");
continue;
}
BaseMapper baseMapper = this.getViewAuthBaseMapper(sourceId);
baseMapper.deleteTableLineData(dbName, tableName, lineParam);
}
}
}

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon-db.png><title>数据库文档管理</title><link href=css/chunk-vendors.8924efc6.css rel=preload as=style><link href=css/index.2a7107f3.css rel=preload as=style><link href=js/chunk-vendors.333ced1f.js rel=preload as=script><link href=js/index.5607dd4d.js rel=preload as=script><link href=css/chunk-vendors.8924efc6.css rel=stylesheet><link href=css/index.2a7107f3.css rel=stylesheet></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.333ced1f.js></script><script src=js/index.5607dd4d.js></script></body></html>
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon-db.png><title>数据库文档管理</title><link href=css/chunk-vendors.8924efc6.css rel=preload as=style><link href=css/index.2a7107f3.css rel=preload as=style><link href=js/chunk-vendors.333ced1f.js rel=preload as=script><link href=js/index.dab72f94.js rel=preload as=script><link href=css/chunk-vendors.8924efc6.css rel=stylesheet><link href=css/index.2a7107f3.css rel=stylesheet></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.333ced1f.js></script><script src=js/index.dab72f94.js></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long