فهرست منبع

腾讯云网络教室

zouxuan 1 سال پیش
والد
کامیت
f951a559e6

+ 59 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/BaseResponse.java

@@ -0,0 +1,59 @@
+package com.yonge.cooleshow.common.entity;
+
+import com.yonge.cooleshow.common.enums.ErrorEnum;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import static com.yonge.cooleshow.common.enums.ErrorEnum.ERR_SUCCESS;
+
+@Data
+public class BaseResponse<T> {
+    private @Getter int errCode;
+    private @Setter @Getter String errMsg;
+    private @Setter @Getter String errDetail;
+    private @Getter BaseResponseResult data;
+
+
+    public void setData(T data) {
+        this.data = new BaseResponseResult<T>(data);
+    }
+
+    public static <T> BaseResponse<T> success(T data) {
+        BaseResponse<T> response = success();
+        response.setData(data);
+        return response;
+    }
+
+    public static <T> BaseResponse<T> success() {
+        BaseResponse<T> response = new BaseResponse();
+        response.setErr(ERR_SUCCESS);
+        return response;
+    }
+
+    public static <T> BaseResponse<T> failed(ErrorEnum err,T data) {
+        BaseResponse<T> response = failed(err);
+        response.setData(data);
+        return response;
+    }
+
+    public static <T> BaseResponse<T> failed(ErrorEnum err) {
+        BaseResponse<T> response = new BaseResponse();
+        response.setErr(err);
+        return response;
+    }
+
+    public void setErr(ErrorEnum error) {
+        this.errCode = error.getErrCode();
+        this.errMsg = error.getErrMsg();
+        this.errDetail = error.getErrMsg();
+    }
+
+    class BaseResponseResult<R> {
+        private @Setter @Getter R result;
+
+        BaseResponseResult(R result) {
+            this.result = result;
+        }
+    }
+}

+ 61 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ErrorEnum.java

@@ -0,0 +1,61 @@
+package com.yonge.cooleshow.common.enums;
+
+import lombok.Getter;
+
+/**
+ * Created by weiqinxiao on 2019/2/25.
+ */
+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"),
+    ERR_BAD_REQUEST(4, "Bad request"),
+
+    //IM error
+    ERR_IM_TOKEN_ERROR(10, "IM token error"),
+    ERR_CREATE_ROOM_ERROR(11, "Create room error"),
+    ERR_JOIN_ROOM_ERROR(12, "Join room error"),
+    JOIN_ROOM_ERROR(35, "加入房间失败,请前往线下教室"),
+    ROOM_NOT_START(36, "网络教室暂未开启,请稍后重试"),
+    CLOUD_BALANCE_NOT_FEE(37, "云教室受限不可进入,请联系教务老师。"),
+    ERR_MESSAGE_ERROR(13, "IM Message send error"),
+
+
+    //room error
+    ERR_ROOM_NOT_EXIST(20, "Room not exist"),
+    ERR_USER_NOT_EXIST_IN_ROOM(21, "User not exist in room"),
+    ERR_EXIT_ROOM_ERROR(22, "Exit room error"),
+    ERR_TEACHER_NOT_EXIST_IN_ROOM(23, "Teacher not exist in room"),
+    ERR_ASSISTANT_NOT_EXIST_IN_ROOM(24, "Assistant not exist in room"),
+    ERR_CREATE_WHITE_BOARD(25, "Create whiteboard error"),
+    ERR_WHITE_BOARD_NOT_EXIST(26, "Whiteboard not exist"),
+    ERR_DELETE_WHITE_BOARD(27, "Delete whiteboard error"),
+    ERR_USER_EXIST_IN_ROOM(28, "User exist in room"),
+    ERR_CHANGE_SELF_ROLE(29, "Can not change self role"),
+    ERR_APPLY_TICKET_INVALID(30, "Apply ticket invalid"),
+    ERR_OVER_MAX_COUNT(31, "云教室人数已超上线"),
+    ERR_TEACHER_EXIST_IN_ROOM(32, "Teacher exist in room"),
+    ERR_DOWNGRADE_ROLE(33, "Can't downgrade role"),
+    ERR_CHANGE_ROLE(34, "Only change student to teacher");
+
+    private @Getter int errCode;
+    private @Getter String errMsg;
+    private ErrorEnum(int errCode, String errMsg) {
+        this.errCode = errCode;
+        this.errMsg = errMsg;
+    }
+
+    public static ErrorEnum getEnumByValue(long errCode) {
+        for(ErrorEnum item : ErrorEnum.values()) {
+            if(item.getErrCode() == errCode) {
+                return item;
+            }
+        }
+
+        throw new IllegalArgumentException();
+    }
+}

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMetronomeMessage.java

