Ver código fonte

feat:es播放记录报错资源名称相关信息

lihao16 2 meses atrás
pai
commit
60317b2ce1

+ 147 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/domain/MinioData.java

@@ -0,0 +1,147 @@
+
+package com.inspur.netty.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.dromara.common.tenant.core.TenantEntity;
+
+import java.io.Serial;
+import java.util.Date;
+
+/**
+ * 文件资源对象 smsb_minio_data
+ *
+ * @author Hao Li
+ * @date 2025-02-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("smsb_minio_data")
+@ToString
+public class MinioData extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 桶名+文件名
+     */
+    private String keyName;
+
+    /**
+     * 文件相关信息
+     */
+    private String value;
+
+    /**
+     * 状态
+     */
+    private Long status;
+
+    /**
+     * 逻辑删除  0未删除1删除
+     */
+    @TableLogic
+    private Integer delFlag;
+
+    /**
+     * 类型 1图片 ,2视频 3音频 4ppt
+     */
+    private Integer type;
+
+    /**
+     * 原名
+     */
+    private String originalName;
+
+    /**
+     * 文件大小
+     */
+    private Integer size;
+
+    /**
+     * md5值
+     */
+    private String md5;
+
+    /**
+     * 子媒资排序
+     */
+    private Long sort;
+
+    /**
+     * 时长
+     */
+    private Long duration;
+
+    private String resolution;
+
+    private Integer codeRate;
+
+    /**
+     * 视频截图
+     */
+    private String screenshot;
+
+    /**
+     * AI审核ID
+     */
+    private Long aiAuditId;
+
+    /**
+     * 其他
+     */
+    private String remark;
+
+    /**
+     * 子文件的父key
+     */
+    private String parentKeyName;
+
+    /**
+     * 分类1:广告,2:公益,3:地方宣传,4.垫片
+     */
+    private Long tag;
+
+    /**
+     * 子分类(舍弃)
+     */
+    private Long subtag;
+
+    /**
+     * 分享(舍弃)
+     */
+    private Long shared;
+
+    /**
+     * (舍弃)
+     */
+    private Date lastSharedOpTime;
+
+    /**
+     * 0:不参与营销,1:参与营销
+     */
+    private Long marketing;
+
+    private String createUser;
+
+    /** 0-待转 1-成功 2-失败 */
+    private Integer transState;
+
+    private String fileUrl;
+
+    /** 文件的下载地址 */
+    private String downloadUrl;
+
+
+}

+ 6 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/domain/es/EsSmsbSourcePlayRecord.java

