|
|
@@ -1,207 +0,0 @@
|
|
|
-package com.x.general.core.entity.general;
|
|
|
-
|
|
|
-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 File 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 File() {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public File(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)
|
|
|
- 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;
|
|
|
- }
|
|
|
-}
|