ソースを参照

Merge remote-tracking branch 'origin/dev_20230222_live' into dev_20230222_live

Eric 2 年 前
コミット
592c0185fe

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LiveRoomStatus.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-03-09
+ */
+@Data
+@ApiModel(value = "更新直播间状态")
+public class LiveRoomStatus {
+
+    @ApiModelProperty(value = "房间uid",required = true)
+    @NotBlank(message = "房间号不能为空")
+    private String roomUid;
+
+    @ApiModelProperty(value = "主播状态: 0离开;1在播")
+    private Integer speakerStatus;
+
+    @ApiModelProperty(value = "推流状态: 0 暂停; 1在播")
+    private Integer pushStatus;
+
+    @ApiModelProperty(value = "禁言状态: 0 取消;1禁言")
+    private Integer banStatus;
+
+}

+ 3 - 3
mec-im/src/main/java/com/ym/pojo/TencentData.java → mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TencentData.java

@@ -1,10 +1,10 @@
-package com.ym.pojo;
+package com.ym.mec.biz.dal.dto;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.ym.common.ETencentGroupType;
-import com.ym.common.ETencentImCallbackCommand;
+import com.ym.mec.biz.dal.enums.ETencentGroupType;
+import com.ym.mec.biz.dal.enums.ETencentImCallbackCommand;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 

+ 1 - 1
mec-im/src/main/java/com/ym/pojo/TencentImCallbackResult.java → mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TencentImCallbackResult.java

@@ -1,4 +1,4 @@
-package com.ym.pojo;
+package com.ym.mec.biz.dal.dto;
 
 /**
  * Description

+ 5 - 1
mec-im/src/main/java/com/ym/common/ETencentGroupType.java → mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ETencentGroupType.java

@@ -1,4 +1,4 @@
-package com.ym.common;
+package com.ym.mec.biz.dal.enums;
 
 /**
  * Description
@@ -9,6 +9,10 @@ package com.ym.common;
 public enum ETencentGroupType {
 
     Public("陌生人社交群"),
+    Work("好友工作群"),
+    AVChatRoom("直播群"),
+    Meeting("临时会议群"),
+    Community("社群"),
 
     ;
 

+ 1 - 1
mec-im/src/main/java/com/ym/common/ETencentImCallbackCommand.java → mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ETencentImCallbackCommand.java

@@ -1,4 +1,4 @@
-package com.ym.common;
+package com.ym.mec.biz.dal.enums;
 
 /**
  * Description

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomMemberVo.java

@@ -26,6 +26,9 @@ public class ImLiveBroadcastRoomMemberVo implements java.io.Serializable {
     @ApiModelProperty(value = "学生姓名")
     private String studentName;
 
+    @ApiModelProperty(value = "学生头像")
+    private String avatar;
+
     @ApiModelProperty(value = "手机号")
     private String phone;
 

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomMemberService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomMemberDao;
+import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomDetailVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;

+ 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.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
+import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
@@ -126,5 +127,13 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      * @param whetherMic 是否连麦 0: 是 1:否
      */
     void whetherMic(String roomUid, Integer whetherMic);
+
+    /**
+     * 更新主播直播间状态
+     *
+     * @param status 直播间状态
+     * @return
+     */
+    Boolean updateRoomStatus(LiveRoomStatus status);
 }
 

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -20,6 +20,7 @@ import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
 import com.ym.mec.biz.dal.dao.LiveGoodsMapperDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
+import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
@@ -1603,6 +1604,27 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         this.updateById(imLiveBroadcastRoom);
     }
 
