提交 a9da0697 编写于 作者: O o2sword 提交者: o2null

附件下载优化1


(cherry picked from commit 4b4f628fb17b3e949f4f67f1b01f13c757603cbb)
上级 c3ace984
......@@ -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>
......
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;
}
\ No newline at end of file
......@@ -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 {
}
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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";
}
}
}
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;
}
}
\ No newline at end of file
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册