|
@@ -2,6 +2,7 @@ package com.yonge.cooleshow.admin.controller.open;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.microsvc.toolkit.middleware.im.properties.ImConfigProperties;
|
|
|
import com.microsvc.toolkit.middleware.live.LivePluginContext;
|
|
|
import com.microsvc.toolkit.middleware.live.LivePluginService;
|
|
|
import com.microsvc.toolkit.middleware.live.impl.TencentCloudLivePlugin;
|
|
@@ -69,6 +70,10 @@ public class ImController extends BaseController {
|
|
|
@Autowired
|
|
|
private ImGroupService imGroupService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ImConfigProperties imConfig;
|
|
|
+
|
|
|
+
|
|
|
@ApiOperation("新用户添加客服")
|
|
|
@PostMapping(value = "/im/customerService")
|
|
|
public HttpResponseResult<Boolean> customerService(@RequestBody UserFriendInfoVO info) {
|
|
@@ -156,6 +161,9 @@ public class ImController extends BaseController {
|
|
|
callbackOnMemberStateChange.setClientIP(clientIP);
|
|
|
callbackOnMemberStateChange.setOptPlatform(optPlatform);
|
|
|
for (TencentData.MemberListDTO memberListDTO : callbackOnMemberStateChange.getMemberList()) {
|
|
|
+ if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
|
|
|
+ return new TencentImCallbackResult();
|
|
|
+ }
|
|
|
memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));
|
|
|
}
|
|
|
// 直播间成员状态变更
|
|
@@ -169,6 +177,9 @@ public class ImController extends BaseController {
|
|
|
callbackAfterMemberExit.setClientIP(clientIP);
|
|
|
callbackAfterMemberExit.setOptPlatform(optPlatform);
|
|
|
for (TencentData.MemberListDTO memberListDTO : callbackAfterMemberExit.getExitMemberList()) {
|
|
|
+ if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
|
|
|
+ return new TencentImCallbackResult();
|
|
|
+ }
|
|
|
memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));
|
|
|
}
|
|
|
// 直播间成员状态变更
|
|
@@ -182,6 +193,9 @@ public class ImController extends BaseController {
|
|
|
callbackAfterNewMemberJoin.setClientIP(clientIP);
|
|
|
callbackAfterNewMemberJoin.setOptPlatform(optPlatform);
|
|
|
for (TencentData.MemberListDTO memberListDTO : callbackAfterNewMemberJoin.getNewMemberList()) {
|
|
|
+ if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
|
|
|
+ return new TencentImCallbackResult();
|
|
|
+ }
|
|
|
memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));
|
|
|
}
|
|
|
// 直播间成员状态变更
|
|
@@ -201,6 +215,10 @@ public class ImController extends BaseController {
|
|
|
|
|
|
TencentData.CallbackStreamStateEvent event = TencentData.CallbackStreamStateEvent.from(body);
|
|
|
|
|
|
+ boolean b = checkStream(event.getStreamId());
|
|
|
+ if (!b) {
|
|
|
+ return TencentData.StreamEventCallbackResult.builder().code(0).build();
|
|
|
+ }
|
|
|
|
|
|
ImUserStateSync imUserState = new ImUserStateSync();
|
|
|
imUserState.setUserid(getSpeakerId(event.getStreamId()).toString());
|
|
@@ -232,6 +250,12 @@ public class ImController extends BaseController {
|
|
|
return TencentData.StreamEventCallbackResult.builder().code(0).build();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private boolean checkStream(String streamId) {
|
|
|
+ return imGroupService.checkImUserId(streamId.split("_",2)[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
private Integer getSpeakerId(String streamId) {
|
|
|
return Integer.parseInt(imGroupService.analysisImUserId(streamId.split("_",2)[1]));
|
|
|
}
|
|
@@ -248,6 +272,12 @@ public class ImController extends BaseController {
|
|
|
|
|
|
TencentData.CallbackSteamRecordEvent event = TencentData.CallbackSteamRecordEvent.from(body);
|
|
|
|
|
|
+
|
|
|
+ boolean b = checkStream(event.getStreamId());
|
|
|
+ if (!b) {
|
|
|
+ return TencentData.StreamEventCallbackResult.builder().code(0).build();
|
|
|
+ }
|
|
|
+
|
|
|
// 直播录制事件通知
|
|
|
if (event.getStreamId().startsWith("LIVE")) {
|
|
|
log.info("taskId={}, url={}", event.getTaskId(), event.getVideoUrl());
|