Explorar el Código

群主转让、群注销

zouxuan hace 1 año
padre
commit
37a5336e63

+ 12 - 0
mec-application/src/main/java/com/ym/mec/teacher/controller/ImGroupController.java

@@ -27,6 +27,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -42,6 +43,8 @@ public class ImGroupController extends BaseController {
 	@Resource
 	private ImUserFriendService imUserFriendService;
 	@Resource
+	private ImGroupMemberService imGroupMemberService;
+	@Resource
 	private ImGroupNoticeService imGroupNoticeService;
 	@Resource
 	private SysUserService sysUserService;
@@ -80,6 +83,15 @@ public class ImGroupController extends BaseController {
 		return succeed();
 	}
 
+	@ApiOperation("退群")
+	@PostMapping(value = "/quitGroup")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "imGroupId", value = "群编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "String")})
+	public Object quitGroup(String imGroupId, String userId) {
+		List<Integer> userIds = Arrays.stream(userId.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+		return succeed(imGroupMemberService.quit(imGroupId,userIds));
+	}
+
 	@ApiOperation("查询群列表")
 	@GetMapping(value = "/queryGroupList")
 	public HttpResponseResult<List<ImGroup>> queryGroupList(String search, String groupType) {

+ 12 - 1
mec-application/src/main/java/com/ym/mec/web/controller/education/EduImGroupController.java

@@ -16,7 +16,6 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.vo.ImUserWrapper;
-import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -27,6 +26,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -42,6 +42,8 @@ public class EduImGroupController extends BaseController {
 	@Resource
 	private ImUserFriendService imUserFriendService;
 	@Resource
+	private ImGroupMemberService imGroupMemberService;
+	@Resource
 	private ImGroupNoticeService imGroupNoticeService;
 	@Resource
 	private SysUserService sysUserService;
@@ -80,6 +82,15 @@ public class EduImGroupController extends BaseController {
 		return succeed();
 	}
 
+	@ApiOperation("退群")
+	@PostMapping(value = "/quitGroup")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "imGroupId", value = "群编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "String")})
+	public Object quitGroup(String imGroupId, String userId) {
+		List<Integer> userIds = Arrays.stream(userId.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+		return succeed(imGroupMemberService.quit(imGroupId,userIds));
+	}
+
 	@ApiOperation("查询群列表")
 	@GetMapping(value = "/queryGroupList")
 	public HttpResponseResult<List<ImGroup>> queryGroupList(String search, String groupType) {

+ 5 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMember.java

@@ -1,13 +1,12 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.im.EImGroupRoleType;
+import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.common.entity.BaseEntity;
-
 import java.util.Date;
 
 /**
@@ -43,7 +42,7 @@ public class ImGroupMember extends BaseEntity {
 
 	@Getter
 	@ApiModelProperty(value = "第三方群角色")
-	private EImGroupRoleType groupRoleType;
+	private String groupRoleType;
 	
 	@Getter
 	@ApiModelProperty(value = "群角色")
@@ -100,18 +99,18 @@ public class ImGroupMember extends BaseEntity {
 	public void setIsAdmin(boolean admin) {
 		isAdmin = admin;
 		if (admin){
-			this.groupRoleType = EImGroupRoleType.Owner;
+			this.groupRoleType = EImGroupRoleType.Owner.getCode();
 		}
 	}
 
-	public void setGroupRoleType(EImGroupRoleType groupRoleType) {
+	public void setGroupRoleType(String groupRoleType) {
 		this.groupRoleType = groupRoleType;
 	}
 
 	public void setRoleType(String roleType) {
 		this.roleType = roleType;
 		if(this.groupRoleType == null){
-			this.groupRoleType = StringUtils.isEmpty(roleType)? EImGroupRoleType.Admin:EImGroupRoleType.Member;
+			this.groupRoleType = StringUtils.isEmpty(roleType)? EImGroupRoleType.Admin.getCode():EImGroupRoleType.Member.getCode();
 		}
 	}
 

+ 7 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -29,16 +29,7 @@ import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
 import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.dal.wrapper.ImHistoryMessageWrapper;
 import com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper;
-import com.ym.mec.biz.service.CooperationOrganService;
-import com.ym.mec.biz.service.EmployeeService;
-import com.ym.mec.biz.service.ImGroupMemberService;
-import com.ym.mec.biz.service.ImGroupService;
-import com.ym.mec.biz.service.SchoolStaffService;
-import com.ym.mec.biz.service.StudentService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysUserService;
-import com.ym.mec.biz.service.TeacherService;
-import com.ym.mec.biz.service.UploadFileService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.biz.service.im.ImGroupCoreService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.UploadReturnBean;
@@ -74,7 +65,9 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -1972,14 +1965,14 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             throw new BizException("新群主不在群组中");
         }
         ImGroupMember imGroupMember = imGroupMembers.get(0);
-        if (imGroupMember.getGroupRoleType() != EImGroupRoleType.Admin) {
+        if (!Objects.equals(imGroupMember.getGroupRoleType(), EImGroupRoleType.Admin.getCode())) {
             throw new BizException("新群主不是管理员");
         }
         // 更新群主
-        imGroupMember.setGroupRoleType(EImGroupRoleType.Owner);
+        imGroupMember.setGroupRoleType(EImGroupRoleType.Owner.getCode());
         imGroupMember.setIsAdmin(true);
         imGroupMemberService.update(imGroupMember);
-        admin.setGroupRoleType(EImGroupRoleType.Admin);
+        admin.setGroupRoleType(EImGroupRoleType.Admin.getCode());
         admin.setIsAdmin(false);
         imGroupMemberService.update(admin);
         // 调用IM接口

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

@@ -40,7 +40,7 @@
 		<result column="real_name_" property="user.realName" />
 		<result column="user_type_" property="user.userType" />
 		<result column="group_nickname_" property="groupNickname" />
-		<result property="groupRoleType" column="group_role_type_"  typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result property="groupRoleType" column="group_role_type_"/>
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->