From 38a56ab404fcd22d710e4d725c2169be001c4d03 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Mon, 31 Mar 2025 09:42:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=91=E8=A1=A8=E6=80=A7?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E5=B7=A6=E6=A0=91=E5=8F=B3=E8=A1=A8=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E6=97=B6=EF=BC=8C=E5=87=8F=E5=B0=91=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/cms/web/CategoryController.java | 14 +++--- .../biz/web/BizCategoryController.java | 12 +++-- .../modules/sys/web/AreaController.java | 7 ++- .../modules/sys/web/CompanyController.java | 10 +++-- .../modules/sys/web/DictDataController.java | 11 +++-- .../modules/sys/web/MenuController.java | 16 +++---- .../modules/sys/web/OfficeController.java | 11 +++-- .../templates/modules/gen/crud/controller.xml | 39 ++++++++++------ .../templates/modules/gen/crud_cloud/api.xml | 2 +- .../modules/gen/crud_cloud/controller.xml | 44 +++++++++++++------ .../modules/gen/query/controller.xml | 36 +++++++++------ .../resources/views/modules/sys/menuList.html | 6 +-- .../modules/test/web/TestTreeController.java | 15 ++++--- 13 files changed, 144 insertions(+), 79 deletions(-) diff --git a/modules/cms/src/main/java/com/jeesite/modules/cms/web/CategoryController.java b/modules/cms/src/main/java/com/jeesite/modules/cms/web/CategoryController.java index 6a015077..d232ff14 100644 --- a/modules/cms/src/main/java/com/jeesite/modules/cms/web/CategoryController.java +++ b/modules/cms/src/main/java/com/jeesite/modules/cms/web/CategoryController.java @@ -16,8 +16,8 @@ import com.jeesite.modules.cms.entity.Site; import com.jeesite.modules.cms.service.CategoryService; import com.jeesite.modules.cms.service.FileTempleteService; import com.jeesite.modules.cms.utils.CmsUtils; -import com.jeesite.modules.sys.entity.Office; import com.jeesite.modules.sys.utils.DictUtils; +import jakarta.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -52,7 +52,10 @@ public class CategoryController extends BaseController { * 获取数据 */ @ModelAttribute - public Category get(String categoryCode, boolean isNewRecord) { + public Category get(String categoryCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new Category(); + } return categoryService.get(categoryCode, isNewRecord); } @@ -88,12 +91,13 @@ public class CategoryController extends BaseController { @ResponseBody public List listData(Category category) { if (StringUtils.isBlank(category.getParentCode())) { - category.setParentCode(Office.ROOT_CODE); + category.setParentCode(Category.ROOT_CODE); } if (StringUtils.isBlank(category.getSite().getSiteCode())) { category.setSite(new Site(Site.getCurrentSiteCode())); } - if (StringUtils.isNotBlank(category.getCategoryCode_like()) + if (StringUtils.isNotBlank(category.getCategoryCode()) + || StringUtils.isNotBlank(category.getCategoryCode_like()) || StringUtils.isNotBlank(category.getCategoryName()) || StringUtils.isNotBlank(category.getRemarks())) { category.setParentCode(null); @@ -222,7 +226,7 @@ public class CategoryController extends BaseController { public String disable(Category category) { Category where = new Category(); where.setStatus(Category.STATUS_NORMAL); - where.setParentCodes("," + category.getId() + ","); + where.setParentCodes_rightLike(category.getParentCodes() + category.getId() + ","); long count = categoryService.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该栏目表包含未停用的子栏目表!")); diff --git a/modules/core/src/main/java/com/jeesite/modules/biz/web/BizCategoryController.java b/modules/core/src/main/java/com/jeesite/modules/biz/web/BizCategoryController.java index 1f48f4e1..8d4d7b60 100644 --- a/modules/core/src/main/java/com/jeesite/modules/biz/web/BizCategoryController.java +++ b/modules/core/src/main/java/com/jeesite/modules/biz/web/BizCategoryController.java @@ -12,7 +12,9 @@ import com.jeesite.common.lang.StringUtils; import com.jeesite.common.web.BaseController; import com.jeesite.modules.biz.entity.BizCategory; import com.jeesite.modules.biz.service.BizCategoryService; +import com.jeesite.modules.sys.entity.Office; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -43,7 +45,10 @@ public class BizCategoryController extends BaseController { * 获取数据 */ @ModelAttribute - public BizCategory get(String categoryCode, boolean isNewRecord) { + public BizCategory get(String categoryCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new BizCategory(); + } return bizCategoryService.get(categoryCode, isNewRecord); } @@ -77,7 +82,8 @@ public class BizCategoryController extends BaseController { if (StringUtils.isBlank(bizCategory.getParentCode())) { bizCategory.setParentCode(BizCategory.ROOT_CODE); } - if (StringUtils.isNotBlank(bizCategory.getViewCode()) + if (StringUtils.isNotBlank(bizCategory.getCategoryCode()) + || StringUtils.isNotBlank(bizCategory.getViewCode()) || StringUtils.isNotBlank(bizCategory.getViewCode_like()) || StringUtils.isNotBlank(bizCategory.getCategoryName()) || StringUtils.isNotBlank(bizCategory.getRemarks())){ @@ -148,7 +154,7 @@ public class BizCategoryController extends BaseController { public String disable(BizCategory bizCategory) { BizCategory where = new BizCategory(); where.setStatus(BizCategory.STATUS_NORMAL); - where.setParentCodes("," + bizCategory.getId() + ","); + where.setParentCodes_rightLike(bizCategory.getParentCodes() + bizCategory.getId() + ","); long count = bizCategoryService.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该业务分类包含未停用的子业务分类!")); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/AreaController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/AreaController.java index 2bc157dc..9ae354cb 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/AreaController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/AreaController.java @@ -49,7 +49,10 @@ public class AreaController extends BaseController { * 获取区域 */ @ModelAttribute - public Area get(String areaCode, boolean isNewRecord) { + public Area get(String areaCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWithAny(request.getRequestURI(), "listData", "listPageData")) { + return new Area(); + } return areaService.get(areaCode, isNewRecord); } @@ -173,7 +176,7 @@ public class AreaController extends BaseController { public String disable(Area area) { Area where = new Area(); where.setStatus(Area.STATUS_NORMAL); - where.setParentCodes("," + area.getId() + ","); + where.setParentCodes_rightLike(area.getParentCodes() + area.getId() + ","); long count = areaService.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该区域包含未停用的子区域!")); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/CompanyController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/CompanyController.java index 175d6bb4..ee752c71 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/CompanyController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/CompanyController.java @@ -54,7 +54,10 @@ public class CompanyController extends BaseController { * 获取公司 */ @ModelAttribute - public Company get(String companyCode, boolean isNewRecord) { + public Company get(String companyCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new Company(); + } return companyService.get(companyCode, isNewRecord); } @@ -92,7 +95,8 @@ public class CompanyController extends BaseController { if (StringUtils.isBlank(company.getParentCode())) { company.setParentCode(Company.ROOT_CODE); } - if (StringUtils.isNotBlank(company.getViewCode()) + if (StringUtils.isNotBlank(company.getCompanyCode()) + || StringUtils.isNotBlank(company.getViewCode()) || StringUtils.isNotBlank(company.getViewCode_like()) || StringUtils.isNotBlank(company.getCompanyName()) || StringUtils.isNotBlank(company.getFullName())){ @@ -181,7 +185,7 @@ public class CompanyController extends BaseController { public String disable(Company company) { Company where = new Company(); where.setStatus(Company.STATUS_NORMAL); - where.setParentCodes("," + company.getId() + ","); + where.setParentCodes_rightLike(company.getParentCodes() + company.getId() + ","); long count = companyService.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该公司包含未停用的子公司!")); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/DictDataController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/DictDataController.java index 7e6a0032..ce6e42ce 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/DictDataController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/DictDataController.java @@ -52,7 +52,10 @@ public class DictDataController extends BaseController { * 获取数据 */ @ModelAttribute - public DictData get(String dictCode, boolean isNewRecord) { + public DictData get(String dictCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new DictData(); + } return dictDataService.get(dictCode, isNewRecord); } @@ -89,7 +92,7 @@ public class DictDataController extends BaseController { // 创建并初始化下一个节点信息 dictData = createNextNode(dictData); model.addAttribute("dictData", dictData); - return "modules/sys/dictDataForm"; + return "modules/sys/dictDataForm"; } /** @@ -168,7 +171,7 @@ public class DictDataController extends BaseController { dictData.setIsSys(dictType.getIsSys()); } dictDataService.save(dictData); - return renderResult(Global.TRUE, text("保存字典成功")); + return renderResult(Global.TRUE, text("保存字典成功")); } /** @@ -186,7 +189,7 @@ public class DictDataController extends BaseController { } // DictData where = new DictData(); // where.setStatus(DictData.STATUS_NORMAL); -// where.setParentCodes("," + dictData.getId() + ","); +// where.setParentCodes_rightLike(dictData.getParentCodes() + dictData.getId() + ","); // long count = dictDataService.findCount(where); // if (count > 0) { // return renderResult(Global.FALSE, text("该字典包含未停用的子字典!")); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/MenuController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/MenuController.java index f113e036..b177bd56 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/MenuController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/MenuController.java @@ -48,7 +48,10 @@ public class MenuController extends BaseController { private ModuleService moduleService; @ModelAttribute - public Menu get(String menuCode, boolean isNewRecord) { + public Menu get(String menuCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new Menu(); + } return menuService.get(menuCode, isNewRecord); } @@ -79,13 +82,10 @@ public class MenuController extends BaseController { if (StringUtils.isBlank(menu.getParentCode())) { menu.setParentCode(Menu.ROOT_CODE); } - if (StringUtils.isNotBlank(menu.getMenuNameRaw())){ - menu.setParentCode(null); - } - if (StringUtils.isNotBlank(menu.getMenuHref())){ - menu.setParentCode(null); - } - if (StringUtils.isNotBlank(menu.getPermission())){ + if (StringUtils.isNotBlank(menu.getMenuCode()) + || StringUtils.isNotBlank(menu.getMenuNameRaw()) + || StringUtils.isNotBlank(menu.getMenuHref()) + || StringUtils.isNotBlank(menu.getPermission())){ menu.setParentCode(null); } List list = menuService.findList(menu); diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java index 95b6439e..56ccf015 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java @@ -19,6 +19,7 @@ import com.jeesite.modules.sys.service.EmpUserService; import com.jeesite.modules.sys.service.OfficeService; import com.jeesite.modules.sys.web.user.EmpUserController; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -57,7 +58,10 @@ public class OfficeController extends BaseController { * 获取机构 */ @ModelAttribute - public Office get(String officeCode, boolean isNewRecord) { + public Office get(String officeCode, boolean isNewRecord, HttpServletRequest request) { + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new Office(); + } return officeService.get(officeCode, isNewRecord); } @@ -95,7 +99,8 @@ public class OfficeController extends BaseController { if (StringUtils.isBlank(office.getParentCode())){ office.setParentCode(Office.ROOT_CODE); } - if (StringUtils.isNotBlank(office.getViewCode()) + if (StringUtils.isNotBlank(office.getOfficeCode()) + || StringUtils.isNotBlank(office.getViewCode()) || StringUtils.isNotBlank(office.getViewCode_like()) || StringUtils.isNotBlank(office.getOfficeName()) || StringUtils.isNotBlank(office.getFullName()) @@ -235,7 +240,7 @@ public class OfficeController extends BaseController { public String disable(Office office) { Office where = new Office(); where.setStatus(Office.STATUS_NORMAL); - where.setParentCodes("," + office.getId() + ","); + where.setParentCodes_rightLike(office.getParentCodes() + office.getId() + ","); long count = officeService.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该机构包含未停用的子机构!")); diff --git a/modules/core/src/main/resources/templates/modules/gen/crud/controller.xml b/modules/core/src/main/resources/templates/modules/gen/crud/controller.xml index 4aa4d01a..f6bd1303 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud/controller.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud/controller.xml @@ -11,9 +11,11 @@ package ${packageName}.${moduleName}.web${isNotEmpty(subModuleName)?'.'+subModul <% if (table.isTreeEntity){ %> import java.util.Map; <% } %> +<% if (table.isTreeEntity || toBoolean(table.optionMap['isImportExport'])){ %> import java.util.List; -<% if (!table.isTreeEntity || toBoolean(table.optionMap['isImportExport'])){ %> +<% } %> import jakarta.servlet.http.HttpServletRequest; +<% if (!table.isTreeEntity || toBoolean(table.optionMap['isImportExport'])){ %> import jakarta.servlet.http.HttpServletResponse; <% } %> @@ -71,7 +73,12 @@ public class ${ClassName}Controller extends BaseController { * 获取数据 */ @ModelAttribute - public ${ClassName} get(<% for(pk in table.pkList){ %>${pkLP.index!=1?', ':''}${pk.simpleAttrType} ${pk.simpleAttrName}<% } %>, boolean isNewRecord) { + public ${ClassName} get(<% for(pk in table.pkList){ %>${pkLP.index!=1?', ':''}${pk.simpleAttrType} ${pk.simpleAttrName}<% } %>, boolean isNewRecord<% if (table.isTreeEntity){ %>, HttpServletRequest request<% } %>) { + <% if (table.isTreeEntity){ %> + if (StringUtils.endsWith(request.getRequestURI(), "listData")) { + return new ${ClassName}(); + } + <% } %> <% if (table.pkList.~size == 1){ %> return ${className}Service.get(<% for(pk in table.pkList){ %>${pkLP.index!=1?', ':''}${pk.simpleAttrName}<% } %>, isNewRecord); <% }else{ %> @@ -117,19 +124,23 @@ public class ${ClassName}Controller extends BaseController { if (StringUtils.isBlank(${className}.getParentCode())) { ${className}.setParentCode(${ClassName}.ROOT_CODE); } - <% for(c in table.columnList){ %> - <% if(c.isQuery == "1" && !c.isTreeEntityColumn && c.attrName != 'status'){ %> - <% if(c.attrType == 'String'){ %> - if (StringUtils.isNotBlank(${className}.${c.attrNameForGetMethod})){ + <% var where = { + for(c in table.columnList){ + if(c.isPk == "1" || (c.isQuery == "1" && !c.isTreeEntityColumn && c.attrName != 'status')){ + if(c.attrType == 'String'){ %> + || StringUtils.isNotBlank(${className}.${c.attrNameForGetMethod}) + <% }else{ %> + || ${className}.${c.attrNameForGetMethod} != null + <% } + } + } + }; + where = @StringUtils.trim(@ObjectUtils.toString(where)); + if (isNotBlank(where)){ %> + if (${@StringUtils.substring(where, 3)}){ ${className}.setParentCode(null); } - <% }else{ %> - if (${className}.${c.attrNameForGetMethod} != null){ - ${className}.setParentCode(null); - } - <% } %> - <% } %> - <% } %> + <% } %> List<${ClassName}> list = ${className}Service.findList(${className}); return list; } @@ -268,7 +279,7 @@ public class ${ClassName}Controller extends BaseController { <% if(table.isTreeEntity){ %> ${ClassName} where = new ${ClassName}(); where.setStatus(${ClassName}.STATUS_NORMAL); - where.setParentCodes("," + ${className}.getId() + ","); + where.setParentCodes_rightLike(${className}.getParentCodes() + ${className}.getId() + ","); long count = ${className}Service.findCount(where); if (count > 0) { return renderResult(Global.FALSE, text("该${functionNameSimple}包含未停用的子${functionNameSimple}!")); diff --git a/modules/core/src/main/resources/templates/modules/gen/crud_cloud/api.xml b/modules/core/src/main/resources/templates/modules/gen/crud_cloud/api.xml index e6a974df..954b2f2b 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud_cloud/api.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud_cloud/api.xml @@ -2,7 +2,7 @@