|
package org.sxkj.resource.entity;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import lombok.EqualsAndHashCode;
|
import org.springblade.core.tenant.mp.TenantEntity;
|
import org.springblade.core.tool.utils.StringUtil;
|
import org.springframework.util.StringUtils;
|
import org.sxkj.common.handler.GenericListTypeHandler;
|
import org.sxkj.common.utils.file.FileNameHarsher;
|
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Stream;
|
|
/**
|
* 附件表实体类
|
*
|
* @author Chill
|
*/
|
@Data
|
@TableName(value = "blade_attach")
|
@EqualsAndHashCode(callSuper = true)
|
@ApiModel(value = "Attach对象", description = "附件表")
|
public class Attach extends TenantEntity {
|
/**
|
* ai类型
|
*/
|
public static final String RESULT_TYPE_AI = "2";
|
/**
|
* 图片类型
|
*/
|
public static final String RESULT_TYPE_IMG = "0";
|
/**
|
* 视频类型(压缩)
|
*/
|
public static final String RESULT_TYPE_VEDIO_SHOW = "9";
|
/**
|
* 视频类型
|
*/
|
public static final String RESULT_TYPE_VEDIO = "1";
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* 附件地址
|
*/
|
@ApiModelProperty(value = "附件地址")
|
private String link;
|
/**
|
* 附件域名
|
*/
|
@ApiModelProperty(value = "附件域名")
|
private String domainUrl;
|
/**
|
* 附件名称
|
*/
|
@ApiModelProperty(value = "附件名称")
|
private String name;
|
/**
|
* 附件原名
|
*/
|
@ApiModelProperty(value = "附件原名")
|
private String originalName;
|
/**
|
* 附件拓展名
|
*/
|
@ApiModelProperty(value = "附件拓展名")
|
private String extension;
|
/**
|
* 附件大小
|
*/
|
@ApiModelProperty(value = "附件大小")
|
private Long attachSize;
|
|
@ApiModelProperty(value = "巡查任务id")
|
@TableField(value = "patrol_task_id")
|
private String patrolTaskId;
|
|
@ApiModelProperty(value = "附件类型: 1=巡查类文档,2=巡检类文档,3=安保类文档,4=文旅类文档,5=采集数据类文档")
|
@TableField(typeHandler = GenericListTypeHandler.class)
|
private List<List<String>> resultType;
|
|
@ApiModelProperty(value = "设备SN")
|
private String deviceSn;
|
|
@ApiModelProperty(value = "工作空间id")
|
private String workspaceId;
|
|
@TableField(exist = false)
|
@ApiModelProperty(value = "备注")
|
private String remark;
|
|
@ApiModelProperty(value = "媒体元数据")
|
private String metadata;
|
|
@ApiModelProperty(value = "文件昵称")
|
private String nickName;
|
|
/**
|
* 最末尾文件名称hash算法
|
*/
|
@TableField("md5")
|
private String md5;
|
|
@TableField("is_deleted")
|
private Integer isDeleted;
|
|
//区域
|
@TableField(exist = false)
|
private String areaCode;
|
|
public String getMd5() {
|
String link = this.link;
|
if (!StringUtils.isEmpty(link)) {
|
return FileNameHarsher.generateFileHash(link);
|
}
|
return null;
|
}
|
|
|
/**
|
* 设置是否为缩略图
|
*/
|
public Boolean getThumbnail() {
|
if (StringUtil.isNotBlank(originalName)) {
|
String result = Stream.of("_small", "_show")
|
.filter(suffix -> originalName.indexOf(suffix) > 0)
|
.findFirst().orElse(null);
|
return StringUtil.isNotBlank(result);
|
}
|
return null;
|
}
|
|
/**
|
* 获取昵称
|
*
|
* @param attach
|
* @return
|
*/
|
public static String getNickName(Attach attach) {
|
if (Objects.isNull(attach)) {
|
return "";
|
}
|
if (!StringUtils.isEmpty(attach.getNickName())) {
|
return attach.getNickName();
|
}
|
if (StringUtils.isEmpty(attach.getName())) {
|
return null;
|
}
|
return attach.getName().substring(attach.getName().lastIndexOf("/") + 1, attach.getName().lastIndexOf("."));
|
}
|
|
|
public Object getMetadata() {
|
return JSON.parseObject(metadata);
|
}
|
|
}
|