Commit 04327fca by wei

1.服务端api:根据ID获取会话表详情;

2.est-api-会话成员信息表分页列表;
3.
parent f9230d11
package com.wecloud.im.controller.serverapi;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.vo.MyConversationListVo;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 会话表 控制器
*
* @author wei
* @since 2021-05-07
*/
@Slf4j
@RestController
@RequestMapping("/server/conversation")
@Api(value = "会话表API", tags = {"会话表"})
public class ApiImConversationController extends BaseController {
@Autowired
private ImConversationService imConversationService;
@Autowired
private ImApplicationService imApplicationService;
/**
* 获取会话表详情
*/
@GetMapping("/info")
@ApiOperation(value = "会话表详情")
public ApiResult<MyConversationListVo> getImConversation(@RequestParam("id") Long id
, @RequestHeader String appkey, @RequestHeader String appSecret) throws Exception {
// 根据appKey从数据库查询密钥
ImApplication imApplication = imApplicationService.getOneByAppKey(appkey);
if (imApplication == null) {
return ApiResult.result(ApiCode.FAIL, null);
}
// 校验appkey 和appSecret
if (!imApplication.getAppSecret().equals(appSecret)) {
return ApiResult.result(ApiCode.FAIL, null);
}
MyConversationListVo imConversationQueryVo = imConversationService.getImConversationInfoById(id);
return ApiResult.ok(imConversationQueryVo);
}
}
package com.wecloud.im.controller.serverapi;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.param.ApiImConversationMembersInfoPageParam;
import com.wecloud.im.param.ApiImConversationMembersInfoQueryVo;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.add.ImConversationMemApiAdd;
......@@ -9,6 +11,7 @@ import com.wecloud.im.service.ImConversationMembersService;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.core.validator.groups.Add;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
......@@ -46,6 +49,28 @@ public class ApiImConversationMembersController extends BaseController {
/**
* 会话成员表分页列表
*/
@PostMapping("/findInfoList")
@OperationLog(name = "rest-api-会话成员信息表分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "rest-api-会话成员信息表分页列表")
public ApiResult<Paging<ApiImConversationMembersInfoQueryVo>> getApiImConversationMembersInfoList(@Validated @RequestBody ApiImConversationMembersInfoPageParam apiImConversationMembersInfoPageParam,
@RequestHeader String appkey, @RequestHeader String appSecret) {
// 根据appKey从数据库查询密钥
ImApplication imApplication = imApplicationService.getOneByAppKey(appkey);
if (imApplication == null) {
return ApiResult.result(ApiCode.FAIL, null);
}
// 校验appkey 和appSecret
if (!imApplication.getAppSecret().equals(appSecret)) {
return ApiResult.result(ApiCode.FAIL, null);
}
return imConversationMembersService.getApiImConversationMembersInfoList(apiImConversationMembersInfoPageParam, imApplication);
}
/**
* 会话成员表分页列表
*/
@PostMapping("/findList")
@OperationLog(name = "rest-api-会话成员表分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "rest-api-会话成员表分页列表")
......@@ -70,7 +95,7 @@ public class ApiImConversationMembersController extends BaseController {
* 服务端api调用 将一名用户添加至会话: ${clientID}通过${type}加入会话 -1014
*/
@PostMapping("/add")
@ApiOperation(value = " 服务端api调用 将一名用户添加至会话:${clientID}通过${type}加入会话 -1014")
@ApiOperation(value = "服务端api调用 将一名用户添加至会话:${clientID}通过${type}加入会话 -1014")
public ApiResult<Boolean> addImConversationMembers(@Validated(Add.class) @RequestBody ImConversationMemApiAdd imConversationMemApiAdd
, @RequestHeader String appkey, @RequestHeader String appSecret) throws Exception {
// 根据appKey从数据库查询密钥
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.ApiImConversationMembersInfoQueryVo;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo;
......@@ -34,6 +35,8 @@ public interface ImConversationMembersMapper extends BaseMapper<ImConversationMe
List<ApiImConversationMembersQueryVo> getRestApiImConversationMembersList(@Param("conversationId") Long conversationId);
IPage<ApiImConversationMembersInfoQueryVo> getApiImConversationMembersInfoList(@Param("page") Page page, @Param("conversationId") Long conversationId);
List<ImConversationMemberListVo> getImConversationMembersList(@Param("conversationId") Long conversationId);
......
package com.wecloud.im.param;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* <pre>
* 会话成员表 分页参数对象
* </pre>
*
* @author wei
* @date 2021-05-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "ApiImConversationMembersInfoPageParam")
public class ApiImConversationMembersInfoPageParam extends BasePageOrderParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会话表id", required = true)
private Long conversationId;
}
package com.wecloud.im.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <pre>
* 会话成员信息表 查询结果对象
* </pre>
*
* @author wei
* @date 2021-05-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "ApiImConversationMembersInfoQueryVo")
public class ApiImConversationMembersInfoQueryVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("会话中client的备注名")
private String clientRemarkName;
@ApiModelProperty("头像")
private String headPortrait;
@ApiModelProperty("主昵称")
private String nickname;
@ApiModelProperty("clientId")
private String clientId;
}
\ No newline at end of file
......@@ -2,6 +2,8 @@ package com.wecloud.im.service;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.ApiImConversationMembersInfoPageParam;
import com.wecloud.im.param.ApiImConversationMembersInfoQueryVo;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
......@@ -35,10 +37,10 @@ public interface ImConversationMembersService extends BaseService<ImConversation
*/
ApiResult<List<ApiImConversationMembersQueryVo>> getRestApiImConversationMembersList(ApiImConversationMembersPageParam apiImConversationMembersPageParam, ImApplication imApplication);
ApiResult<Paging<ApiImConversationMembersInfoQueryVo>> getApiImConversationMembersInfoList(ApiImConversationMembersInfoPageParam apiImConversationMembersInfoPageParam, ImApplication imApplication);
ApiResult<Boolean> saveOrUpdateClientRemarkName(ImConvMemeClientRemarkNameParam imConvMemeClientRemarkNameParam);
/**
* 会话成员表分页列表
*
......
......@@ -13,6 +13,8 @@ import com.wecloud.im.entity.ImMessage;
import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.mapper.ImConversationMapper;
import com.wecloud.im.mapper.ImConversationMembersMapper;
import com.wecloud.im.param.ApiImConversationMembersInfoPageParam;
import com.wecloud.im.param.ApiImConversationMembersInfoQueryVo;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
......@@ -93,6 +95,18 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
}
@Override
public ApiResult<Paging<ApiImConversationMembersInfoQueryVo>> getApiImConversationMembersInfoList(ApiImConversationMembersInfoPageParam apiImConversationMembersInfoPageParam, ImApplication imApplication) {
Page<ImConversationMembersQueryVo> page = new PageInfo<>(apiImConversationMembersInfoPageParam, OrderItem.desc(getLambdaColumn(ImConversationMembers::getCreateTime)));
IPage<ApiImConversationMembersInfoQueryVo> iPage = imConversationMembersMapper.getApiImConversationMembersInfoList(page, apiImConversationMembersInfoPageParam.getConversationId());
Paging<ApiImConversationMembersInfoQueryVo> paging = new Paging<>(iPage);
return ApiResult.ok(paging);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> saveOrUpdateClientRemarkName(ImConvMemeClientRemarkNameParam imConvMemeClientRemarkNameParam) {
......
......@@ -42,5 +42,19 @@
WHERE im_conversation_members.fk_conversation_id = #{conversationId}
</select>
<select id="getApiImConversationMembersInfoList"
resultType="com.wecloud.im.param.ApiImConversationMembersInfoQueryVo">
SELECT im_client.client_id as clientId,
im_conversation_members.client_remark_name as clientRemarkName,
im_client.head_portrait as headPortrait,
im_client.nickname,
im_conversation_members.attributes AS memberAttributes,
im_client.attributes AS clientAttributes
FROM im_conversation_members AS im_conversation_members
INNER JOIN im_client AS im_client ON im_client.id = im_conversation_members.fk_client_id
WHERE im_conversation_members.fk_conversation_id = #{conversationId}
</select>
</mapper>
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