|
@@ -21,6 +21,7 @@ import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.EFriendRoleType;
|
|
|
import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.im.ClientEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.im.EImGroupRoleType;
|
|
|
import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
|
|
|
import com.ym.mec.biz.dal.mapper.SchoolStaffMapper;
|
|
|
import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
|
|
@@ -1933,6 +1934,61 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void transferOwner(ImGroupWrapper.GroupTransferOwner groupTransferOwner) {
|
|
|
+ ImGroup imGroup = imGroupService.get(groupTransferOwner.getGroupId());
|
|
|
+ if (imGroup == null) {
|
|
|
+ throw new BizException("群组不存在");
|
|
|
+ }
|
|
|
+ ImGroupMember admin = imGroupMemberService.getDao().getAdmin(groupTransferOwner.getGroupId());
|
|
|
+ if (admin == null) {
|
|
|
+ throw new BizException("群主信息不存在");
|
|
|
+ }
|
|
|
+ if (!StringUtils.equals(admin.getUserId().toString(), groupTransferOwner.getCurrentOwner())) {
|
|
|
+ throw new BizException("当前操作人不是群主");
|
|
|
+ }
|
|
|
+ List<ImGroupMember> imGroupMembers = imGroupMemberService.getDao().queryByImGroupIdAndUserId(groupTransferOwner.getGroupId(), groupTransferOwner.getImUserId());
|
|
|
+ if (CollectionUtils.isEmpty(imGroupMembers)) {
|
|
|
+ throw new BizException("新群主不在群组中");
|
|
|
+ }
|
|
|
+ ImGroupMember imGroupMember = imGroupMembers.get(0);
|
|
|
+ if (imGroupMember.getGroupRoleType() != EImGroupRoleType.Admin) {
|
|
|
+ throw new BizException("新群主不是管理员");
|
|
|
+ }
|
|
|
+ // 更新群主
|
|
|
+ imGroupMember.setGroupRoleType(EImGroupRoleType.Owner);
|
|
|
+ imGroupMember.setIsAdmin(true);
|
|
|
+ imGroupMemberService.update(imGroupMember);
|
|
|
+ admin.setGroupRoleType(EImGroupRoleType.Admin);
|
|
|
+ admin.setIsAdmin(false);
|
|
|
+ imGroupMemberService.update(admin);
|
|
|
+ // 调用IM接口
|
|
|
+ try {
|
|
|
+ imPluginContext.getPluginService().changeGroupOwner(groupTransferOwner.getGroupId(), groupTransferOwner.getImUserId(),groupTransferOwner.getCurrentOwner());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("转让群主失败", e);
|
|
|
+ throw new BizException("转让群主失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void cancelGroup(String groupId,String userId) {
|
|
|
+ ImGroup imGroup = imGroupService.get(groupId);
|
|
|
+ if (imGroup == null) {
|
|
|
+ throw new BizException("群组不存在");
|
|
|
+ }
|
|
|
+ ImGroupMember admin = imGroupMemberService.getDao().getAdmin(groupId);
|
|
|
+ if (admin == null) {
|
|
|
+ throw new BizException("群主信息不存在");
|
|
|
+ }
|
|
|
+ if (!StringUtils.equals(admin.getUserId().toString(), userId)) {
|
|
|
+ throw new BizException("当前操作人不是群主");
|
|
|
+ }
|
|
|
+ imGroupService.delGroup(groupId);
|
|
|
+ }
|
|
|
+
|
|
|
private TencentRequest.MessageBody getTimGifElem(String remoteUr,int size,int width,int height) {
|
|
|
if (StringUtils.isEmpty(remoteUr) && size == 0 && width == 0 && height == 0) {
|
|
|
return null;
|