ResourceRemote.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package cn.rankin.resourceservice.dto;
  2. import java.io.Serializable;
  3. import java.util.*;
  4. import javax.persistence.*;
  5. import cn.rankin.common.utils.enums.BaseStatusEnum;
  6. import cn.rankin.data.api.resource.entity.Resource;
  7. import cn.rankin.common.utils.constant.ResourceType;
  8. import cn.rankin.resourceservice.controller.ResourceController;
  9. import lombok.Data;
  10. import org.apache.commons.lang.StringUtils;
  11. @Data
  12. public class ResourceRemote implements Serializable {
  13. private static final long serialVersionUID = 1L;
  14. // 主键 uuid
  15. private String id;
  16. // 资源编号
  17. private String no;
  18. // 名称
  19. private String title;
  20. // 类型
  21. private Integer type;
  22. private Date createTime;
  23. @Temporal(TemporalType.TIMESTAMP)
  24. private Date updateTime;
  25. //表示状态,取值{0,1}, 分别表示{'正常状态','已删除'}
  26. @Enumerated(EnumType.ORDINAL)
  27. private BaseStatusEnum status = BaseStatusEnum.NORMAL;
  28. @Transient
  29. private Set<ResourceVideo> videos = new HashSet<ResourceVideo>();
  30. @Transient
  31. private Set<ResourceAudio> audios = new HashSet<ResourceAudio>();
  32. public List<Resource> toNativeResource() {
  33. if (type == null) {
  34. return new ArrayList<>();
  35. }
  36. if (type.intValue() == ResourceType.AUDIO) {
  37. return toNativeAudio();
  38. }else if (type.intValue() == ResourceType.VIDEO) {
  39. return toNativeVideo();
  40. }
  41. return new ArrayList<>();
  42. }
  43. public List<Resource> toNativeVideo() {
  44. List<Resource> resourceList = new ArrayList<>();
  45. videos.forEach(v -> {
  46. Resource resource = new Resource();
  47. resource.setId(v.getId());
  48. resource.setRid(v.getRid());
  49. resource.setCode(no);
  50. resource.setName(title);
  51. resource.setType(type);
  52. if(StringUtils.isNotBlank(v.getFullPath())){
  53. resource.setUrl(v.getFullPath()
  54. .replace(ResourceController.HTTP_VIDEO_DOMAIN, ResourceController.HTTPS_VIDEO_DOMAIN)
  55. .replace(ResourceController.LJ_VIDEO_DOMAIN, ResourceController.HTTPS_VIDEO_DOMAIN));
  56. }else{
  57. resource.setUrl(v.getFullPath());
  58. }
  59. resource.setFormat(v.getFormat());
  60. resource.setQuality(v.getQuality());
  61. resource.setSize(v.getSize());
  62. resource.setPath(v.getPath());
  63. resource.setStatus(v.getStatus());
  64. resource.setGmtCreated(v.getCreateTime());
  65. resource.setGmtModified(v.getUpdateTime());
  66. resourceList.add(resource);
  67. });
  68. return resourceList;
  69. }
  70. public List<Resource> toNativeAudio() {
  71. List<Resource> resourceList = new ArrayList<>();
  72. audios.forEach(v -> {
  73. Resource resource = new Resource();
  74. resource.setId(v.getId());
  75. resource.setCode(no);
  76. resource.setName(title);
  77. resource.setType(type);
  78. resource.setUrl(v.getFullPath());
  79. resource.setFormat(v.getFormat());
  80. resource.setSize(v.getSize());
  81. resource.setPath(v.getPath());
  82. resource.setStatus(v.getStatus());
  83. resource.setGmtCreated(v.getCreateTime());
  84. resource.setGmtModified(v.getUpdateTime());
  85. resourceList.add(resource);
  86. });
  87. return resourceList;
  88. }
  89. }