Parcourir la source

附件下载优化1

(cherry picked from commit 670e36f309f22e2167607e780f0a16028a977cc6)
o2sword il y a 5 ans
Parent
commit
7e3c18c672

+ 4 - 0
o2server/x_attendance_assemble_control/pom.xml

@@ -28,6 +28,10 @@
             <groupId>o2oa</groupId>
             <artifactId>x_processplatform_core_entity</artifactId>
         </dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
     </dependencies>
 	<build>
 		<plugins>

+ 1 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/entity/StorageType.java

@@ -1,6 +1,6 @@
 package com.x.base.core.entity;
 
 public enum StorageType {
-	file, processPlatform, mind, meeting, calendar, okr, cms, bbs, report, strategyDeploy, teamwork, structure, im;
+	file, processPlatform, mind, meeting, calendar, okr, cms, bbs, report, strategyDeploy, teamwork, structure, im, general;
 	public static final int length = JpaObject.length_32B;
 }

+ 3 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/x_processplatform_assemble_surface.java

@@ -30,8 +30,9 @@ import com.x.base.core.project.annotation.ModuleType;
 		"com.x.processplatform.core.entity.element.Split", "com.x.processplatform.core.entity.element.QueryView",
 		"com.x.processplatform.core.entity.element.QueryStat", "com.x.processplatform.core.entity.element.Mapping",
 		"com.x.query.core.entity.Item", "com.x.cms.core.entity.element.Script",
-		"com.x.portal.core.entity.Script" }, storageTypes = { StorageType.processPlatform }, storeJars = {
+		"com.x.portal.core.entity.Script" }, storageTypes = { StorageType.processPlatform, StorageType.general}, storeJars = {
 				"x_organization_core_entity", "x_organization_core_express", "x_processplatform_core_entity",
-				"x_processplatform_core_express", "x_query_core_entity", "x_cms_core_entity", "x_portal_core_entity" })
+				"x_processplatform_core_express", "x_query_core_entity", "x_cms_core_entity", "x_portal_core_entity",
+		"x_general_core_entity" })
 public class x_processplatform_assemble_surface extends Deployable {
 }

+ 4 - 0
o2server/x_bbs_assemble_control/pom.xml

@@ -24,6 +24,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_organization_core_express</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_cms_assemble_control/pom.xml

@@ -44,6 +44,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_processplatform_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_file_assemble_control/pom.xml

@@ -28,6 +28,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_file_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 8 - 0
o2server/x_general_core_entity/src/main/java/com/x/general/core/entity/PersistenceProperties.java

@@ -11,4 +11,12 @@ public final class PersistenceProperties extends AbstractPersistenceProperties {
 		}
 
 	}
+
+	public static class General {
+
+		public static class File {
+			public static final String table = "GENERAL_FILE";
+		}
+
+	}
 }

+ 207 - 0
o2server/x_general_core_entity/src/main/java/com/x/general/core/entity/file/GeneralFile.java

