Jelajahi Sumber

Merge branch 'develop' of http://git.dayaedu.com/yonge/cooleshow

zouxuan 1 tahun lalu
induk
melakukan
0d107c7fcc

+ 40 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.admin.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.entity.ImHistoryMessage;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 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.redis.service.RedisCache;
 import com.yonge.toolset.utils.date.DateUtil;
 import com.yonge.toolset.utils.validator.ValidationKit;
 import io.swagger.annotations.Api;
@@ -48,6 +50,11 @@ public class ImGroupController extends BaseController {
     @Autowired
     private SysUserService sysUserService;
 
+
+
+    @Autowired
+    private RedisCache redisCache;
+
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
     @PreAuthorize("@pcs.hasPermissions('imGroup/detail')")
@@ -109,5 +116,38 @@ public class ImGroupController extends BaseController {
     }
 
 
+    @ApiOperation("IM导入消息")
+    @PostMapping(value = "/ImportIM")
+    public void ImportIM() throws Exception {
+        List<ImHistoryMessage> info;
+        //计算总数据量
+        double count = imGroupService.queryCount();
+        //计算调用次数
+        int num = (int) Math.ceil(count / 100);
+        for (int i = 1; i <=num ; i++) {
+            int page =i;
+            int size =100;
+            //获取融云消息
+            //List<ImGroup> list = imGroupService.lambdaQuery().last("limit "+(page-1)*size+","+size).list();
+            info = imGroupService.getRongYunInfo(page,size);
+            //IM导入
+            imGroupService.importInfo(info);
+        }
+    }
+
+    @GetMapping(value = "/groupTransfer")
+    @ApiOperation("群导入")
+    public void groupTransfer() {
+        imGroupService.groupTransfer();
+    }
+
+    @GetMapping(value = "/importUser")
+    @ApiOperation("导入用户")
+    public void importUser() {
+        imGroupService.importUser();
+    }
+
+
+
 }
 

+ 3 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/UserOrderController.java