+    /**
+     * 更新主播直播间状态
+     *
+     * @param status 直播间状态
+     */
+    @Override
+    public Boolean updateRoomStatus(LiveRoomStatus status) {
+        // 获取直播间信息
+        ImLiveBroadcastRoomVo room = this.getImLiveBroadcastRoomVo(status.getRoomUid());
+        if (room == null) {
+            throw new BizException("直播间不存在");
+        }
+        ImLiveBroadcastRoom imLiveBroadcastRoom = new ImLiveBroadcastRoom();
+        imLiveBroadcastRoom.setId(room.getId());
+        imLiveBroadcastRoom.setSpeakerStatus(status.getSpeakerStatus());
+        imLiveBroadcastRoom.setPushStatus(status.getPushStatus());
+        imLiveBroadcastRoom.setBanStatus(status.getBanStatus());
+
+        return this.updateById(imLiveBroadcastRoom);
+    }
+
 
     /**
      * 查询直播间所有用户信息

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMemberMapper.xml

@@ -30,6 +30,7 @@
         tu.real_name_ speakerName,
         a.user_id_ as studentId,
         su.username_ as studentName,
+        su.avatar_ as avatar,
         su.phone_ as phone,
         b.name_ as subName,
         o.name_ organName,

+ 33 - 33
mec-im/src/main/java/com/ym/controller/LiveRoomController.java

@@ -2,12 +2,12 @@ package com.ym.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ym.common.ETencentImCallbackCommand;
+import com.ym.mec.biz.dal.enums.ETencentImCallbackCommand;
 import com.ym.mec.common.entity.ImRoomMessage;
 import com.ym.pojo.IMApiResultInfo;
 import com.ym.pojo.RecordNotify;
-import com.ym.pojo.TencentData;
-import com.ym.pojo.TencentImCallbackResult;
+import com.ym.mec.biz.dal.dto.TencentData;
+import com.ym.mec.biz.dal.dto.TencentImCallbackResult;
 import com.ym.service.LiveRoomService;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -101,34 +101,34 @@ public class LiveRoomController {
     public void syncChatRoomStatus(@RequestBody String body) {
         log.info("syncChatRoomStatus body:{}", body);
     }
-
-
-    @ApiOperation("腾讯im 回调接口")
-    @PostMapping(value = "/tencentImCallback")
-    public TencentImCallbackResult tencentImCallback(@RequestBody String body, HttpServletRequest request) {
-        log.info("tencentImCallback body:{}", body);
-
-        log.info("tencentImCallback request param:{}", JSON.toJSONString(request.getParameterMap()));
-
-
-        if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKONMEMBERSTATECHANGE.name())) {
-            TencentData.CallbackOnMemberStateChange callbackOnMemberStateChange = TencentData.CallbackOnMemberStateChange.toObject(
-                body);
-
-            log.debug("callbackOnMemberStateChange: {}", callbackOnMemberStateChange);
-        } else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERMEMBEREXIT.name())) {
-            TencentData.CallbackAfterMemberExit callbackAfterMemberExit = TencentData.CallbackAfterMemberExit.toObject(
-                body);
-
-            log.debug("CallbackAfterMemberExit: {}", callbackAfterMemberExit);
-        }  else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERNEWMEMBERJOIN.name())) {
-            TencentData.CallbackAfterNewMemberJoin callbackAfterNewMemberJoin = TencentData.CallbackAfterNewMemberJoin.toObject(
-                body);
-
-            log.debug("CallbackAfterNewMemberJoin: {}", callbackAfterNewMemberJoin);
-        }
-
-
-        return new TencentImCallbackResult();
-    }
+    //
+    // 换到 com.ym.mec.web.controller.ImLiveBroadcastRoomController.tencentImCallback
+    // @ApiOperation("腾讯im 回调接口")
+    // @PostMapping(value = "/tencentImCallback")
+    // public TencentImCallbackResult tencentImCallback(@RequestBody String body, HttpServletRequest request) {
+    //     log.info("tencentImCallback body:{}", body);
+    //
+    //     log.info("tencentImCallback request param:{}", JSON.toJSONString(request.getParameterMap()));
+    //
+    //
+    //     if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKONMEMBERSTATECHANGE.name())) {
+    //         TencentData.CallbackOnMemberStateChange callbackOnMemberStateChange = TencentData.CallbackOnMemberStateChange.toObject(
+    //             body);
+    //
+    //         log.debug("callbackOnMemberStateChange: {}", callbackOnMemberStateChange);
+    //     } else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERMEMBEREXIT.name())) {
+    //         TencentData.CallbackAfterMemberExit callbackAfterMemberExit = TencentData.CallbackAfterMemberExit.toObject(
+    //             body);
+    //
+    //         log.debug("CallbackAfterMemberExit: {}", callbackAfterMemberExit);
+    //     }  else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERNEWMEMBERJOIN.name())) {
+    //         TencentData.CallbackAfterNewMemberJoin callbackAfterNewMemberJoin = TencentData.CallbackAfterNewMemberJoin.toObject(
+    //             body);
+    //
+    //         log.debug("CallbackAfterNewMemberJoin: {}", callbackAfterNewMemberJoin);
+    //     }
+    //
+    //
+    //     return new TencentImCallbackResult();
+    // }
 }

+ 9 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherImLiveBroadcastRoomController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
@@ -18,6 +19,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -169,5 +171,12 @@ public class TeacherImLiveBroadcastRoomController extends BaseController {
     public HttpResponseResult<PageInfo<ImLiveBroadcastRoomMemberVo>> queryRoomMember(@RequestBody Map<String, Object> param) {
         return succeed(imLiveBroadcastRoomMemberService.queryRoomMember(param));
     }
+
+
+    @ApiOperation("分页查询直播间人员列表")
+    @PostMapping("/updateRoomStatus")
+    public HttpResponseResult<Boolean> updateRoomStatus(@RequestBody @Valid LiveRoomStatus status ) {
+        return succeed(imLiveBroadcastRoomService.updateRoomStatus(status));
+    }
 }
 

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

@@ -1,7 +1,11 @@
 package com.ym.mec.web.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
+import com.ym.mec.biz.dal.dto.TencentData;
+import com.ym.mec.biz.dal.dto.TencentImCallbackResult;
+import com.ym.mec.biz.dal.enums.ETencentImCallbackCommand;
 import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
@@ -14,10 +18,12 @@ import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.WrapperUtil;
 import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
@@ -33,6 +39,7 @@ import java.util.concurrent.CompletableFuture;
  */
 @Api(tags = "直播房间管理表")
 @RestController
