| 
														
															@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
														 | 
														
														 | 
														
															 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.fasterxml.jackson.annotation.JsonFormat; 
														 | 
														
														 | 
														
															 import com.fasterxml.jackson.annotation.JsonFormat; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.google.common.collect.Lists; 
														 | 
														
														 | 
														
															 import com.google.common.collect.Lists; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.microsvc.toolkit.common.json.ali.AliJSONMap; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.microsvc.toolkit.middleware.live.LivePluginContext; 
														 | 
														
														 | 
														
															 import com.microsvc.toolkit.middleware.live.LivePluginContext; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.microsvc.toolkit.middleware.live.LivePluginService; 
														 | 
														
														 | 
														
															 import com.microsvc.toolkit.middleware.live.LivePluginService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.microsvc.toolkit.middleware.live.impl.RongCloudLivePlugin; 
														 | 
														
														 | 
														
															 import com.microsvc.toolkit.middleware.live.impl.RongCloudLivePlugin; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -56,7 +57,10 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.util.collection.MapUtil; 
														 | 
														
														 | 
														
															 import com.ym.mec.util.collection.MapUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.util.date.DateUtil; 
														 | 
														
														 | 
														
															 import com.ym.mec.util.date.DateUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.ym.mec.util.excel.POIUtil; 
														 | 
														
														 | 
														
															 import com.ym.mec.util.excel.POIUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.ym.mec.util.http.HttpUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.apache.commons.collections.CollectionUtils; 
														 | 
														
														 | 
														
															 import org.apache.commons.collections.CollectionUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.apache.commons.collections.MapUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.apache.commons.lang3.RandomStringUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.apache.commons.lang3.StringUtils; 
														 | 
														
														 | 
														
															 import org.apache.commons.lang3.StringUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
														 | 
														
														 | 
														
															 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.jetbrains.annotations.NotNull; 
														 | 
														
														 | 
														
															 import org.jetbrains.annotations.NotNull; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1656,6 +1660,53 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 游客微信身份 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @param code 授权码 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @return 用户openId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public String visitorFingerprint(String code) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 微信公众号appId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        String appId = sysConfigDao.findConfigValue(SysConfigService.WECHAT_APPID); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 微信公众号secret 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        String secret = sysConfigDao.findConfigValue(SysConfigService.WECHAT_SECRET); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (StringUtils.isAnyBlank(appId, secret, code)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 若微信未配置,产生64位随机数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return RandomStringUtils.random(64); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 获取用户OpenId接口 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 封装请求参数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            url = MessageFormat.format(url, appId, secret, code); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            String wxMpOAuth2AccessTokenUrl = HttpUtil.get(url, null); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            log.info("请求微信授权接口的参数:{}", wxMpOAuth2AccessTokenUrl); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (StringUtils.isEmpty(wxMpOAuth2AccessTokenUrl)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new BizException("授权失败,请重新授权"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Map<String, Object> weChatRes = AliJSONMap.tomap(wxMpOAuth2AccessTokenUrl); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (!weChatRes.containsKey("openid")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                log.error("获取微信openId失败:[{}]", JSON.toJSONString(weChatRes)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new BizException("授权失败,请重新授权"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return MapUtils.getString(weChatRes, "openid", ""); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            log.error("获取微信openId失败:[{}]", e.getMessage(), e); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            throw new BizException("授权失败,请重新授权"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 获取直播间游客信息 
														 | 
														
														 | 
														
															      * 获取直播间游客信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param userId 游客编号 
														 | 
														
														 | 
														
															      * @param userId 游客编号 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param imLiveBroadcastRoomVo ImLiveBroadcastRoomVo 
														 | 
														
														 | 
														
															      * @param imLiveBroadcastRoomVo ImLiveBroadcastRoomVo 
														 |