@@ -62,7 +62,9 @@ public class UserOrderController extends BaseController {
     @ApiOperation(value = "查询导出", notes = "传入orderSearch")
     @PreAuthorize("@pcs.hasPermissions('userOrder/export')")
     public void export(@RequestBody OrderSearch query) {
-        List<UserOrderVo> userOrderVos = userOrderService.selectAllList(query);
+        query.setRows(-1);
+        IPage<UserOrderVo> pages = userOrderService.selectPage(PageUtil.getPage(query), query);
+        List<UserOrderVo> userOrderVos = pages.getRecords();
         List<UserOrderExport> list = new ArrayList<>();
         userOrderVos.forEach(o -> {
             UserOrderExport export = new UserOrderExport();

+ 1 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/ImController.java

@@ -52,6 +52,7 @@ import java.util.Objects;
 @Slf4j
 public class ImController extends BaseController {
 
+
     /**
      * 服务对象
      */
@@ -211,7 +212,6 @@ public class ImController extends BaseController {
     @PostMapping(value = "/tencentStreamEventCallback")
     public TencentData.StreamEventCallbackResult tencentStreamEventCallback(@RequestBody Object obj) {
         String body = JSON.toJSONString(obj);
-
         log.info("tencentStreamEventCallback body:{}", body);
 
         TencentData.CallbackStreamStateEvent event = TencentData.CallbackStreamStateEvent.from(body);
@@ -269,7 +269,6 @@ public class ImController extends BaseController {
     @PostMapping(value = "/tencentStreamRecordCallback")
     public TencentData.StreamEventCallbackResult tencentStreamRecordCallback(@RequestBody Object obj) {
         String body = JSON.toJSONString(obj);
-
         log.info("tencentStreamRecordCallback body:{}", body);
 
         TencentData.CallbackSteamRecordEvent event = TencentData.CallbackSteamRecordEvent.from(body);
@@ -295,7 +294,6 @@ public class ImController extends BaseController {
     @PostMapping(value = "/tencentStreamExceptionCallback")
     public TencentData.StreamEventCallbackResult tencentStreamExceptionCallback(@RequestBody Object obj) {
         String body = JSON.toJSONString(obj);
-
         log.info("tencentStreamExceptionCallback body:{}", body);
 
         return TencentData.StreamEventCallbackResult.builder().code(0).build();

+ 32 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -1,15 +1,20 @@
 package com.yonge.cooleshow.student.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
+import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.utils.validator.ValidationKit;
@@ -20,6 +25,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -28,6 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 即时通讯群组(ImGroup)表控制层
@@ -49,6 +56,9 @@ public class ImGroupController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
+    @Autowired
+    private ImUserFriendService imUserFriendService;
+
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
     public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
@@ -98,5 +108,27 @@ public class ImGroupController extends BaseController {
         imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT);
         return succeed();
     }
+
+
+    @ApiOperation("查询好友详情")
+    @GetMapping(value = "/queryFriendDetail")
+    public HttpResponseResult<ImUserFriendVO.ImUserFriend> queryFriendDetail(String userId) {
+
+        String ret = imGroupService.analysisImUserId(userId);
+        if (!ret.matches(MK.EXP_INT)) {
+            return failed("无效的用户ID");
+        }
+
+        ImUserFriend userFriend = imUserFriendService.getDetail(userId, ClientEnum.TEACHER);
+        if (Objects.isNull(userFriend)) {
+            return failed("当前好友不存在");
+        }
+
+        if (Objects.isNull(userFriend.getFriendType())) {
+            userFriend.setFriendType(ClientEnum.STUDENT);
+        }
+
+        return succeed(ImUserFriendVO.ImUserFriend.from(JSON.toJSONString(userFriend)));
+    }
 }
 

+ 103 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImLiveBroadcastRoomController.java

@@ -0,0 +1,103 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.biz.dal.entity.ImUserStateSync;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.LiveRoomService;
+import com.yonge.cooleshow.biz.dal.wrapper.liveroom.LiveRoomWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 直播房间管理表(ImLiveBroadcastRoom)表控制层
+ *
+ * @author hgw
+ * @since 2022-02-17 20:52:04
+ */
+@Api(tags = "直播房间管理表")
+@RestController
+@RequestMapping("${app-config.url.student:}/imLiveBroadcastRoom")
+public class ImLiveBroadcastRoomController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private LiveRoomService liveRoomService;
+
+    @Autowired
+    private ImGroupService imGroupService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("学生端-查询房间信息")
+    @GetMapping("/queryRoomInfo")
+    public HttpResponseResult<LiveRoomWrapper.LiveRoomVo> queryRoomInfo(@ApiParam(value = "房间uid", required = true) String roomUid) {
+        return succeed(liveRoomService.queryRoomInfo(roomUid));
+    }
+
+
+    @ApiOperation("查询房间信息并校验房间是否合规")
+    @GetMapping("/queryRoom")
+    public HttpResponseResult<LiveRoomWrapper.LiveRoomVo> queryRoomAndCheck(@ApiParam(value = "房间uid", required = true) String roomUid,
+                                                                       @ApiParam(value = "用户id", required = true) String userId) {
+        Long userIdLong = null;
+        if (StringUtils.isNotBlank(userId)) {
+            userIdLong = Long.parseLong(imGroupService.analysisImUserId(userId));
+        }
+        return succeed(liveRoomService.queryRoomAndCheck(roomUid, userIdLong, 1));
+    }
+
+    @PostMapping("/quitRoom")
+    public HttpResponseResult<Object> quitRoom(@RequestBody List<ImUserStateSync> userState) {
+        for (ImUserStateSync stateSync : userState) {
+            stateSync.setUserid(imGroupService.analysisImUserId(stateSync.getUserid()));
+        }
+        liveRoomService.opsRoom(userState);
+        return succeed();
+    }
+
+    @ApiOperation("学生-进入房间")
+    @GetMapping("/joinRoom")
+    public HttpResponseResult<Object> joinRoom(String roomUid, String userId,Boolean microphoneFlag) {
+        if (microphoneFlag == null) {
+            microphoneFlag = true;
+        }
+        Long userIdLong = null;
+        if (StringUtils.isNotBlank(userId)) {
+            userIdLong = Long.parseLong(imGroupService.analysisImUserId(userId));
+        } else {
+            userIdLong =sysUserFeignService.queryUserInfo().getId();
+        }
+        return succeed(liveRoomService.joinRoom(roomUid, userIdLong,microphoneFlag));
+    }
+
+    @ApiOperation("设置连麦状态")
+    @PutMapping("/userWhetherMic")
+    public HttpResponseResult<Object> userWhetherMic(@ApiParam(value = "房间uid", required = true) String roomUid,
+                                                     @ApiParam(value = "用户id", required = true) String userId,
+                                                     @ApiParam(value = "连麦状态 0:未申请1:申请连麦中2:连麦中", required = true) Integer whetherMicStatus) {
+        Long userIdLong = null;
+        if (StringUtils.isNotBlank(userId)) {
+            userIdLong = Long.parseLong(imGroupService.analysisImUserId(userId));
+        }
+        liveRoomService.userWhetherMic(roomUid,userIdLong,whetherMicStatus);
+        return succeed();
+    }
+
+}
+

+ 5 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImUserFriendController.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImUserWrapper;
@@ -46,6 +47,9 @@ public class ImUserFriendController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
+    @Autowired
+    private ImGroupService imGroupService;
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "根据用户编号、昵称模糊查询")
     })
@@ -82,7 +86,7 @@ public class ImUserFriendController extends BaseController {
     @PostMapping(value = "/getDetail/{userId}")
     public HttpResponseResult<ImUserFriendVO.ImUserFriend> getDetail(@ApiParam(value = "用户编号", required = true) @PathVariable("userId") String userId) {
 
-        String ret = userId.split(":")[0];
+        String ret = imGroupService.analysisImUserId(userId);
         if (!ret.matches(MK.EXP_INT)) {
             return failed("无效的用户ID");
         }

+ 5 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
@@ -45,6 +46,9 @@ public class ImUserFriendController extends BaseController {
     @Autowired
     private SysUserService sysUserService;
 
+    @Autowired
+    private ImGroupService imGroupService;
+
     @SuppressWarnings("unchecked")//因为返回是集合,这里提示你集合内容较多排序可能回耗费性能
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "根据用户编号、昵称模糊查询")
@@ -81,7 +85,7 @@ public class ImUserFriendController extends BaseController {
     @PostMapping(value = "/getDetail/{userId}")
     public HttpResponseResult<ImUserFriendVO.ImUserFriend> getDetail(@ApiParam(value = "用户编号", required = true) @PathVariable("userId") String userId) {
 
-        String ret = userId.split(":")[0];
+        String ret = imGroupService.analysisImUserId(userId);
         if (!ret.matches(MK.EXP_INT)) {
             return failed("无效的用户ID");
         }

+ 3 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserOrderController.java

@@ -59,7 +59,9 @@ public class UserOrderController extends BaseController {
     @ApiOperation(value = "查询导出", notes = "传入orderSearch")
     @PreAuthorize("@pcs.hasPermissions('userOrder/export')")
     public void export(@RequestBody OrderSearch query) {
-        List<UserOrderVo> userOrderVos = userOrderService.selectAllList(query);
+        query.setRows(-1);
+        IPage<UserOrderVo> pages = userOrderService.selectPage(PageUtil.getPage(query), query);
+        List<UserOrderVo> userOrderVos = pages.getRecords();
         List<UserOrderExport> list = new ArrayList<>();
         userOrderVos.forEach(o -> {
             UserOrderExport export = new UserOrderExport();

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -502,6 +502,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             student.setName(studentImport.getUserName());
             student.setGender("男".equals(studentImport.getGender()) ? 1 : 0);
             student.setSubjectId(subjectIdNamemap.get(studentImport.getSubjectName()).toString());
+            student.setPhone(studentImport.getPhone());
 
             LocalDate birthday = LocalDate.parse(studentImport.getBirthday(), DateTimeFormatter.ISO_LOCAL_DATE);
             student.setBirthdate(birthday);

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -369,7 +369,7 @@
 		group by smcr.user_id_, DATE_FORMAT(create_time_, '%Y-%m-%d')) mprs ON mprs.user_id_ = st.user_id_
 		left join sys_user su ON st.user_id_ = su.id_
 		left join subject sb ON sb.id_ = st.subject_id_
-		where st.membership_end_time_ >= NOW()
+		where st.membership_end_time_ >= NOW() AND mprs.user_id_ = st.user_id_
 		<if test="search != null and search != ''">
 			AND su.username_ LIKE CONCAT('%',#{keyword},'%')
 		</if>

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantAlbumMusicMapper.xml

@@ -47,7 +47,7 @@
                 </foreach>
             </if>
             <if test="param.keyword != null and param.keyword != ''">
-                and m.music_sheet_name_ = #{param.keyword}
+                and m.music_sheet_name_ LIKE CONCAT('%',#{param.keyword},'%')
             </if>
         </where>
 	</select>