From 79a622fdfc1b95fdd2e4111db6477684e800f4d8 Mon Sep 17 00:00:00 2001 From: mxd <838425805@qq.com> Date: Sat, 17 Jul 2021 17:32:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magicapi/modules/table/NamedTable.java | 50 ++++++------------- .../magicapi/modules/table/Where.java | 19 ++----- 2 files changed, 18 insertions(+), 51 deletions(-) diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java index 074978b3..d5e4c738 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java @@ -36,6 +36,8 @@ public class NamedTable { Object defaultPrimaryValue; + boolean useLogic = false; + Where where = new Where(this); public NamedTable(String tableName, SQLModule sqlModule, Function rowMapColumnMapper) { @@ -46,6 +48,12 @@ public class NamedTable { this.logicDeleteValue = sqlModule.getLogicDeleteValue(); } + @Comment("使用逻辑删除") + public NamedTable logic(){ + this.useLogic = true; + return this; + } + @Comment("设置主键名,update时使用") public NamedTable primary(String primary) { return primary(primary, null); @@ -151,8 +159,13 @@ public class NamedTable { return sqlModule.insert(new BoundSql(builder.toString(), entries.stream().map(Map.Entry::getValue).collect(Collectors.toList()), sqlModule), this.primary); } - @Comment("执行delete语句(物理删除)") + @Comment("执行delete语句") public int delete() { + if(useLogic){ + Map dataMap = new HashMap<>(); + dataMap.put(logicDeleteColumn, logicDeleteValue); + return update(dataMap); + } if (where.isEmpty()) { throw new MagicAPIException("delete语句不能没有条件"); } @@ -163,20 +176,6 @@ public class NamedTable { return sqlModule.update(new BoundSql(builder.toString(), where.getParams(), sqlModule)); } - @Comment("执行delete语句") - public int delete(@Comment("是否逻辑删除") boolean isLogicDelete) { - if (where.isEmpty()) { - throw new MagicAPIException("delete语句不能没有条件"); - } - if (!isLogicDelete) { - return delete(); - } else { - Map dataMap = new HashMap<>(); - dataMap.put(logicDeleteColumn, logicDeleteValue); - return update(dataMap); - } - } - @Comment("保存到表中,当主键有值时则修改,否则插入") public Object save() { return this.save(null, false); @@ -227,26 +226,12 @@ public class NamedTable { return sqlModule.select(buildSelect()); } - @Comment("执行`select`查询") - public List> select(@Comment("排除无效数据") boolean excludeInvalid) { - return sqlModule.select(buildSelect(excludeInvalid)); - } - @Comment("执行`selectOne`查询") public Map selectOne() { return sqlModule.selectOne(buildSelect()); } - @Comment("执行`selectOne`查询") - public Map selectOne(@Comment("排除无效数据") boolean excludeInvalid) { - return sqlModule.selectOne(buildSelect(excludeInvalid)); - } - private BoundSql buildSelect() { - return buildSelect(false); - } - - private BoundSql buildSelect(boolean excludeInvalid) { StringBuilder builder = new StringBuilder(); builder.append("select "); if (this.fields.isEmpty()) { @@ -256,7 +241,7 @@ public class NamedTable { } builder.append(" from ").append(tableName); List params = new ArrayList<>(); - where.and(excludeInvalid, it -> where.ne(logicDeleteColumn, logicDeleteValue)); + where.and(useLogic, it -> where.ne(logicDeleteColumn, logicDeleteValue)); if (!where.isEmpty()) { where.and(); builder.append(where.getSql()); @@ -278,11 +263,6 @@ public class NamedTable { return sqlModule.page(buildSelect()); } - @Comment("执行分页查询") - public Object page(@Comment("排除无效数据") boolean excludeInvalid) { - return sqlModule.page(buildSelect(excludeInvalid)); - } - @Comment("执行update语句") public int update() { return update(null); diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java index 78710ad6..109d8328 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java @@ -385,14 +385,11 @@ public class Where { return namedTable.delete(); } - @Comment("执行delete语句") - public int delete(@Comment("是否逻辑删除")boolean isLogicDelete) { - return namedTable.delete(isLogicDelete); - } @Comment("执行update语句") public int update(@Comment("各项列和值") Map data) { return namedTable.update(data); } + @Comment("执行update语句") public int update(@Comment("各项列和值") Map data,@Comment("是否更新空值字段") boolean isUpdateBlank) { return namedTable.update(data,isUpdateBlank); @@ -401,24 +398,14 @@ public class Where { public Object page() { return namedTable.page(); } - @Comment("执行分页查询") - public Object page(@Comment("排除无效数据") boolean excludeInvalid) { - return namedTable.page(); - } + @Comment("执行select查询") public List> select() { return namedTable.select(); } - @Comment("执行select查询") - public List> select(@Comment("排除无效数据") boolean excludeInvalid) { - return namedTable.select(excludeInvalid); - } + @Comment("执行selectOne查询") public Map selectOne() { return namedTable.selectOne(); } - @Comment("执行selectOne查询") - public Map selectOne(@Comment("排除无效数据") boolean excludeInvalid) { - return namedTable.selectOne(excludeInvalid); - } }