ソースを参照

群聊修改、imtoken

zouxuan 3 年 前
コミット
17fa123ea4
26 ファイル変更171 行追加93 行削除
  1. 6 0
      cooleshow-auth/auth-server/pom.xml
  2. 24 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/RongCloudConfig.java
  3. 17 5
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/handler/BaseAuthenticationSuccessEventHandler.java
  4. 54 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java
  5. 0 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java
  6. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java
  7. 4 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberDao.java
  8. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java
  9. 4 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java
  10. 5 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMemberAudit.java
  11. 4 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupNotice.java
  12. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberAuditService.java
  13. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberService.java
  14. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  15. 2 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberAuditServiceImpl.java
  16. 8 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberServiceImpl.java
  17. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupNoticeServiceImpl.java
  18. 10 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  19. 1 16
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml
  20. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml
  21. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberMapper.xml
  22. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml
  23. 3 2
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java
  24. 2 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  25. 5 6
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java
  26. 4 3
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java

+ 6 - 0
cooleshow-auth/auth-server/pom.xml

@@ -83,6 +83,12 @@
 			<groupId>com.yonge.toolset</groupId>
 			<artifactId>thirdparty-component</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.rongcloud.im</groupId>
+            <artifactId>server-sdk-java</artifactId>
+            <version>3.2.17</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>

+ 24 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/RongCloudConfig.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.auth.config;
+
+import io.rong.RongCloud;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+@Configuration
+public class RongCloudConfig {
+
+    @Value("${cn.rongcloud.im.appkey}")
+    private String appKey;
+    @Value("${cn.rongcloud.im.secret}")
+    private String appSecret;
+
+    public static RongCloud rongCloud;
+
+    @Bean
+    @Primary
+    public void getRongCloud() {
+        rongCloud = RongCloud.getInstance(appKey,appSecret);
+    }
+}

+ 17 - 5
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -9,6 +9,12 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.yonge.cooleshow.auth.config.RongCloudConfig;
+import com.yonge.cooleshow.common.entity.ImResult;
+import com.yonge.cooleshow.common.entity.ImUserModel;
+import com.yonge.cooleshow.common.exception.BizException;
+import io.rong.models.response.TokenResult;
+import io.rong.models.user.UserModel;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -51,7 +57,6 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 	private SysUserService sysUserService;
 	@Autowired
 	private ObjectMapper objectMapper;
-	
 	@Autowired
 	private ClientDetailsService clientDetailsService;
 
@@ -83,10 +88,17 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 			if(StringUtils.isEmpty(name)){
 				name = sysUser.getUsername();
 			}
-			/*ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), name, sysUser.getAvatar()));
-			sysUser.setImToken(register.getToken());
-			sysUser.setUpdateTime(new Date());
-			sysUserService.update(sysUser);*/
+			try {
+				TokenResult result = RongCloudConfig.rongCloud.user.register(new UserModel(sysUser.getId().toString(), name, sysUser.getAvatar()));
+				if(!result.code.equals(200)){
+					logger.error("获取用户token失败:{}",result.errorMessage);
+				}
+				sysUser.setImToken(result.getToken());
+				sysUser.setUpdateTime(new Date());
+				sysUserService.update(sysUser);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
 		}
 		Date date = new Date();
 		//修改添加登录信息

+ 54 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java

@@ -0,0 +1,54 @@
+package com.yonge.cooleshow.admin.controller;
+
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 即时通讯群组(ImGroup)表控制层
+ *
+ * @author zx
+ * @since 2022-03-22 10:45:56
+ */
+@Api(tags = "即时通讯群组")
+@RestController
+@RequestMapping("/imGroup")
+public class ImGroupController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ImGroupService imGroupService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("获取群详情")
+    @PostMapping(value = "/getDetail/{groupId}")
+    @PreAuthorize("@pcs.hasPermissions('imGroup/detail')")
+    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
+        return succeed(imGroupService.getById(groupId));
+    }
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "根据群名称、编号、简介模糊查询"),
+    })
+    @ApiOperation("群列表")
+    @PostMapping(value = "/queryAll")
+    @PreAuthorize("@pcs.hasPermissions('imGroup/queryAll')")
+    public HttpResponseResult<List<ImGroup>> queryAll(@RequestBody Map<String,Object> params) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        params.put("userId",sysUser.getId());
+        return succeed(imGroupService.queryAll(params));
+    }
+}
+

+ 0 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java