@@ -23,7 +23,7 @@ public class ImNetworkMetronomeMessage extends BaseMessage {
 
     @Override
     public String toString() {
-        return "{\"enable\":" + content.getEnable() +
+        return "{\"enable\":" + content.isEnable() +
                 ", \"customType\":" + content.getCustomType() +
                 ", \"rate\":" + content.getRate() +
                 ", \"playVolume\":" + content.getPlayVolume() +

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImNetworkRoomService.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.dto.*;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoom;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.UserRoleEnum;
+import com.yonge.cooleshow.common.entity.BaseResponse;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import java.util.List;
@@ -21,7 +22,7 @@ public interface ImNetworkRoomService extends IService<ImNetworkRoom> {
     ImNetworkRoomDao getDao();
 
     //加入网络教室
-    HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId, ClientEnum clientType) throws Exception;
+    BaseResponse<ImNetworkRoomResult> joinRoom(Long courseScheduleId, ClientEnum clientType) throws Exception;
 
     //加入网络教室成功
     void joinRoomSuccess(String roomId, String imUserId) throws Exception;

+ 5 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -24,8 +24,10 @@ import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.IMHelper;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
+import com.yonge.cooleshow.common.entity.BaseResponse;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.EStatus;
+import com.yonge.cooleshow.common.enums.ErrorEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -101,7 +103,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId, ClientEnum clientType) throws Exception {
+    public BaseResponse<ImNetworkRoomResult> joinRoom(Long courseScheduleId, ClientEnum clientType) throws Exception {
         // 当前登录用户ID
         Long userId = sysUserService.getUserId();
         CourseSchedule courseSchedule = Optional.ofNullable(courseScheduleService.getById(courseScheduleId)).
@@ -119,7 +121,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         courseSchedule.setUpdatedTime(now);
         //是否提前进入教室
         if (roomNotStart(courseSchedule)) {
-            return HttpResponseResult.failed(ImNetworkRoomErrorEnum.ROOM_NOT_START.getRemark());
+            return BaseResponse.failed(ErrorEnum.ROOM_NOT_START);
         }
         String roomId = courseScheduleId.toString();
         ImNetworkRoomResult joinRoomResult = new ImNetworkRoomResult();
@@ -162,7 +164,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //获取腾讯所需基本信息配置
         joinRoomResult.setRtcRoomConfig(roomService.getRtcRoomConfig(courseSchedule.getServiceProvider(),sysUser));
         joinRoomResult.setGroupId(roomId);
-        return HttpResponseResult.succeed(joinRoomResult);
+        return BaseResponse.success(joinRoomResult);
     }
 
     private void setMusicSheetList(List<ImNetworkRoomMember> roomMemberList,Long courseScheduleId){

+ 0 - 29
cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/ImNetworkRoomMemberController.java

@@ -1,29 +0,0 @@
-package com.yonge.cooleshow.classroom.controller;
-
-
-import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 网络教室成员(ImNetworkRoomMember)表控制层
- *
- * @author zx
- * @since 2022-03-30 16:36:37
- */
-@Api(tags = "网络教室成员")
-@RestController
-@RequestMapping("/imNetworkRoomMember")
-public class ImNetworkRoomMemberController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Resource
-    private ImNetworkRoomMemberService imNetworkRoomMemberService;
-
-}
-

+ 28 - 28
cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/ImNetworkRoomController.java → cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/RoomController.java

@@ -8,7 +8,7 @@ import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.entity.BaseResponse;
 import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.text.MessageFormat;
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -34,9 +34,9 @@ import java.util.Optional;
 @Api(tags = "网络教室房间")
 @RestController
 @RequestMapping("/room")
-public class ImNetworkRoomController extends BaseController {
+public class RoomController extends BaseController {
 
-    private final static Logger log = LoggerFactory.getLogger(ImNetworkRoomController.class);
+    private final static Logger log = LoggerFactory.getLogger(RoomController.class);
     /**
      * 服务对象
      */
@@ -49,7 +49,7 @@ public class ImNetworkRoomController extends BaseController {
 
     @ApiOperation("加入网络教室")
     @PostMapping(value = "/join")
-    public HttpResponseResult<ImNetworkRoomResult> joinRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) throws Exception {
+    public BaseResponse<ImNetworkRoomResult> joinRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) throws Exception {
 
         // 设置请求客户端来源
         if (Objects.isNull(imNetworkBaseDto.getClientType())) {
@@ -64,7 +64,7 @@ public class ImNetworkRoomController extends BaseController {
 
     @ApiOperation("加入网络教室状态回调")
     @PostMapping(value = "joinRoomFailure")
-    public HttpResponseResult joinRoomFailure(@RequestBody ImNetworkBaseDto imNetworkBaseDto){
+    public BaseResponse joinRoomFailure(@RequestBody ImNetworkBaseDto imNetworkBaseDto){
 
         // 设置请求客户端来源
         if (Objects.isNull(imNetworkBaseDto.getClientType())) {
@@ -74,7 +74,7 @@ public class ImNetworkRoomController extends BaseController {
         imNetworkRoomService.joinRoomFailure(Optional.ofNullable(imNetworkBaseDto)
                 .map(ImNetworkBaseDto::getRoomId)
                 .orElseThrow(()->new BizException("房间号不可为空")).toString(), imNetworkBaseDto.getClientType());
-        return succeed();
+        return BaseResponse.success();
     }
 
     @PostMapping(value = "/statusSync")
@@ -97,7 +97,7 @@ public class ImNetworkRoomController extends BaseController {
 
     @ApiOperation("退出网络教室")
     @PostMapping(value = "/leave")
-    public HttpResponseResult leaveRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) throws Exception {
+    public BaseResponse leaveRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) throws Exception {
 
         // 设置请求客户端来源
         if (Objects.isNull(imNetworkBaseDto.getClientType())) {
@@ -118,12 +118,12 @@ public class ImNetworkRoomController extends BaseController {
         imNetworkRoomService.quitRoomSuccess(Optional.ofNullable(imNetworkBaseDto)
                 .map(ImNetworkBaseDto::getRoomId)
                 .orElseThrow(()->new BizException("房间号不可为空")).toString(), imUserId);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation("控制学员节拍器")
     @PostMapping(value = "/sendImPlayMidiMessage")
-    public HttpResponseResult sendImPlayMidiMessage(@RequestBody ImNetworkCustomMessage customMessage) throws Exception {
+    public BaseResponse sendImPlayMidiMessage(@RequestBody ImNetworkCustomMessage customMessage) throws Exception {
 
         // 设置客户端类型
         if (Objects.isNull(customMessage.getClientType())) {
@@ -131,12 +131,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.sendImPlayMidiMessage(customMessage);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation("移动端用来渲染页面")
     @PostMapping(value = "/display")
-    public HttpResponseResult display(@RequestBody ImNetworkDisplayDataDto displayData) throws Exception {
+    public BaseResponse display(@RequestBody ImNetworkDisplayDataDto displayData) throws Exception {
 
         // 设置客户端类型
         if (Objects.isNull(displayData.getClientType())) {
@@ -144,12 +144,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.display(displayData);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "批量控制学员设备开关")
     @PostMapping(value = "/device/batchControl")
-    public Object batchControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)throws Exception {
+    public BaseResponse batchControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)throws Exception {
 
         // 设置客户端类型
         if (Objects.isNull(deviceControl.getClientType())) {
@@ -157,12 +157,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.batchControlDevice(deviceControl);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "控制学员设备开关")
     @PostMapping(value = "/device/control")
-    public HttpResponseResult controlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
+    public BaseResponse controlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
             throws Exception {
 
         // 设置客户端类型
@@ -171,12 +171,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.controlDevice(deviceControl);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "学员同意打开,麦克风、摄像头")
     @PostMapping(value = "/device/approve")
-    public HttpResponseResult approveControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl) throws Exception {
+    public BaseResponse approveControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl) throws Exception {
         deviceControl.setEnable(true);
 
         // 设置客户端类型
@@ -185,12 +185,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.approveControlDevice(deviceControl);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "学员拒绝打开,麦克风、摄像头")
     @PostMapping(value = "/device/reject")
-    public HttpResponseResult rejectControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
+    public BaseResponse rejectControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
             throws Exception {
         deviceControl.setEnable(false);
 
@@ -200,7 +200,7 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.rejectControlDevice(deviceControl);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "学员设备状态同步")
@@ -214,12 +214,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.deviceStatusSync(deviceControl);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "老师在网络教室选择完伴奏后、通知学员下载伴奏")
     @PostMapping(value = "pushDownloadMusicSheetMsg")
-    public HttpResponseResult pushDownloadMusicSheetMsg(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
+    public BaseResponse pushDownloadMusicSheetMsg(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
 
         // 设置客户端类型
         if (Objects.isNull(musicSheetDto.getClientType())) {
@@ -227,12 +227,12 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.pushDownloadMusicSheetMsg(musicSheetDto);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "学员伴奏下载状态回调")
     @PostMapping(value = "musicSheetDownNotify")
-    public HttpResponseResult adjustMusicScore(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
+    public BaseResponse adjustMusicScore(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
 
         // 设置客户端类型
         if (Objects.isNull(musicSheetDto.getClientType())) {
@@ -240,13 +240,13 @@ public class ImNetworkRoomController extends BaseController {
         }
 
         imNetworkRoomService.musicSheetDownNotify(musicSheetDto);
-        return succeed();
+        return BaseResponse.success();
     }
 
     @ApiOperation(value = "查询不在教室的学员")
     @PostMapping(value = "/queryNoJoinStu")
-    public HttpResponseResult queryNoJoinStu(@RequestBody ImNetworkBaseDto imNetworkBaseDto){
-        return succeed(imNetworkRoomService.queryNoJoinStu(Optional.ofNullable(imNetworkBaseDto)
+    public BaseResponse<List<BasicUserInfo>> queryNoJoinStu(@RequestBody ImNetworkBaseDto imNetworkBaseDto){
+        return BaseResponse.success(imNetworkRoomService.queryNoJoinStu(Optional.ofNullable(imNetworkBaseDto)
                 .map(ImNetworkBaseDto::getRoomId)
                 .orElseThrow(()->new BizException("房间号不可为空"))));
     }