From 78029a2461c42b4c26a2fa912a2bd36c18f5938f Mon Sep 17 00:00:00 2001 From: devezhao-corp Date: Sun, 14 Oct 2018 04:05:24 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/rebuild/server/bizz/UserHelper.java | 55 +++++++++++++++ .../rebuild/server/bizz/privileges/User.java | 2 +- .../{AccessibleMeta.java => EasyMeta.java} | 6 +- .../helper/AesPreferencesConfigurer.java | 8 ++- .../{utils => server/helper}/QiniuCloud.java | 70 +++++++++++++------ .../rebuild/server/helper/SystemProps.java | 60 ++++++++++++++++ .../helper/manager/DataListManager.java | 6 +- .../helper/manager/FieldValueWrapper.java | 18 ++--- .../server/helper/manager/FormManager.java | 52 +++++++++----- .../server/metadata/PortalMetaSorter.java | 8 +-- .../server/query/AdvFilterManager.java | 4 +- .../rebuild/server/query/AdvFilterParser.java | 4 +- src/main/java/com/rebuild/utils/AppUtils.java | 10 --- .../java/com/rebuild/web/PageControll.java | 4 +- ...ings.java => SystemConfigurerContoll.java} | 12 +++- .../admin/bizuser/RolePrivilegesControll.java | 4 +- .../admin/entityhub/MetaEntityControll.java | 8 +-- .../admin/entityhub/MetaFieldControll.java | 10 +-- .../com/rebuild/web/base/MetadataGet.java | 6 +- .../web/base/entity/AdvFilterControll.java | 4 +- .../web/base/entity/datalist/DataWrapper.java | 8 +-- .../base/entity/datalist/JSONQueryParser.java | 4 +- .../com/rebuild/web/common/FileUploader.java | 9 +-- src/main/webapp/_include/Head.jsp | 5 +- src/main/webapp/_include/NavLeftAdmin.jsp | 3 +- src/main/webapp/_include/NavTop.jsp | 23 ++++-- ...{NavTopOnlyHeader.jsp => NavTopHeader.jsp} | 19 +++-- src/main/webapp/admin/bizuser/dept-list.jsp | 5 +- .../webapp/admin/bizuser/role-privileges.jsp | 27 +++---- src/main/webapp/admin/bizuser/user-list.jsp | 5 +- src/main/webapp/admin/entity/entity-grid.jsp | 6 +- src/main/webapp/admin/entry-admin.jsp | 9 +-- src/main/webapp/admin/storage-qiniu.jsp | 27 +++++++ .../{system-settings.jsp => system-props.jsp} | 4 +- src/main/webapp/assets/css/rb-base.css | 6 +- src/main/webapp/assets/css/rb-page.css | 11 ++- src/main/webapp/assets/js/rb-advfilter.jsx | 58 --------------- src/main/webapp/assets/js/rb-forms.jsx | 22 +++--- src/main/webapp/assets/js/rb-list.jsx | 58 +++++++++++++++ .../{query-fields.jsp => quick-fields.jsp} | 14 +++- .../webapp/general-entity/record-list.jsp | 2 +- .../webapp/general-entity/show-columns.jsp | 6 ++ 42 files changed, 457 insertions(+), 225 deletions(-) create mode 100644 src/main/java/com/rebuild/server/bizz/UserHelper.java rename src/main/java/com/rebuild/server/entityhub/{AccessibleMeta.java => EasyMeta.java} (97%) rename src/main/java/com/rebuild/{utils => server/helper}/QiniuCloud.java (56%) create mode 100644 src/main/java/com/rebuild/server/helper/SystemProps.java rename src/main/java/com/rebuild/web/admin/{SystemSettings.java => SystemConfigurerContoll.java} (78%) rename src/main/webapp/_include/{NavTopOnlyHeader.jsp => NavTopHeader.jsp} (52%) create mode 100644 src/main/webapp/admin/storage-qiniu.jsp rename src/main/webapp/admin/{system-settings.jsp => system-props.jsp} (89%) rename src/main/webapp/general-entity/{query-fields.jsp => quick-fields.jsp} (85%) diff --git a/src/main/java/com/rebuild/server/bizz/UserHelper.java b/src/main/java/com/rebuild/server/bizz/UserHelper.java new file mode 100644 index 000000000..95cb27073 --- /dev/null +++ b/src/main/java/com/rebuild/server/bizz/UserHelper.java @@ -0,0 +1,55 @@ +/* +rebuild - Building your system freely. +Copyright (C) 2018 devezhao + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +package com.rebuild.server.bizz; + +import org.apache.commons.lang.StringUtils; + +import com.rebuild.server.ServerListener; +import com.rebuild.server.bizz.privileges.User; +import com.rebuild.server.helper.SystemProps; + +/** + * + * @author devezhao + * @since 10/14/2018 + */ +public class UserHelper { + + /** + * 显示名 + * @param user + * @return + */ + public static String getShowName(User user) { + return StringUtils.defaultIfBlank(user.getFullName(), user.getName()); + } + + /** + * 头像地址 + * @param user + * @return + */ + public static String getAvatarUrl(User user) { + String url = user.getAvatarUrl(); + if (StringUtils.isBlank(url)) { + return ServerListener.getContextPath() + "/assets/img/afo.png"; + } + return SystemProps.getStorageUrl() + url + "?imageView2/2/w/100/interlace/1/q/100"; + } +} diff --git a/src/main/java/com/rebuild/server/bizz/privileges/User.java b/src/main/java/com/rebuild/server/bizz/privileges/User.java index 7da61851e..f9f0d58d4 100644 --- a/src/main/java/com/rebuild/server/bizz/privileges/User.java +++ b/src/main/java/com/rebuild/server/bizz/privileges/User.java @@ -42,7 +42,7 @@ public class User extends cn.devezhao.bizz.security.member.User { super(userId, loginName, disabled); this.email = email; this.fullName = fullName; - this.avatarUrl = avatarUrl; + this.avatarUrl = "/assets/img/afo.png"; } public String getEmail() { diff --git a/src/main/java/com/rebuild/server/entityhub/AccessibleMeta.java b/src/main/java/com/rebuild/server/entityhub/EasyMeta.java similarity index 97% rename from src/main/java/com/rebuild/server/entityhub/AccessibleMeta.java rename to src/main/java/com/rebuild/server/entityhub/EasyMeta.java index ab5bbf8f4..89d9cb15f 100644 --- a/src/main/java/com/rebuild/server/entityhub/AccessibleMeta.java +++ b/src/main/java/com/rebuild/server/entityhub/EasyMeta.java @@ -43,7 +43,7 @@ import cn.devezhao.persist4j.metadata.BaseMeta; * @author zhaofang123@gmail.com * @since 08/13/2018 */ -public class AccessibleMeta implements BaseMeta { +public class EasyMeta implements BaseMeta { private static final long serialVersionUID = -6463919098111506968L; public static final Set BUILTIN_ENTITY = new HashSet<>(); @@ -72,7 +72,7 @@ public class AccessibleMeta implements BaseMeta { private BaseMeta baseMeta; - public AccessibleMeta(BaseMeta baseMeta) { + public EasyMeta(BaseMeta baseMeta) { this.baseMeta = baseMeta; } @@ -264,7 +264,7 @@ public class AccessibleMeta implements BaseMeta { * @return */ public static DisplayType getDisplayType(Field field) { - return new AccessibleMeta(field).getDisplayType(); + return new EasyMeta(field).getDisplayType(); } /** diff --git a/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java b/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java index bede4dcf5..59000f9ad 100644 --- a/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java +++ b/src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java @@ -39,7 +39,7 @@ public class AesPreferencesConfigurer extends PreferencesPlaceholderConfigurer { private Properties propsHold = null; - protected void afterLoad(Properties props) { + private void afterLoad(Properties props) { String kpass = AES.getPassKey(); for (Object key : props.keySet()) { if (key.toString().contains(".aes")) { @@ -50,10 +50,12 @@ public class AesPreferencesConfigurer extends PreferencesPlaceholderConfigurer { } /** + * 获取配置项 + * * @param key * @return */ - public String getItem(String key) { - return propsHold.getProperty(key); + public String item(String name) { + return propsHold.getProperty(name); } } \ No newline at end of file diff --git a/src/main/java/com/rebuild/utils/QiniuCloud.java b/src/main/java/com/rebuild/server/helper/QiniuCloud.java similarity index 56% rename from src/main/java/com/rebuild/utils/QiniuCloud.java rename to src/main/java/com/rebuild/server/helper/QiniuCloud.java index 4ee5217d9..e48004292 100644 --- a/src/main/java/com/rebuild/utils/QiniuCloud.java +++ b/src/main/java/com/rebuild/server/helper/QiniuCloud.java @@ -16,13 +16,15 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -package com.rebuild.utils; +package com.rebuild.server.helper; import java.io.File; import java.io.IOException; import java.net.URL; import org.apache.commons.io.FileUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import com.qiniu.common.Zone; import com.qiniu.http.Response; @@ -35,27 +37,35 @@ import cn.devezhao.commons.CalendarUtils; import cn.devezhao.commons.http4.HttpClientEx; /** + * 七牛云存储 * * @author zhaofang123@gmail.com * @since 05/19/2018 */ public class QiniuCloud { - private static final String ACCESS_KEY = "YCSTYJijko0gEoj84qx5NZjbshg2VzU7GE1l9FDe"; - private static final String SECRET_KEY = "u1keXSO5otlajgiOGyF0QRWhFIQfVDi1D5-yEXv4"; + private static final Log LOG = LogFactory.getLog(QiniuCloud.class); - private static final Auth AUTH = Auth.create(ACCESS_KEY, SECRET_KEY); - private static final String BUCKET_NAME = "rb-cdn"; + private final UploadManager UPLOAD_MANAGER = new UploadManager(new Configuration(Zone.autoZone())); - private static final UploadManager UPLOAD_MANAGER = new UploadManager(new Configuration(Zone.autoZone())); + private Auth auth; + private String bucketName; + private QiniuCloud() { + init(); + } + /** - * 上传 Token - * - * @return + * 初始化 */ - public static String getUpToken() { - return AUTH.uploadToken(BUCKET_NAME); + synchronized public void init() { + String[] account = SystemProps.getStorageAccount(); + if (account != null) { + this.auth = Auth.create(account[0], account[1]); + this.bucketName = account[2]; + } else { + LOG.error("云存储账户未配置,文件上传功能不可用"); + } } /** @@ -65,26 +75,34 @@ public class QiniuCloud { * @return * @throws IOException */ - public static String upload(File file) throws IOException { + public String upload(File file) throws IOException { + if (auth == null) { + return null; + } + String key = String.format("rebuild/%s/%s", CalendarUtils.getPlainDateFormat().format(CalendarUtils.now()), file.getName()); - Response resp = UPLOAD_MANAGER.put(file, key, getUpToken()); - System.out.println(resp.bodyString()); - return key; + Response resp = UPLOAD_MANAGER.put(file, key, auth.uploadToken(bucketName)); + if (resp.isOK()) { + return key; + } else { + LOG.error("文件上传失败 : " + resp); + return null; + } } /** - * 文件上传 + * 从 URL 上传文件 * * @param url * @return * @throws Exception */ - public static String upload(URL url) throws Exception { - File tmp = AppUtils.getFileOfTemp("temp-" + System.currentTimeMillis()); + public String upload(URL url) throws Exception { + File tmp = SystemProps.getFileOfTemp("temp-" + System.currentTimeMillis()); boolean success = download(url, tmp); if (!success) { - throw new RebuildException("无法读取源文件:" + url); + throw new RebuildException("无法从 URL 读取文件 : " + url); } try { return upload(tmp); @@ -101,9 +119,19 @@ public class QiniuCloud { * @return * @throws Exception */ - public static boolean download(URL url, File dest) throws Exception { - byte[] bs = HttpClientEx.instance().readBinary(url.toString(), 30 * 1000); + public boolean download(URL url, File dest) throws Exception { + byte[] bs = HttpClientEx.instance().readBinary(url.toString(), 60 * 1000); FileUtils.writeByteArrayToFile(dest, bs); return true; } + + // -- + + private static final QiniuCloud INSTANCE = new QiniuCloud(); + /** + * @return + */ + public static QiniuCloud instance() { + return INSTANCE; + } } diff --git a/src/main/java/com/rebuild/server/helper/SystemProps.java b/src/main/java/com/rebuild/server/helper/SystemProps.java new file mode 100644 index 000000000..abf0bb118 --- /dev/null +++ b/src/main/java/com/rebuild/server/helper/SystemProps.java @@ -0,0 +1,60 @@ +/* +rebuild - Building your system freely. +Copyright (C) 2018 devezhao + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +package com.rebuild.server.helper; + +import java.io.File; + +import org.apache.commons.io.FileUtils; + +/** + * 系统配置 + * + * @author devezhao + * @since 10/14/2018 + */ +public class SystemProps { + + /** + * @param file + * @return + */ + public static File getFileOfTemp(String file) { + return new File(FileUtils.getTempDirectory(), file); + } + + /** + * 云存储地址 + * @return + */ + public static String getStorageUrl() { + return "http://rb-cdn.errorpage.cn/"; + } + + /** + * 云存储账号 + * @return + */ + public static String[] getStorageAccount() { + return new String[] { + "YCSTYJijko0gEoj84qx5NZjbshg2VzU7GE1l9FDe", + "u1keXSO5otlajgiOGyF0QRWhFIQfVDi1D5-yEXv4", + "rb-cdn" + }; + } +} diff --git a/src/main/java/com/rebuild/server/helper/manager/DataListManager.java b/src/main/java/com/rebuild/server/helper/manager/DataListManager.java index 37a77d956..3cb5a862d 100644 --- a/src/main/java/com/rebuild/server/helper/manager/DataListManager.java +++ b/src/main/java/com/rebuild/server/helper/manager/DataListManager.java @@ -29,7 +29,7 @@ import org.apache.commons.logging.LogFactory; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.MetadataHelper; @@ -66,7 +66,7 @@ public class DataListManager extends LayoutManager { if (entityMeta.containsField(EntityHelper.createdBy)) { columnList.add(warpColumn(entityMeta.getField(EntityHelper.createdBy))); } - if (entityMeta.containsField(EntityHelper.createdOn)) { + if (!nameField.getName().equals(EntityHelper.createdOn) && entityMeta.containsField(EntityHelper.createdOn)) { columnList.add(warpColumn(entityMeta.getField(EntityHelper.createdOn))); } } else { @@ -99,7 +99,7 @@ public class DataListManager extends LayoutManager { * @return */ public static Map warpColumn(Field field) { - AccessibleMeta easyMeta = new AccessibleMeta(field); + EasyMeta easyMeta = new EasyMeta(field); Map map = new HashMap<>(); map.put("field", easyMeta.getName()); map.put("label", easyMeta.getLabel()); diff --git a/src/main/java/com/rebuild/server/helper/manager/FieldValueWrapper.java b/src/main/java/com/rebuild/server/helper/manager/FieldValueWrapper.java index 04add322e..6c27c3eab 100644 --- a/src/main/java/com/rebuild/server/helper/manager/FieldValueWrapper.java +++ b/src/main/java/com/rebuild/server/helper/manager/FieldValueWrapper.java @@ -23,7 +23,7 @@ import java.text.DecimalFormat; import org.apache.commons.lang.StringUtils; import org.springframework.util.Assert; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.entityhub.DisplayType; import com.rebuild.server.metadata.MetadataHelper; @@ -44,7 +44,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static Object wrapFieldValue(Object value, AccessibleMeta field) { + public static Object wrapFieldValue(Object value, EasyMeta field) { if (value == null || StringUtils.isBlank(value.toString())) { return StringUtils.EMPTY; } @@ -81,7 +81,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapDate(Object date, AccessibleMeta field) { + public static String wrapDate(Object date, EasyMeta field) { String format = field.getFieldExtConfig().getString("dateFormat"); format = StringUtils.defaultIfEmpty(format, field.getDisplayType().getDefaultFormat()); Assert.notNull(format, "No format : " + field.getBaseMeta()); @@ -93,7 +93,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapDatetime(Object date, AccessibleMeta field) { + public static String wrapDatetime(Object date, EasyMeta field) { String format = field.getFieldExtConfig().getString("datetimeFormat"); format = StringUtils.defaultIfEmpty(format, field.getDisplayType().getDefaultFormat()); Assert.notNull(format, "No format : " + field.getBaseMeta()); @@ -105,7 +105,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapNumber(Object number, AccessibleMeta field) { + public static String wrapNumber(Object number, EasyMeta field) { String format = field.getFieldExtConfig().getString("numberFormat"); format = StringUtils.defaultIfEmpty(format, field.getDisplayType().getDefaultFormat()); Assert.notNull(format, "No format : " + field.getBaseMeta()); @@ -117,7 +117,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapDecimal(Object decimal, AccessibleMeta field) { + public static String wrapDecimal(Object decimal, EasyMeta field) { String format = field.getFieldExtConfig().getString("decimalFormat"); format = StringUtils.defaultIfEmpty(format, field.getDisplayType().getDefaultFormat()); Assert.notNull(format, "No format : " + field.getBaseMeta()); @@ -129,7 +129,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static Object wrapReference(Object reference, AccessibleMeta field) { + public static Object wrapReference(Object reference, EasyMeta field) { // TODO 名称字段 @@ -152,7 +152,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapBool(Object bool, AccessibleMeta field) { + public static String wrapBool(Object bool, EasyMeta field) { return ((Boolean) bool) ? "是" : "否"; } @@ -161,7 +161,7 @@ public class FieldValueWrapper { * @param field * @return */ - public static String wrapSimple(Object simple, AccessibleMeta field) { + public static String wrapSimple(Object simple, EasyMeta field) { return simple.toString().trim(); } } diff --git a/src/main/java/com/rebuild/server/helper/manager/FormManager.java b/src/main/java/com/rebuild/server/helper/manager/FormManager.java index a10be934b..60b2530f3 100644 --- a/src/main/java/com/rebuild/server/helper/manager/FormManager.java +++ b/src/main/java/com/rebuild/server/helper/manager/FormManager.java @@ -30,8 +30,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; import com.rebuild.server.bizz.privileges.User; -import com.rebuild.server.entityhub.AccessibleMeta; import com.rebuild.server.entityhub.DisplayType; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.MetadataHelper; @@ -137,10 +137,10 @@ public class FormManager extends LayoutManager { } Field fieldMeta = entityMeta.getField(fieldName); - AccessibleMeta easyField = new AccessibleMeta(fieldMeta); + EasyMeta easyField = new EasyMeta(fieldMeta); el.put("label", easyField.getLabel()); - String dt = easyField.getDisplayType(false); - el.put("type", dt); + DisplayType dt = easyField.getDisplayType(); + el.put("type", dt.name()); el.put("nullable", fieldMeta.isNullable()); el.put("readonly", false); if (record != null && !fieldMeta.isUpdatable()) { @@ -156,32 +156,34 @@ public class FormManager extends LayoutManager { // 不同类型的特殊处理 - if (DisplayType.PICKLIST.name().equals(dt)) { - JSONArray picklist = PickListManager.getPickList(fieldMeta); - el.put("options", picklist); + if (dt == DisplayType.PICKLIST) { + JSONArray options = PickListManager.getPickList(fieldMeta); + el.put("options", options); } - else if (DisplayType.DATETIME.name().equals(dt)) { + else if (dt == DisplayType.DATETIME) { if (!el.containsKey("datetimeFormat")) { el.put("datetimeFormat", "yyyy-MM-dd HH:mm:ss"); } } - else if (DisplayType.DATE.name().equals(dt)) { + else if (dt == DisplayType.DATE) { if (!el.containsKey("dateFormat")) { el.put("dateFormat", "yyyy-MM-dd"); } } - // 编辑记录 & 填充值 + // 编辑/视图 if (record != null) { - Object value = wrapFieldValue(record, easyField); + Object value = wrapFieldValue(record, easyField, onView); if (value != null) { - if (!onView && easyField.getDisplayType() == DisplayType.BOOL) { + if (dt == DisplayType.BOOL && !onView) { value = value.toString().equals("是") ? "T" : "F"; + } else { + el.put("value", value); } } - - el.put("value", value); - } else { + } + // 新建记录 + else { if (easyField.isBuiltin()) { el.put("readonly", true); if (fieldName.equals(EntityHelper.createdOn) || fieldName.equals(EntityHelper.modifiedOn)) { @@ -195,6 +197,17 @@ public class FormManager extends LayoutManager { // TODO 默认值 + if (dt == DisplayType.PICKLIST) { + JSONArray options = el.getJSONArray("options"); + for (Object o : options) { + JSONObject opt = (JSONObject) o; + if (opt.getBooleanValue("default")) { + el.put("value", opt.getString("id")); + break; + } + } + } + } } return config; @@ -224,9 +237,12 @@ public class FormManager extends LayoutManager { } Field fieldMeta = entity.getField(field); + + // PICKLIST and REFERENCE if (fieldMeta.getType() == FieldType.REFERENCE) { ajql.append('&').append(field).append(','); } + ajql.append(field).append(','); } ajql.deleteCharAt(ajql.length() - 1); @@ -240,16 +256,16 @@ public class FormManager extends LayoutManager { /** * @param record * @param field - * @param readonly + * @param onView * @return */ - protected static Object wrapFieldValue(Record record, AccessibleMeta field) { + protected static Object wrapFieldValue(Record record, EasyMeta field, boolean onView) { String fieldName = field.getName(); if (record.hasValue(fieldName)) { Object value = record.getObjectValue(fieldName); if (field.getDisplayType() == DisplayType.PICKLIST) { ID pickValue = (ID) value; - return pickValue.getLabel(); + return onView ? pickValue.getLabel() : pickValue.toLiteral(); } else if (value instanceof ID) { ID idValue = (ID) value; diff --git a/src/main/java/com/rebuild/server/metadata/PortalMetaSorter.java b/src/main/java/com/rebuild/server/metadata/PortalMetaSorter.java index 194af232c..6dcaf2258 100644 --- a/src/main/java/com/rebuild/server/metadata/PortalMetaSorter.java +++ b/src/main/java/com/rebuild/server/metadata/PortalMetaSorter.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.List; import com.rebuild.server.entityhub.DisplayType; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Field; @@ -34,7 +34,7 @@ import cn.devezhao.persist4j.metadata.BaseMeta; * * @author devezhao * @since 09/30/2018 - * @see AccessibleMeta + * @see EasyMeta */ public class PortalMetaSorter { @@ -56,7 +56,7 @@ public class PortalMetaSorter { List list = new ArrayList<>(); for (Entity entity : entities) { int ec = entity.getEntityCode(); - if (AccessibleMeta.isBuiltin(entity) + if (EasyMeta.isBuiltin(entity) || (!fromAdmin && (ec == EntityHelper.User || ec == EntityHelper.Department || ec == EntityHelper.Role))) { } else { list.add(entity); @@ -102,7 +102,7 @@ public class PortalMetaSorter { List list = new ArrayList<>(); for (Field field : fields) { - DisplayType dtThat = AccessibleMeta.getDisplayType(field); + DisplayType dtThat = EasyMeta.getDisplayType(field); for (DisplayType dt : dtAllowed) { if (dtThat == dt) { list.add(field); diff --git a/src/main/java/com/rebuild/server/query/AdvFilterManager.java b/src/main/java/com/rebuild/server/query/AdvFilterManager.java index 9267d0fe8..d07032924 100644 --- a/src/main/java/com/rebuild/server/query/AdvFilterManager.java +++ b/src/main/java/com/rebuild/server/query/AdvFilterManager.java @@ -27,7 +27,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.MetadataHelper; import cn.devezhao.persist4j.Entity; @@ -71,7 +71,7 @@ public class AdvFilterManager { continue; } - String label = AccessibleMeta.getLabel(metaEntity.getField(field)); + String label = EasyMeta.getLabel(metaEntity.getField(field)); item.put("label", label); } raw[1] = config; diff --git a/src/main/java/com/rebuild/server/query/AdvFilterParser.java b/src/main/java/com/rebuild/server/query/AdvFilterParser.java index 421c88f62..4da672156 100644 --- a/src/main/java/com/rebuild/server/query/AdvFilterParser.java +++ b/src/main/java/com/rebuild/server/query/AdvFilterParser.java @@ -28,7 +28,7 @@ import org.apache.commons.lang.math.NumberUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.entityhub.DisplayType; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Field; @@ -92,7 +92,7 @@ public class AdvFilterParser { } Field metaField = rootEntity.getField(field); - if (AccessibleMeta.getDisplayType(metaField) == DisplayType.PICKLIST) { + if (EasyMeta.getDisplayType(metaField) == DisplayType.PICKLIST) { field = '&' + field; } diff --git a/src/main/java/com/rebuild/utils/AppUtils.java b/src/main/java/com/rebuild/utils/AppUtils.java index 64921da1c..807935901 100644 --- a/src/main/java/com/rebuild/utils/AppUtils.java +++ b/src/main/java/com/rebuild/utils/AppUtils.java @@ -18,12 +18,10 @@ along with this program. If not, see . package com.rebuild.utils; -import java.io.File; import java.nio.file.AccessDeniedException; import javax.servlet.http.HttpServletRequest; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import com.alibaba.fastjson.JSONObject; @@ -119,12 +117,4 @@ public class AppUtils { return ex.getLocalizedMessage(); } } - - /** - * @param fileName - * @return - */ - public static File getFileOfTemp(String fileName) { - return new File(FileUtils.getTempDirectory(), fileName); - } } diff --git a/src/main/java/com/rebuild/web/PageControll.java b/src/main/java/com/rebuild/web/PageControll.java index 6698da731..3ca2e32b9 100644 --- a/src/main/java/com/rebuild/web/PageControll.java +++ b/src/main/java/com/rebuild/web/PageControll.java @@ -23,7 +23,7 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.rebuild.server.ServerListener; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.MetadataHelper; import com.rebuild.utils.AppUtils; @@ -69,7 +69,7 @@ public abstract class PageControll { throw new InvalidRequestException("无效实体 : " + entity); } - AccessibleMeta entityMeta = new AccessibleMeta(MetadataHelper.getEntity(entity)); + EasyMeta entityMeta = new EasyMeta(MetadataHelper.getEntity(entity)); mv.getModel().put("entityName", entityMeta.getName()); mv.getModel().put("entityLabel", entityMeta.getLabel()); mv.getModel().put("entityIcon", entityMeta.getIcon()); diff --git a/src/main/java/com/rebuild/web/admin/SystemSettings.java b/src/main/java/com/rebuild/web/admin/SystemConfigurerContoll.java similarity index 78% rename from src/main/java/com/rebuild/web/admin/SystemSettings.java rename to src/main/java/com/rebuild/web/admin/SystemConfigurerContoll.java index 2bc1096aa..0659ed0a7 100644 --- a/src/main/java/com/rebuild/web/admin/SystemSettings.java +++ b/src/main/java/com/rebuild/web/admin/SystemConfigurerContoll.java @@ -25,16 +25,22 @@ import org.springframework.web.servlet.ModelAndView; import com.rebuild.web.BaseControll; /** + * 系统配置 * * @author zhaofang123@gmail.com * @since 09/20/2018 */ @Controller @RequestMapping("/admin/") -public class SystemSettings extends BaseControll { +public class SystemConfigurerContoll extends BaseControll { @RequestMapping("systems") - public ModelAndView pageSettings() { - return createModelAndView("/admin/system-settings.jsp"); + public ModelAndView pageSystems() { + return createModelAndView("/admin/system-props.jsp"); + } + + @RequestMapping("system/storage") + public ModelAndView pageStorage() { + return createModelAndView("/admin/storage-qiniu.jsp"); } } diff --git a/src/main/java/com/rebuild/web/admin/bizuser/RolePrivilegesControll.java b/src/main/java/com/rebuild/web/admin/bizuser/RolePrivilegesControll.java index 237a381e9..3ae919f34 100644 --- a/src/main/java/com/rebuild/web/admin/bizuser/RolePrivilegesControll.java +++ b/src/main/java/com/rebuild/web/admin/bizuser/RolePrivilegesControll.java @@ -34,7 +34,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; import com.rebuild.server.bizz.RoleService; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.PortalMetaSorter; import com.rebuild.utils.JSONUtils; @@ -77,7 +77,7 @@ public class RolePrivilegesControll extends BaseControll { List entities = new ArrayList<>(); for (Entity e : PortalMetaSorter.sortEntities(true)) { if (EntityHelper.hasPrivilegesField(e)) { - entities.add(new String[] { e.getName(), AccessibleMeta.getLabel(e) }); + entities.add(new String[] { e.getName(), EasyMeta.getLabel(e) }); } } mv.getModel().put("Entities", entities); diff --git a/src/main/java/com/rebuild/web/admin/entityhub/MetaEntityControll.java b/src/main/java/com/rebuild/web/admin/entityhub/MetaEntityControll.java index 09c536802..7a18e471b 100644 --- a/src/main/java/com/rebuild/web/admin/entityhub/MetaEntityControll.java +++ b/src/main/java/com/rebuild/web/admin/entityhub/MetaEntityControll.java @@ -35,7 +35,7 @@ import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.entityhub.Entity2Schema; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.MetadataHelper; @@ -71,7 +71,7 @@ public class MetaEntityControll extends BaseControll { public void listEntity(HttpServletRequest request, HttpServletResponse response) throws IOException { List> ret = new ArrayList<>(); for (Entity entity : MetadataHelper.getEntities()) { - AccessibleMeta easyMeta = new AccessibleMeta(entity); + EasyMeta easyMeta = new EasyMeta(entity); if (easyMeta.isBuiltin()) { continue; } @@ -117,9 +117,9 @@ public class MetaEntityControll extends BaseControll { * @param entity * @return */ - protected static AccessibleMeta setEntityBase(ModelAndView mv, String entity) { + protected static EasyMeta setEntityBase(ModelAndView mv, String entity) { Entity e = MetadataHelper.getEntity(entity); - AccessibleMeta entityMeta = new AccessibleMeta(e); + EasyMeta entityMeta = new EasyMeta(e); mv.getModel().put("entityMetaId", entityMeta.getMetaId()); mv.getModel().put("entityName", entityMeta.getName()); mv.getModel().put("entityLabel", entityMeta.getLabel()); diff --git a/src/main/java/com/rebuild/web/admin/entityhub/MetaFieldControll.java b/src/main/java/com/rebuild/web/admin/entityhub/MetaFieldControll.java index b0b8127d6..90e482c00 100644 --- a/src/main/java/com/rebuild/web/admin/entityhub/MetaFieldControll.java +++ b/src/main/java/com/rebuild/web/admin/entityhub/MetaFieldControll.java @@ -35,7 +35,7 @@ import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.entityhub.DisplayType; import com.rebuild.server.entityhub.Field2Schema; import com.rebuild.server.metadata.EntityHelper; @@ -77,7 +77,7 @@ public class MetaFieldControll extends BaseControll { List> ret = new ArrayList<>(); for (Field field : entity.getFields()) { - AccessibleMeta easyMeta = new AccessibleMeta(field); + EasyMeta easyMeta = new EasyMeta(field); if (field.getType() == FieldType.PRIMARY) { continue; } @@ -100,10 +100,10 @@ public class MetaFieldControll extends BaseControll { @RequestMapping("{entity}/field/{field}") public ModelAndView pageEntityFields(@PathVariable String entity, @PathVariable String field, HttpServletRequest request) throws IOException { ModelAndView mv = createModelAndView("/admin/entity/field-edit.jsp"); - AccessibleMeta easyMeta = MetaEntityControll.setEntityBase(mv, entity); + EasyMeta easyMeta = MetaEntityControll.setEntityBase(mv, entity); Field fieldMeta = ((Entity) easyMeta.getBaseMeta()).getField(field); - AccessibleMeta fieldEasyMeta = new AccessibleMeta(fieldMeta); + EasyMeta fieldEasyMeta = new EasyMeta(fieldMeta); mv.getModel().put("fieldMetaId", fieldEasyMeta.isBuiltin() ? null : fieldEasyMeta.getMetaId()); mv.getModel().put("fieldName", fieldEasyMeta.getName()); @@ -118,7 +118,7 @@ public class MetaFieldControll extends BaseControll { if (ft == FieldType.REFERENCE) { Entity refentity = fieldMeta.getReferenceEntities()[0]; mv.getModel().put("fieldRefentity", refentity.getName()); - mv.getModel().put("fieldRefentityLabel", new AccessibleMeta(refentity).getLabel()); + mv.getModel().put("fieldRefentityLabel", new EasyMeta(refentity).getLabel()); } else { mv.getModel().put("fieldExtConfig", fieldEasyMeta.getFieldExtConfig()); } diff --git a/src/main/java/com/rebuild/web/base/MetadataGet.java b/src/main/java/com/rebuild/web/base/MetadataGet.java index 9a9770d64..75c10b066 100644 --- a/src/main/java/com/rebuild/web/base/MetadataGet.java +++ b/src/main/java/com/rebuild/web/base/MetadataGet.java @@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.MetadataHelper; import com.rebuild.server.metadata.PortalMetaSorter; import com.rebuild.web.BaseControll; @@ -52,7 +52,7 @@ public class MetadataGet extends BaseControll { List> list = new ArrayList<>(); for (Entity e : PortalMetaSorter.sortEntities()) { Map map = new HashMap<>(); - AccessibleMeta easy = new AccessibleMeta(e); + EasyMeta easy = new EasyMeta(e); map.put("name", e.getName()); map.put("label", easy.getLabel()); map.put("icon", easy.getIcon()); @@ -70,7 +70,7 @@ public class MetadataGet extends BaseControll { for (Field e : PortalMetaSorter.sortFields(entityBase)) { Map map = new HashMap<>(); map.put("name", e.getName()); - map.put("label", AccessibleMeta.getLabel(e)); + map.put("label", EasyMeta.getLabel(e)); list.add(map); } writeSuccess(response, list); diff --git a/src/main/java/com/rebuild/web/base/entity/AdvFilterControll.java b/src/main/java/com/rebuild/web/base/entity/AdvFilterControll.java index a19672205..5651eb12d 100644 --- a/src/main/java/com/rebuild/web/base/entity/AdvFilterControll.java +++ b/src/main/java/com/rebuild/web/base/entity/AdvFilterControll.java @@ -36,7 +36,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.Application; import com.rebuild.server.entityhub.DisplayType; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.helper.manager.DataListManager; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.MetadataHelper; @@ -102,7 +102,7 @@ public class AdvFilterControll extends BaseControll { List> fieldList = new ArrayList<>(); for (Field field : entityMeta.getFields()) { - DisplayType dt = AccessibleMeta.getDisplayType(field); + DisplayType dt = EasyMeta.getDisplayType(field); if (dt == DisplayType.TEXT || dt == DisplayType.URL || dt == DisplayType.EMAIL || dt == DisplayType.PHONE || dt == DisplayType.PICKLIST) { fieldList.add(DataListManager.warpColumn(field)); } diff --git a/src/main/java/com/rebuild/web/base/entity/datalist/DataWrapper.java b/src/main/java/com/rebuild/web/base/entity/datalist/DataWrapper.java index 9b8ddcc71..1883318eb 100644 --- a/src/main/java/com/rebuild/web/base/entity/datalist/DataWrapper.java +++ b/src/main/java/com/rebuild/web/base/entity/datalist/DataWrapper.java @@ -27,7 +27,7 @@ import org.apache.commons.logging.LogFactory; import com.alibaba.fastjson.JSON; import com.rebuild.server.Application; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.helper.manager.FieldValueWrapper; import com.rebuild.server.metadata.MetadataHelper; @@ -89,7 +89,7 @@ public class DataWrapper extends FieldValueWrapper { } else if (field.getType() == FieldType.PRIMARY) { // Last index always row[i] = readReferenceNamed((ID) row[i], namedVal); } else { - row[i] = wrapFieldValue(row[i], new AccessibleMeta(field)); + row[i] = wrapFieldValue(row[i], new EasyMeta(field)); } } } @@ -123,8 +123,8 @@ public class DataWrapper extends FieldValueWrapper { namedVal = named[0]; } - namedVal = wrapFieldValue(namedVal, new AccessibleMeta(nameField)); - String[] meta = new String[] { entity.getName(), new AccessibleMeta(entity).getIcon() }; + namedVal = wrapFieldValue(namedVal, new EasyMeta(nameField)); + String[] meta = new String[] { entity.getName(), new EasyMeta(entity).getIcon() }; return new Object[] { idVal.toLiteral(), namedVal, meta }; } } diff --git a/src/main/java/com/rebuild/web/base/entity/datalist/JSONQueryParser.java b/src/main/java/com/rebuild/web/base/entity/datalist/JSONQueryParser.java index b4dfb68ba..e6f1c3546 100644 --- a/src/main/java/com/rebuild/web/base/entity/datalist/JSONQueryParser.java +++ b/src/main/java/com/rebuild/web/base/entity/datalist/JSONQueryParser.java @@ -28,7 +28,7 @@ import org.apache.commons.lang.math.NumberUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.rebuild.server.entityhub.DisplayType; -import com.rebuild.server.entityhub.AccessibleMeta; +import com.rebuild.server.entityhub.EasyMeta; import com.rebuild.server.metadata.EntityHelper; import com.rebuild.server.metadata.MetadataHelper; import com.rebuild.server.query.AdvFilterParser; @@ -111,7 +111,7 @@ public class JSONQueryParser { StringBuffer sqlBase = new StringBuffer("select "); for (Field field : fieldList) { - if (AccessibleMeta.getDisplayType(field) == DisplayType.PICKLIST) { + if (EasyMeta.getDisplayType(field) == DisplayType.PICKLIST) { sqlBase.append('&'); } sqlBase.append(field.getName()).append(','); diff --git a/src/main/java/com/rebuild/web/common/FileUploader.java b/src/main/java/com/rebuild/web/common/FileUploader.java index dd682a04a..0af426b53 100644 --- a/src/main/java/com/rebuild/web/common/FileUploader.java +++ b/src/main/java/com/rebuild/web/common/FileUploader.java @@ -36,8 +36,9 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import com.rebuild.server.helper.QiniuCloud; +import com.rebuild.server.helper.SystemProps; import com.rebuild.utils.AppUtils; -import com.rebuild.utils.QiniuCloud; import cn.devezhao.commons.CalendarUtils; import cn.devezhao.commons.web.ServletUtils; @@ -69,12 +70,12 @@ public class FileUploader extends HttpServlet { } uploadName = CalendarUtils.getDateFormat("hhMMssSSS").format(CalendarUtils.now()) + "__" + uploadName; - File temp = AppUtils.getFileOfTemp(uploadName); + File temp = SystemProps.getFileOfTemp(uploadName); item.write(temp); String cloud = req.getParameter("cloud"); if ("true".equals(cloud) || "auto".equals(cloud)) { - uploadName = QiniuCloud.upload(temp); + uploadName = QiniuCloud.instance().upload(temp); if (temp.exists()) { temp.delete(); } @@ -101,7 +102,7 @@ public class FileUploader extends HttpServlet { @Override public void init(ServletConfig config) throws ServletException { super.init(config); - File track = AppUtils.getFileOfTemp("track"); + File track = SystemProps.getFileOfTemp("track"); if (!track.exists() || !track.isDirectory()) { boolean mked = track.mkdir(); if (!mked) { diff --git a/src/main/webapp/_include/Head.jsp b/src/main/webapp/_include/Head.jsp index 349afa47d..e24249bd3 100644 --- a/src/main/webapp/_include/Head.jsp +++ b/src/main/webapp/_include/Head.jsp @@ -1,4 +1,5 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.rebuild.server.helper.SystemProps"%> @@ -11,9 +12,9 @@