Browse Source

购物车商品消息

liujunchi 2 years ago
parent
commit
fb27a04164

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

@@ -337,6 +337,15 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         this.save(obj);
         //推送老师端-直播已经创建
         sendRoomLiveState(sysUser, obj, MessageTypeEnum.JIGUANG_LIVE_CREATED);
+
+
+        CompletableFuture.runAsync(() -> {
+
+            Date endTime = DateUtil.addMinutes(now, PRE_LIVE_TIME_MINUTE);
+            if (endTime.getTime() >= dto.getLiveStartTime().getTime()) {
+                this.createLiveRoom(obj);
+            }
+        });
     }
 
     /**
@@ -1448,8 +1457,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      * 提前30分钟主动去融云注册并创建房间
      */
     public void createLiveRoom() {
+        log.info("createLiveRoom>>>>");
         RBucket<Object> createLock = redissonClient.getBucket("IM:LIVE_ROOM_CREATE_LOCK");
         if (!createLock.trySet(1, 1, TimeUnit.MINUTES)) {
+            log.info("createLiveRoom>>>>>createLock is exists");
             return;
         }
         Date now = new Date();
@@ -1553,8 +1564,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      */
     private void sendRoomLiveState(SysUser user, ImLiveBroadcastRoom room, MessageTypeEnum en) {
         String baseUrl;
-        if (room.getClientType().equals(SysUserType.EDUCATION)) {
+        if (SysUserType.EDUCATION.equals(room.getClientType())) {
             baseUrl=sysConfigDao.findConfigValue(SysConfigService.EDU_TEACHER_BASE_URL);
+            return;
         } else {
             baseUrl=sysConfigDao.findConfigValue(SysConfigService.TEACHER_BASE_URL);
         }

+ 40 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java

@@ -1,8 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.microsvc.toolkit.middleware.live.LivePluginContext;
 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.LiveGoodsMapperDao;
 import com.ym.mec.biz.dal.dto.LiveGoodsMapperDto;
 import com.ym.mec.biz.dal.dto.RedisKeyConstant;
@@ -18,6 +21,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.*;
 
 @Service
+@Slf4j
 public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoodsMapper>  implements LiveGoodsMapperService {
 	
 	@Autowired
@@ -40,6 +45,8 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 	@Autowired
 	private RedissonClient redissonClient;
 
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public BaseDAO<Integer, LiveGoodsMapper> getDAO() {
@@ -104,17 +111,41 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 	}
 
 	private void publishRoomMsg(ImLiveBroadcastRoom imLiveBroadcastRoom) {
-		LiveRoomMessage message = new LiveRoomMessage();
-		message.setIsIncludeSender(1);
-		message.setObjectName(ImRoomMessage.LIVE_GOODS_CHANGE);
-		message.setToChatRoomId(imLiveBroadcastRoom.getRoomUid());
-		message.setFromUserId(imLiveBroadcastRoom.getSpeakerId().toString());
-		message.setContent(liveGoodsMapperDao.getLiveGoodsList(imLiveBroadcastRoom.getRoomUid(),null,true));
+
+
+		// 消息发送用户
+		LiveRoomMessage.MessageUser messageUser = null;
+		SysUser sysUser = sysUserFeignService.queryUserById(imLiveBroadcastRoom.getSpeakerId());
+		if (Objects.nonNull(sysUser)) {
+			// 发送用户信息
+			messageUser = LiveRoomMessage.MessageUser
+				.builder()
+				.sendUserId(sysUser.getId().toString())
+				.sendUserName(sysUser.getUsername())
+				.avatarUrl(sysUser.getAvatar())
+				.build();
+		}
+
+		LiveRoomMessage.MessageContent messageContent = LiveRoomMessage.MessageContent
+			.builder()
+			.sendUserInfo(messageUser)
+			.build();
+
+		LiveRoomMessage message = LiveRoomMessage.builder()
+												 .isIncludeSender(1)
+												 .objectName(LiveRoomMessage.LIVE_GOODS_CHANGE)
+												 .fromUserId(sysUser.getId().toString())
+												 .toChatRoomId(imLiveBroadcastRoom.getRoomUid())
+												 .content(liveGoodsMapperDao.getLiveGoodsList(imLiveBroadcastRoom.getRoomUid(),null,true))
+												 .build();
+
+		//发送消息
 		try {
-			livePluginContext.getPluginService(imLiveBroadcastRoom.getServiceProvider())
-					.sendChatRoomMessage(message);
+			livePluginContext.getPluginService(imLiveBroadcastRoom.getServiceProvider()).sendChatRoomMessage(message);
+			log.info("LIVE_GOODS_CHANGE>>>> message: {}", JSONObject.toJSONString(message));
 		} catch (Exception e) {
-			throw new RuntimeException(e);
+			log.error("LIVE_GOODS_CHANGE>>>> error {}", e.getMessage());
+			log.error("LIVE_GOODS_CHANGE>>>> sendMessage {} :", JSONObject.toJSONString(message));
 		}
 	}
 

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -112,7 +112,7 @@ public class ImLiveBroadcastRoomController extends BaseController {
     public HttpResponseResult<Object> add(@Valid @RequestBody ImLiveBroadcastRoomDto dto) {
         imLiveBroadcastRoomService.add(dto);
         //看是否需要马上创建房间
-        CompletableFuture.runAsync(imLiveBroadcastRoomService::createLiveRoom);
+        // CompletableFuture.runAsync(imLiveBroadcastRoomService::createLiveRoom);
         return succeed();
     }