Commit 66505dce by hweeeeeei

将他人添加到会话

parent c8eba5d3
package com.wecloud.im.controller; package com.wecloud.im.controller;
import com.wecloud.im.param.add.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationCreate; 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.service.ImConversationService; import com.wecloud.im.service.ImConversationService;
...@@ -34,6 +35,30 @@ public class ImConversationController extends BaseController { ...@@ -34,6 +35,30 @@ public class ImConversationController extends BaseController {
private ImConversationService imConversationService; private ImConversationService imConversationService;
/** /**
* TODO 添加或修改会话拓展字段
*/
/**
* TODO 退出会话
*/
/**
* TODO 将client从会话移除
*/
/**
* 将用户添加进会话
*/
@PostMapping("addClient")
@ApiOperation(value = "将用户添加进会话", notes = "")
public ApiResult<Boolean> addClientToConversation(@RequestBody ImClientToConversation imClientToConversation) throws Exception {
return imConversationService.ImClientToConversation(imClientToConversation);
}
/**
* 创建会话 * 创建会话
*/ */
@PostMapping("/create") @PostMapping("/create")
......
package com.wecloud.im.param.add;
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 wei
* @since 2021年11月30日16:57:03
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ImClientToConversation")
public class ImClientToConversation extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("会话表id")
private Long conversationId;
@ApiModelProperty("可选 邀请加入会话的客户端,如创建单聊,则填入对方的clientId")
private List<String> clientIds;
}
...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; ...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.wecloud.im.entity.ImConversation; import com.wecloud.im.entity.ImConversation;
import com.wecloud.im.param.ImConversationPageParam; import com.wecloud.im.param.ImConversationPageParam;
import com.wecloud.im.param.ImConversationQueryVo; import com.wecloud.im.param.ImConversationQueryVo;
import com.wecloud.im.param.add.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationCreate; 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.vo.ImConversationCreateVo; import com.wecloud.im.vo.ImConversationCreateVo;
...@@ -40,6 +41,16 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -40,6 +41,16 @@ public interface ImConversationService extends BaseService<ImConversation> {
*/ */
ApiResult<ImConversationCreateVo> createImConversation(ImConversationCreate imConversationCreate) throws JsonProcessingException; ApiResult<ImConversationCreateVo> createImConversation(ImConversationCreate imConversationCreate) throws JsonProcessingException;
/**
* 将用户添加进会话
*
* @param imClientToConversation
* @return
* @throws JsonProcessingException
*/
ApiResult<Boolean> ImClientToConversation(ImClientToConversation imClientToConversation);
/** /**
* 修改 * 修改
* *
......
...@@ -14,6 +14,7 @@ import com.wecloud.im.entity.ImConversationMembers; ...@@ -14,6 +14,7 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.mapper.ImConversationMapper; import com.wecloud.im.mapper.ImConversationMapper;
import com.wecloud.im.param.ImConversationPageParam; import com.wecloud.im.param.ImConversationPageParam;
import com.wecloud.im.param.ImConversationQueryVo; import com.wecloud.im.param.ImConversationQueryVo;
import com.wecloud.im.param.add.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationCreate; 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.service.ImApplicationService; import com.wecloud.im.service.ImApplicationService;
...@@ -206,6 +207,41 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -206,6 +207,41 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
return ApiResult.ok(imConversationCreateVo); return ApiResult.ok(imConversationCreateVo);
} }
@Override
public ApiResult<Boolean> ImClientToConversation(ImClientToConversation imClientToConversation) {
// shiro线程中获取当前token
JwtToken curentJwtToken = JwtUtil.getCurentJwtToken();
// 根据appKey查询application
ImApplication imApplication = imApplicationService.getOneByAppKey(curentJwtToken.getAppKey());
// 将他人添加到会话
for (String id : imClientToConversation.getClientIds()) {
ImClient client2 = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, imApplication.getId())
.eq(ImClient::getClientId, id));
// 判断用户是否已经在该会话
imConversationMembersService.getOne(new QueryWrapper<ImConversationMembers>().lambda()
.eq(ImConversationMembers::getFkAppid, imApplication.getId())
.eq(ImConversationMembers::getFkConversationId, imClientToConversation.getConversationId())
.eq(ImConversationMembers::getFkClientId, client2.getId())
);
Long imConversationMembersId2 = SnowflakeUtil.getId();
ImConversationMembers imConversationMembers2 = new ImConversationMembers();
imConversationMembers2.setId(imConversationMembersId2);
imConversationMembers2.setCreateTime(new Date());
imConversationMembers2.setFkAppid(imApplication.getId());
imConversationMembers2.setFkConversationId(imClientToConversation.getConversationId());
imConversationMembers2.setFkClientId(client2.getId());
imConversationMembersService.save(imConversationMembers2);
}
return ApiResult.ok();
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean updateImConversation(ImConversation imConversation) throws Exception { public boolean updateImConversation(ImConversation imConversation) throws Exception {
......
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