+@Slf4j
 @RequestMapping("/imLiveBroadcastRoom")
 public class ImLiveBroadcastRoomController extends BaseController {
     /**
@@ -234,5 +241,35 @@ public class ImLiveBroadcastRoomController extends BaseController {
     public HttpResponseResult<PageInfo<LiveRoomGoodsOrderVo>> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo) {
         return succeed(imLiveBroadcastRoomService.queryLiveRoomGoodsOrderList(queryInfo));
     }
+
+
+    @ApiOperation("腾讯im 回调接口")
+    @PostMapping(value = "/tencentImCallback")
+    public TencentImCallbackResult tencentImCallback(@RequestBody String body, HttpServletRequest request) {
+        log.info("tencentImCallback body:{}", body);
+
+        log.info("tencentImCallback request param:{}", JSON.toJSONString(request.getParameterMap()));
+
+
+        if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKONMEMBERSTATECHANGE.name())) {
+            TencentData.CallbackOnMemberStateChange callbackOnMemberStateChange = TencentData.CallbackOnMemberStateChange.toObject(
+                body);
+
+            log.debug("callbackOnMemberStateChange: {}", callbackOnMemberStateChange);
+        } else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERMEMBEREXIT.name())) {
+            TencentData.CallbackAfterMemberExit callbackAfterMemberExit = TencentData.CallbackAfterMemberExit.toObject(
+                body);
+
+            log.debug("CallbackAfterMemberExit: {}", callbackAfterMemberExit);
+        }  else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERNEWMEMBERJOIN.name())) {
+            TencentData.CallbackAfterNewMemberJoin callbackAfterNewMemberJoin = TencentData.CallbackAfterNewMemberJoin.toObject(
+                body);
+
+            log.debug("CallbackAfterNewMemberJoin: {}", callbackAfterNewMemberJoin);
+        }
+
+
+        return new TencentImCallbackResult();
+    }
 }