腾讯音视频回调
This commit is contained in:
@@ -103,6 +103,12 @@
|
||||
<groupId>org.icepdf.os</groupId>
|
||||
<artifactId>icepdf-core</artifactId>
|
||||
<version>6.1.2</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.media</groupId>
|
||||
<artifactId>jai-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -20,12 +20,18 @@ import java.util.regex.Pattern;
|
||||
*/
|
||||
|
||||
public class StringUtil extends org.apache.commons.lang3.StringUtils {
|
||||
|
||||
private static final char UPPER_A = 'A';
|
||||
private static final char LOWER_A = 'a';
|
||||
private static final char UPPER_Z = 'Z';
|
||||
private static final char LOWER_Z = 'z';
|
||||
|
||||
public static final String REPLACE_0 = "{0}";
|
||||
public static final String REPLACE_1 = "{1}";
|
||||
public static final String REPLACE_2 = "{2}";
|
||||
public static final String REPLACE_3 = "{3}";
|
||||
public static final String REPLACE_4 = "{4}";
|
||||
public static final String REPLACE_5 = "{5}";
|
||||
|
||||
private static final byte[] DIGITS = {
|
||||
'0', '1', '2', '3', '4', '5',
|
||||
'6', '7', '8', '9', 'a', 'b',
|
||||
|
||||
@@ -37,4 +37,6 @@ public interface HyPartnerCertificationInfoMapper {
|
||||
*/
|
||||
String getInterviewPlanIdByQualifyVerifyId(String qualifyVerifyId);
|
||||
|
||||
HyPartnerCertificationInfoDO selectByPartnerLineId(@Param("partnerLineId") Long partnerLineId);
|
||||
|
||||
}
|
||||
@@ -25,5 +25,5 @@ public interface HyPartnerTaskInfoLogMapper {
|
||||
*/
|
||||
int updateByPrimaryKeySelective(@Param("record") HyPartnerTaskInfoLogDO record);
|
||||
|
||||
List<HyPartnerTaskInfoLogDO> selectByPartnerLineIdAndOperateType(@Param("partnerLineId") String partnerLineId, @Param("operateType") String operateType);
|
||||
List<HyPartnerTaskInfoLogDO> selectByPartnerLineIdAndOperateType(@Param("partnerLineId") Long partnerLineId, @Param("operateType") String operateType);
|
||||
}
|
||||
@@ -137,4 +137,10 @@
|
||||
)
|
||||
and deleted = 0
|
||||
</select>
|
||||
<select id="selectByPartnerLineId" resultType="com.cool.store.entity.HyPartnerCertificationInfoDO">
|
||||
select
|
||||
<include refid="Base_Column_List" />
|
||||
from hy_partner_certification_info
|
||||
where partner_line_id = #{partnerLineId}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.cool.store.dto.trtc.callback;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.cool.store.dto.trtc.callback;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.cool.store.dto.trtc.callback;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
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 int 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 int getEndTimeStamp() {
|
||||
return endTimeStamp;
|
||||
}
|
||||
|
||||
public void setEndTimeStamp(int endTimeStamp) {
|
||||
this.endTimeStamp = endTimeStamp;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.cool.store.dto.trtc.callback;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel
|
||||
public class GetLastUpdateTimeInfoReq {
|
||||
public class GetTipsInfoReq {
|
||||
@ApiModelProperty("线索id")
|
||||
private String partnerLineId;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.GetTipsInfoReq;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-28 21:34
|
||||
* @Description:
|
||||
*/
|
||||
public interface CommonService {
|
||||
String getTipsInfo(GetTipsInfoReq request) throws ApiException;
|
||||
}
|
||||
@@ -69,5 +69,4 @@ public interface InterviewService {
|
||||
|
||||
public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);
|
||||
|
||||
String getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||
|
||||
public interface TRTCVideoService {
|
||||
@@ -7,6 +8,8 @@ public interface TRTCVideoService {
|
||||
/**
|
||||
* 音视频上传成功后的回调处理
|
||||
*/
|
||||
void handleVideoCallBack(TRTCVideoCallBackReq req);
|
||||
// void handleVideoCallBack(TRTCVideoCallBackReq req);
|
||||
|
||||
void handleVideoCallBack(VideoCallBackDTO videoCallBackDTO);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dto.log.LogFieldDTO;
|
||||
import com.cool.store.entity.HyPartnerCertificationInfoDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.entity.HyPartnerTaskInfoLogDO;
|
||||
import com.cool.store.enums.OperateLogFieldValueEnum;
|
||||
import com.cool.store.enums.OperateTypeEnum;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.mapper.HyPartnerCertificationInfoMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.mapper.HyPartnerTaskInfoLogMapper;
|
||||
import com.cool.store.request.GetTipsInfoReq;
|
||||
import com.cool.store.service.CommonService;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-28 21:35
|
||||
* @Description:
|
||||
*/
|
||||
@Service
|
||||
public class CommonServiceImpl implements CommonService {
|
||||
|
||||
@Autowired
|
||||
private HyPartnerTaskInfoLogMapper hyPartnerTaskInfoLogMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerCertificationInfoMapper hyPartnerCertificationInfoMapper;
|
||||
|
||||
@Override
|
||||
public String getTipsInfo(GetTipsInfoReq request) throws ApiException {
|
||||
List<HyPartnerLineInfoDO> lineInfoList = hyPartnerLineInfoMapper.getHyPartnerLineInfoListByIds(Arrays.asList(Long.parseLong(request.getPartnerLineId())));
|
||||
if (CollectionUtils.isEmpty(lineInfoList)) {
|
||||
return null;
|
||||
}
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = lineInfoList.get(0);
|
||||
String workflowStage = hyPartnerLineInfoDO.getWorkflowStage();
|
||||
String workflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
|
||||
Long partnerLineId = hyPartnerLineInfoDO.getId();
|
||||
if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_2.getCode())) {
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.INTERVIEW_APPOINTMENT, "提交面试预约时间");
|
||||
} else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_3.getCode())) {
|
||||
String tips = getInterviewTips(partnerLineId, OperateTypeEnum.MODIFY_INTERVIEW_TIME, "");
|
||||
if (StringUtils.isNotEmpty(tips)) {
|
||||
return tips + ("修改面试预约时间");
|
||||
} else {
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.INTERVIEW_APPOINTMENT, "提交面试预约时间");
|
||||
}
|
||||
} else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_4.getCode())) {
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "结束面试");
|
||||
}else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_5.getCode())) {
|
||||
HyPartnerCertificationInfoDO partnerCertificationInfoDO = hyPartnerCertificationInfoMapper.selectByPartnerLineId(partnerLineId);
|
||||
String intentionContractNo = null;
|
||||
if(partnerCertificationInfoDO != null){
|
||||
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
||||
}
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "发起加盟商资质审核|"+intentionContractNo);
|
||||
}else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_6.getCode())) {
|
||||
HyPartnerCertificationInfoDO partnerCertificationInfoDO = hyPartnerCertificationInfoMapper.selectByPartnerLineId(partnerLineId);
|
||||
String intentionContractNo = null;
|
||||
if(partnerCertificationInfoDO != null){
|
||||
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
||||
}
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "审核通过|"+intentionContractNo);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getInterviewTips(Long partnerLineId, OperateTypeEnum operateTypeEnum, String action) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append(StringUtil.REPLACE_0)
|
||||
.append(" ")
|
||||
.append(StringUtil.REPLACE_1)
|
||||
.append(" 于 ").append(StringUtil.REPLACE_2).append(" ").append(action);
|
||||
String content = sb.toString();
|
||||
return getSuitableTipsInfo(content, partnerLineId,
|
||||
operateTypeEnum,
|
||||
OperateLogFieldValueEnum.OPERATE_USER_NAME.getCode(),
|
||||
OperateLogFieldValueEnum.MOBILE.getCode(),
|
||||
OperateLogFieldValueEnum.OPERATE_TIME.getCode());
|
||||
|
||||
}
|
||||
|
||||
public String getSuitableTipsInfo(String content, Long partnerLineId, OperateTypeEnum operateTypeEnum, String... replaceKeys) {
|
||||
List<HyPartnerTaskInfoLogDO> hyPartnerTaskInfoLogDOS = hyPartnerTaskInfoLogMapper.selectByPartnerLineIdAndOperateType(partnerLineId, operateTypeEnum.getCode());
|
||||
if (CollectionUtils.isEmpty(hyPartnerTaskInfoLogDOS)) {
|
||||
return null;
|
||||
}
|
||||
HyPartnerTaskInfoLogDO hyPartnerTaskInfoLogDO = hyPartnerTaskInfoLogDOS.get(0);
|
||||
String fieldCopy = hyPartnerTaskInfoLogDO.getFieldCopy();
|
||||
List<LogFieldDTO> logFieldDTOS = JSONObject.parseArray(fieldCopy, LogFieldDTO.class);
|
||||
List<String> params = new ArrayList<>();
|
||||
for (String replaceKey : replaceKeys) {
|
||||
String value = "";
|
||||
Optional<LogFieldDTO> logFieldDTOOptional = logFieldDTOS.stream().filter(l -> l.getCode().equals(replaceKey)).findFirst();
|
||||
if (logFieldDTOOptional.isPresent()) {
|
||||
value = logFieldDTOOptional.get().getValue();
|
||||
try {
|
||||
value = DateUtil.format(DateUtil.parseDateTime(value), "yyyy/MM/dd HH:mm:ss");
|
||||
} catch (Exception e) {
|
||||
//异常代表不是时间格式,不做处理
|
||||
}
|
||||
|
||||
}
|
||||
params.add(value);
|
||||
}
|
||||
|
||||
return MessageFormat.format(content, params.toArray());
|
||||
}
|
||||
}
|
||||
@@ -200,8 +200,12 @@ public class FlowServiceImpl implements FlowService {
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
//更新面试信息
|
||||
//更新面试状态
|
||||
hyPartnerInterviewDO.setStatus(null);
|
||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
|
||||
|
||||
//获取当前操作人
|
||||
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||
hyPartnerInterviewDO.setRecorder(operator.getName()+" "+operator.getMobile());
|
||||
hyPartnerInterviewDO.setRecordTime(new Date());
|
||||
hyPartnerInterviewDO.setAuthCode(authCode);
|
||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||
|
||||
@@ -213,7 +217,6 @@ public class FlowServiceImpl implements FlowService {
|
||||
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
|
||||
}
|
||||
//记录日志
|
||||
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||
CreateQualifyVerifyDTO log = CreateQualifyVerifyDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
|
||||
.summary(request.getSummary()).qualiVerifyContent(JSON.toJSONString(partnerCertificationInfoDO)).build();
|
||||
logService.recordBizLog(operator,hyPartnerInterviewDO.getPartnerLineId(), OperateTypeEnum.CREATE_QUALIFYVERIFY,log);
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.cool.store.context.LoginUserInfo;
|
||||
import com.cool.store.context.PartnerUserHolder;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.dao.HyInterviewDAO;
|
||||
import com.cool.store.dao.HyPartnerTaskInfoLogDAO;
|
||||
import com.cool.store.dto.calendar.CreateCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
|
||||
@@ -102,9 +101,6 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Autowired
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerTaskInfoLogMapper hyPartnerTaskInfoLogMapper;
|
||||
@Override
|
||||
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
||||
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
||||
@@ -629,39 +625,4 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException {
|
||||
String content = " 修改面试预约时间";
|
||||
String operatorName = null;
|
||||
String operatorMobile = null;
|
||||
String operatorTime = null;
|
||||
List<HyPartnerTaskInfoLogDO> hyPartnerTaskInfoLogDOS = hyPartnerTaskInfoLogMapper.selectByPartnerLineIdAndOperateType(request.getPartnerLineId(), OperateTypeEnum.MODIFY_INTERVIEW_TIME.getCode());
|
||||
if(CollectionUtils.isEmpty(hyPartnerTaskInfoLogDOS)){
|
||||
hyPartnerTaskInfoLogDOS = hyPartnerTaskInfoLogMapper.selectByPartnerLineIdAndOperateType(request.getPartnerLineId(), OperateTypeEnum.INTERVIEW_APPOINTMENT.getCode());
|
||||
if(CollectionUtils.isEmpty(hyPartnerTaskInfoLogDOS)){
|
||||
return null;
|
||||
}
|
||||
content = " 提交面试预约时间";
|
||||
}
|
||||
HyPartnerTaskInfoLogDO hyPartnerTaskInfoLogDO = hyPartnerTaskInfoLogDOS.get(0);
|
||||
String fieldCopy = hyPartnerTaskInfoLogDO.getFieldCopy();
|
||||
List<LogFieldDTO> logFieldDTOS = JSONObject.parseArray(fieldCopy, LogFieldDTO.class);
|
||||
for(LogFieldDTO logFieldDTO:logFieldDTOS){
|
||||
if(OperateLogFieldValueEnum.OPERATE_TIME.getCode().equals(logFieldDTO.getCode())){
|
||||
operatorTime = logFieldDTO.getValue();
|
||||
}
|
||||
if(OperateLogFieldValueEnum.MOBILE.getCode().equals(logFieldDTO.getCode())){
|
||||
operatorMobile = logFieldDTO.getValue();
|
||||
}
|
||||
if(OperateLogFieldValueEnum.OPERATE_USER_NAME.getCode().equals(logFieldDTO.getCode())){
|
||||
operatorName = logFieldDTO.getValue();
|
||||
}
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append(operatorName)
|
||||
.append(" "+operatorMobile)
|
||||
.append(" 于 ").append(DateUtil.format(DateUtil.parseDateTime(operatorTime),"yyyy/MM/dd HH:mm:ss")).append(content);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||
import com.cool.store.service.TRTCVideoService;
|
||||
@@ -15,12 +16,19 @@ public class TRTCVideoServiceImpl implements TRTCVideoService {
|
||||
/**
|
||||
* 音视频上传成功后的回调处理
|
||||
*/
|
||||
// @Override
|
||||
// public void handleVideoCallBack(TRTCVideoCallBackReq req) {
|
||||
// //将视频播放地址拼接到对应的面试信息字段中
|
||||
// String videoUrl = req.getEventInfo().getPayLoad().getTencentVod().getVideoUrl();
|
||||
// String roomId = req.getEventInfo().getRoomId();
|
||||
// interviewMapper.addVideoUrl(roomId, videoUrl);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void handleVideoCallBack(TRTCVideoCallBackReq req) {
|
||||
public void handleVideoCallBack(VideoCallBackDTO videoCallBackDTO) {
|
||||
//将视频播放地址拼接到对应的面试信息字段中
|
||||
String videoUrl = req.getEventInfo().getPayLoad().getTencentVod().getVideoUrl();
|
||||
String roomId = req.getEventInfo().getRoomId();
|
||||
String videoUrl = videoCallBackDTO.getEventInfo().getPayload().getTencentVod().getVideoUrl();
|
||||
String roomId = videoCallBackDTO.getEventInfo().getRoomId();
|
||||
interviewMapper.addVideoUrl(roomId, videoUrl);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ public class TokenValidateFilter implements Filter {
|
||||
Lists.newArrayList("/web/check/ok","/check/ok",
|
||||
"/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig",
|
||||
"/**/swagger*/**", "/**/webjars/**",
|
||||
"/partner/pc/**",
|
||||
//腾讯音视频回调,单独做验签
|
||||
"/partner/pc/video/**",
|
||||
//TODO 800回调地址暂时不做验证
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.controller;
|
||||
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.GetTipsInfoReq;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.CommonService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-28 21:33
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/common")
|
||||
@Api(tags = "通用信息")
|
||||
public class CommonController {
|
||||
|
||||
@Autowired
|
||||
private CommonService commonService;
|
||||
@PostMapping("/getTipsInfo")
|
||||
@ApiOperation("获取面试最新更新信息")
|
||||
public ResponseResult getTipsInfo(@RequestBody GetTipsInfoReq request) throws ApiException {
|
||||
String res = commonService.getTipsInfo(request);
|
||||
return ResponseResult.success(res);
|
||||
}
|
||||
}
|
||||
@@ -94,10 +94,4 @@ public class InterviewController {
|
||||
// interviewService.rejectInterview(request);
|
||||
// return ResponseResult.success();
|
||||
// }
|
||||
@PostMapping("/getLastUpdateTimeInfo")
|
||||
@ApiOperation("获取面试最新更新信息")
|
||||
public ResponseResult getLastUpdateTimeInfo(@RequestBody GetLastUpdateTimeInfoReq request) throws ApiException {
|
||||
String res = interviewService.getLastUpdateTimeInfo(request);
|
||||
return ResponseResult.success(res);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.TRTCVideoService;
|
||||
@@ -22,21 +23,37 @@ public class VideoController {
|
||||
@Autowired
|
||||
private TRTCVideoService videoService;
|
||||
|
||||
// @PostMapping("/callback")
|
||||
// @ApiOperation("音视频回调(腾讯云回调)")
|
||||
// public ResponseResult videoCallback(@RequestBody String requestBody) {
|
||||
// log.info("腾讯音视频上传完成回调,request{}", JSONObject.toJSONString(requestBody));
|
||||
// //由于腾讯云恶事做尽,它的回调参数不是驼峰法,首字母是大写,导致 SpringMVC 映射不上,只能手动映射了
|
||||
// TRTCVideoCallBackReq req = JSONObject.parseObject(requestBody, TRTCVideoCallBackReq.class);
|
||||
// //不是音视频上传的回调
|
||||
// if (!"311".equals(req.getEventType())) {
|
||||
// return null;
|
||||
// }
|
||||
// if (!"0".equals(req.getEventInfo().getPayLoad().getStatus())) {
|
||||
// log.error("腾讯音视频录制视频上传错误:request:\t{}", req);
|
||||
// return null;
|
||||
// }
|
||||
// videoService.handleVideoCallBack(req);
|
||||
// return new ResponseResult(0, "腾讯云回调音视频回调数据接收成功");
|
||||
// }
|
||||
|
||||
@PostMapping("/callback")
|
||||
@ApiOperation("音视频回调(腾讯云回调)")
|
||||
public ResponseResult videoCallback(@RequestBody String requestBody) {
|
||||
log.info("腾讯音视频上传完成回调,request{}", JSONObject.toJSONString(requestBody));
|
||||
//由于腾讯云恶事做尽,它的回调参数不是驼峰法,首字母是大写,导致 SpringMVC 映射不上,只能手动映射了
|
||||
TRTCVideoCallBackReq req = JSONObject.parseObject(requestBody, TRTCVideoCallBackReq.class);
|
||||
public ResponseResult videoCallback(@RequestBody VideoCallBackDTO videoCallBackDTO) {
|
||||
log.info("腾讯音视频上传完成回调,request{}", JSONObject.toJSONString(videoCallBackDTO));
|
||||
//不是音视频上传的回调
|
||||
if (!"311".equals(req.getEventType())) {
|
||||
if (311!= videoCallBackDTO.getEventType()) {
|
||||
return null;
|
||||
}
|
||||
if (!"0".equals(req.getEventInfo().getPayLoad().getStatus())) {
|
||||
log.error("腾讯音视频录制视频上传错误:request:\t{}", req);
|
||||
if (0 !=videoCallBackDTO.getEventInfo().getPayload().getStatus()) {
|
||||
log.error("腾讯音视频录制视频上传错误:request:\t{}", videoCallBackDTO);
|
||||
return null;
|
||||
}
|
||||
videoService.handleVideoCallBack(req);
|
||||
videoService.handleVideoCallBack(videoCallBackDTO);
|
||||
return new ResponseResult(0, "腾讯云回调音视频回调数据接收成功");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user