Commit c579f9c6 by Future

群管理相关接口添加

parent b4ad4ff1
package com.wecloud.im.controller; package com.wecloud.im.controller;
import com.wecloud.im.param.ImConversationQueryParam; import com.wecloud.im.param.ImConversationQueryParam;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.TransferOwnerParam;
import com.wecloud.im.param.add.ImClientLeaveConversation; import com.wecloud.im.param.add.ImClientLeaveConversation;
import com.wecloud.im.param.add.ImClientToConversation; import com.wecloud.im.param.add.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationAttrUpdate; import com.wecloud.im.param.add.ImConversationAttrUpdate;
...@@ -8,13 +10,15 @@ import com.wecloud.im.param.add.ImConversationCreate; ...@@ -8,13 +10,15 @@ import com.wecloud.im.param.add.ImConversationCreate;
import com.wecloud.im.param.add.ImConversationDisplayUpdate; import com.wecloud.im.param.add.ImConversationDisplayUpdate;
import com.wecloud.im.param.add.ImConversationNameUpdate; import com.wecloud.im.param.add.ImConversationNameUpdate;
import com.wecloud.im.service.ImConversationService; import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.vo.ImConversationCreateVo;
import com.wecloud.im.vo.ConversationVo; import com.wecloud.im.vo.ConversationVo;
import com.wecloud.im.vo.ImConversationCreateVo;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController; import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -98,6 +102,30 @@ public class ImConversationController extends BaseController { ...@@ -98,6 +102,30 @@ public class ImConversationController extends BaseController {
} }
/** /**
* 群主转让
*/
@PostMapping("/transferOwner")
@ApiOperation(value = "群主转让", notes = "权限:目前只有群主有权限操作")
public ApiResult<Boolean> transferOwner(@RequestBody TransferOwnerParam param) {
Boolean result = imConversationService.transferOwner(param);
return ApiResult.ok(result);
}
/**
* 设置群管理员
*/
@PostMapping("/setAdmins")
@ApiOperation(value = "设置群管理员", notes = "权限:目前只有群主有权限操作")
public ApiResult<Boolean> setAdmins(@RequestBody SetAdminsParam param) {
if (CollectionUtils.isEmpty(param.getClientIds())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
Boolean result = imConversationService.setAdmins(param);
return ApiResult.ok(result);
}
/**
* 查询用户加入的所有会话 与每个会话的未读条数 成员 * 查询用户加入的所有会话 与每个会话的未读条数 成员
*/ */
@PostMapping("/getList") @PostMapping("/getList")
...@@ -128,60 +156,5 @@ public class ImConversationController extends BaseController { ...@@ -128,60 +156,5 @@ public class ImConversationController extends BaseController {
return ApiResult.result(true); return ApiResult.result(true);
} }
// /**
// * 添加会话表
// */
// @PostMapping("/add")
// @OperationLog(name = "添加会话表", type = OperationLogType.ADD)
// @ApiOperation(value = "添加会话表")
// public ApiResult<Boolean> addImConversation(@Validated(Add.class) @RequestBody ImConversation imConversation) throws Exception {
// boolean flag = imConversationService.saveImConversation(imConversation);
// return ApiResult.result(flag);
// }
// /**
// * 修改会话表
// */
// @PostMapping("/update")
// @OperationLog(name = "修改会话表", type = OperationLogType.UPDATE)
// @ApiOperation(value = "修改会话表")
// public ApiResult<Boolean> updateImConversation(@Validated(Update.class) @RequestBody ImConversation imConversation) throws Exception {
// boolean flag = imConversationService.updateImConversation(imConversation);
// return ApiResult.result(flag);
// }
//
// /**
// * 删除会话表
// */
// @PostMapping("/delete/{id}")
// @OperationLog(name = "删除会话表", type = OperationLogType.DELETE)
// @ApiOperation(value = "删除会话表")
// public ApiResult<Boolean> deleteImConversation(@PathVariable("id") Long id) throws Exception {
// boolean flag = imConversationService.deleteImConversation(id);
// return ApiResult.result(flag);
// }
//
// /**
// * 获取会话表详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "会话表详情", type = OperationLogType.INFO)
// @ApiOperation(value = "会话表详情")
// public ApiResult<ImConversationQueryVo> getImConversation(@PathVariable("id") Long id) throws Exception {
// ImConversationQueryVo imConversationQueryVo = imConversationService.getImConversationById(id);
// return ApiResult.ok(imConversationQueryVo);
// }
//
// /**
// * 会话表分页列表
// */
// @PostMapping("/getPageList")
// @OperationLog(name = "会话表分页列表", type = OperationLogType.PAGE)
// @ApiOperation(value = "会话表分页列表")
// public ApiResult<Paging<ImConversationQueryVo>> getImConversationPageList(@Validated @RequestBody ImConversationPageParam imConversationPageParam) throws Exception {
// Paging<ImConversationQueryVo> paging = imConversationService.getImConversationPageList(imConversationPageParam);
// return ApiResult.ok(paging);
// }
} }
...@@ -48,8 +48,8 @@ public class ImMessageController extends BaseController { ...@@ -48,8 +48,8 @@ public class ImMessageController extends BaseController {
*/ */
@PostMapping("/withdraw") @PostMapping("/withdraw")
@ApiOperation(value = "消息撤回", notes = "只能撤回客户端自己发送的消息") @ApiOperation(value = "消息撤回", notes = "只能撤回客户端自己发送的消息")
public ApiResult<Boolean> updateMsgWithdrawById(@RequestBody ImMsgRecall imMsgRecall) throws Exception { public ApiResult<Boolean> withdrawMsg(@RequestBody ImMsgRecall imMsgRecall) throws Exception {
return imMessageService.updateMsgWithdrawById(imMsgRecall); return imMessageService.withdrawMsg(imMsgRecall);
} }
/** /**
......
...@@ -57,4 +57,8 @@ public class ImConversationMembers extends BaseEntity { ...@@ -57,4 +57,8 @@ public class ImConversationMembers extends BaseEntity {
@ApiModelProperty("会话中client的备注名") @ApiModelProperty("会话中client的备注名")
private String clientRemarkName; private String clientRemarkName;
@ApiModelProperty("角色")
private Integer role;
} }
package com.wecloud.im.enums;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
/**
* @Author wenzhida
* @Date 2022/2/16 15:27
* @Description 人员在群内角色枚举
*/
public enum GroupRoleEnum implements BaseEnum {
/**
* 1-普通群成员
*/
NORMAL(1, "普通群成员"),
/**
* 2 - 管理员
*/
ADMIN(2, "管理员"),
/**
* 3 - 群主
*/
OWNER(3, "群主");
GroupRoleEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
private final Integer code;
private final String desc;
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getDesc() {
return this.desc;
}
}
...@@ -7,6 +7,7 @@ import com.wecloud.im.entity.ImConversationMembers; ...@@ -7,6 +7,7 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.ApiImConversationMembersQueryVo; import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConversationMembersPageParam; import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo; import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.vo.ImConversationMemberListVo; import com.wecloud.im.vo.ImConversationMemberListVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -47,4 +48,11 @@ public interface ImConversationMembersMapper extends BaseMapper<ImConversationMe ...@@ -47,4 +48,11 @@ public interface ImConversationMembersMapper extends BaseMapper<ImConversationMe
IPage<ImConversationMembersQueryVo> getImConversationMembersPageList(@Param("page") Page page, @Param("param") ImConversationMembersPageParam imConversationMembersPageParam); IPage<ImConversationMembersQueryVo> getImConversationMembersPageList(@Param("page") Page page, @Param("param") ImConversationMembersPageParam imConversationMembersPageParam);
List<Long> findThousandGroupsByClientId(@Param("clientId") Long clientId); List<Long> findThousandGroupsByClientId(@Param("clientId") Long clientId);
/**
* 批量设置群成员
* @param param
* @return
*/
void setAdminsForConversation(@Param("param") SetAdminsParam param);
} }
...@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotNull;
/** /**
* @Author wenzhida * @Author wenzhida
* @Date 2022/2/15 20:45 * @Date 2022/2/15 20:45
...@@ -18,9 +20,11 @@ public class GetReadersParam extends BaseEntity { ...@@ -18,9 +20,11 @@ public class GetReadersParam extends BaseEntity {
private static final long serialVersionUID = -2415497107453497807L; private static final long serialVersionUID = -2415497107453497807L;
@NotNull(message = "会话id不能为空")
@ApiModelProperty("会话id") @ApiModelProperty("会话id")
private Long conversationId; private Long conversationId;
@NotNull(message = "消息id不能为空")
@ApiModelProperty("消息id") @ApiModelProperty("消息id")
private Long msgId; private Long msgId;
......
package com.wecloud.im.param; package com.wecloud.im.param;
import com.wecloud.im.ws.model.request.PushVO;
import io.geekidea.springbootplus.framework.common.entity.BaseEntity; import io.geekidea.springbootplus.framework.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List; import java.util.List;
...@@ -25,7 +23,4 @@ public class MsgDeleteParam extends BaseEntity { ...@@ -25,7 +23,4 @@ public class MsgDeleteParam extends BaseEntity {
@ApiModelProperty("消息id列表") @ApiModelProperty("消息id列表")
private List<Long> msgIds; private List<Long> msgIds;
@ApiModelProperty("自定义推送字段")
private PushVO push;
} }
package com.wecloud.im.param;
import io.geekidea.springbootplus.framework.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @Author wenzhida
* @Date 2022/2/16 17:32
* @Description 设置群管理员入参
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "设置群管理员入参")
public class SetAdminsParam extends BaseEntity {
private static final long serialVersionUID = -5998535761252546365L;
@ApiModelProperty("会话表id")
private Long conversationId;
@ApiModelProperty("要设置为群管理员的clientId列表")
private List<String> clientIds;
}
package com.wecloud.im.param;
import io.geekidea.springbootplus.framework.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @Author wenzhida
* @Date 2022/2/16 17:32
* @Description 群主转让入参
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "群主转让入参")
public class TransferOwnerParam extends BaseEntity {
private static final long serialVersionUID = -1002684137058458479L;
@ApiModelProperty("会话表id")
private Long conversationId;
@ApiModelProperty("即将成为群主的clientId")
private String clientId;
}
...@@ -8,6 +8,7 @@ import com.wecloud.im.param.ImConvMemeClientRemarkNameParam; ...@@ -8,6 +8,7 @@ import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ImConversationMembersListParam; import com.wecloud.im.param.ImConversationMembersListParam;
import com.wecloud.im.param.ImConversationMembersPageParam; import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo; import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate; import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.vo.ImConversationMemberListVo; import com.wecloud.im.vo.ImConversationMemberListVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
...@@ -101,4 +102,12 @@ public interface ImConversationMembersService extends BaseService<ImConversation ...@@ -101,4 +102,12 @@ public interface ImConversationMembersService extends BaseService<ImConversation
* @return * @return
*/ */
List<Long> findThousandGroupsByClientId(Long clientId); List<Long> findThousandGroupsByClientId(Long clientId);
/**
* 批量设置群成员
* @param param
* @return
*/
void setAdminsForConversation(SetAdminsParam param);
} }
...@@ -5,6 +5,8 @@ import com.wecloud.im.entity.ImConversation; ...@@ -5,6 +5,8 @@ import com.wecloud.im.entity.ImConversation;
import com.wecloud.im.param.ImConversationPageParam; import com.wecloud.im.param.ImConversationPageParam;
import com.wecloud.im.param.ImConversationQueryParam; import com.wecloud.im.param.ImConversationQueryParam;
import com.wecloud.im.param.ImConversationQueryVo; import com.wecloud.im.param.ImConversationQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.TransferOwnerParam;
import com.wecloud.im.param.add.ImClientLeaveConversation; import com.wecloud.im.param.add.ImClientLeaveConversation;
import com.wecloud.im.param.add.ImClientToConversation; import com.wecloud.im.param.add.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationAttrUpdate; import com.wecloud.im.param.add.ImConversationAttrUpdate;
...@@ -16,6 +18,7 @@ import com.wecloud.im.vo.ConversationVo; ...@@ -16,6 +18,7 @@ import com.wecloud.im.vo.ConversationVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.service.BaseService; import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
...@@ -69,6 +72,20 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -69,6 +72,20 @@ public interface ImConversationService extends BaseService<ImConversation> {
ApiResult<Boolean> leaveConversation(ImClientLeaveConversation imClientToConversation) throws Exception; ApiResult<Boolean> leaveConversation(ImClientLeaveConversation imClientToConversation) throws Exception;
/** /**
* 群主转让
* @param param
* @return
*/
Boolean transferOwner(@RequestBody TransferOwnerParam param);
/**
* 群主转让
* @param param
* @return
*/
Boolean setAdmins(@RequestBody SetAdminsParam param);
/**
* 添加或修改会话名称 * 添加或修改会话名称
*/ */
ApiResult<Boolean> saveOrUpdateName(ImConversationNameUpdate imConversationNameUpdate) throws Exception; ApiResult<Boolean> saveOrUpdateName(ImConversationNameUpdate imConversationNameUpdate) throws Exception;
......
...@@ -52,7 +52,7 @@ public interface ImMessageService extends BaseService<ImMessage> { ...@@ -52,7 +52,7 @@ public interface ImMessageService extends BaseService<ImMessage> {
* *
* @return * @return
*/ */
ApiResult<Boolean> updateMsgWithdrawById(ImMsgRecall imMsgRecall); ApiResult<Boolean> withdrawMsg(ImMsgRecall imMsgRecall);
/** /**
* 删除消息 * 删除消息
......
...@@ -15,6 +15,7 @@ import com.wecloud.im.param.ImConvMemeClientRemarkNameParam; ...@@ -15,6 +15,7 @@ import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ImConversationMembersListParam; import com.wecloud.im.param.ImConversationMembersListParam;
import com.wecloud.im.param.ImConversationMembersPageParam; import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo; import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate; import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImApplicationService; import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService; import com.wecloud.im.service.ImClientService;
...@@ -219,4 +220,14 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa ...@@ -219,4 +220,14 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
return imConversationMembersMapper.findThousandGroupsByClientId(clientId); return imConversationMembersMapper.findThousandGroupsByClientId(clientId);
} }
/**
* 批量设置群成员
* @param param
* @return
*/
@Override
public void setAdminsForConversation(SetAdminsParam param) {
imConversationMembersMapper.setAdminsForConversation(param);
}
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.wecloud.im.entity.ImApiMessageOnlineSend; import com.wecloud.im.entity.ImApiMessageOnlineSend;
import com.wecloud.im.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
...@@ -56,7 +57,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -56,7 +57,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 消息存储表 服务实现类 * 消息存储表 服务实现类
...@@ -197,7 +200,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -197,7 +200,7 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> updateMsgWithdrawById(ImMsgRecall imMsgRecall) { public ApiResult<Boolean> withdrawMsg(ImMsgRecall imMsgRecall) {
ImClient currentClient = imClientService.getCurentClient(); ImClient currentClient = imClientService.getCurentClient();
// 查询imApplication // 查询imApplication
ImApplication imApplication = imApplicationService.getCacheById(currentClient.getFkAppid()); ImApplication imApplication = imApplicationService.getCacheById(currentClient.getFkAppid());
...@@ -214,13 +217,16 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -214,13 +217,16 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
if (messageById.getWithdraw()) { if (messageById.getWithdraw()) {
return ApiResult.ok(); return ApiResult.ok();
} }
// 修改消息体 // 修改消息体
messageById.setWithdraw(Boolean.TRUE); messageById.setWithdraw(Boolean.TRUE);
messageById.setWithdrawTime(new Date()); messageById.setWithdrawTime(new Date());
// 清空消息 // 清空消息
messageById.setContent("{}"); messageById.setContent("{}");
boolean saveOk = this.updateById(messageById); boolean saveOk = this.updateById(messageById);
ImClient msgOwner = imClientService.getCacheImClient(messageById.getSender());
if (msgOwner == null) {
return ApiResult.fail("未查找到消息发送者");
}
if (saveOk) { if (saveOk) {
// 查询该会话所有成员 // 查询该会话所有成员
...@@ -262,7 +268,9 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -262,7 +268,9 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
imMessageOnlineSend.setType(MsgTypeEnum.MSG_WITHDRAW.getUriCode()); imMessageOnlineSend.setType(MsgTypeEnum.MSG_WITHDRAW.getUriCode());
imMessageOnlineSend.setMsgId(messageById.getId()); imMessageOnlineSend.setMsgId(messageById.getId());
imMessageOnlineSend.setSender(currentClient.getClientId()); imMessageOnlineSend.setSender(currentClient.getClientId());
imMessageOnlineSend.setContent(null); Map<String, Object> contentMap = Maps.newHashMap();
contentMap.put("msgOwner", msgOwner.getClientId());
imMessageOnlineSend.setContent(contentMap);
imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId()); imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId());
imMessageOnlineSend.setWithdraw(Boolean.TRUE); imMessageOnlineSend.setWithdraw(Boolean.TRUE);
imMessageOnlineSend.setEvent(Boolean.TRUE); imMessageOnlineSend.setEvent(Boolean.TRUE);
...@@ -317,6 +325,11 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -317,6 +325,11 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
message.setIsDelete(2); message.setIsDelete(2);
message.setUpdateDate(new Date()); message.setUpdateDate(new Date());
boolean saveOk = this.updateById(message); boolean saveOk = this.updateById(message);
ImClient msgOwner = imClientService.getCacheImClient(message.getSender());
if (msgOwner == null) {
return ApiResult.fail("未查找到消息发送者");
}
if (saveOk) { if (saveOk) {
// 查询该会话所有成员 // 查询该会话所有成员
List<ImConversationMembers> membersList = imConversationMembersService.list( List<ImConversationMembers> membersList = imConversationMembersService.list(
...@@ -356,7 +369,9 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -356,7 +369,9 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
imMessageOnlineSend.setType(MsgTypeEnum.MSG_DELETE.getUriCode()); imMessageOnlineSend.setType(MsgTypeEnum.MSG_DELETE.getUriCode());
imMessageOnlineSend.setMsgId(message.getId()); imMessageOnlineSend.setMsgId(message.getId());
imMessageOnlineSend.setSender(currentClient.getClientId()); imMessageOnlineSend.setSender(currentClient.getClientId());
imMessageOnlineSend.setContent(null); Map<String, Object> contentMap = Maps.newHashMap();
contentMap.put("msgOwner", msgOwner.getClientId());
imMessageOnlineSend.setContent(contentMap);
imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId()); imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId());
imMessageOnlineSend.setEvent(Boolean.TRUE); imMessageOnlineSend.setEvent(Boolean.TRUE);
...@@ -369,12 +384,6 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -369,12 +384,6 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
responseModel.setData(imMessageOnlineSend); responseModel.setData(imMessageOnlineSend);
responseModel.setReqId(null); responseModel.setReqId(null);
channelSender.sendMsg(responseModel, imClientReceiver.getId()); channelSender.sendMsg(responseModel, imClientReceiver.getId());
// 获取自定义推送字段
PushVO pushVO = param.getPush();
// 异步推送系统通知消息
asyncPush.push(pushVO, imClientReceiver, imApplication);
} }
return ApiResult.ok(); return ApiResult.ok();
} else { } else {
......
...@@ -49,4 +49,12 @@ ...@@ -49,4 +49,12 @@
where b.fk_client_id = #{clientId} and a.chat_type = 3 where b.fk_client_id = #{clientId} and a.chat_type = 3
</select> </select>
<update id="setAdminsForConversation">
update im_conversation_members set role = 2, update_time=NOW()
where fk_conversation_id = #{conversationId} and fk_client_id in
<foreach collection="clientIds" item="clientId" index="index" open="(" close=")" separator=",">
#{clientId}
</foreach>
</update>
</mapper> </mapper>
-- 在feature-cluster 2021年12月22日之后,需要执行的的sql增量脚本 -- 在feature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
...@@ -64,4 +64,6 @@ CREATE TABLE `im_friend_recommend` ...@@ -64,4 +64,6 @@ CREATE TABLE `im_friend_recommend`
ALTER TABLE `im_message` ALTER TABLE `im_message`
ADD COLUMN`msg_type` int(2) NULL DEFAULT NULL COMMENT '消息类型' AFTER`send_status`; ADD COLUMN`msg_type` int(2) NULL DEFAULT NULL COMMENT '消息类型' AFTER`send_status`;
ALTER TABLE im_message ADD COLUMN is_delete tinyint NOT NULL DEFAULT '1' COMMENT '是否删除 1-未删除 2-删除'; ALTER TABLE im_message ADD COLUMN is_delete tinyint NOT NULL DEFAULT '1' COMMENT '是否删除 1-未删除 2-删除';
\ No newline at end of file
ALTER TABLE im_conversation_members ADD COLUMN role tinyint NOT NULL DEFAULT '1' COMMENT '角色 1-普通群成员 2-管理员 3-群主';
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment