From 82f223687f98928bf6d9929d7dac980fbe1403b7 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 18 May 2023 09:25:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BB=E9=94=AE=E5=AD=97=E6=AE=B5=E5=80=BC?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E6=A0=87=E8=AF=86=EF=BC=8C?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=86=8D=E6=AC=A1=E4=BD=BF=E7=94=A8=E8=BF=99?= =?UTF-8?q?=E4=B8=AA=E4=B8=BB=E9=94=AE=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/cms/service/CategoryService.java | 1 + .../modules/cms/service/SiteService.java | 25 +++++++++++-------- .../service/support/AreaServiceSupport.java | 1 + .../support/EmployeeServiceSupport.java | 1 + .../service/support/OfficeServiceSupport.java | 17 ++++++------- .../service/support/PostServiceSupport.java | 1 + .../main/resources/config/jeesite-core.yml | 9 ++++++- .../templates/modules/gen/crud/service.xml | 3 +++ .../modules/gen/crud_cloud/service.xml | 3 +++ .../modules/test/service/TestTreeService.java | 10 ++++---- .../modules/test/service/TestTreeService.java | 10 ++++---- .../modules/test/service/TestTreeService.java | 10 ++++---- 12 files changed, 55 insertions(+), 36 deletions(-) diff --git a/modules/cms/src/main/java/com/jeesite/modules/cms/service/CategoryService.java b/modules/cms/src/main/java/com/jeesite/modules/cms/service/CategoryService.java index 45d23b2c..ebec66f0 100644 --- a/modules/cms/src/main/java/com/jeesite/modules/cms/service/CategoryService.java +++ b/modules/cms/src/main/java/com/jeesite/modules/cms/service/CategoryService.java @@ -106,6 +106,7 @@ public class CategoryService extends TreeService { @Override @Transactional public void delete(Category category) { + category.sqlMap().markIdDelete(); super.delete(category); // 清理首页、栏目和文章页面缓存 if (pageCacheService != null) { diff --git a/modules/cms/src/main/java/com/jeesite/modules/cms/service/SiteService.java b/modules/cms/src/main/java/com/jeesite/modules/cms/service/SiteService.java index 79d53593..49c785bc 100644 --- a/modules/cms/src/main/java/com/jeesite/modules/cms/service/SiteService.java +++ b/modules/cms/src/main/java/com/jeesite/modules/cms/service/SiteService.java @@ -75,6 +75,7 @@ public class SiteService extends CrudService { @Transactional public void updateStatus(Site site) { super.updateStatus(site); + CmsUtils.removeCache("siteList"); // 清理首页、栏目和文章页面缓存 if (pageCacheService != null) { pageCacheService.clearCache(site); @@ -88,24 +89,26 @@ public class SiteService extends CrudService { @Override @Transactional public void delete(Site site) { + site.sqlMap().markIdDelete(); super.delete(site); + CmsUtils.removeCache("siteList"); // 清理首页、栏目和文章页面缓存 if (pageCacheService != null) { pageCacheService.clearCache(site); } } - /** - * 删除站点 - * @param site - * @param isRe - */ - @Transactional - public void delete(Site site, Boolean isRe) { - site.setStatus(isRe != null && isRe ? Site.STATUS_NORMAL : Site.STATUS_DELETE); - super.delete(site); - CmsUtils.removeCache("siteList"); - } +// /** +// * 删除站点 +// * @param site +// * @param isRe +// */ +// @Transactional +// public void delete(Site site, Boolean isRe) { +// site.setStatus(isRe != null && isRe ? Site.STATUS_NORMAL : Site.STATUS_DELETE); +// super.delete(site); +// CmsUtils.removeCache("siteList"); +// } /** * 重建索引 diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/AreaServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/AreaServiceSupport.java index 6e5264c0..61f867f0 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/AreaServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/AreaServiceSupport.java @@ -53,6 +53,7 @@ public class AreaServiceSupport extends TreeService @Override @Transactional public void delete(Area area) { + area.sqlMap().markIdDelete(); super.delete(area); AreaUtils.clearCache(); } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmployeeServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmployeeServiceSupport.java index 29217f23..a53ed430 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmployeeServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmployeeServiceSupport.java @@ -88,6 +88,7 @@ public class EmployeeServiceSupport extends CrudService @Override @Transactional public void delete(Employee employee) { + employee.sqlMap().markIdDelete(); super.delete(employee); } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/OfficeServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/OfficeServiceSupport.java index c91e8e64..332049e3 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/OfficeServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/OfficeServiceSupport.java @@ -4,15 +4,6 @@ */ package com.jeesite.modules.sys.service.support; -import java.util.List; - -import javax.validation.ConstraintViolation; -import javax.validation.ConstraintViolationException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - import com.jeesite.common.config.Global; import com.jeesite.common.service.ServiceException; import com.jeesite.common.service.TreeService; @@ -23,6 +14,13 @@ import com.jeesite.modules.sys.entity.Office; import com.jeesite.modules.sys.service.DataScopeService; import com.jeesite.modules.sys.service.OfficeService; import com.jeesite.modules.sys.utils.EmpUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import java.util.List; /** * 机构Service @@ -158,6 +156,7 @@ public class OfficeServiceSupport extends TreeService @Override @Transactional public void delete(Office office) { + office.sqlMap().markIdDelete(); super.delete(office); // 清理部门相关缓存 clearOfficeCache(); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java index 1ba78a50..042ed3dc 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java @@ -92,6 +92,7 @@ public class PostServiceSupport extends CrudService @Override @Transactional public void delete(Post post) { + post.sqlMap().markIdDelete(); super.delete(post); } diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml index 92eb7399..ac71c498 100644 --- a/modules/core/src/main/resources/config/jeesite-core.yml +++ b/modules/core/src/main/resources/config/jeesite-core.yml @@ -560,7 +560,14 @@ mybatis: # 批量插入和更新的分批默认大小(防止库一次性接受不了太大的sql语句) defaultBatchSize: 500 - + + # 执行逻辑删除的时候,同时修改主键字段值,方便再次使用这个主键值 v5.4.0+ + # 案例分析(角色管理场景): + # 1.如果是逻辑删除数据,并非物理删除,所以删除了角色 abc 再次新增时,会提示 abc 编号已存在 + # 2.使用方法为:在 super.delete(entity); 前调用:entity.sqlMap().markIdDelete(); + # 3.一般在手动填写主键业务中使用,启用后将会在删除后,修改 ID 值数据,例如:abc__del_随机串 + markIdDeleteFlag: __del_ + # Mapper文件刷新线程 mapper: refresh: diff --git a/modules/core/src/main/resources/templates/modules/gen/crud/service.xml b/modules/core/src/main/resources/templates/modules/gen/crud/service.xml index eaf996aa..007bc46f 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud/service.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud/service.xml @@ -259,6 +259,9 @@ public class ${ClassName}Service extends ${table.isTreeEntity?'Tree':'Crud'}Serv @Override @Transactional public void delete(${ClassName} ${className}) { + <% if (table.pkList.~size > 0 && table.pkList[0].showType == 'input') { %> + ${className}.sqlMap().markIdDelete(); // 逻辑删除时标记ID值 + <% } %> super.delete(${className}); <% for (child in table.childList) { %> ${@StringUtils.cap(child.className)} ${@StringUtils.uncap(child.className)} = new ${@StringUtils.cap(child.className)}(); diff --git a/modules/core/src/main/resources/templates/modules/gen/crud_cloud/service.xml b/modules/core/src/main/resources/templates/modules/gen/crud_cloud/service.xml index 468a0c99..9e53499f 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud_cloud/service.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud_cloud/service.xml @@ -269,6 +269,9 @@ public class ${ClassName}Service extends ${table.isTreeEntity?'Tree':'Crud'}Serv @GlobalTransactional @Transactional public void delete(${ClassName} ${className}) { + <% if (table.pkList.~size > 0 && table.pkList[0].showType == 'input') { %> + ${className}.sqlMap().markIdDelete(); // 逻辑删除时标记ID值 + <% } %> super.delete(${className}); <% for (child in table.childList) { %> ${@StringUtils.cap(child.className)} ${@StringUtils.uncap(child.className)} = new ${@StringUtils.cap(child.className)}(); diff --git a/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java b/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java index 24dfcccc..ced00001 100644 --- a/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java +++ b/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java @@ -4,15 +4,14 @@ */ package com.jeesite.modules.test.service; -import java.util.List; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.jeesite.common.service.TreeService; import com.jeesite.modules.file.utils.FileUploadUtils; import com.jeesite.modules.test.dao.TestTreeDao; import com.jeesite.modules.test.entity.TestTree; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 测试树表Service @@ -73,6 +72,7 @@ public class TestTreeService extends TreeService { @Override @Transactional public void delete(TestTree testTree) { + testTree.sqlMap().markIdDelete(); // 逻辑删除时标记ID值 super.delete(testTree); } diff --git a/web-fast/src/main/java/com/jeesite/modules/test/service/TestTreeService.java b/web-fast/src/main/java/com/jeesite/modules/test/service/TestTreeService.java index 24dfcccc..ced00001 100644 --- a/web-fast/src/main/java/com/jeesite/modules/test/service/TestTreeService.java +++ b/web-fast/src/main/java/com/jeesite/modules/test/service/TestTreeService.java @@ -4,15 +4,14 @@ */ package com.jeesite.modules.test.service; -import java.util.List; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.jeesite.common.service.TreeService; import com.jeesite.modules.file.utils.FileUploadUtils; import com.jeesite.modules.test.dao.TestTreeDao; import com.jeesite.modules.test.entity.TestTree; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 测试树表Service @@ -73,6 +72,7 @@ public class TestTreeService extends TreeService { @Override @Transactional public void delete(TestTree testTree) { + testTree.sqlMap().markIdDelete(); // 逻辑删除时标记ID值 super.delete(testTree); } diff --git a/web/src/main/java/com/jeesite/modules/test/service/TestTreeService.java b/web/src/main/java/com/jeesite/modules/test/service/TestTreeService.java index 24dfcccc..ced00001 100644 --- a/web/src/main/java/com/jeesite/modules/test/service/TestTreeService.java +++ b/web/src/main/java/com/jeesite/modules/test/service/TestTreeService.java @@ -4,15 +4,14 @@ */ package com.jeesite.modules.test.service; -import java.util.List; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.jeesite.common.service.TreeService; import com.jeesite.modules.file.utils.FileUploadUtils; import com.jeesite.modules.test.dao.TestTreeDao; import com.jeesite.modules.test.entity.TestTree; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 测试树表Service @@ -73,6 +72,7 @@ public class TestTreeService extends TreeService { @Override @Transactional public void delete(TestTree testTree) { + testTree.sqlMap().markIdDelete(); // 逻辑删除时标记ID值 super.delete(testTree); }