@@ -15,10 +15,6 @@ import java.util.Map;
  */
 public interface ImGroupDao extends BaseMapper<ImGroup> {
 
-    int insertBatch(@Param("entities") List<ImGroup> entities);
-
-    ImGroup getLock(@Param("groupId") Long groupId);
-
     List<ImGroup> findAll(Map<String, Object> params);
 }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java

@@ -28,6 +28,6 @@ public interface ImGroupMemberAuditDao extends BaseMapper<ImGroupMemberAudit> {
 
     List<ImGroupMemberAudit> findByIds(@Param("auditIds") String auditIds);
 
-    void delByGroupId(@Param("groupId") Long groupId);
+    void delByGroupId(@Param("groupId") String groupId);
 }
 

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberDao.java

@@ -19,7 +19,7 @@ public interface ImGroupMemberDao extends BaseMapper<ImGroupMember> {
 
     int insertBatch(@Param("entities") List<ImGroupMember> entities);
 
-    void delByGroupId(@Param("groupId") Long groupId);
+    void delByGroupId(@Param("groupId") String groupId);
 
     ImGroupMember findOne(Map<String, Object> params);
 
@@ -30,7 +30,7 @@ public interface ImGroupMemberDao extends BaseMapper<ImGroupMember> {
     * @author zx
     * @date 2022/3/23 15:17
     */
-    List<GroupMember> queryGroupMember(@Param("groupId") Long groupId);
+    List<GroupMember> queryGroupMember(@Param("groupId") String groupId);
 
     /**
      * @description: 获取群成员列表
@@ -41,10 +41,10 @@ public interface ImGroupMemberDao extends BaseMapper<ImGroupMember> {
      * @author zx
      * @date 2022/3/23 17:08
      */
-    List<ImGroupMember> initImGroupMember(@Param("imGroupId") Long imGroupId,
+    List<ImGroupMember> initImGroupMember(@Param("imGroupId") String imGroupId,
                                            @Param("userIds") Set<Long> userIds,
                                            @Param("roleType") String roleType);
 
-    ImGroupMember findByUserIdAndGroupId(@Param("userId") Long userId, @Param("groupId") Long groupId);
+    ImGroupMember findByUserIdAndGroupId(@Param("userId") Long userId, @Param("groupId") String groupId);
 }
 

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java

@@ -21,10 +21,10 @@ import java.util.Date;
  */
 @ApiModel(value = "im_group-即时通讯群组")
 public class ImGroup implements Serializable {
-    @TableId(value = "id_", type = IdType.AUTO)
-    @NotNull(message = "群编号不可为空")
+    @TableId(value = "id_")
+    @NotBlank(message = "群编号不可为空")
     @ApiModelProperty(value = "主键;")
-    private Long id;
+    private String id;
 
     @NotBlank(message = "群名称不能为空")
     @TableField("name_")
@@ -103,11 +103,11 @@ public class ImGroup implements Serializable {
         this.createBy = createBy;
     }
 
-    public Long getId() {
+    public String getId() {
         return id;
     }
 
-    public void setId(Long id) {
+    public void setId(String id) {
         this.id = id;
     }
 

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java

@@ -25,7 +25,7 @@ public class ImGroupMember implements Serializable {
 
     @TableField("group_id_")
     @ApiModelProperty(value = "群编号;")
-    private Long groupId;
+    private String groupId;
 
     @TableField("user_id_")
     @ApiModelProperty(value = "用户编号;")
@@ -58,7 +58,7 @@ public class ImGroupMember implements Serializable {
     public ImGroupMember() {
     }
 
-    public ImGroupMember(Long groupId, Long userId, String nickname, String avatar, Boolean isAdmin, ImGroupMemberRoleType roleType) {
+    public ImGroupMember(String groupId, Long userId, String nickname, String avatar, Boolean isAdmin, ImGroupMemberRoleType roleType) {
         this.groupId = groupId;
         this.userId = userId;
         this.avatar = avatar;
@@ -103,11 +103,11 @@ public class ImGroupMember implements Serializable {
         this.id = id;
     }
 
-    public Long getGroupId() {
+    public String getGroupId() {
         return groupId;
     }
 
-    public void setGroupId(Long groupId) {
+    public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
 

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMemberAudit.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
@@ -33,9 +34,9 @@ public class ImGroupMemberAudit implements Serializable {
     private ImGroupMember.ImGroupMemberRoleType roleType;
 
     @TableField("group_id_")
-    @NotNull(message = "群编号不可为空")
+    @NotBlank(message = "群编号不可为空")
     @ApiModelProperty(value = "群组编号")
-    private Long groupId;
+    private String groupId;
 
     @TableField("desc_")
     @ApiModelProperty(value = "申请原因")
@@ -78,11 +79,11 @@ public class ImGroupMemberAudit implements Serializable {
         this.roleType = roleType;
     }
 
-    public Long getGroupId() {
+    public String getGroupId() {
         return groupId;
     }
 
-    public void setGroupId(Long groupId) {
+    public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
 

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupNotice.java

@@ -26,9 +26,9 @@ public class ImGroupNotice implements Serializable {
     private Long id;
 
     @TableField("group_id_")
-    @NotNull(message = "群编号不可为空")
+    @NotBlank(message = "群编号不可为空")
     @ApiModelProperty(value = "群编号;")
-    private Long groupId;
+    private String groupId;
 
     @TableField("title_")
     @NotBlank(message = "公告标题不可为空")
@@ -72,11 +72,11 @@ public class ImGroupNotice implements Serializable {
         this.id = id;
     }
 
-    public Long getGroupId() {
+    public String getGroupId() {
         return groupId;
     }
 
-    public void setGroupId(Long groupId) {
+    public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
 

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

@@ -37,7 +37,7 @@ public interface ImGroupMemberAuditService extends IService<ImGroupMemberAudit>
     * @author zx
     * @date 2022/3/22 19:58
     */
-    void applyAudit(String auditId, AuditStatusEnum auditStatus,Long groupId) throws Exception;
+    void applyAudit(String auditId, AuditStatusEnum auditStatus,String groupId) throws Exception;
 
     List<ImGroupMemberAudit> queryAll(ImGroupMemberAuditQueryInfo queryInfo);
 }

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberService.java

@@ -37,7 +37,7 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/22 15:59
     */
-    List<GroupMember> initGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception;
+    List<GroupMember> initGroupMember(String imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception;
 
     /**
     * @description: 添加群成员
@@ -48,7 +48,7 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/22 15:59
     */
-    List<GroupMember> initGroupMembers(Long imGroupId, Set<Long> userIds, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception;
+    List<GroupMember> initGroupMembers(String imGroupId, Set<Long> userIds, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception;
 
     /**
     * @description: 加入融云群
@@ -58,7 +58,7 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/23 17:50
     */
-    void join(List<GroupMember> groupMemberList,Long imGroupId) throws Exception;
+    void join(List<GroupMember> groupMemberList,String imGroupId) throws Exception;
 
     /**
     * @description: 删除群成员
@@ -67,7 +67,7 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/22 16:21
     */
-    void delByGroupId(Long groupId);
+    void delByGroupId(String groupId);
 
     /**
     * @description: 获取群成员基本信息
@@ -77,6 +77,6 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/24 13:53
     */
-    ImGroupMember getUserDetail(Long userId, Long groupId);
+    ImGroupMember getUserDetail(Long userId, String groupId);
 }
 

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

@@ -39,7 +39,7 @@ public interface ImGroupService extends IService<ImGroup> {
     * @author zx
     * @date 2022/3/22 11:17
     */
-    void dismiss(Long groupId) throws Exception;
+    void dismiss(String groupId) throws Exception;
 
     /**
     * @description: 同步群成员数量
@@ -47,7 +47,7 @@ public interface ImGroupService extends IService<ImGroup> {
     * @author zx
     * @date 2022/3/22 11:17
     */
-    void syncGroupMemberNum(Long groupId) throws Exception;
+    void syncGroupMemberNum(String groupId) throws Exception;
 
     List<ImGroup> queryAll(Map<String, Object> params);
 }

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

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -13,9 +12,7 @@ import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
-import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.cooleshow.common.page.PageInfo;
 import io.rong.models.group.GroupMember;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,7 +49,7 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void apply(ImGroupMemberAudit imGroupMemberAudit) throws Exception {
-        Long groupId = imGroupMemberAudit.getGroupId();
+        String groupId = imGroupMemberAudit.getGroupId();
         ImGroup imGroup = imGroupService.getById(groupId);
         if(Objects.isNull(imGroup)){
             throw new BizException("群组信息不存在");
@@ -92,7 +89,7 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void applyAudit(String auditIds, AuditStatusEnum auditStatus,Long groupId) throws Exception {
+    public void applyAudit(String auditIds, AuditStatusEnum auditStatus,String groupId) throws Exception {
         if(auditStatus == AuditStatusEnum.AUDITING ){
             throw new BizException("操作失败:审核状态异常");
         }

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

@@ -54,7 +54,7 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<GroupMember> initGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
+    public List<GroupMember> initGroupMember(String imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
         //记录群成员
         BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
         String username = roleType== ImGroupMember.ImGroupMemberRoleType.TEACHER?basicUserInfo.getRealName():basicUserInfo.getUsername();
@@ -65,13 +65,13 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
         this.baseMapper.insert(imGroupMember);
         //加入融云群
         List<GroupMember> groupMemberList = new ArrayList<>();
-        groupMemberList.add(new GroupMember(userId.toString(),imGroupId.toString(),null));
+        groupMemberList.add(new GroupMember(userId.toString(),imGroupId,null));
         return groupMemberList;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<GroupMember> initGroupMembers(Long imGroupId, Set<Long> userIds, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
+    public List<GroupMember> initGroupMembers(String imGroupId, Set<Long> userIds, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
         //记录群成员
         List<ImGroupMember> imGroupMembers = baseMapper.initImGroupMember(imGroupId,userIds,roleType.getCode());
         List<GroupMember> groupMemberList = new ArrayList<>();
@@ -79,7 +79,7 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
             baseMapper.insertBatch(imGroupMembers);
             //加入融云群
             for (Long userId : userIds) {
-                groupMemberList.add(new GroupMember(userId.toString(),imGroupId.toString(),null));
+                groupMemberList.add(new GroupMember(userId.toString(),imGroupId,null));
             }
             return groupMemberList;
         }
@@ -87,9 +87,9 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void join(List<GroupMember> groupMemberList,Long imGroupId) throws Exception {
+    public void join(List<GroupMember> groupMemberList,String imGroupId) throws Exception {
         GroupMember[] groupMembers = groupMemberList.toArray(new GroupMember[groupMemberList.size()]);
-        GroupModel groupModel = new GroupModel(imGroupId.toString(), 0);
+        GroupModel groupModel = new GroupModel(imGroupId, 0);
         groupModel.setMembers(groupMembers);
         ImGroup imGroup = imGroupDao.selectById(imGroupId);
         groupModel.setName(imGroup.getName());
@@ -102,12 +102,12 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void delByGroupId(Long groupId) {
+    public void delByGroupId(String groupId) {
         this.baseMapper.delByGroupId(groupId);
     }
 
     @Override
-    public ImGroupMember getUserDetail(Long userId, Long groupId) {
+    public ImGroupMember getUserDetail(Long userId, String groupId) {
         ImGroupMember imGroupMember = baseMapper.findByUserIdAndGroupId(userId,groupId);
         if(Objects.isNull(imGroupMember)){
             throw new BizException("当前用户不在此群组");

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

@@ -85,7 +85,7 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
         baseMapper.updateById(imGroupNotice);
     }
 
-    public Long checkAdmin(Long groupId){
+    public Long checkAdmin(String groupId){
         ImGroup imGroup = imGroupDao.selectById(groupId);
         if(Objects.isNull(imGroup)){
             throw new BizException("群信息不存在");

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

@@ -70,8 +70,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroup.setMemberNum(1);
         imGroup.setCreateTime(now);
         imGroup.setUpdateTime(now);
+        String imGroupId = UUID.randomUUID().toString() + imGroup.getType().getCode();
+        imGroup.setId(imGroupId);
         this.baseMapper.insert(imGroup);
-        Long imGroupId = imGroup.getId();
         //处理本地群成员列表
         List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMember.ImGroupMemberRoleType.TEACHER);
         //创建融云群
@@ -105,8 +106,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroup.setType(ImGroup.ImGroupType.COURSE);
         imGroup.setCreateTime(now);
         imGroup.setUpdateTime(now);
+        String imGroupId = UUID.randomUUID().toString() + imGroup.getType().getCode();
+        imGroup.setId(imGroupId);
         this.baseMapper.insert(imGroup);
-        Long imGroupId = imGroup.getId();
         //保存老师学员关联的通讯录
         imUserFriendService.saveUserFriend(teacherId,studentIds);
         //处理本地群成员列表
@@ -119,10 +121,10 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     }
 
     //创建融云群
-    private void rtcCreate(Long userId,Long imGroupId,String imGroupName) throws Exception {
+    private void rtcCreate(Long userId,String imGroupId,String imGroupName) throws Exception {
         //创建融云群
-        GroupMember[] groupMembers = new GroupMember[]{new GroupMember(userId.toString(),imGroupId.toString(),null)};
-        GroupModel groupModel = new GroupModel(imGroupId.toString(),0);
+        GroupMember[] groupMembers = new GroupMember[]{new GroupMember(userId.toString(),imGroupId,null)};
+        GroupModel groupModel = new GroupModel(imGroupId,0);
         groupModel.setMembers(groupMembers);
         groupModel.setName(imGroupName);
         Result result = RongCloudConfig.rongCloud.group.create(groupModel);
@@ -134,7 +136,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void dismiss(Long groupId) throws Exception {
+    public void dismiss(String groupId) throws Exception {
         ImGroup imGroup = this.baseMapper.selectById(groupId);
         if(Objects.isNull(imGroup)){
             throw new BizException("操作失败:群组不存在");
@@ -152,7 +154,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         //删除群成员
         imGroupMemberService.delByGroupId(groupId);
         //解散融云群
-        GroupModel groupModel = new GroupModel(groupId.toString(),0);
+        GroupModel groupModel = new GroupModel(groupId,0);
         GroupMember[] groupMembersArr = groupMembers.toArray(new GroupMember[groupMembers.size()]);
         groupModel.setMembers(groupMembersArr);
         Result result = RongCloudConfig.rongCloud.group.dismiss(groupModel);
@@ -164,7 +166,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void syncGroupMemberNum(Long groupId) throws Exception {
+    public void syncGroupMemberNum(String groupId) throws Exception {
         ImGroup imGroup = baseMapper.selectById(groupId);
         Integer memberNum = imGroupMemberService.getBaseMapper().
                 selectCount(new QueryWrapper<ImGroupMember>().eq("group_id_",groupId));

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupDao">
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroup">
-        <id column="id_" jdbcType="INTEGER" property="id"/>
+        <id column="id_" jdbcType="VARCHAR" property="id"/>
         <result column="name_" jdbcType="VARCHAR" property="name"/>
         <result column="introduce_" jdbcType="VARCHAR" property="introduce"/>
         <result column="member_num_" jdbcType="INTEGER" property="memberNum"/>
@@ -34,9 +34,6 @@
         </set>
         where id_ = #{et.id}
     </update>
-    <select id="getLock" resultMap="BaseResultMap">
-        SELECT * FROM im_group WHERE id_ = #{groupId} LIMIT 1 FOR UPDATE
-    </select>
     <select id="findAll" resultMap="BaseResultMap">
         SELECT ig.* FROM im_group ig
         LEFT JOIN im_group_member igm ON igm.group_id_ = ig.id_
@@ -51,16 +48,4 @@
         </where>
         ORDER BY id_ DESC
     </select>
-
-    <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
-            parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroup">
-        INSERT INTO im_group(name_, introduce_, member_num_, memo_, img_, type_,create_by_,auto_pass_flag_, create_time_, update_time_)
-        VALUES
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.name}, #{entity.introduce}, #{entity.memberNum}, #{entity.memo}, #{entity.img},
-             #{entity.type,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler},
-             #{entity.createBy},#{entity.autoPassFlag}, NOW(), NOW())
-        </foreach>
-    </insert>
-
 </mapper>

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

@@ -5,7 +5,7 @@
         <id column="id_" jdbcType="INTEGER" property="id"/>
         <result column="user_id_" jdbcType="INTEGER" property="userId"/>
         <result column="role_type_" jdbcType="VARCHAR" property="roleType" typeHandler="com.yonge.cooleshow.common.dal.CustomEnumTypeHandler"/>
-        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
+        <result column="group_id_" jdbcType="VARCHAR" property="groupId"/>
         <result column="desc_" jdbcType="VARCHAR" property="desc"/>
         <result column="audit_status_" jdbcType="VARCHAR" property="auditStatus" typeHandler="com.yonge.cooleshow.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>

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

@@ -3,7 +3,7 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao">
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
         <id column="id_" jdbcType="INTEGER" property="id"/>
-        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
+        <result column="group_id_" jdbcType="VARCHAR" property="groupId"/>
         <result column="user_id_" jdbcType="INTEGER" property="userId"/>
         <result column="nickname_" jdbcType="VARCHAR" property="nickname"/>
         <result column="is_admin_" jdbcType="VARCHAR" property="isAdmin"/>

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

@@ -3,7 +3,7 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupNoticeDao">
     <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupNotice">
         <id column="id_" jdbcType="INTEGER" property="id"/>
-        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
+        <result column="group_id_" jdbcType="VARCHAR" property="groupId"/>
         <result column="title_" jdbcType="VARCHAR" property="title"/>
         <result column="content_" jdbcType="VARCHAR" property="content"/>
         <result column="top_flag_" property="topFlag"/>

+ 3 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberController.java

@@ -44,11 +44,12 @@ public class ImGroupMemberController extends BaseController {
     })
     @ApiOperation("获取好友详情")
     @PostMapping(value = "/getUserDetail")
-    public HttpResponseResult<ImGroupMember> getUserDetail(@RequestBody Map<String,Long> params) throws Exception {
+    public HttpResponseResult<ImGroupMember> getUserDetail(@RequestBody Map<String,Object> params) throws Exception {
         if(Objects.isNull(params.get("groupId")) || Objects.isNull(params.get("userId"))){
             throw new BizException("参数校验失败");
         }
-        return succeed(imGroupMemberService.getUserDetail(params.get("userId"),params.get("groupId")));
+        return succeed(imGroupMemberService.getUserDetail(Long.parseLong(params.get("userId").toString()),
+                params.get("groupId").toString()));
     }
 
 

+ 2 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -47,14 +47,14 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("解散群聊")
     @PostMapping(value = "/dismiss/{groupId}")
-    public HttpResponseResult dismiss(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
+    public HttpResponseResult dismiss(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
         imGroupService.dismiss(groupId);
         return succeed();
     }
 
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
-    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
+    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
         return succeed(imGroupService.getById(groupId));
     }
 

+ 5 - 6
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java

@@ -11,7 +11,6 @@ import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -56,19 +55,19 @@ public class ImGroupMemberAuditController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "auditIds", dataType = "String", value = "审核编号列表",required = true),
             @ApiImplicitParam(name = "auditStatus", dataType = "String", value = "审核状态",required = true),
-            @ApiImplicitParam(name = "groupId", dataType = "Long", value = "审核状态",required = true)
+            @ApiImplicitParam(name = "groupId", dataType = "String", value = "审核状态",required = true)
     })
     @ApiOperation("申请入群批量审核")
     @PostMapping(value = "/applyAudit")
-    public HttpResponseResult applyAudit(@RequestBody Map<String,Object> params) throws Exception {
+    public HttpResponseResult applyAudit(@RequestBody Map<String,String> params) throws Exception {
         if(Objects.isNull(params.get("auditIds"))
                 || Objects.isNull(params.get("auditStatus"))
                 || Objects.isNull(params.get("groupId"))){
             throw new BizException("参数校验失败");
         }
-        imGroupMemberAuditService.applyAudit(params.get("auditIds").toString(),
-                AuditStatusEnum.valueOf(params.get("auditStatus").toString()),
-                Long.parseLong(params.get("groupId").toString()));
+        imGroupMemberAuditService.applyAudit(params.get("auditIds"),
+                AuditStatusEnum.valueOf(params.get("auditStatus")),
+                params.get("groupId"));
         return succeed();
     }
 

+ 4 - 3
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberController.java

@@ -41,16 +41,17 @@ public class ImGroupMemberController extends BaseController {
     private ImGroupMemberService imGroupMemberService;
 
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "groupId", dataType = "Long", value = "群编号",required = true),
+            @ApiImplicitParam(name = "groupId", dataType = "String", value = "群编号",required = true),
             @ApiImplicitParam(name = "userId", dataType = "Long", value = "用户编号",required = true),
     })
     @ApiOperation("获取好友详情")
     @PostMapping(value = "/getUserDetail")
-    public HttpResponseResult<ImGroupMember> getUserDetail(@RequestBody Map<String,Long> params) throws Exception {
+    public HttpResponseResult<ImGroupMember> getUserDetail(@RequestBody Map<String,Object> params) throws Exception {
         if(Objects.isNull(params.get("groupId")) || Objects.isNull(params.get("userId"))){
             throw new BizException("参数校验失败");
         }
-        return succeed(imGroupMemberService.getUserDetail(params.get("userId"),params.get("groupId")));
+        return succeed(imGroupMemberService.getUserDetail(Long.parseLong(params.get("userId").toString()),
+                params.get("groupId").toString()));
     }
 
     @ApiImplicitParams({