From dcf1c0bc976bdf908749d843eddc015ba8eb1877 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 22 Jan 2025 22:47:24 +0800 Subject: [PATCH 01/12] =?UTF-8?q?fix:=20=E8=AE=B0=E5=BD=95=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E9=A2=84=E8=A7=88=E6=97=B6=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../general/transform/RecordTransfomer39.java | 65 ++++++++++++++----- .../web/general/GeneralModelController.java | 41 +----------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java b/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java index 56187f6c3a..70cd9a08e5 100644 --- a/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java +++ b/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java @@ -21,14 +21,18 @@ import com.rebuild.core.configuration.general.TransformManager; import com.rebuild.core.metadata.EntityHelper; import com.rebuild.core.metadata.MetadataHelper; +import com.rebuild.core.metadata.easymeta.EasyMetaFactory; import com.rebuild.core.service.general.GeneralEntityService; import com.rebuild.core.service.query.QueryHelper; import com.rebuild.core.support.CommonsLog; import lombok.extern.slf4j.Slf4j; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author Zixin @@ -175,6 +179,12 @@ public JSON preview(ID sourceRecordId, ID specMainId, ID targetExistsRecordId) { } ((JSONObject) formModel).put(GeneralEntityService.HAS_DETAILS, formModelDetailsMap); + + // 明细导入 + if (targetEntity.getDetailEntity() != null) { + ((JSONObject) formModel).put("detailImports", buildDetailImports39(targetEntity)); + } + return formModel; } @@ -190,21 +200,6 @@ private void mergeExistsAndTarget(Record transTargetRecord) { transTargetRecord.removeValue(EntityHelper.OwningUser); transTargetRecord.removeValue(EntityHelper.OwningDept); } - -// if (isPreview) { -// Record existsRecordSnap = Application.getQueryFactory().recordNoFilter(targetExistsRecordId); -// for (Field field : existsRecordSnap.getEntity().getFields()) { -// EasyField easyField = EasyMetaFactory.valueOf(field); -// if (MetadataHelper.isCommonsField(field) || easyField.getDisplayType() == DisplayType.SERIES) { -// if (field.getType() == FieldType.PRIMARY) continue; -// -// String fieldName = field.getName(); -// if (EntityHelper.AutoId.equals(fieldName) || EntityHelper.QuickCode.equals(fieldName)) continue; -// -// transTargetRecord.setObjectValue(fieldName, existsRecordSnap.getObjectValue(fieldName)); -// } -// } -// } } // 获取主记录(如果是明细的话) @@ -215,4 +210,44 @@ private ID forceGetSpecMainId(ID targetRecordId) { } return null; } + + // ~~ + + /** + * @param mainEntity + * @return + */ + public static List buildDetailImports39(Entity mainEntity) { + List alist = new ArrayList<>(); + for (Entity de : mainEntity.getDetialEntities()) { + List confImports = TransformManager.instance.getDetailImports(de.getName()); + if (!confImports.isEmpty()) { + for (ConfigBean c : confImports) { + JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(c.getString("source")).toJSON(); + trans.put("transid", c.getID("id")); + trans.put("transName", c.getString("name")); + + int ifAuto = ((JSONObject) c.getJSON("config")).getIntValue("importsMode2Auto"); + if (ifAuto > 0) { + JSONArray importsFilter = ((JSONObject) c.getJSON("config")).getJSONArray("importsFilter"); + Set autoFields = new HashSet<>(); + for (Object o : importsFilter) { + String name = ((JSONArray) o).getString(0); + autoFields.add(name.split("\\.")[1]); + } + + if (!autoFields.isEmpty()) { + trans.put("auto", ifAuto); + trans.put("autoFields", autoFields); + } + } + + trans.put("detailName", de.getName()); + alist.add(trans); + } + + } + } + return alist; + } } diff --git a/src/main/java/com/rebuild/web/general/GeneralModelController.java b/src/main/java/com/rebuild/web/general/GeneralModelController.java index 1eb9520fa2..b7f598773b 100644 --- a/src/main/java/com/rebuild/web/general/GeneralModelController.java +++ b/src/main/java/com/rebuild/web/general/GeneralModelController.java @@ -24,8 +24,8 @@ import com.rebuild.core.configuration.general.ViewAddonsManager; import com.rebuild.core.metadata.EntityHelper; import com.rebuild.core.metadata.MetadataHelper; -import com.rebuild.core.metadata.easymeta.EasyMetaFactory; import com.rebuild.core.privileges.UserHelper; +import com.rebuild.core.service.general.transform.RecordTransfomer39; import com.rebuild.core.service.query.QueryHelper; import com.rebuild.core.support.ConfigurationItem; import com.rebuild.core.support.RebuildConfiguration; @@ -43,13 +43,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; /** * 表单/视图 @@ -149,41 +146,9 @@ else if (FormsBuilder.DV_MAINID.equals(mainid) || FormsBuilder.DV_MAINID_FJS.equ FormsBuilder.instance.setFormInitialValue(modelEntity, model, (JSONObject) initialVal); } - // v3.1 明细导入配置 - // v3.4 FIXME ND只有第一个实体支持转换 - // v3.7 ND + // 明细导入 if (modelEntity.getDetailEntity() != null) { - List alist = new ArrayList<>(); - for (Entity de : modelEntity.getDetialEntities()) { - List confImports = TransformManager.instance.getDetailImports(de.getName()); - if (!confImports.isEmpty()) { - for (ConfigBean c : confImports) { - JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(c.getString("source")).toJSON(); - trans.put("transid", c.getID("id")); - trans.put("transName", c.getString("name")); - - int ifAuto = ((JSONObject) c.getJSON("config")).getIntValue("importsMode2Auto"); - if (ifAuto > 0) { - JSONArray importsFilter = ((JSONObject) c.getJSON("config")).getJSONArray("importsFilter"); - Set autoFields = new HashSet<>(); - for (Object o : importsFilter) { - String name = ((JSONArray) o).getString(0); - autoFields.add(name.split("\\.")[1]); - } - - if (!autoFields.isEmpty()) { - trans.put("auto", ifAuto); - trans.put("autoFields", autoFields); - } - } - - trans.put("detailName", de.getName()); - alist.add(trans); - } - - } - ((JSONObject) model).put("detailImports", alist); - } + ((JSONObject) model).put("detailImports", RecordTransfomer39.buildDetailImports39(modelEntity)); } return model; From 3c06a0da357800bede01cd7950df709ef6493239 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 22 Jan 2025 22:47:55 +0800 Subject: [PATCH 02/12] 3.9.3 --- pom.xml | 2 +- src/main/java/com/rebuild/core/Application.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 7b5dd34c4f..51487d96f6 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.rebuild rebuild - 3.9.2 + 3.9.3 rebuild Building your business-systems freely! https://getrebuild.com/ diff --git a/src/main/java/com/rebuild/core/Application.java b/src/main/java/com/rebuild/core/Application.java index 3523df0be7..46b1b5188c 100644 --- a/src/main/java/com/rebuild/core/Application.java +++ b/src/main/java/com/rebuild/core/Application.java @@ -74,11 +74,11 @@ public class Application implements ApplicationListener /** * Rebuild Version */ - public static final String VER = "3.9.2"; + public static final String VER = "3.9.3"; /** * Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2} */ - public static final int BUILD = 3090207; + public static final int BUILD = 3090308; static { // Driver for DB From 54575469d270b9d3b6f4950ec01f99e5722c641a Mon Sep 17 00:00:00 2001 From: RB Date: Thu, 23 Jan 2025 12:08:09 +0800 Subject: [PATCH 03/12] msg {NOW} --- .../support/general/ContentWithFieldVars.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/rebuild/core/support/general/ContentWithFieldVars.java b/src/main/java/com/rebuild/core/support/general/ContentWithFieldVars.java index 5fbcec80e7..22212db565 100644 --- a/src/main/java/com/rebuild/core/support/general/ContentWithFieldVars.java +++ b/src/main/java/com/rebuild/core/support/general/ContentWithFieldVars.java @@ -7,6 +7,7 @@ package com.rebuild.core.support.general; +import cn.devezhao.commons.CalendarUtils; import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Record; import cn.devezhao.persist4j.engine.ID; @@ -51,14 +52,14 @@ public class ContentWithFieldVars { * @return */ public static String replaceWithRecord(String content, ID recordId) { - if (StringUtils.isBlank(content) || recordId == null) { - return content; - } + if (StringUtils.isBlank(content) || recordId == null) return content; + + final Entity entity = MetadataHelper.getEntity(recordId.getEntityCode()); + final String pkName = entity.getPrimaryField().getName(); - Entity entity = MetadataHelper.getEntity(recordId.getEntityCode()); - String pkName = entity.getPrimaryField().getName(); - // 主键占位符 + // 固定占位符 content = content.replace("{ID}", String.format("{%s}", pkName)); + content = content.replace("{NOW}", CalendarUtils.getUTCDateFormat().format(CalendarUtils.now())); Set fieldVars = new HashSet<>(); for (String field : matchsVars(content)) { @@ -84,12 +85,12 @@ public static String replaceWithRecord(String content, ID recordId) { public static String replaceWithRecord(String content, Record record) { if (StringUtils.isBlank(content) || record == null) return content; - // 主键占位符 - content = content.replace("{ID}", - String.format("{%s}", record.getEntity().getPrimaryField().getName())); - final Entity entity = record.getEntity(); + // 固定占位符 + content = content.replace("{ID}", String.format("{%s}", entity.getPrimaryField().getName())); + content = content.replace("{NOW}", CalendarUtils.getUTCDateFormat().format(CalendarUtils.now())); + Map fieldVars = new HashMap<>(); for (String field : matchsVars(content)) { if (MetadataHelper.getLastJoinField(entity, field) != null) { From f10491fc0832e6a951ee2eaecfffd7a85a3150ae Mon Sep 17 00:00:00 2001 From: RB Date: Thu, 23 Jan 2025 16:09:47 +0800 Subject: [PATCH 04/12] =?UTF-8?q?be:=E6=89=8B=E5=8A=A8=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=E6=B8=85=E9=99=A4=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rebuild/web/admin/ConfigurationController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/rebuild/web/admin/ConfigurationController.java b/src/main/java/com/rebuild/web/admin/ConfigurationController.java index 068c27d0b3..79e8a13a92 100644 --- a/src/main/java/com/rebuild/web/admin/ConfigurationController.java +++ b/src/main/java/com/rebuild/web/admin/ConfigurationController.java @@ -24,6 +24,7 @@ import com.rebuild.core.support.DataDesensitized; import com.rebuild.core.support.License; import com.rebuild.core.support.RebuildConfiguration; +import com.rebuild.core.support.SysbaseHeartbeat; import com.rebuild.core.support.i18n.Language; import com.rebuild.core.support.integration.QiniuCloud; import com.rebuild.core.support.integration.SMSender; @@ -145,6 +146,7 @@ public RespBody postSystemsBackup(HttpServletRequest request) { if (type == 1 || type == 3) { try { dbFile = "_backups/" + new DatabaseBackup().backup(backups).getName(); + SysbaseHeartbeat.setItem(SysbaseHeartbeat.DatabaseBackupFail, null); } catch (Exception e) { dbFile = "ERR:" + e.getMessage(); log.error("Executing [DatabaseBackup] fails", e); @@ -153,6 +155,7 @@ public RespBody postSystemsBackup(HttpServletRequest request) { if (type == 2 || type == 3) { try { fileFile = "_backups/" + new DatafileBackup().backup(backups).getName(); + SysbaseHeartbeat.setItem(SysbaseHeartbeat.DataFileBackupFail, null); } catch (Exception e) { fileFile = "ERR:" + e.getMessage(); log.error("Executing [DataFileBackup] fails", e); From 3ce68402981a18ea17c79e37f9f63ba955bfe4c3 Mon Sep 17 00:00:00 2001 From: RB Date: Thu, 23 Jan 2025 17:30:43 +0800 Subject: [PATCH 05/12] email --- .../core/support/integration/SMSender.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/rebuild/core/support/integration/SMSender.java b/src/main/java/com/rebuild/core/support/integration/SMSender.java index 23326d8e8b..d76f9deaa6 100644 --- a/src/main/java/com/rebuild/core/support/integration/SMSender.java +++ b/src/main/java/com/rebuild/core/support/integration/SMSender.java @@ -39,6 +39,7 @@ import java.io.File; import java.io.IOException; +import java.util.Base64; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -194,7 +195,7 @@ public static String sendMail(String to, String subject, String content, File[] String base64; try { byte[] bs = FileUtils.readFileToByteArray(a); - base64 = java.util.Base64.getEncoder().encodeToString(bs); + base64 = Base64.getEncoder().encodeToString(bs); } catch (IOException ex) { continue; } @@ -280,10 +281,22 @@ protected static Element getMailTemplate() { if (Application.devMode()) MT_CACHE = null; if (MT_CACHE != null) return MT_CACHE.clone(); - String content = CommonsUtils.getStringOfRes("i18n/email.zh_CN.html"); - Assert.notNull(content, "Cannot load template of email"); - Document html = Jsoup.parse(content); + String content = null; + // v3.9.3 从数据目录 + File file = RebuildConfiguration.getFileOfData("email.zh_CN.html"); + if (file.exists()) { + try { + content = FileUtils.readFileToString(file, AppUtils.UTF8); + } catch (IOException ex) { + log.warn("Cannot read file of email template : {}", file, ex); + } + } + if (content == null) { + content = CommonsUtils.getStringOfRes("i18n/email.zh_CN.html"); + } + Assert.notNull(content, "Cannot read email template"); + Document html = Jsoup.parse(content); MT_CACHE = html.body(); return MT_CACHE.clone(); } From fc405d1cdd65f093788061c4e103018992bdd58a Mon Sep 17 00:00:00 2001 From: RB Date: Fri, 24 Jan 2025 14:16:25 +0800 Subject: [PATCH 06/12] be --- .../java/com/rebuild/core/support/setup/DatabaseBackup.java | 2 +- .../java/com/rebuild/core/support/setup/DatafileBackup.java | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/rebuild/core/support/setup/DatabaseBackup.java b/src/main/java/com/rebuild/core/support/setup/DatabaseBackup.java index e5a7ff25c1..1e0657e38d 100644 --- a/src/main/java/com/rebuild/core/support/setup/DatabaseBackup.java +++ b/src/main/java/com/rebuild/core/support/setup/DatabaseBackup.java @@ -99,7 +99,7 @@ public File backup(File backups) throws IOException { log.warn("Cannot zip backup : {}", zip); } - log.info("Backup succeeded : {} ({})", dest, FileUtils.byteCountToDisplaySize(dest.length())); + log.info("Backup database succeeded : {} ({})", dest, FileUtils.byteCountToDisplaySize(dest.length())); // 恢复 // https://stackoverflow.com/questions/16735344/how-to-ignore-certain-mysql-tables-when-importing-a-database diff --git a/src/main/java/com/rebuild/core/support/setup/DatafileBackup.java b/src/main/java/com/rebuild/core/support/setup/DatafileBackup.java index 7278589805..5ec335b042 100644 --- a/src/main/java/com/rebuild/core/support/setup/DatafileBackup.java +++ b/src/main/java/com/rebuild/core/support/setup/DatafileBackup.java @@ -25,10 +25,6 @@ @Slf4j public class DatafileBackup extends DatabaseBackup { - /** - * @return - * @throws IOException - */ @Override public File backup(File backups) throws IOException { File rbdata = RebuildConfiguration.getFileOfData(""); @@ -41,7 +37,7 @@ public File backup(File backups) throws IOException { return !("_backups".equals(name) || "_log".equals(name) || "temp".equals(name) || "rebuild.pid".equals(name)); }); - log.info("Backup succeeded : {} ({})", destZip, FileUtils.byteCountToDisplaySize(destZip.length())); + log.info("Backup files succeeded : {} ({})", destZip, FileUtils.byteCountToDisplaySize(destZip.length())); return destZip; } From 3598a9836c262aa1eb57cae823a70b39ef80c421 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 5 Feb 2025 10:36:21 +0800 Subject: [PATCH 07/12] be --- src/main/java/com/rebuild/core/privileges/UserHelper.java | 2 +- .../java/com/rebuild/web/user/signup/SignUpController.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/rebuild/core/privileges/UserHelper.java b/src/main/java/com/rebuild/core/privileges/UserHelper.java index 57a040bb4e..4381f5186f 100644 --- a/src/main/java/com/rebuild/core/privileges/UserHelper.java +++ b/src/main/java/com/rebuild/core/privileges/UserHelper.java @@ -65,7 +65,7 @@ public static boolean isAdmin(ID userId) { try { return Application.getUserStore().getUser(userId).isAdmin(); } catch (NoMemberFoundException ex) { - log.error("No User found : " + userId); + log.error("No User found : {}", userId); } return false; } diff --git a/src/main/java/com/rebuild/web/user/signup/SignUpController.java b/src/main/java/com/rebuild/web/user/signup/SignUpController.java index 2b5276ab45..9df832304f 100644 --- a/src/main/java/com/rebuild/web/user/signup/SignUpController.java +++ b/src/main/java/com/rebuild/web/user/signup/SignUpController.java @@ -156,9 +156,8 @@ public RespBody signupConfirm(HttpServletRequest request) { public RespBody checkoutName(HttpServletRequest request) { String fullName = getParameterNotNull(request, "fullName"); - //noinspection UnnecessaryUnicodeEscape - fullName = fullName.replaceAll("[^a-zA-Z0-9\u4e00-\u9fa5]", ""); String loginName = HanLP.convertToPinyinString(fullName, "", false); + loginName = loginName.replaceAll("[^a-zA-Z0-9]", ""); if (loginName.length() > 20) { loginName = loginName.substring(0, 20); } From 1b1f6da179cb49d7060fedad94386de0ce258568 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 5 Feb 2025 11:01:24 +0800 Subject: [PATCH 08/12] be isSelf --- .../rebuild/core/privileges/UserHelper.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/rebuild/core/privileges/UserHelper.java b/src/main/java/com/rebuild/core/privileges/UserHelper.java index 4381f5186f..c1fab982f6 100644 --- a/src/main/java/com/rebuild/core/privileges/UserHelper.java +++ b/src/main/java/com/rebuild/core/privileges/UserHelper.java @@ -100,7 +100,7 @@ public static boolean isActive(ID bizzId) { } } catch (NoMemberFoundException ex) { - log.error("No bizz found : " + bizzId); + log.error("No bizz found : {}", bizzId); } return false; } @@ -460,16 +460,21 @@ public static Set getMembersOfRole(ID roleId) { * @return */ public static boolean isSelf(ID user, ID otherUserOrAnyRecordId) { - ID createdBy = otherUserOrAnyRecordId; - if (otherUserOrAnyRecordId.getEntityCode() != EntityHelper.User) { - createdBy = getCreatedBy(otherUserOrAnyRecordId); - if (createdBy == null) return false; - } + try { + ID createdBy = otherUserOrAnyRecordId; + if (otherUserOrAnyRecordId.getEntityCode() != EntityHelper.User) { + createdBy = getCreatedBy(otherUserOrAnyRecordId); + if (createdBy == null) return false; + } - if (createdBy.equals(user)) return true; + if (createdBy.equals(user)) return true; - // 所有管理员被视为同一用户 - return isAdmin(createdBy) && isAdmin(user); + // 所有管理员被视为同一用户 + return isAdmin(createdBy) && isAdmin(user); + } catch (Exception e) { + log.warn("Check isSelf error : {}, {}", user, otherUserOrAnyRecordId); + return false; + } } private static ID getCreatedBy(ID anyRecordId) { From 00426653b7d217f8c6a28f07175d25ad1002ac24 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 5 Feb 2025 11:04:35 +0800 Subject: [PATCH 09/12] Update UserHelper.java --- src/main/java/com/rebuild/core/privileges/UserHelper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/rebuild/core/privileges/UserHelper.java b/src/main/java/com/rebuild/core/privileges/UserHelper.java index c1fab982f6..2d37a8430f 100644 --- a/src/main/java/com/rebuild/core/privileges/UserHelper.java +++ b/src/main/java/com/rebuild/core/privileges/UserHelper.java @@ -471,8 +471,8 @@ public static boolean isSelf(ID user, ID otherUserOrAnyRecordId) { // 所有管理员被视为同一用户 return isAdmin(createdBy) && isAdmin(user); - } catch (Exception e) { - log.warn("Check isSelf error : {}, {}", user, otherUserOrAnyRecordId); + } catch (Exception ex) { + log.warn("Check isSelf error : {}, {}", user, otherUserOrAnyRecordId, ex); return false; } } From 6b6b49f2a7267847eb85a4a34671bb6c683fe3e1 Mon Sep 17 00:00:00 2001 From: RB Date: Wed, 5 Feb 2025 20:55:31 +0800 Subject: [PATCH 10/12] be --- src/main/java/com/rebuild/web/BaseController.java | 6 +++--- .../web/admin/metadata/ClassificationController.java | 2 +- .../com/rebuild/web/commons/BarCodeGeneratorController.java | 2 +- src/main/java/com/rebuild/web/commons/FileDownloader.java | 2 +- src/main/java/com/rebuild/web/commons/MetadataGetting.java | 2 +- .../java/com/rebuild/web/feeds/AnnouncementController.java | 2 +- .../java/com/rebuild/web/feeds/FeedsListController.java | 2 +- .../java/com/rebuild/web/general/GeneralListController.java | 2 +- .../rebuild/web/notification/NotificationController.java | 2 +- .../java/com/rebuild/web/user/UserSettingsController.java | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/rebuild/web/BaseController.java b/src/main/java/com/rebuild/web/BaseController.java index 65e35a603b..c5ff78ce88 100644 --- a/src/main/java/com/rebuild/web/BaseController.java +++ b/src/main/java/com/rebuild/web/BaseController.java @@ -117,8 +117,8 @@ protected String getParameterNotNull(HttpServletRequest request, String name) { * @param name * @return */ - protected Integer getIntParameter(HttpServletRequest request, String name) { - return getIntParameter(request, name, null); + protected int getIntParameter(HttpServletRequest request, String name) { + return getIntParameter(request, name, 0); } /** @@ -127,7 +127,7 @@ protected Integer getIntParameter(HttpServletRequest request, String name) { * @param defaultValue * @return */ - protected Integer getIntParameter(HttpServletRequest request, String name, Integer defaultValue) { + protected int getIntParameter(HttpServletRequest request, String name, int defaultValue) { String v = request.getParameter(name); if (StringUtils.isBlank(v)) return defaultValue; diff --git a/src/main/java/com/rebuild/web/admin/metadata/ClassificationController.java b/src/main/java/com/rebuild/web/admin/metadata/ClassificationController.java index abb5be6ade..25a5ec892f 100644 --- a/src/main/java/com/rebuild/web/admin/metadata/ClassificationController.java +++ b/src/main/java/com/rebuild/web/admin/metadata/ClassificationController.java @@ -88,7 +88,7 @@ public JSONAware saveDataItem(@IdParam(name = "item_id", required = false) ID it item = EntityHelper.forUpdate(itemId, user); } else if (dataId != null) { ID parent = getIdParameter(request, "parent"); - int level = getIntParameter(request, "level", 0); + int level = getIntParameter(request, "level"); item = EntityHelper.forNew(EntityHelper.ClassificationData, user); item.setID("dataId", dataId); diff --git a/src/main/java/com/rebuild/web/commons/BarCodeGeneratorController.java b/src/main/java/com/rebuild/web/commons/BarCodeGeneratorController.java index c92cbf3c68..508761594a 100644 --- a/src/main/java/com/rebuild/web/commons/BarCodeGeneratorController.java +++ b/src/main/java/com/rebuild/web/commons/BarCodeGeneratorController.java @@ -54,7 +54,7 @@ public void generateAndRender(HttpServletRequest request, HttpServletResponse re @GetMapping({"/commons/barcode/render-qr", "/commons/barcode/render"}) public void render(HttpServletRequest request, HttpServletResponse response) throws IOException { String content = getParameter(request, "t", "UNSET"); - int w = getIntParameter(request, "w", 0); + int w = getIntParameter(request, "w"); BufferedImage bi; if (request.getRequestURI().endsWith("render-qr")) { diff --git a/src/main/java/com/rebuild/web/commons/FileDownloader.java b/src/main/java/com/rebuild/web/commons/FileDownloader.java index e19c8b6fab..0741f3d364 100644 --- a/src/main/java/com/rebuild/web/commons/FileDownloader.java +++ b/src/main/java/com/rebuild/web/commons/FileDownloader.java @@ -182,7 +182,7 @@ public void download(HttpServletRequest request, HttpServletResponse response) t public void readRawText(HttpServletRequest request, HttpServletResponse response) throws IOException { String filepath = getParameterNotNull(request, "url"); final String charset = getParameter(request, "charset", AppUtils.UTF8); - final int cut = getIntParameter(request, "cut"); // MB + final Integer cut = getIntParameter(request, "cut"); // MB if (CommonsUtils.isExternalUrl(filepath)) { // v3.7 禁外部地址 diff --git a/src/main/java/com/rebuild/web/commons/MetadataGetting.java b/src/main/java/com/rebuild/web/commons/MetadataGetting.java index d1e1eb8622..ba94225cfb 100644 --- a/src/main/java/com/rebuild/web/commons/MetadataGetting.java +++ b/src/main/java/com/rebuild/web/commons/MetadataGetting.java @@ -68,7 +68,7 @@ public JSON entities(HttpServletRequest request) { public JSON fields(HttpServletRequest request) { Entity entity = MetadataHelper.getEntity(getParameterNotNull(request, "entity")); // 返回引用实体的字段层级 - int appendRefFields = getIntParameter(request, "deep", 0); + int appendRefFields = getIntParameter(request, "deep"); // 根据不同的 referer 返回不同的字段列表 // 返回 ID 主键字段 diff --git a/src/main/java/com/rebuild/web/feeds/AnnouncementController.java b/src/main/java/com/rebuild/web/feeds/AnnouncementController.java index d5ad8ca75d..890c80416d 100644 --- a/src/main/java/com/rebuild/web/feeds/AnnouncementController.java +++ b/src/main/java/com/rebuild/web/feeds/AnnouncementController.java @@ -44,7 +44,7 @@ public class AnnouncementController extends BaseController { @GetMapping("/commons/announcements") public RespBody announcementList(HttpServletRequest request) { final ID user = AppUtils.getRequestUser(request); - int fromWhere = getIntParameter(request, "from", 0); + int fromWhere = getIntParameter(request, "from"); if (fromWhere == 0) { // 1=动态页 2=首页 4=登录页 diff --git a/src/main/java/com/rebuild/web/feeds/FeedsListController.java b/src/main/java/com/rebuild/web/feeds/FeedsListController.java index 8c85674a1a..8405112b4d 100644 --- a/src/main/java/com/rebuild/web/feeds/FeedsListController.java +++ b/src/main/java/com/rebuild/web/feeds/FeedsListController.java @@ -80,7 +80,7 @@ public RespBody fetchFeeds(HttpServletRequest request) { sqlWhere = "(1=1)"; } - int type = getIntParameter(request, "type", 0); + int type = getIntParameter(request, "type"); if (type == 1) { sqlWhere += String.format(" and exists (select feedsId from FeedsMention where ^feedsId = feedsId and user = '%s')", user); } else if (type == 2) { diff --git a/src/main/java/com/rebuild/web/general/GeneralListController.java b/src/main/java/com/rebuild/web/general/GeneralListController.java index 5baefdad14..1bacc9bb5e 100644 --- a/src/main/java/com/rebuild/web/general/GeneralListController.java +++ b/src/main/java/com/rebuild/web/general/GeneralListController.java @@ -72,7 +72,7 @@ public ModelAndView pageList(@PathVariable String entity, HttpServletRequest req final EasyEntity easyEntity = EasyMetaFactory.valueOf(listEntity); int listMode = ObjectUtils.toInt(easyEntity.getExtraAttr(EasyEntityConfigProps.ADVLIST_MODE), 1); - int listModeForce = getIntParameter(request, "mode", 0); + int listModeForce = getIntParameter(request, "mode"); if (listModeForce >= 1 && listModeForce <= 3) listMode = listModeForce; String listPage = listEntity.getMainEntity() != null ? "/general/detail-list" : "/general/record-list"; if (listMode == 2) listPage = "/general/record-list2"; // Mode2 diff --git a/src/main/java/com/rebuild/web/notification/NotificationController.java b/src/main/java/com/rebuild/web/notification/NotificationController.java index 9b89cb6f9b..b6e9fe0016 100644 --- a/src/main/java/com/rebuild/web/notification/NotificationController.java +++ b/src/main/java/com/rebuild/web/notification/NotificationController.java @@ -101,7 +101,7 @@ public Object[][] listMessage(HttpServletRequest request) { final ID user = getRequestUser(request); int pn = getIntParameter(request, "pageNo", 1); int ps = getIntParameter(request, "pageSize", 40); - int type = getIntParameter(request, "type", 0); + int type = getIntParameter(request, "type"); boolean preview = getBoolParameter(request, "preview"); String sql = "select fromUser,message,createdOn,unread,messageId,relatedRecord,type from Notification" + diff --git a/src/main/java/com/rebuild/web/user/UserSettingsController.java b/src/main/java/com/rebuild/web/user/UserSettingsController.java index c2f7dabd13..9e95fcb6ce 100644 --- a/src/main/java/com/rebuild/web/user/UserSettingsController.java +++ b/src/main/java/com/rebuild/web/user/UserSettingsController.java @@ -198,7 +198,7 @@ private RespBody savePasswd(ID user, String password) { @PostMapping("/cancel-external-user") public RespBody cancelExternalUser(HttpServletRequest request) { - int appType = getIntParameter(request, "type", 0); + int appType = getIntParameter(request, "type"); // 1=Dingtalk, 2=Wxwork, 3=Feishu String appId = appType == 1 ? RebuildConfiguration.get(ConfigurationItem.DingtalkCorpid) From d45a7ad54a604d242bac9df97868bbea976fa696 Mon Sep 17 00:00:00 2001 From: RB Date: Thu, 6 Feb 2025 22:44:19 +0800 Subject: [PATCH 11/12] style --- src/main/resources/web/admin/metadata/list-stats.html | 3 +++ src/main/resources/web/assets/js/metadata/list-stats.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/web/admin/metadata/list-stats.html b/src/main/resources/web/admin/metadata/list-stats.html index ead47db093..bba258ee67 100644 --- a/src/main/resources/web/admin/metadata/list-stats.html +++ b/src/main/resources/web/admin/metadata/list-stats.html @@ -46,6 +46,9 @@ font-style: italic; color: #999; } + .modal.rbalert .modal-content { + margin: 13px auto; + } diff --git a/src/main/resources/web/assets/js/metadata/list-stats.js b/src/main/resources/web/assets/js/metadata/list-stats.js index bc7ec194f0..0d66c8604e 100644 --- a/src/main/resources/web/assets/js/metadata/list-stats.js +++ b/src/main/resources/web/assets/js/metadata/list-stats.js @@ -173,7 +173,7 @@ class ShowStyles2 extends ShowStyles { // init if (this.props.color) { $cs.find(`a[data-color="${this.props.color}"]`).trigger('click') - $('.rbcolors >input').val(this.props.color) + $('.rbcolors>input').val(this.props.color) } } From 154187c8ff4e29cc0585e31713edc0e7e6500db7 Mon Sep 17 00:00:00 2001 From: RB Date: Thu, 6 Feb 2025 23:21:06 +0800 Subject: [PATCH 12/12] be --- .../resources/web/assets/js/metadata/list-stats.js | 2 ++ .../web/assets/js/metadata/picklist-editor.js | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/resources/web/assets/js/metadata/list-stats.js b/src/main/resources/web/assets/js/metadata/list-stats.js index 0d66c8604e..c93c45b3b0 100644 --- a/src/main/resources/web/assets/js/metadata/list-stats.js +++ b/src/main/resources/web/assets/js/metadata/list-stats.js @@ -174,6 +174,8 @@ class ShowStyles2 extends ShowStyles { if (this.props.color) { $cs.find(`a[data-color="${this.props.color}"]`).trigger('click') $('.rbcolors>input').val(this.props.color) + } else { + $('.rbcolors>a:eq(0)').trigger('click') } } diff --git a/src/main/resources/web/assets/js/metadata/picklist-editor.js b/src/main/resources/web/assets/js/metadata/picklist-editor.js index ac9a9888a0..804d35e92c 100644 --- a/src/main/resources/web/assets/js/metadata/picklist-editor.js +++ b/src/main/resources/web/assets/js/metadata/picklist-editor.js @@ -55,7 +55,7 @@ $(document).ready(() => { } const id = $('.J_text').attr('attr-id') - const color = $('.rbcolors >a>i').parent().data('color') || _color || '' + const color = $('.rbcolors>a>i').parent().data('color') || _color || '' let exists = null $('.J_config .dd3-content, .unset-list .dd-handle>span').each(function () { @@ -95,7 +95,7 @@ $(document).ready(() => { // Reset $('.J_text').val('').removeAttr('data-key') $('.J_confirm').text($L('添加')) - $('.rbcolors >a>i').remove() + $('.rbcolors>a>i').remove() $('.J_config').parent().scrollTop(9999) _color = null @@ -176,8 +176,10 @@ render_item_after = function (item, data) { data[3] = item.attr('data-color') if (data[3]) { - $(`.rbcolors >a[data-color="${data[3]}"]`).trigger('click') - $('.rbcolors >input').val(data[3]) + $(`.rbcolors>a[data-color="${data[3]}"]`).trigger('click') + $('.rbcolors>input').val(data[3]) + } else { + $('.rbcolors>a>i').remove() } })