Browse Source

Merge remote-tracking branch 'origin/feature/0529-live' into feature/0529-live

zouxuan 2 years ago
parent
commit
4d7f2c0bb7

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -4835,7 +4835,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             return livedStudentList;
         }
         // 学生ID集合
-        List<Integer> studentIds = records.stream().map(e->e.getStudentId()).collect(Collectors.toList());
+        List<Integer> studentIds = records.stream().map(LiveGroupWrapper.LiveGroupStudentList::getStudentId).collect(Collectors.toList());
 
         // 学生信息
         Map<Integer, Student> studentMap = studentService.getMapByIds(studentIds);
@@ -4843,7 +4843,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             return livedStudentList;
         }
         // 手机号
-        List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(studentIds.stream().collect(Collectors.toList()));
+        List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(studentIds);
 
         Set<Integer> coopIds = new HashSet<>();
         Set<Integer> organIds;
@@ -4866,7 +4866,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
 
         for (LiveGroupWrapper.LiveGroupStudentList record : records) {
-            Student student = studentMap.get(record.getStudentId().longValue());
+            Student student = studentMap.get(record.getStudentId());
             if (Objects.nonNull(student)) {
                 record.setStudentName(student.getUsername());
                 record.setOrganName(organizationMap.getOrDefault(student.getOrganId(), new Organization()).getName());

+ 11 - 0
mec-im/src/main/java/com/ym/common/BaseResponse.java

@@ -36,12 +36,23 @@ public class BaseResponse<T> {
         setData(data);
     }
 
+    public BaseResponse(Integer err, String errDetail, T data) {
+        setErr(err, errDetail, errDetail);
+        setData(data);
+    }
+
     public void setErr(ErrorEnum error, String errDetail) {
         this.errCode = error.getErrCode();
         this.errMsg = error.getErrMsg();
         this.errDetail = errDetail;
     }
 
+    public void setErr(Integer error, String errMsg, String errDetail) {
+        this.errCode = error;
+        this.errMsg = errMsg;
+        this.errDetail = errDetail;
+    }
+
     class BaseResponseResult<R> {
         private @Setter @Getter R result;
 

+ 2 - 0
mec-im/src/main/java/com/ym/common/ErrorEnum.java

@@ -8,6 +8,8 @@ import lombok.Getter;
 public enum ErrorEnum {
     ERR_SUCCESS(0x0000, "OK"),
     ERR_OTHER(0x00FF, "Error"),
+    ERR_BIZ_EX(500, "业务异常"),
+
     ERR_REQUEST_PARA_ERR(1, "Missing or invalid parameter"),
     ERR_INVALID_AUTH(2, "Invalid or expired authorization"),
     ERR_ACCESS_DENIED(3, "Access denied"),

+ 8 - 0
mec-im/src/main/java/com/ym/filter/GlobalExceptionHandlerAdvice.java

@@ -7,6 +7,7 @@ package com.ym.filter;
 import com.ym.common.ApiException;
 import com.ym.common.BaseResponse;
 import com.ym.common.ErrorEnum;
+import com.ym.mec.common.exception.BizException;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.ConversionNotSupportedException;
 import org.springframework.beans.TypeMismatchException;
@@ -88,6 +89,13 @@ public class GlobalExceptionHandlerAdvice {
         return getResponseData(ex);
     }
 
+    @ResponseStatus(value = HttpStatus.OK)
+    @ExceptionHandler(BizException.class)
+    public BaseResponse<Object> handleBizException(BizException ex) {
+        logException(ex);
+        return new BaseResponse<>(ex.getCode(), ex.getMessage(), "");
+    }
+
     private void logException(Exception ex) {
         log.error("caught exception:", ex);
     }

+ 10 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -53,6 +53,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
+import org.joda.time.format.DateTimeFormat;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -60,6 +61,7 @@ import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.MessageFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
@@ -300,6 +302,7 @@ public class RoomServiceImpl implements RoomService {
 
                     ImLiveBroadcastRoom updateInfo = new ImLiveBroadcastRoom();
                     updateInfo.setId(liveRoom.getId());
+                    updateInfo.setVideoRecord("");
                     updateInfo.setLiveStartTime(DateTime.now().toDate());
 
                     // 更新直播间状态
@@ -333,7 +336,7 @@ public class RoomServiceImpl implements RoomService {
             genRtcRoomMemberInfoConfig(roomId, joinRoom, sysUser, userId, teacher, courseSchedule, curTime, roomResult, courseId);
         }
 
-        log.info("join room: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId);
+        log.info("join room: roomId = {}, userId = {}", roomId, userId);
         return new BaseResponse(roomResult);
     }
 
@@ -363,7 +366,12 @@ public class RoomServiceImpl implements RoomService {
             liveRoom.setServiceProvider(liveClient);
         }
 
-        String roomUid = "LIVE-" + roomId + "-" + courseSchedule.getCreateTime().getTime();
+        String liveStartTime = MessageFormat.format("{0} {1}", DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN),
+                DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT));
+
+        DateTime time = DateTime.parse(liveStartTime, DateTimeFormat.forPattern(DateUtil.DEFAULT_PATTERN + " " + DateUtil.EXPANDED_TIME_FORMAT));
+
+        String roomUid = "LIVE-" + roomId + "-" + time.toDate().getTime();
         liveRoom.setTenantId(TenantContextHolder.getTenantId());
         liveRoom.setRoomUid(roomUid);
         //liveRoom.setRoomConfig(liveRoom.getRoomConfig());