@@ -0,0 +1,207 @@
+package com.x.general.core.entity.file;
+
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.Storage;
+import com.x.base.core.entity.StorageObject;
+import com.x.base.core.entity.StorageType;
+import com.x.base.core.entity.annotation.CheckPersist;
+import com.x.base.core.entity.annotation.ContainerEntity;
+import com.x.base.core.project.annotation.FieldDescribe;
+import com.x.base.core.project.tools.DateTools;
+import com.x.general.core.entity.PersistenceProperties;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.persistence.jdbc.Index;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@ContainerEntity(dumpSize = 10, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong)
+@Entity
+@Table(name = PersistenceProperties.General.File.table, uniqueConstraints = {
+		@UniqueConstraint(name = PersistenceProperties.General.File.table + JpaObject.IndexNameMiddle
+				+ JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN,
+						JpaObject.CREATETIMECOLUMN, JpaObject.UPDATETIMECOLUMN, JpaObject.SEQUENCECOLUMN }) })
+@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+@Storage(type = StorageType.general)
+public class GeneralFile extends StorageObject {
+
+	private static final long serialVersionUID = -8883987079043800355L;
+
+	private static final String TABLE = PersistenceProperties.General.File.table;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	@FieldDescribe("数据库主键,自动生成.")
+	@Id
+	@Column(length = length_id, name = ColumnNamePrefix + id_FIELDNAME)
+	private String id = createId();
+
+	/* 以上为 JpaObject 默认字段 */
+
+	public void onPersist() throws Exception {
+		this.lastUpdateTime = new Date();
+		/* 如果扩展名为空去掉null */
+		this.extension = StringUtils.trimToEmpty(extension);
+	}
+
+	/* 更新运行方法 */
+
+	public GeneralFile() {
+
+	}
+
+	public GeneralFile(String storage, String name, String person) throws Exception {
+		if (StringUtils.isEmpty(storage)) {
+			throw new Exception("storage can not be empty.");
+		}
+		if (StringUtils.isEmpty(name)) {
+			throw new Exception("name can not be empty.");
+		}
+		if (StringUtils.isEmpty(person)) {
+			throw new Exception("person can not be empty.");
+		}
+		this.storage = storage;
+		Date now = new Date();
+		this.setCreateTime(now);
+		this.lastUpdateTime = now;
+		this.name = name;
+		this.extension = StringUtils.lowerCase(FilenameUtils.getExtension(name));
+		this.person = person;
+		if (null == this.extension) {
+			throw new Exception("extension can not be null.");
+		}
+	}
+
+	@Override
+	public String path() throws Exception {
+		if (StringUtils.isEmpty(id)) {
+			throw new Exception("id can not be empty.");
+		}
+		String str = DateTools.compactDate(this.getCreateTime());
+		str += PATHSEPARATOR;
+		str += this.id;
+		str += StringUtils.isEmpty(this.extension) ? "" : ("." + this.extension);
+		return str;
+	}
+
+	@Override
+	public String getStorage() {
+		return storage;
+	}
+
+	@Override
+	public void setStorage(String storage) {
+		this.storage = storage;
+	}
+
+	@Override
+	public Long getLength() {
+		return length;
+	}
+
+	@Override
+	public void setLength(Long length) {
+		this.length = length;
+	}
+
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	@Override
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	@Override
+	public String getExtension() {
+		return extension;
+	}
+
+	@Override
+	public void setExtension(String extension) {
+		this.extension = extension;
+	}
+
+	@Override
+	public Date getLastUpdateTime() {
+		return lastUpdateTime;
+	}
+
+	@Override
+	public void setLastUpdateTime(Date lastUpdateTime) {
+		this.lastUpdateTime = lastUpdateTime;
+	}
+
+	@Override
+	public Boolean getDeepPath() {
+		return BooleanUtils.isTrue(this.deepPath);
+	}
+
+	@Override
+	public void setDeepPath(Boolean deepPath) {
+		this.deepPath = deepPath;
+	}
+
+	public static final String person_FIELDNAME = "person";
+	@FieldDescribe("上传用户.")
+	@Column(length = length_255B, name = ColumnNamePrefix + person_FIELDNAME)
+	@Index(name = TABLE + IndexNameMiddle + person_FIELDNAME)
+	@CheckPersist(allowEmpty = true)
+	private String person;
+
+	public static final String name_FIELDNAME = "name";
+	@FieldDescribe("文件名称.")
+	@Column(length = length_255B, name = ColumnNamePrefix + name_FIELDNAME)
+	@Index(name = TABLE + IndexNameMiddle + name_FIELDNAME)
+	@CheckPersist(allowEmpty = false, fileNameString = true)
+	private String name;
+
+	public static final String extension_FIELDNAME = "extension";
+	@FieldDescribe("扩展名,必须要有扩展名的文件才允许上传.")
+	@Column(length = JpaObject.length_64B, name = ColumnNamePrefix + extension_FIELDNAME)
+	@CheckPersist(allowEmpty = false, fileNameString = true)
+	private String extension;
+
+	public static final String storage_FIELDNAME = "storage";
+	@FieldDescribe("存储器的名称,也就是多个存放节点的名字.")
+	@Column(length = JpaObject.length_64B, name = ColumnNamePrefix + storage_FIELDNAME)
+	@CheckPersist(allowEmpty = false, simplyString = true)
+	private String storage;
+
+	public static final String length_FIELDNAME = "length";
+	@FieldDescribe("文件大小.")
+	@Column(name = ColumnNamePrefix + length_FIELDNAME)
+	@CheckPersist(allowEmpty = true)
+	private Long length;
+
+	public static final String lastUpdateTime_FIELDNAME = "lastUpdateTime";
+	@FieldDescribe("最后更新时间")
+	@Column(name = ColumnNamePrefix + lastUpdateTime_FIELDNAME)
+	@Index(name = TABLE + IndexNameMiddle + lastUpdateTime_FIELDNAME)
+	@CheckPersist(allowEmpty = false)
+	private Date lastUpdateTime;
+
+	public static final String deepPath_FIELDNAME = "deepPath";
+	@FieldDescribe("是否使用更深的路径.")
+	@CheckPersist(allowEmpty = true)
+	@Column(name = ColumnNamePrefix + deepPath_FIELDNAME)
+	private Boolean deepPath;
+
+	public String getPerson() {
+		return person;
+	}
+
+	public void setPerson(String person) {
+		this.person = person;
+	}
+}

+ 4 - 0
o2server/x_hotpic_assemble_control/pom.xml

@@ -36,6 +36,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_cms_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_meeting_assemble_control/pom.xml

@@ -28,6 +28,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_meeting_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_mind_assemble_control/pom.xml

@@ -24,6 +24,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_mind_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_organization_assemble_control/pom.xml

@@ -20,6 +20,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_organization_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>com.google.zxing</groupId>
 			<artifactId>core</artifactId>

+ 4 - 0
o2server/x_portal_assemble_surface/pom.xml

@@ -24,6 +24,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_organization_core_express</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_processplatform_assemble_designer/pom.xml

@@ -32,6 +32,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_processplatform_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_processplatform_assemble_surface/pom.xml

@@ -44,6 +44,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_portal_core_entity</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_query_assemble_designer/pom.xml

@@ -44,6 +44,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_cms_core_express</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

+ 4 - 0
o2server/x_query_assemble_surface/pom.xml

@@ -43,6 +43,10 @@
 			<groupId>o2oa</groupId>
 			<artifactId>x_cms_core_express</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>o2oa</groupId>
+			<artifactId>x_general_core_entity</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>