From e5d4b5266d4d05e16b3b85d2276d2a4bc821cc20 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 12 Mar 2024 11:23:18 +0800 Subject: [PATCH] update --- .../store/dto/trtc/callback/EventInfo.java | 61 +++++++++++++ .../cool/store/dto/trtc/callback/Payload.java | 31 +++++++ .../store/dto/trtc/callback/TencentVod.java | 91 +++++++++++++++++++ .../dto/trtc/callback/VideoCallBackDTO.java | 51 +++++++++++ .../cool/store/service/TRTCVideoService.java | 9 ++ .../service/impl/TRTCVideoServiceImpl.java | 26 ++++++ .../store/controller/VideoController.java | 46 ++++++++++ .../resources/application-local.properties | 6 +- .../resources/application-test.properties | 6 +- .../src/main/resources/application.properties | 2 +- .../src/main/resources/application.properties | 2 +- 11 files changed, 323 insertions(+), 8 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/EventInfo.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/Payload.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/VideoCallBackDTO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/TRTCVideoService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/TRTCVideoServiceImpl.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/VideoController.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/EventInfo.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/EventInfo.java new file mode 100644 index 000000000..2eb424094 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/EventInfo.java @@ -0,0 +1,61 @@ +package com.cool.store.dto.trtc.callback; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-29 01:17 + * @Description: + */ +public class EventInfo { + @JsonProperty("RoomId") + private String roomId; + @JsonProperty("EventTs") + private long eventTs; + @JsonProperty("UserId") + private String userId; + @JsonProperty("TaskId") + private String taskId; + @JsonProperty("Payload") + private Payload payload; + + public String getRoomId() { + return roomId; + } + + public void setRoomId(String roomId) { + this.roomId = roomId; + } + + public long getEventTs() { + return eventTs; + } + + public void setEventTs(long eventTs) { + this.eventTs = eventTs; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } + + public Payload getPayload() { + return payload; + } + + public void setPayload(Payload payload) { + this.payload = payload; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/Payload.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/Payload.java new file mode 100644 index 000000000..a705f6b06 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/Payload.java @@ -0,0 +1,31 @@ +package com.cool.store.dto.trtc.callback; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-29 01:17 + * @Description: + */ +public class Payload { + @JsonProperty("Status") + private int status; + @JsonProperty("TencentVod") + private TencentVod tencentVod; + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public TencentVod getTencentVod() { + return tencentVod; + } + + public void setTencentVod(TencentVod tencentVod) { + this.tencentVod = tencentVod; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java new file mode 100644 index 000000000..9191bfa47 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java @@ -0,0 +1,91 @@ +package com.cool.store.dto.trtc.callback; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-29 01:18 + * @Description: + */ +public class TencentVod { + @JsonProperty("UserId") + private String userId; + @JsonProperty("TrackType") + private String trackType; + @JsonProperty("MediaId") + private String mediaId; + @JsonProperty("FileId") + private String fileId; + @JsonProperty("VideoUrl") + private String videoUrl; + @JsonProperty("CacheFile") + private String cacheFile; + @JsonProperty("StartTimeStamp") + private long startTimeStamp; + @JsonProperty("EndTimeStamp") + private long endTimeStamp; + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getTrackType() { + return trackType; + } + + public void setTrackType(String trackType) { + this.trackType = trackType; + } + + public String getMediaId() { + return mediaId; + } + + public void setMediaId(String mediaId) { + this.mediaId = mediaId; + } + + public String getFileId() { + return fileId; + } + + public void setFileId(String fileId) { + this.fileId = fileId; + } + + public String getVideoUrl() { + return videoUrl; + } + + public void setVideoUrl(String videoUrl) { + this.videoUrl = videoUrl; + } + + public String getCacheFile() { + return cacheFile; + } + + public void setCacheFile(String cacheFile) { + this.cacheFile = cacheFile; + } + + public long getStartTimeStamp() { + return startTimeStamp; + } + + public void setStartTimeStamp(long startTimeStamp) { + this.startTimeStamp = startTimeStamp; + } + + public long getEndTimeStamp() { + return endTimeStamp; + } + + public void setEndTimeStamp(long endTimeStamp) { + this.endTimeStamp = endTimeStamp; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/VideoCallBackDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/VideoCallBackDTO.java new file mode 100644 index 000000000..6f3bec94c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/VideoCallBackDTO.java @@ -0,0 +1,51 @@ +package com.cool.store.dto.trtc.callback; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-29 01:16 + * @Description: + */ +public class VideoCallBackDTO { + @JsonProperty("EventGroupId") + private int eventGroupId; + @JsonProperty("EventType") + private int eventType; + @JsonProperty("CallbackTs") + private long callbackTs; + @JsonProperty("EventInfo") + private EventInfo eventInfo; + + public int getEventGroupId() { + return eventGroupId; + } + + public void setEventGroupId(int eventGroupId) { + this.eventGroupId = eventGroupId; + } + + public int getEventType() { + return eventType; + } + + public void setEventType(int eventType) { + this.eventType = eventType; + } + + public long getCallbackTs() { + return callbackTs; + } + + public void setCallbackTs(long callbackTs) { + this.callbackTs = callbackTs; + } + + public EventInfo getEventInfo() { + return eventInfo; + } + + public void setEventInfo(EventInfo eventInfo) { + this.eventInfo = eventInfo; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/TRTCVideoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/TRTCVideoService.java new file mode 100644 index 000000000..3873deac6 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/TRTCVideoService.java @@ -0,0 +1,9 @@ +package com.cool.store.service; + +import com.cool.store.dto.trtc.callback.VideoCallBackDTO; + +public interface TRTCVideoService { + + void handleVideoCallBack(VideoCallBackDTO videoCallBackDTO); + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TRTCVideoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TRTCVideoServiceImpl.java new file mode 100644 index 000000000..3f50b9364 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TRTCVideoServiceImpl.java @@ -0,0 +1,26 @@ +package com.cool.store.service.impl; + +import com.cool.store.dto.trtc.callback.VideoCallBackDTO; +import com.cool.store.service.TRTCVideoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class TRTCVideoServiceImpl implements TRTCVideoService { + + /*@Autowired + private HyPartnerInterviewMapper interviewMapper;*/ + + @Override + public void handleVideoCallBack(VideoCallBackDTO videoCallBackDTO) { + //防重 + /*Boolean hasVideoUrl = interviewMapper.hasVideoUrls(videoCallBackDTO.getEventInfo().getPayload().getTencentVod().getVideoUrl()); + if (hasVideoUrl) { + return; + }*/ + //将视频播放地址拼接到对应的面试信息字段中 + String videoUrl = videoCallBackDTO.getEventInfo().getPayload().getTencentVod().getVideoUrl(); + String roomId = videoCallBackDTO.getEventInfo().getRoomId(); + //interviewMapper.addVideoUrl(roomId, videoUrl); + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/VideoController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/VideoController.java new file mode 100644 index 000000000..68d0c983b --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/VideoController.java @@ -0,0 +1,46 @@ +package com.cool.store.controller; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.trtc.callback.VideoCallBackDTO; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.TRTCVideoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/video") +@Api(tags = "腾讯音视频接口") +@Slf4j +public class VideoController { + + @Autowired + private TRTCVideoService videoService; + + @PostMapping("/callback") + @ApiOperation("音视频回调(腾讯云回调)") + public ResponseResult videoCallback(@RequestBody VideoCallBackDTO videoCallBackDTO) { + try { + log.info("腾讯音视频上传回调开始,request{}", JSONObject.toJSONString(videoCallBackDTO)); + //不是音视频上传的回调 + if (311 != videoCallBackDTO.getEventType()) { + return null; + } + if (0 != videoCallBackDTO.getEventInfo().getPayload().getStatus()) { + log.error("腾讯音视频录制视频上传错误:request:\t{}", videoCallBackDTO); + return null; + } + videoService.handleVideoCallBack(videoCallBackDTO); + return new ResponseResult(0, "腾讯云回调音视频回调数据接收成功"); + } catch (Exception e) { + log.error("腾讯音视频录制视频上传回调错误:e:\t{}", e.toString()); + } + return null; + } + +} diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index 7b79d39b0..2266c93e9 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -56,9 +56,9 @@ corp.id=171cddee76471740 cdn.url=https://testhsaypic.coolstore.cn #TRTC -trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 -trtc.video.callback.secretKey=1ECEAD34DBD84E838BF07FC7360EA4D8 +trtc.sdkAppId=1600026212 +trtc.secretKey=e036b654c665f649f053a01ff6f5652a826980027be298d4d49949f6e26434a5 +trtc.video.callback.secretKey=ur4wq2iFbRI03Q35 weixin.appId=wx997f2206e276e513 weixin.appSecret=90a51574dde00480316f81a552e6b5cb diff --git a/coolstore-partner-webb/src/main/resources/application-test.properties b/coolstore-partner-webb/src/main/resources/application-test.properties index 7b79d39b0..2266c93e9 100644 --- a/coolstore-partner-webb/src/main/resources/application-test.properties +++ b/coolstore-partner-webb/src/main/resources/application-test.properties @@ -56,9 +56,9 @@ corp.id=171cddee76471740 cdn.url=https://testhsaypic.coolstore.cn #TRTC -trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 -trtc.video.callback.secretKey=1ECEAD34DBD84E838BF07FC7360EA4D8 +trtc.sdkAppId=1600026212 +trtc.secretKey=e036b654c665f649f053a01ff6f5652a826980027be298d4d49949f6e26434a5 +trtc.video.callback.secretKey=ur4wq2iFbRI03Q35 weixin.appId=wx997f2206e276e513 weixin.appSecret=90a51574dde00480316f81a552e6b5cb diff --git a/coolstore-partner-webb/src/main/resources/application.properties b/coolstore-partner-webb/src/main/resources/application.properties index 4eec09f5d..f65673ea8 100644 --- a/coolstore-partner-webb/src/main/resources/application.properties +++ b/coolstore-partner-webb/src/main/resources/application.properties @@ -1,7 +1,7 @@ spring.application.name=hsay-partner-webb spring.profiles.active=test -server.port=31000 +server.port=40000 server.servlet.context-path=/xfsg/pc #logback diff --git a/coolstore-partner-webc/src/main/resources/application.properties b/coolstore-partner-webc/src/main/resources/application.properties index fcd96372c..40d4defb9 100644 --- a/coolstore-partner-webc/src/main/resources/application.properties +++ b/coolstore-partner-webc/src/main/resources/application.properties @@ -1,6 +1,6 @@ spring.application.name=hsay-partner-webc spring.profiles.active=test -server.port=30900 +server.port=40100 server.servlet.context-path=/xfsg/mini/program #logback