腾讯音视频回调
This commit is contained in:
@@ -103,6 +103,12 @@
|
|||||||
<groupId>org.icepdf.os</groupId>
|
<groupId>org.icepdf.os</groupId>
|
||||||
<artifactId>icepdf-core</artifactId>
|
<artifactId>icepdf-core</artifactId>
|
||||||
<version>6.1.2</version>
|
<version>6.1.2</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>javax.media</groupId>
|
||||||
|
<artifactId>jai-core</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,18 @@ import java.util.regex.Pattern;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class StringUtil extends org.apache.commons.lang3.StringUtils {
|
public class StringUtil extends org.apache.commons.lang3.StringUtils {
|
||||||
|
|
||||||
private static final char UPPER_A = 'A';
|
private static final char UPPER_A = 'A';
|
||||||
private static final char LOWER_A = 'a';
|
private static final char LOWER_A = 'a';
|
||||||
private static final char UPPER_Z = 'Z';
|
private static final char UPPER_Z = 'Z';
|
||||||
private static final char LOWER_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 = {
|
private static final byte[] DIGITS = {
|
||||||
'0', '1', '2', '3', '4', '5',
|
'0', '1', '2', '3', '4', '5',
|
||||||
'6', '7', '8', '9', 'a', 'b',
|
'6', '7', '8', '9', 'a', 'b',
|
||||||
|
|||||||
@@ -37,4 +37,6 @@ public interface HyPartnerCertificationInfoMapper {
|
|||||||
*/
|
*/
|
||||||
String getInterviewPlanIdByQualifyVerifyId(String qualifyVerifyId);
|
String getInterviewPlanIdByQualifyVerifyId(String qualifyVerifyId);
|
||||||
|
|
||||||
|
HyPartnerCertificationInfoDO selectByPartnerLineId(@Param("partnerLineId") Long partnerLineId);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -25,5 +25,5 @@ public interface HyPartnerTaskInfoLogMapper {
|
|||||||
*/
|
*/
|
||||||
int updateByPrimaryKeySelective(@Param("record") HyPartnerTaskInfoLogDO record);
|
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
|
and deleted = 0
|
||||||
</select>
|
</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>
|
</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
|
@Data
|
||||||
@ApiModel
|
@ApiModel
|
||||||
public class GetLastUpdateTimeInfoReq {
|
public class GetTipsInfoReq {
|
||||||
@ApiModelProperty("线索id")
|
@ApiModelProperty("线索id")
|
||||||
private String partnerLineId;
|
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);
|
public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);
|
||||||
|
|
||||||
String getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.cool.store.service;
|
package com.cool.store.service;
|
||||||
|
|
||||||
|
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||||
|
|
||||||
public interface TRTCVideoService {
|
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.setUpdateTime(new Date());
|
||||||
//更新面试信息
|
//更新面试信息
|
||||||
//更新面试状态
|
//更新面试状态
|
||||||
hyPartnerInterviewDO.setStatus(null);
|
|
||||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
|
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
|
||||||
|
|
||||||
|
//获取当前操作人
|
||||||
|
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||||
|
hyPartnerInterviewDO.setRecorder(operator.getName()+" "+operator.getMobile());
|
||||||
|
hyPartnerInterviewDO.setRecordTime(new Date());
|
||||||
hyPartnerInterviewDO.setAuthCode(authCode);
|
hyPartnerInterviewDO.setAuthCode(authCode);
|
||||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
|
|
||||||
@@ -213,7 +217,6 @@ public class FlowServiceImpl implements FlowService {
|
|||||||
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
|
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))
|
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();
|
.summary(request.getSummary()).qualiVerifyContent(JSON.toJSONString(partnerCertificationInfoDO)).build();
|
||||||
logService.recordBizLog(operator,hyPartnerInterviewDO.getPartnerLineId(), OperateTypeEnum.CREATE_QUALIFYVERIFY,log);
|
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.context.PartnerUserHolder;
|
||||||
import com.cool.store.dao.EnterpriseUserDAO;
|
import com.cool.store.dao.EnterpriseUserDAO;
|
||||||
import com.cool.store.dao.HyInterviewDAO;
|
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.CreateCalendarEventDTO;
|
||||||
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
||||||
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
|
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
|
||||||
@@ -102,9 +101,6 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EnterpriseUserDAO enterpriseUserDAO;
|
private EnterpriseUserDAO enterpriseUserDAO;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private HyPartnerTaskInfoLogMapper hyPartnerTaskInfoLogMapper;
|
|
||||||
@Override
|
@Override
|
||||||
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
||||||
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
||||||
@@ -629,39 +625,4 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
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;
|
package com.cool.store.service.impl;
|
||||||
|
|
||||||
|
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||||
import com.cool.store.service.TRTCVideoService;
|
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
|
@Override
|
||||||
public void handleVideoCallBack(TRTCVideoCallBackReq req) {
|
public void handleVideoCallBack(VideoCallBackDTO videoCallBackDTO) {
|
||||||
//将视频播放地址拼接到对应的面试信息字段中
|
//将视频播放地址拼接到对应的面试信息字段中
|
||||||
String videoUrl = req.getEventInfo().getPayLoad().getTencentVod().getVideoUrl();
|
String videoUrl = videoCallBackDTO.getEventInfo().getPayload().getTencentVod().getVideoUrl();
|
||||||
String roomId = req.getEventInfo().getRoomId();
|
String roomId = videoCallBackDTO.getEventInfo().getRoomId();
|
||||||
interviewMapper.addVideoUrl(roomId, videoUrl);
|
interviewMapper.addVideoUrl(roomId, videoUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ public class TokenValidateFilter implements Filter {
|
|||||||
Lists.newArrayList("/web/check/ok","/check/ok",
|
Lists.newArrayList("/web/check/ok","/check/ok",
|
||||||
"/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig",
|
"/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig",
|
||||||
"/**/swagger*/**", "/**/webjars/**",
|
"/**/swagger*/**", "/**/webjars/**",
|
||||||
|
"/partner/pc/**",
|
||||||
//腾讯音视频回调,单独做验签
|
//腾讯音视频回调,单独做验签
|
||||||
"/partner/pc/video/**",
|
"/partner/pc/video/**",
|
||||||
//TODO 800回调地址暂时不做验证
|
//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);
|
// interviewService.rejectInterview(request);
|
||||||
// return ResponseResult.success();
|
// 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;
|
package com.cool.store.controller;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.cool.store.dto.trtc.callback.VideoCallBackDTO;
|
||||||
import com.cool.store.request.TRTCVideoCallBackReq;
|
import com.cool.store.request.TRTCVideoCallBackReq;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.service.TRTCVideoService;
|
import com.cool.store.service.TRTCVideoService;
|
||||||
@@ -22,21 +23,37 @@ public class VideoController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TRTCVideoService videoService;
|
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")
|
@PostMapping("/callback")
|
||||||
@ApiOperation("音视频回调(腾讯云回调)")
|
@ApiOperation("音视频回调(腾讯云回调)")
|
||||||
public ResponseResult videoCallback(@RequestBody String requestBody) {
|
public ResponseResult videoCallback(@RequestBody VideoCallBackDTO videoCallBackDTO) {
|
||||||
log.info("腾讯音视频上传完成回调,request{}", JSONObject.toJSONString(requestBody));
|
log.info("腾讯音视频上传完成回调,request{}", JSONObject.toJSONString(videoCallBackDTO));
|
||||||
//由于腾讯云恶事做尽,它的回调参数不是驼峰法,首字母是大写,导致 SpringMVC 映射不上,只能手动映射了
|
|
||||||
TRTCVideoCallBackReq req = JSONObject.parseObject(requestBody, TRTCVideoCallBackReq.class);
|
|
||||||
//不是音视频上传的回调
|
//不是音视频上传的回调
|
||||||
if (!"311".equals(req.getEventType())) {
|
if (311!= videoCallBackDTO.getEventType()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!"0".equals(req.getEventInfo().getPayLoad().getStatus())) {
|
if (0 !=videoCallBackDTO.getEventInfo().getPayload().getStatus()) {
|
||||||
log.error("腾讯音视频录制视频上传错误:request:\t{}", req);
|
log.error("腾讯音视频录制视频上传错误:request:\t{}", videoCallBackDTO);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
videoService.handleVideoCallBack(req);
|
videoService.handleVideoCallBack(videoCallBackDTO);
|
||||||
return new ResponseResult(0, "腾讯云回调音视频回调数据接收成功");
|
return new ResponseResult(0, "腾讯云回调音视频回调数据接收成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user