From 57baf86fbf075dcdc34053d5ff15330d387704f6 Mon Sep 17 00:00:00 2001 From: easonzhu Date: Sun, 27 Apr 2025 10:29:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=8F=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/syzb/advisor/entity/AdvisorBasic.java | 16 +++++++++++++++- .../syzb/advisor/service/AdvisorInfoService.java | 13 +++++++++---- .../java/com/syzb/advisor/vo/AdvisorBasicVO.java | 14 ++++++++++++++ .../java/com/syzb/rbac/service/UserService.java | 6 ++++++ .../admin/AdminVideoStatisticService.java | 2 +- .../video/service/app/AppVideoInfoService.java | 2 +- .../video/service/common/VideoCloudService.java | 9 ++++----- .../service/common/VideoExternalService.java | 3 ++- .../service/common/VideoMessageService.java | 2 +- .../com/syzb/video/vo/info/VideoDetailAppVO.java | 10 +++++----- 10 files changed, 58 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/syzb/advisor/entity/AdvisorBasic.java b/src/main/java/com/syzb/advisor/entity/AdvisorBasic.java index 720596d..ea23e4f 100644 --- a/src/main/java/com/syzb/advisor/entity/AdvisorBasic.java +++ b/src/main/java/com/syzb/advisor/entity/AdvisorBasic.java @@ -1,11 +1,14 @@ package com.syzb.advisor.entity; +import com.syzb.rbac.entity.UserLogin; + import java.io.Serializable; public class AdvisorBasic implements Serializable { private static final long serialVersionUID = 1L; public Integer id; public Integer userId; + public String workNo; public String name; public String showName; public String avatar; @@ -20,9 +23,12 @@ public class AdvisorBasic implements Serializable { public AdvisorBasic() { } - public AdvisorBasic(AdvisorInfo advisorInfo, String deptName) { + public AdvisorBasic(AdvisorInfo advisorInfo, String deptName, UserLogin user) { this.id = advisorInfo.getId(); this.userId = advisorInfo.getUserId(); + if (user != null) { + this.workNo = user.getUpId(); + } this.name = advisorInfo.getName(); this.showName = advisorInfo.getShowName(); this.avatar = advisorInfo.getAvatar(); @@ -43,6 +49,14 @@ public class AdvisorBasic implements Serializable { this.userId = userId; } + public String getWorkNo() { + return workNo; + } + + public void setWorkNo(String workNo) { + this.workNo = workNo; + } + public String getProfile() { return profile; } diff --git a/src/main/java/com/syzb/advisor/service/AdvisorInfoService.java b/src/main/java/com/syzb/advisor/service/AdvisorInfoService.java index 1980883..c687bc9 100644 --- a/src/main/java/com/syzb/advisor/service/AdvisorInfoService.java +++ b/src/main/java/com/syzb/advisor/service/AdvisorInfoService.java @@ -107,34 +107,39 @@ public class AdvisorInfoService { ); public Map getAdvisorMap() { + Map userIdLoginMap = userService.getUserUserIdLoginMap(); return cacheService.get(ADVISOR_INFO, AdvisorInfoKey.ADVISOR_MAP, () -> { List advisorList = advisorInfoMapper.selectList(Wrappers.emptyWrapper()); return advisorList.stream().collect(Collectors.toMap(AdvisorInfo::getId, advisor -> - new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId())))); + new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()), userIdLoginMap.get(advisor.getUserId())))); }); } public Map getAdvisorVoMap() { + Map userIdLoginMap = userService.getUserUserIdLoginMap(); return cacheService.get(ADVISOR_INFO, AdvisorInfoKey.ADVISOR_VO_MAP, () -> { List advisorList = advisorInfoMapper.selectList(Wrappers.emptyWrapper()); return advisorList.stream().collect(Collectors.toMap(AdvisorInfo::getId, advisor -> - new AdvisorBasicVO(new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()))))); + new AdvisorBasicVO(new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()), userIdLoginMap.get(advisor.getUserId()))))); }); } public Map getUserIdAdvisorMap() { + Map userIdLoginMap = userService.getUserUserIdLoginMap(); return cacheService.get(ADVISOR_INFO, AdvisorInfoKey.USER_ADVISOR_MAP, () -> { List advisorList = advisorInfoMapper.selectList(Wrappers.emptyWrapper()); return advisorList.stream().filter(advisor -> advisor.getUserId() != null).collect(Collectors.toMap(AdvisorInfo::getUserId, advisor -> - new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId())))); + new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()), userIdLoginMap.get(advisor.getUserId())))); }); } public Map> getDeptIdAdvisorMap() { + Map userIdLoginMap = userService.getUserUserIdLoginMap(); return cacheService.get(ADVISOR_INFO, AdvisorInfoKey.USER_ADVISOR_DEPT_MAP, () -> { List advisorList = advisorInfoMapper.selectList(Wrappers.emptyWrapper()); return advisorList.stream().filter(advisor -> StrUtil.isNotBlank(advisor.getDeptId())).map(advisor -> - new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()))).collect(Collectors.groupingBy(AdvisorBasic::getDeptId)); + new AdvisorBasic(advisor, deptService.getDeptNameByAdvisorId(advisor.getId()), userIdLoginMap.get(advisor.getUserId()))) + .collect(Collectors.groupingBy(AdvisorBasic::getDeptId)); }); } diff --git a/src/main/java/com/syzb/advisor/vo/AdvisorBasicVO.java b/src/main/java/com/syzb/advisor/vo/AdvisorBasicVO.java index 0f0da6c..9222109 100644 --- a/src/main/java/com/syzb/advisor/vo/AdvisorBasicVO.java +++ b/src/main/java/com/syzb/advisor/vo/AdvisorBasicVO.java @@ -16,6 +16,9 @@ public class AdvisorBasicVO implements Serializable { @ApiModelProperty("用户工号") private String staffNo; + @ApiModelProperty("工号") + private String workNo; + @ApiModelProperty("投顾名称") private String name; @@ -41,6 +44,7 @@ public class AdvisorBasicVO implements Serializable { this.id = advisorBasic.id; this.userId = advisorBasic.userId; this.staffNo = advisorBasic.staffNo; + this.workNo = advisorBasic.workNo; this.name = advisorBasic.name; this.showName = advisorBasic.showName; this.avatar = advisorBasic.avatar; @@ -73,6 +77,15 @@ public class AdvisorBasicVO implements Serializable { this.staffNo = staffNo; } + + public String getWorkNo() { + return workNo; + } + + public void setWorkNo(String workNo) { + this.workNo = workNo; + } + public String getName() { return name; } @@ -120,4 +133,5 @@ public class AdvisorBasicVO implements Serializable { public void setProfile(String profile) { this.profile = profile; } + } diff --git a/src/main/java/com/syzb/rbac/service/UserService.java b/src/main/java/com/syzb/rbac/service/UserService.java index 948431f..b1d01d3 100644 --- a/src/main/java/com/syzb/rbac/service/UserService.java +++ b/src/main/java/com/syzb/rbac/service/UserService.java @@ -104,6 +104,12 @@ public class UserService { }); } + public Map getUserUserIdLoginMap() { + Map userLoginMap = getUserLoginMap(); + Map userDeptMap = getUserMap(); + return userDeptMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> userLoginMap.get(entry.getValue().getUserId()))); + } + public Map> getDeptUserMap() { return cacheService.get(USER, UserKey.USER_DEPT_MAP, () -> { List userList = userDeptMapper.selectList(Wrappers.emptyWrapper()); diff --git a/src/main/java/com/syzb/video/service/admin/AdminVideoStatisticService.java b/src/main/java/com/syzb/video/service/admin/AdminVideoStatisticService.java index 72fd4a4..f32ec4b 100644 --- a/src/main/java/com/syzb/video/service/admin/AdminVideoStatisticService.java +++ b/src/main/java/com/syzb/video/service/admin/AdminVideoStatisticService.java @@ -860,7 +860,7 @@ public class AdminVideoStatisticService { // 填充实时在线人数 // 直播在线人数峰值 vo.setOnlineMostNum(adminVideoInteractionService.getOnlineMax(videoId)); - vo.setOnlineNum(!VideoLiveStatus.HAS_ENDED.value.equals(liveStatus) ? onlineUserService.getOnlineCount(ProductType.VIDEO_SINGLE.value, videoId) : 0); + vo.setOnlineNum(!VideoLiveStatus.HAS_ENDED.value.equals(liveStatus) ? onlineUserService.getOnlineCountWithoutCache(ProductType.VIDEO_SINGLE.value, videoId) : 0); // 直播观看 if (realStartTime == null && Objects.equals(video.getPlayType(), VideoPlayType.LIVE.value)) { vo.setReadNum(0); diff --git a/src/main/java/com/syzb/video/service/app/AppVideoInfoService.java b/src/main/java/com/syzb/video/service/app/AppVideoInfoService.java index e77c7c4..91623a6 100644 --- a/src/main/java/com/syzb/video/service/app/AppVideoInfoService.java +++ b/src/main/java/com/syzb/video/service/app/AppVideoInfoService.java @@ -171,7 +171,7 @@ public class AppVideoInfoService { if (userDept != null && userDept.getLoginId() != null) { UserLogin userLogin = userService.getUserLoginMap().get(userDept.getLoginId()); if (userLogin != null) { - vo.setSaleUserStaffNo(userLogin.getStaffNo()); + vo.setSaleUserWorkNo(userLogin.getUpId()); } } } diff --git a/src/main/java/com/syzb/video/service/common/VideoCloudService.java b/src/main/java/com/syzb/video/service/common/VideoCloudService.java index a694686..dd11718 100644 --- a/src/main/java/com/syzb/video/service/common/VideoCloudService.java +++ b/src/main/java/com/syzb/video/service/common/VideoCloudService.java @@ -471,16 +471,15 @@ public class VideoCloudService { * * @see [https://console.cloud.tencent.com/api/explorer?Product=live&Version=2018-08-01&Action=CreateRecordTask] */ - public String createRecordTask(String streamId) { + public String createRecordTask(String streamId, LocalDateTime endTime) { try { // 开启任务流录制 - LocalDateTime end = LocalDateTime.now().toLocalDate().plusDays(1).atStartOfDay(); - Instant instant = end.atZone(ZoneId.systemDefault()).toInstant(); + Instant instant = endTime.atZone(ZoneId.systemDefault()).toInstant(); // 将Instant转换为毫秒级时间戳 long timestamp = instant.toEpochMilli(); - long endTime = BigDecimal.valueOf(timestamp).divide(BigDecimal.valueOf(1000), 0, RoundingMode.HALF_UP).longValue(); + long endTimestamp = BigDecimal.valueOf(timestamp).divide(BigDecimal.valueOf(1000), 0, RoundingMode.HALF_UP).longValue(); CreateRecordTaskRequest request = new CreateRecordTaskRequest(); - request.setEndTime(endTime); + request.setEndTime(endTimestamp); request.setStreamName(streamId); request.setDomainName(config.getPushHost()); request.setAppName(config.getAppName()); diff --git a/src/main/java/com/syzb/video/service/common/VideoExternalService.java b/src/main/java/com/syzb/video/service/common/VideoExternalService.java index 2366b1a..d645fa5 100644 --- a/src/main/java/com/syzb/video/service/common/VideoExternalService.java +++ b/src/main/java/com/syzb/video/service/common/VideoExternalService.java @@ -125,7 +125,8 @@ public class VideoExternalService { // 记录直播前观看人次 Integer preNum = adminVideoInteractionService.queryInteractionCount(id, VideoUserRecordType.READ, null, null, false); live.setPreNum(preNum == null ? 0 : preNum); - String taskId = videoCloudService.createRecordTask(streamId); + LocalDateTime endTime = video.getEndTime().toLocalDate().plusDays(1).atStartOfDay(); + String taskId = videoCloudService.createRecordTask(streamId, endTime); live.setTaskId(taskId); } live.setLiveStatus(liveStatus); diff --git a/src/main/java/com/syzb/video/service/common/VideoMessageService.java b/src/main/java/com/syzb/video/service/common/VideoMessageService.java index d1f5a3b..2af6dfa 100644 --- a/src/main/java/com/syzb/video/service/common/VideoMessageService.java +++ b/src/main/java/com/syzb/video/service/common/VideoMessageService.java @@ -339,7 +339,7 @@ public class VideoMessageService { VideoCustomerVO videoCustomerVO = new VideoCustomerVO(null, 0, 0); if (totalCount != 0) { //获取在线人数 - int onlineCount = onlineUserService.getOnlineCount(ProductType.VIDEO_SINGLE.value, videoId); + int onlineCount = onlineUserService.getOnlineCountWithoutCache(ProductType.VIDEO_SINGLE.value, videoId); LoggerUtil.info("直播间id=" + videoId + "在线人数:" + onlineCount); videoCustomerVO = new VideoCustomerVO(totalOnlineList, onlineCount, totalCount); } diff --git a/src/main/java/com/syzb/video/vo/info/VideoDetailAppVO.java b/src/main/java/com/syzb/video/vo/info/VideoDetailAppVO.java index 4f187d1..31adbee 100644 --- a/src/main/java/com/syzb/video/vo/info/VideoDetailAppVO.java +++ b/src/main/java/com/syzb/video/vo/info/VideoDetailAppVO.java @@ -184,7 +184,7 @@ public class VideoDetailAppVO implements IVideoInfoAppVO, Serializable { private Integer showNickname; @ApiModelProperty("营销经理工号") - private String saleUserStaffNo; + private String saleUserWorkNo; public VideoDetailAppVO() { } @@ -655,11 +655,11 @@ public class VideoDetailAppVO implements IVideoInfoAppVO, Serializable { this.showNickname = showNickname; } - public String getSaleUserStaffNo() { - return saleUserStaffNo; + public String getSaleUserWorkNo() { + return saleUserWorkNo; } - public void setSaleUserStaffNo(String saleUserStaffNo) { - this.saleUserStaffNo = saleUserStaffNo; + public void setSaleUserWorkNo(String saleUserWorkNo) { + this.saleUserWorkNo = saleUserWorkNo; } }