From 0d8e9b99dc389afcd18fbe0d58bf7056014a3cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Thu, 29 Jun 2023 02:00:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=85=BE=E8=AE=AF=E9=9F=B3=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- coolstore-partner-common/pom.xml | 6 + .../java/com/cool/store/utils/StringUtil.java | 8 +- .../HyPartnerCertificationInfoMapper.java | 2 + .../mapper/HyPartnerTaskInfoLogMapper.java | 2 +- .../HyPartnerCertificationInfoMapper.xml | 6 + .../store/dto/trtc/callback/EventInfo.java | 62 +++++++++ .../cool/store/dto/trtc/callback/Payload.java | 32 +++++ .../store/dto/trtc/callback/TencentVod.java | 92 +++++++++++++ .../dto/trtc/callback/VideoCallBackDTO.java | 52 +++++++ ...teTimeInfoReq.java => GetTipsInfoReq.java} | 2 +- .../com/cool/store/service/CommonService.java | 13 ++ .../cool/store/service/InterviewService.java | 1 - .../cool/store/service/TRTCVideoService.java | 5 +- .../store/service/impl/CommonServiceImpl.java | 129 ++++++++++++++++++ .../store/service/impl/FlowServiceImpl.java | 7 +- .../service/impl/InterviewServiceImpl.java | 39 ------ .../service/impl/TRTCVideoServiceImpl.java | 16 ++- .../store/config/TokenValidateFilter.java | 1 + .../store/controller/CommonController.java | 34 +++++ .../store/controller/InterviewController.java | 6 - .../store/controller/VideoController.java | 33 +++-- 21 files changed, 484 insertions(+), 64 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 rename coolstore-partner-model/src/main/java/com/cool/store/request/{GetLastUpdateTimeInfoReq.java => GetTipsInfoReq.java} (88%) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/CommonService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonServiceImpl.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/CommonController.java diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml index 204706c33..988014f8a 100644 --- a/coolstore-partner-common/pom.xml +++ b/coolstore-partner-common/pom.xml @@ -103,6 +103,12 @@ org.icepdf.os icepdf-core 6.1.2 + + + javax.media + jai-core + + diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/StringUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/StringUtil.java index 38db9e802..155aa40c2 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/StringUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/StringUtil.java @@ -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', diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java index d0d5cb52a..a4d84bddf 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java @@ -37,4 +37,6 @@ public interface HyPartnerCertificationInfoMapper { */ String getInterviewPlanIdByQualifyVerifyId(String qualifyVerifyId); + HyPartnerCertificationInfoDO selectByPartnerLineId(@Param("partnerLineId") Long partnerLineId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerTaskInfoLogMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerTaskInfoLogMapper.java index ffa413bdb..52e5825b3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerTaskInfoLogMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerTaskInfoLogMapper.java @@ -25,5 +25,5 @@ public interface HyPartnerTaskInfoLogMapper { */ int updateByPrimaryKeySelective(@Param("record") HyPartnerTaskInfoLogDO record); - List selectByPartnerLineIdAndOperateType(@Param("partnerLineId") String partnerLineId, @Param("operateType") String operateType); + List selectByPartnerLineIdAndOperateType(@Param("partnerLineId") Long partnerLineId, @Param("operateType") String operateType); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml index 956201b9f..23c2130af 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml @@ -137,4 +137,10 @@ ) and deleted = 0 + \ No newline at end of file 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..808eab265 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/EventInfo.java @@ -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; + } +} 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..0906a7d48 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/Payload.java @@ -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; + } +} 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..a297bc102 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java @@ -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; + } +} 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..104f93004 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/VideoCallBackDTO.java @@ -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; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetTipsInfoReq.java similarity index 88% rename from coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java rename to coolstore-partner-model/src/main/java/com/cool/store/request/GetTipsInfoReq.java index 3b83b3b8a..9ccc69a68 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetTipsInfoReq.java @@ -9,7 +9,7 @@ import lombok.Data; */ @Data @ApiModel -public class GetLastUpdateTimeInfoReq { +public class GetTipsInfoReq { @ApiModelProperty("线索id") private String partnerLineId; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/CommonService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/CommonService.java new file mode 100644 index 000000000..65649523b --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/CommonService.java @@ -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; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java index 13613277b..4678533e5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java @@ -69,5 +69,4 @@ public interface InterviewService { public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile); - String getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException; } 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 index 1a0f61912..7cbfa9b15 100644 --- 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 @@ -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); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonServiceImpl.java new file mode 100644 index 000000000..9851eb0f8 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonServiceImpl.java @@ -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 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 hyPartnerTaskInfoLogDOS = hyPartnerTaskInfoLogMapper.selectByPartnerLineIdAndOperateType(partnerLineId, operateTypeEnum.getCode()); + if (CollectionUtils.isEmpty(hyPartnerTaskInfoLogDOS)) { + return null; + } + HyPartnerTaskInfoLogDO hyPartnerTaskInfoLogDO = hyPartnerTaskInfoLogDOS.get(0); + String fieldCopy = hyPartnerTaskInfoLogDO.getFieldCopy(); + List logFieldDTOS = JSONObject.parseArray(fieldCopy, LogFieldDTO.class); + List params = new ArrayList<>(); + for (String replaceKey : replaceKeys) { + String value = ""; + Optional 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()); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index e096bcd97..afa96b5a6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -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); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java index 430fb69d6..b5e37ecfc 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -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 getInterviewList(GetInterviewListReq request) { List 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 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 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(); - } - } 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 index 9855ae7d2..b88a439e7 100644 --- 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 @@ -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); } - } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java index 8773f8965..93150f7fa 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -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回调地址暂时不做验证 diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/CommonController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/CommonController.java new file mode 100644 index 000000000..d8ea2a989 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/CommonController.java @@ -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); + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java index b61005261..b89b78d3f 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java @@ -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); - } } 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 index f5f83e46a..53ae75e97 100644 --- 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 @@ -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, "腾讯云回调音视频回调数据接收成功"); }