shangke 2 年 前
コミット
4d7fbc61db

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveRoomBlack.java

@@ -35,6 +35,14 @@ public class ImLiveRoomBlack implements Serializable {
     @ApiModelProperty(value = "-1公共黑名单 0指定直播间黑名单")
     private Integer type;
 
+    @TableField("fingerprint_")
+    @ApiModelProperty("游客凭据")
+    private String fingerprint;
+
+    @TableField("visitor_name_")
+    @ApiModelProperty("游客名称")
+    private String visitorName;
+
     @TableField("create_by_")
     @ApiModelProperty(value = "创建人")
     private Integer createBy;
@@ -93,6 +101,20 @@ public class ImLiveRoomBlack implements Serializable {
         this.createTime = createTime;
     }
 
+    public String getFingerprint() {
+        return fingerprint;
+    }
+
+    public void setFingerprint(String fingerprint) {
+        this.fingerprint = fingerprint;
+    }
+
+    public String getVisitorName() {
+        return visitorName;
+    }
 
+    public void setVisitorName(String visitorName) {
+        this.visitorName = visitorName;
+    }
 }
 

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.microsvc.toolkit.middleware.live.message.TencentWrapper;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
@@ -101,6 +102,14 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      */
     RoomUserInfoVo getVisitorCredentials(String roomUid, String fingerprint);
 
+    /**
+     * 直播间访问用户信息
+     * @param userId 用户编号
+     * @param roomUid 直播间编号
+     * @return SysUser
+     */
+    SysUser getRoomSysUser(Integer userId, String roomUid);
+
     void startLive(String roomUid, Integer userId,String videoResolution);
 
     void startLive(String roomUid, Integer userId, String videoResolution, String sequence);

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -1755,7 +1755,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      * @param roomUid 直播间编号
      * @return SysUser
      */
-    private SysUser getRoomSysUser(Integer userId, String roomUid) {
+    @Override
+    public SysUser getRoomSysUser(Integer userId, String roomUid) {
 
         SysUser sysUser = null;
         // 直播间游客或学生用户匹配

+ 19 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomBlackServiceImpl.java

@@ -11,9 +11,11 @@ import com.microsvc.toolkit.middleware.live.message.LiveRoomMessage;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImLiveRoomBlackDao;
+import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
 import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import com.ym.mec.biz.dal.vo.ImLiveRoomBlackVo;
+import com.ym.mec.biz.service.ImLiveBroadcastRoomMemberService;
 import com.ym.mec.biz.service.ImLiveBroadcastRoomService;
 import com.ym.mec.biz.service.ImLiveRoomBlackService;
 import com.ym.mec.common.entity.ImRoomMessage;
@@ -47,6 +49,8 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
     private LivePluginContext livePluginContext;
     @Autowired
     private ImLiveBroadcastRoomService imLiveBroadcastRoomService;
+    @Autowired
+    private ImLiveBroadcastRoomMemberService imLiveBroadcastRoomMemberService;
 
     /**
      * 查询当前机构学生 -下拉框
@@ -94,6 +98,18 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
             imLiveRoomBlack.setType(0);
             imLiveRoomBlack.setCreateBy(getSysUser().getId());
             imLiveRoomBlack.setCreateTime(new Date());
+
+            // 直播间访问游客信息
+            ImLiveBroadcastRoomMember roomMember = imLiveBroadcastRoomMemberService.lambdaQuery()
+                    .eq(ImLiveBroadcastRoomMember::getRoomUid, roomUid)
+                    .eq(ImLiveBroadcastRoomMember::getUserId, userId)
+                    .last("LIMIT 1")
+                    .one();
+            if (Objects.nonNull(roomMember)) {
+                imLiveRoomBlack.setFingerprint(roomMember.getFingerprint());
+                imLiveRoomBlack.setVisitorName(roomMember.getVisitorName());
+            }
+
             this.save(imLiveRoomBlack);
             ImLiveBroadcastRoomVo roomVo = imLiveBroadcastRoomService.queryRoomInfo(roomUid);
             if (roomVo == null) {
@@ -103,7 +119,7 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
                 log.info("直播房间未开播,不需要发送消息");
                 return;
             }
-            setBlack( userId, roomVo);
+            setBlack(userId, roomVo);
         });
     }
 
@@ -115,7 +131,7 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
         LivePluginService pluginService = livePluginContext.getPluginService(roomVo.getServiceProvider());
         try {
 
-            SysUser sysUser = sysUserFeignService.queryUserById(userId);
+            SysUser sysUser = imLiveBroadcastRoomService.getRoomSysUser(userId, roomVo.getRoomUid());
             if (sysUser == null) {
                 log.error("用户不存在");
                 return;
@@ -192,6 +208,7 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
         message.setIsIncludeSender(1);
         message.setObjectName(type);
         message.setToChatRoomId(roomUid);
+
         HashMap<String, Integer> sendMap = new HashMap<>();
         sendMap.put("userId", userId);
         message.setFromUserId(fromUserId.toString());

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/ImLiveRoomBlackMapper.xml

@@ -49,8 +49,8 @@
 
     <select id="queryBlackList"  parameterType="map" resultType="com.ym.mec.biz.dal.vo.ImLiveRoomBlackVo">
         select a.user_id_,
-               b.username_,
-               b.real_name_,
+               IFNULL(b.username_, a.visitor_name_) AS username,
+               IFNULL(b.real_name_, a.visitor_name_) AS realName,
                b.phone_,
                a.create_time_
         from im_live_room_black as a
@@ -60,6 +60,7 @@
         <if test="param.search != null ">
             and (
             a.`user_id_` LIKE CONCAT('%', #{param.search},'%')
+            OR a.`visitor_name_` LIKE CONCAT('%', #{param.search},'%')
             OR b.`username_` LIKE CONCAT('%', #{param.search},'%')
             OR b.`phone_` LIKE CONCAT('%', #{param.search},'%')
             )