@@ -35,6 +35,8 @@ public class EsSmsbSourcePlayRecord {
      */
     private String deviceId;
 
+    private String deviceName;
+
     /**
      * 节目ID
      */
@@ -45,6 +47,10 @@ public class EsSmsbSourcePlayRecord {
      */
     private String sourceId;
 
+    private String sourceName;
+
+    private String sourceUrl;
+
     /**
      * 资源类型
      */

+ 120 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/domain/vo/MinioDataVo.java

@@ -0,0 +1,120 @@
+package com.inspur.netty.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.inspur.netty.domain.MinioData;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 文件资源视图对象 smsb_minio_data
+ *
+ * @author Hao Li
+ * @date 2025-02-07
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = MinioData.class)
+public class MinioDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long id;
+
+    /**
+     * 桶名+文件名
+     */
+    @ExcelProperty(value = "桶名+文件名")
+    private String keyName;
+
+    /**
+     * 类型 1图片 ,2视频 3音频
+     */
+    @ExcelProperty(value = "类型 1图片 ,2视频 3音频", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "smsb_source_type")
+    private Long type;
+
+    /**
+     * 原名
+     */
+    @ExcelProperty(value = "原名")
+    private String originalName;
+
+    /**
+     * 文件大小
+     */
+    @ExcelProperty(value = "文件大小")
+    private Long size;
+
+    /**
+     * 视频截图
+     */
+    @ExcelProperty(value = "视频截图")
+    private String screenshot;
+
+    /**
+     * 分类1:广告,2:公益,3:宣传
+     */
+    @ExcelProperty(value = "分类1:广告,2:公益,3:宣传", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "smsb_source_classify")
+    private Long tag;
+
+    /**
+     * 0:不参与营销,1:参与营销
+     */
+    @ExcelProperty(value = "0:不参与营销,1:参与营销", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_yes_no")
+    private Long marketing;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 分辨率
+     */
+    private String resolution;
+
+    /**
+     * 时长
+     */
+    private String duration;
+
+    /**
+     * 码率
+     */
+    private Integer codeRate;
+
+    private String createUser;
+
+    private String fileUrl;
+
+    private String md5;
+
+    /**
+     * 转码状态 0:待转码,1:转码成功,2:转码失败
+     */
+    @ExcelDictFormat(dictType = "smsb_trans_result")
+    private Integer transState;
+
+    private Integer useNum;
+
+    /**
+     * 文件的下载地址
+     */
+    private String downloadUrl;
+}

+ 19 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/handler/SourcePlayRecordHandler.java

@@ -5,7 +5,9 @@ import com.inspur.device.service.ISmsbDeviceService;
 import com.inspur.device.service.impl.SmsbDeviceServiceImpl;
 import com.inspur.netty.domain.SourcePlayRecord;
 import com.inspur.netty.domain.es.EsSmsbSourcePlayRecord;
+import com.inspur.netty.domain.vo.MinioDataVo;
 import com.inspur.netty.esmapper.EsSmsbSourcePlayRecordMapper;
+import com.inspur.netty.mapper.MinioDataMapper;
 import com.inspur.netty.mapper.SourcePlayRecordMapper;
 import com.inspur.netty.message.push.PushMessageType;
 import com.inspur.netty.message.receive.ReceiveMessageType;
@@ -17,6 +19,7 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.easyes.common.property.EasyEsProperties;
 
 import java.nio.charset.Charset;
@@ -33,6 +36,10 @@ public class SourcePlayRecordHandler extends ChannelInboundHandlerAdapter {
 
     private static final ISmsbDeviceService smsbDeviceService = SpringUtils.getBean(SmsbDeviceServiceImpl.class);
 
+    private static final MinioDataMapper minioDataMapper = SpringUtils.getBean(MinioDataMapper.class);
+
+    private static final String REDIS_KEY_MINIO_DATA = "global:msr:minio:id";
+
     /**
      * easy-es 配置类
      */
@@ -84,6 +91,9 @@ public class SourcePlayRecordHandler extends ChannelInboundHandlerAdapter {
             esSmsbSourcePlayRecord.setTenantId(smsbDeviceVo.getTenantId());
             esSmsbSourcePlayRecord.setCreateTime(DateUtils.getTime());
             if (easyEsProperties != null && easyEsProperties.isEnable()) {
+                MinioDataVo minioDataVo = getMinioDataFromCache(esSmsbSourcePlayRecord.getSourceId());
+                esSmsbSourcePlayRecord.setSourceName(minioDataVo.getOriginalName());
+                esSmsbSourcePlayRecord.setSourceUrl(minioDataVo.getFileUrl());
                 esSmsbSourcePlayRecordMapper.insert(esSmsbSourcePlayRecord);
             }
             sourcePlayRecordMapper.insert(sourcePlayRecord);
@@ -96,4 +106,13 @@ public class SourcePlayRecordHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    private MinioDataVo getMinioDataFromCache(String sourceId) {
+        MinioDataVo minioDataVo = RedisUtils.getCacheMapValue(REDIS_KEY_MINIO_DATA,sourceId);
+        if (minioDataVo == null) {
+            minioDataVo = minioDataMapper.selectVoById(sourceId);
+            RedisUtils.setCacheMapValue(REDIS_KEY_MINIO_DATA,sourceId,minioDataVo);
+        }
+        return minioDataVo;
+    }
+
 }

+ 15 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/mapper/MinioDataMapper.java

@@ -0,0 +1,15 @@
+package com.inspur.netty.mapper;
+
+import com.inspur.netty.domain.MinioData;
+import com.inspur.netty.domain.vo.MinioDataVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 文件资源Mapper接口
+ *
+ * @author Hao Li
+ * @date 2025-02-07
+ */
+public interface MinioDataMapper extends BaseMapperPlus<MinioData, MinioDataVo> {
+
+}