Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/feature/0803-im' into feature/0803-im

zouxuan 1 rok pred
rodič
commit
270931a84e

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

@@ -161,7 +161,7 @@ public class ImController extends BaseController {
             callbackOnMemberStateChange.setClientIP(clientIP);
             callbackOnMemberStateChange.setOptPlatform(optPlatform);
             for (TencentData.MemberListDTO memberListDTO : callbackOnMemberStateChange.getMemberList()) {
-                if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
+                if (!imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
                     return new TencentImCallbackResult();
                 }
                 memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));
@@ -177,7 +177,7 @@ public class ImController extends BaseController {
             callbackAfterMemberExit.setClientIP(clientIP);
             callbackAfterMemberExit.setOptPlatform(optPlatform);
             for (TencentData.MemberListDTO memberListDTO : callbackAfterMemberExit.getExitMemberList()) {
-                if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
+                if (!imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
                     return new TencentImCallbackResult();
                 }
                 memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));
@@ -193,7 +193,7 @@ public class ImController extends BaseController {
             callbackAfterNewMemberJoin.setClientIP(clientIP);
             callbackAfterNewMemberJoin.setOptPlatform(optPlatform);
             for (TencentData.MemberListDTO memberListDTO : callbackAfterNewMemberJoin.getNewMemberList()) {
-                if (imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
+                if (!imGroupService.checkImUserId(memberListDTO.getMemberAccount())) {
                     return new TencentImCallbackResult();
                 }
                 memberListDTO.setMemberAccount(imGroupService.analysisImUserId(memberListDTO.getMemberAccount()));

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupNoticeDao.java

@@ -21,5 +21,7 @@ public interface ImGroupNoticeDao extends BaseMapper<ImGroupNotice> {
     int insertBatch(@Param("entities") List<ImGroupNotice> entities);
 
     IPage<ImGroupNoticeDto> queryPage(Page<ImGroupNoticeDto> pageInfo, @Param("params") Map<String, Object> params);
+
+    void updateTopFlag(@Param("groupId") String groupId);
 }
 

+ 3 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/im/ImGroupCoreService.java

@@ -1,7 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.im;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.microsvc.toolkit.config.jwt.utils.JwtUserInfo;
 import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
@@ -60,12 +58,13 @@ public interface ImGroupCoreService {
 
     /**
      * 添加群组信息
+     *
      * @param groupMember 用户信息
-     * @param imGroup ImGroupWrapper.ImGroup
+     * @param imGroup     ImGroupWrapper.ImGroup
      * @return Boolean
      * @throws Exception Exception
      */
-    Long groupCreate(GroupMemberWrapper.ImGroupMember groupMember, ImGroupWrapper.ImGroup imGroup) throws Exception;
+    String groupCreate(GroupMemberWrapper.ImGroupMember groupMember, ImGroupWrapper.ImGroup imGroup) throws Exception;
 
     /**
      * 添加群组信息

+ 2 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/im/impl/ImGroupCoreServiceImpl.java

@@ -2,14 +2,10 @@ package com.yonge.cooleshow.biz.dal.service.im.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.tools.ThreadPool;
-import com.microsvc.toolkit.config.jwt.utils.JwtUserInfo;
 import com.microsvc.toolkit.middleware.im.ImPluginContext;
 import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper;
 import com.microsvc.toolkit.middleware.im.properties.ImConfigProperties;
@@ -18,7 +14,6 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
@@ -30,14 +25,12 @@ import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
 import com.yonge.toolset.base.exception.BizException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.MessageFormat;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -176,7 +169,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
      * @return Boolean
      */
     @Override
-    public Long groupCreate(GroupMemberWrapper.ImGroupMember userInfo, ImGroupWrapper.ImGroup imGroup) throws Exception {
+    public String groupCreate(GroupMemberWrapper.ImGroupMember userInfo, ImGroupWrapper.ImGroup imGroup) throws Exception {
 
         long id = Optional.ofNullable(imGroup.getId()).orElse(IdWorker.getId());
         // 生成群组ID
@@ -218,7 +211,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
         imPluginContext.getPluginService().groupJoin(imGroup.getGroupId(), imGroup.getName(),
                 getImGroupMembers(groupMembers));
 
-        return imGroup.getId();
+        return imGroup.getGroupId();
     }
 
     /**

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

@@ -1205,7 +1205,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 this.updateById(courseGroup);
             } catch (Exception e) {
                 log.error("closeCourseGroup error >>> courseGroup: {} ", JSON.toJSONString(courseGroup));
-                log.error("closeCourseGroup error >>> ", e.getCause());
+                log.error("closeCourseGroup error >>> ", e);
             }
         });
     }

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

@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -72,6 +73,7 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void modify(ImGroupNotice imGroupNotice) {
         if(Objects.isNull(baseMapper.selectById(imGroupNotice.getId()))){
             throw new BizException("群公告不存在");
@@ -81,6 +83,12 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
         imGroupNotice.setOperatorId(userId);
         imGroupNotice.setCreateTime(date);
         imGroupNotice.setUpdateTime(date);
+
+        // 群公告置顶 只能有一个
+        if(imGroupNotice.getTopFlag() != null && Boolean.TRUE.equals(imGroupNotice.getTopFlag())){
+            baseMapper.updateTopFlag(imGroupNotice.getGroupId());
+        }
+
         baseMapper.updateById(imGroupNotice);
     }
 

+ 8 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -279,8 +279,8 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 //        imGroupMemberService.join(groupMembers, imGroupId);
     }
 
-    private Long createImGroup(ImGroup imGroup) throws Exception {
-        ImGroupWrapper.ImGroup group = ImGroupWrapper.ImGroup.from(JSON.toJSONString(imGroup));
+    private String createImGroup(ImGroup imGroup) throws Exception {
+        ImGroupWrapper.ImGroup group =JSON.parseObject(JSON.toJSONString(imGroup), ImGroupWrapper.ImGroup.class);
 
         //记录群成员
         BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(imGroup.getCreateBy());
@@ -330,9 +330,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 //        this.baseMapper.insert(imGroup);
 
 
-        Long groupId = createImGroup(imGroup);
+        String groupId = createImGroup(imGroup);
 //        // 添加学生
-        List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId.toString(), studentIds,
+        List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, studentIds,
                 ImGroupMemberRoleType.STUDENT);
         List<com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper.ImGroupMember> groupMemberList = Lists.newArrayList();
         for (ImGroupMember groupMember : groupMembers) {
@@ -347,7 +347,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                     .roleType(groupMember.getRoleType().getCode())
                     .build());
         }
-        imGroupCoreService.saveImGroupMemberList(groupId.toString(), groupMemberList);
+        imGroupCoreService.saveImGroupMemberList(groupId, groupMemberList);
         //处理本地群成员列表
         // 添加老师
 //        List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(),
@@ -497,10 +497,10 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 //                        ImGroupMemberRoleType.STUDENT));
 //            }
             //创建融云群
-            Long groupId = createImGroup(imGroup);
+            String groupId = createImGroup(imGroup);
 
             // 添加学生
-            List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId.toString(), studentIdList,
+            List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, studentIdList,
                     ImGroupMemberRoleType.STUDENT);
             List<com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper.ImGroupMember> groupMemberList = Lists.newArrayList();
             for (ImGroupMember groupMember : groupMembers) {
@@ -515,7 +515,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                         .roleType(groupMember.getRoleType().getCode())
                         .build());
             }
-            imGroupCoreService.saveImGroupMemberList(groupId.toString(), groupMemberList);
+            imGroupCoreService.saveImGroupMemberList(groupId, groupMemberList);
             //加入融云群
 //            imGroupMemberService.join(groupMembers, imGroupId);
 

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

@@ -1501,7 +1501,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         imLiveRoomVideo.setStartTime(new DateTime(startTime).toDate());
         imLiveRoomVideo.setEndTime(new DateTime(event.getEndTime() * 1000L).toDate());
         imLiveRoomVideo.setUrl(event.getVideoUrl());
-        imLiveRoomVideo.setType(2);
+        imLiveRoomVideo.setType(4);
 
         // 回放记录已存在,直接忽略
         LiveRoomVideo video = liveRoomVideoService.lambdaQuery()

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

@@ -36,7 +36,7 @@
         from course_plan as a
                  left join course_schedule as b on a.course_group_id_ = b.course_group_id_
                  AND a.class_num_ = b.class_num_
-                 left join live_room as c on b.id_ = c.course_id_
+                 left join live_room as c on b.room_uid_ = c.room_uid_
         where a.course_group_id_ = #{groupId}
         order by b.start_time_
     </select>

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml

@@ -38,4 +38,7 @@
         WHERE gn.group_id_ = #{params.groupId}
     </select>
 
+    <update id="updateTopFlag">
+        update im_group_notice set top_flag_ = false where group_id_ = #{groupId}
+    </update>
 </mapper>