Commit 9f0193f9 by 罗长华

1、增加了ActionRequestHolder用于传递ActionRequest

2、调整对应的Action、Service代码
parent 0ce048a0
...@@ -18,8 +18,11 @@ import com.wecloud.dispatch.registry.ActionBoxRegistry; ...@@ -18,8 +18,11 @@ import com.wecloud.dispatch.registry.ActionBoxRegistry;
import com.wecloud.dispatch.registry.ActionInterceptorRegistry; import com.wecloud.dispatch.registry.ActionInterceptorRegistry;
import com.wecloud.dispatch.registry.ActionRegistry; import com.wecloud.dispatch.registry.ActionRegistry;
import com.wecloud.dispatch.registry.MethodArgumentResolverRegistry; import com.wecloud.dispatch.registry.MethodArgumentResolverRegistry;
import com.wecloud.dispatch.util.ActionRequestHolder;
import io.netty.channel.Channel; import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
...@@ -49,9 +52,14 @@ public class ActionDispatcher { ...@@ -49,9 +52,14 @@ public class ActionDispatcher {
} }
public Object action(ActionMessage am) { public Object action(ActionMessage am) {
ActionRequest request = getActionRequest(am); // modify by luozh 2022/04/03 获取到ActionRequest后保存到ThreadLocal,便于后面业务获取
try {
return action(request, getArgumentBox()); ActionRequest request = getActionRequest(am);
ActionRequestHolder.setActionRequest(request);
return action(request, getArgumentBox());
} finally {
ActionRequestHolder.remove();
}
} }
public Object action(ActionMessage am, ArgumentBox argumentBox) { public Object action(ActionMessage am, ArgumentBox argumentBox) {
......
package com.wecloud.dispatch.util;
import com.wecloud.dispatch.extend.ActionRequest;
/**
* 记录websocket请求详情信息到当前线程中
* @Author luozh
* @Date 2022年04月03日 23:14
* @Version 1.0
*/
public class ActionRequestHolder {
private static final ThreadLocal<ActionRequest> THREAD_LOCAL = new ThreadLocal<>();
/**
* 从当前线程中获取请求信息
*/
public static ActionRequest getActionRequest() {
return THREAD_LOCAL.get();
}
/**
* 设置请求信息到当前线程中
*
* @param actionRequest
*/
public static void setActionRequest(ActionRequest actionRequest) {
THREAD_LOCAL.set(actionRequest);
}
/**
* 销毁
*/
public static void remove() {
THREAD_LOCAL.remove();
}
}
...@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.wecloud.dispatch.annotation.ActionMapping; import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.param.ImClientBlacklistPageParam; import com.wecloud.im.param.ImClientBlacklistPageParam;
import com.wecloud.im.param.ImClientBlacklistQueryVo; import com.wecloud.im.param.ImClientBlacklistQueryVo;
import com.wecloud.im.param.add.ImClientBlacklistUpdate; import com.wecloud.im.param.add.ImClientBlacklistUpdate;
...@@ -26,7 +25,7 @@ import com.wecloud.im.ws.model.WsResponse; ...@@ -26,7 +25,7 @@ import com.wecloud.im.ws.model.WsResponse;
*/ */
@Slf4j @Slf4j
@Component @Component
@ActionMapping(value = "/blacklist") @ActionMapping(value = "/im/blacklist")
@Api(value = "ws-黑名单API", tags = {"黑名单"}) @Api(value = "ws-黑名单API", tags = {"黑名单"})
public class BlacklistAction { public class BlacklistAction {
...@@ -38,8 +37,8 @@ public class BlacklistAction { ...@@ -38,8 +37,8 @@ public class BlacklistAction {
*/ */
@ActionMapping("/add") @ActionMapping("/add")
@ApiOperation(value = "拉入黑名单") @ApiOperation(value = "拉入黑名单")
public WsResponse<Boolean> addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate data) { public WsResponse<Boolean> addImClientBlacklist(ImClientBlacklistUpdate data) {
imClientBlacklistService.addImClientBlacklist(request, data); imClientBlacklistService.addImClientBlacklist(data);
return WsResponse.ok(); return WsResponse.ok();
} }
...@@ -49,8 +48,8 @@ public class BlacklistAction { ...@@ -49,8 +48,8 @@ public class BlacklistAction {
*/ */
@ActionMapping("/delete") @ActionMapping("/delete")
@ApiOperation(value = "移出黑名单") @ApiOperation(value = "移出黑名单")
public WsResponse<Boolean> deleteImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate data) { public WsResponse<Boolean> deleteImClientBlacklist(ImClientBlacklistUpdate data) {
imClientBlacklistService.removeImClientBlacklist(request, data); imClientBlacklistService.removeImClientBlacklist(data);
return WsResponse.ok(); return WsResponse.ok();
} }
...@@ -60,9 +59,9 @@ public class BlacklistAction { ...@@ -60,9 +59,9 @@ public class BlacklistAction {
@ActionMapping("/getPageList") @ActionMapping("/getPageList")
@OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE) @OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "黑名单分页列表") @ApiOperation(value = "黑名单分页列表")
public WsResponse<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam data) { public WsResponse<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam data) {
Paging<ImClientBlacklistQueryVo> blacklist = Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageList(request, data); imClientBlacklistService.getImClientBlacklistPageList(data);
return WsResponse.ok(blacklist); return WsResponse.ok(blacklist);
} }
} }
package com.wecloud.im.action; package com.wecloud.im.action;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import io.geekidea.springbootplus.framework.shiro.util.JwtUtil;
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;
...@@ -15,7 +12,6 @@ import org.springframework.stereotype.Component; ...@@ -15,7 +12,6 @@ import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping; import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.param.ClientInfoParam; import com.wecloud.im.param.ClientInfoParam;
...@@ -43,7 +39,7 @@ import com.wecloud.im.ws.model.WsResponse; ...@@ -43,7 +39,7 @@ import com.wecloud.im.ws.model.WsResponse;
*/ */
@Slf4j @Slf4j
@Component @Component
@ActionMapping("/client") @ActionMapping("/im/client")
@Api(value = "ws-终端", tags = {"终端"}) @Api(value = "ws-终端", tags = {"终端"})
public class ClientAction { public class ClientAction {
...@@ -64,16 +60,16 @@ public class ClientAction { ...@@ -64,16 +60,16 @@ public class ClientAction {
*/ */
@ActionMapping("/myInfo") @ActionMapping("/myInfo")
@ApiOperation(value = "查询我的信息") @ApiOperation(value = "查询我的信息")
public WsResponse<MyInfoVo> myInfo(ActionRequest request) { public WsResponse<MyInfoVo> myInfo() {
MyInfoVo myInfo = imClientService.getMyInfo(request); MyInfoVo myInfo = imClientService.getMyInfo();
return WsResponse.ok(myInfo); return WsResponse.ok(myInfo);
} }
@ActionMapping("/infoList") @ActionMapping("/infoList")
@ApiOperation(value = "根据id获取Client的头像昵称") @ApiOperation(value = "根据id获取Client的头像昵称")
public WsResponse<List<GetInfoListVo>> getInfoList(ActionRequest request, GetClientInfoParam data) throws Exception { public WsResponse<List<GetInfoListVo>> getInfoList(GetClientInfoParam data) throws Exception {
return WsResponse.ok(imClientService.getInfoList(request, data)); return WsResponse.ok(imClientService.getInfoList(data));
} }
/** /**
...@@ -81,34 +77,34 @@ public class ClientAction { ...@@ -81,34 +77,34 @@ public class ClientAction {
*/ */
@ActionMapping("/clientInfo") @ActionMapping("/clientInfo")
@ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人") @ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人")
public WsResponse<ClientInfoVo> getClientInfo(ActionRequest request, ClientInfoParam data) { public WsResponse<ClientInfoVo> getClientInfo(ClientInfoParam data) {
ClientInfoVo clientInfoVo = imClientService.getClientInfo(request, data); ClientInfoVo clientInfoVo = imClientService.getClientInfo(data);
return WsResponse.ok(clientInfoVo); return WsResponse.ok(clientInfoVo);
} }
@ActionMapping("/updateHeadAndNickname") @ActionMapping("/updateHeadAndNickname")
@ApiOperation(value = "添加或修改头像和昵称") @ApiOperation(value = "添加或修改头像和昵称")
public WsResponse<Boolean> updateHeadAndNickname(ActionRequest request, ImClientHeadPortraitAndNicknameUpdate data) throws Exception { public WsResponse<Boolean> updateHeadAndNickname(ImClientHeadPortraitAndNicknameUpdate data) throws Exception {
log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(data)); log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadAndNickname(request, data); boolean flag = imClientService.updateHeadAndNickname(data);
return WsResponse.ok(flag); return WsResponse.ok(flag);
} }
@ActionMapping("/updateHeadPortrait") @ActionMapping("/updateHeadPortrait")
@ApiOperation(value = "添加或修改头像") @ApiOperation(value = "添加或修改头像")
public WsResponse<Boolean> updateHeadPortrait(ActionRequest request, ImClientHeadPortraitAdd data) throws Exception { public WsResponse<Boolean> updateHeadPortrait(ImClientHeadPortraitAdd data) throws Exception {
log.info("添加或修改头像入参 {}", JSON.toJSONString(data)); log.info("添加或修改头像入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadPortrait(request, data); boolean flag = imClientService.updateHeadPortrait(data);
return WsResponse.ok(flag); return WsResponse.ok(flag);
} }
@ActionMapping("/updateNickname") @ActionMapping("/updateNickname")
@ApiOperation(value = "添加或修改主昵称") @ApiOperation(value = "添加或修改主昵称")
public WsResponse<Boolean> updateNickname(ActionRequest request, ImClientNicknameAdd data) throws Exception { public WsResponse<Boolean> updateNickname(ImClientNicknameAdd data) throws Exception {
log.info("添加或修改主昵称入参 {}", JSON.toJSONString(data)); log.info("添加或修改主昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateNickname(request, data); boolean flag = imClientService.updateNickname(data);
return WsResponse.ok(flag); return WsResponse.ok(flag);
} }
...@@ -121,9 +117,9 @@ public class ClientAction { ...@@ -121,9 +117,9 @@ public class ClientAction {
*/ */
@ActionMapping("/logout") @ActionMapping("/logout")
@ApiOperation(value = "退出登陆 清除推送token等") @ApiOperation(value = "退出登陆 清除推送token等")
public WsResponse<Boolean> logout(ActionRequest request, LogoutParam param) { public WsResponse<Boolean> logout(LogoutParam param) {
log.info("退出登陆入参 {}", JSON.toJSONString(param)); log.info("退出登陆入参 {}", JSON.toJSONString(param));
boolean flag = imClientService.logout(request, param); boolean flag = imClientService.logout(param);
return WsResponse.ok(flag); return WsResponse.ok(flag);
} }
...@@ -134,10 +130,10 @@ public class ClientAction { ...@@ -134,10 +130,10 @@ public class ClientAction {
*/ */
@ActionMapping("/onlineStatus") @ActionMapping("/onlineStatus")
@ApiOperation(value = "获取用户在线状态(批量)") @ApiOperation(value = "获取用户在线状态(批量)")
public WsResponse<List<ImOnlineStatusVo>> getOnlineStatus(ActionRequest request, public WsResponse<List<ImOnlineStatusVo>> getOnlineStatus(
GetOnlineStatusParam getOnlineStatusParam) { GetOnlineStatusParam getOnlineStatusParam) {
// shiro线程中获取当前token // shiro线程中获取当前token
ImClient imClient = contextService.getImClientIfNotNullOrThrow(request); ImClient imClient = contextService.getImClientIfNotNullOrThrow();
ImApplication imApplication = contextService.getImApplicationIfNotNullOrThrow(imClient.getFkAppid()); ImApplication imApplication = contextService.getImApplicationIfNotNullOrThrow(imClient.getFkAppid());
ArrayList<ImOnlineStatusVo> imOnlineStatusVos = new ArrayList<>(); ArrayList<ImOnlineStatusVo> imOnlineStatusVos = new ArrayList<>();
......
package com.wecloud.im.action;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.im.param.DisbandConversationParam;
import com.wecloud.im.param.ImConversationQueryParam;
import com.wecloud.im.param.MutedGroupMemberParam;
import com.wecloud.im.param.MutedGroupParam;
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.ImClientToConversation;
import com.wecloud.im.param.add.ImConversationAttrUpdate;
import com.wecloud.im.param.add.ImConversationCreate;
import com.wecloud.im.param.add.ImConversationDisplayUpdate;
import com.wecloud.im.param.add.ImConversationNameUpdate;
import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.vo.ConversationVo;
import com.wecloud.im.vo.ImConversationCreateVo;
import com.wecloud.im.ws.model.WsResponse;
/**
*
* @Author luozh
* @Date 2022年04月02日 16:39
* @Version 1.0
*/
@Slf4j
@Component
@ActionMapping(value = "/im/conversation")
@Api(value = "ws-会话表API", tags = {"会话表"})
public class ConversationAction {
@Autowired
private ImConversationService imConversationService;
/**
* 添加或修改会话名称
*/
@ActionMapping("/saveOrUpdateName")
@ApiOperation(value = "添加或修改会话名称", notes = "权限:目前只有创建者有权限操作")
public WsResponse<Boolean> saveOrUpdateName(ImConversationNameUpdate data) {
log.info("添加或修改会话名称入参 {}", JSON.toJSONString(data));
imConversationService.saveOrUpdateName(data);
return WsResponse.ok();
}
/**
* 添加或修改会话拓展字段
*/
@ActionMapping("/saveOrUpdateAttr")
@ApiOperation(value = "添加或修改会话拓展字段", notes = "权限:所有client都权限操作")
public WsResponse<Boolean> saveOrUpdateAttr(ImConversationAttrUpdate imConversationAttrUpdate) {
imConversationService.saveOrUpdateAttr(imConversationAttrUpdate);
return WsResponse.ok();
}
/**
* client退出会话
*/
@ActionMapping("/leave")
@ApiOperation(value = "client退出会话", notes = "若是创建者退出,[创建者]权限将会转移给按加入会话时间排序的下一个client")
public WsResponse<Boolean> leaveConversation(ImClientLeaveConversation imClientToConversation) {
log.info("client退出会话入参 {}", JSON.toJSONString(imClientToConversation));
imConversationService.leaveConversation(imClientToConversation);
return WsResponse.ok();
}
/**
* 将client从会话移除
*/
@ActionMapping("/delClient")
@ApiOperation(value = "将client从会话移除", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> delClientToConversation(ImClientToConversation imClientToConversation) throws Exception {
log.info("将client从会话移除入参 {}", JSON.toJSONString(imClientToConversation));
return WsResponse.ok(imConversationService.delClientToConversation(imClientToConversation));
}
/**
* 解散群聊
*/
@ActionMapping("/disband")
@ApiOperation(value = "解散群聊", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> disband(DisbandConversationParam param) throws Exception {
log.info("解散群聊入参 {}", JSON.toJSONString(param));
imConversationService.disband(param);
return WsResponse.ok();
}
/**
* 将用户添加进会话
*/
@ActionMapping("/addClient")
@ApiOperation(value = "将用户添加进会话", notes = "权限:会话中所有client都有权限操作")
public WsResponse<Boolean> addClientToConversation(ImClientToConversation imClientToConversation) throws Exception {
log.info("将用户添加进会话入参 {}", JSON.toJSONString(imClientToConversation));
imConversationService.addClientToConversation(imClientToConversation);
return WsResponse.ok();
}
/**
* 创建会话
*/
@ActionMapping("/create")
@ApiOperation(value = "创建会话", notes = "后台可配置:两个客户端如果已经创建过会话,是否重复创建会话")
public WsResponse<ImConversationCreateVo> createImConversation(ImConversationCreate imConversationCreate) throws Exception {
log.info("创建会话入参 {}", JSON.toJSONString(imConversationCreate));
ImConversationCreateVo vo = imConversationService.createImConversation(imConversationCreate);
return WsResponse.ok(vo);
}
/**
* 群主转让
*/
@ActionMapping("/transferOwner")
@ApiOperation(value = "群主转让", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> transferOwner(TransferOwnerParam param) {
log.info("群主转让入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.transferOwner(param);
return WsResponse.ok(result);
}
/**
* 设置群管理员
*/
@ActionMapping("/setAdmins")
@ApiOperation(value = "设置群管理员", notes = "权限:目前只有群主有权限操作")
public WsResponse<Boolean> setAdmins(@Validated SetAdminsParam param) {
log.info("设置群管理员入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
Boolean result = imConversationService.setAdmins(param);
return WsResponse.ok(result);
}
/**
* 群禁言、取消群禁言
*/
@ActionMapping("/mutedGroup")
@ApiOperation(value = "群禁言、取消群禁言", notes = "权限:群主和管理员有权限操作")
public WsResponse<Boolean> mutedGroup(@Validated MutedGroupParam param) {
log.info("群禁言、取消群禁言入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.mutedGroup(param);
return WsResponse.ok(result);
}
/**
* 选择禁言
*/
@ActionMapping("/mutedGroupMember")
@ApiOperation(value = "选择禁言", notes = "权限:群主和管理员有权限操作")
public WsResponse<Boolean> mutedGroupMember(@Validated MutedGroupMemberParam param) {
log.info("选择禁言入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) {
return WsResponse.fail(ApiCode.PARAMETER_EXCEPTION, null);
}
Boolean result = imConversationService.mutedGroupMember(param);
return WsResponse.ok(result);
}
/**
* 查询用户加入的所有会话 与每个会话的未读条数 成员
*/
@ActionMapping("/getList")
@ApiOperation(value = "查询加入的会话列表", notes = "查询用户加入的非隐藏状态的会话列表 与每个会话的未读条数 成员")
public WsResponse<List<ConversationVo>> getMyImConversationListAndMsgCount() {
List<ConversationVo> conversationList = imConversationService.getMyImConversationListAndMsgCount();
return WsResponse.ok(conversationList);
}
/**
* 根据会话id查询指定会话信息
*/
@ActionMapping("/info")
@ApiOperation(value = "根据会话id查询指定会话信息", notes = "根据会话id查询指定会话信息 与每个会话的未读条数")
public WsResponse<ConversationVo> info(@Validated ImConversationQueryParam param) throws Exception {
ConversationVo conversationVo = imConversationService.infoImConversationAndMsgCount(param);
return WsResponse.ok(conversationVo);
}
/**
* 批量修改单向隐藏或显示会话
*/
@ActionMapping("/displayUpdate")
@ApiOperation(value = "批量修改单向隐藏或显示会话", notes = "拉取会话列表不展示已隐藏状态的会话,云端聊天记录不删除;假设有A和B两个用户,A删会话,B还能发; 如果B发了消息,A这边要重新把会话显示出来,并能显示之前的聊天记录")
public ApiResult<Boolean> updateDisplayConversation(ImConversationDisplayUpdate imConversationDisplayUpdate) throws Exception {
imConversationService.updateDisplayConversation(imConversationDisplayUpdate);
return ApiResult.result(true);
}
}
...@@ -43,7 +43,7 @@ public class ImClientBlacklistController extends BaseController { ...@@ -43,7 +43,7 @@ public class ImClientBlacklistController extends BaseController {
@PostMapping("/add") @PostMapping("/add")
@ApiOperation(value = "拉入黑名单") @ApiOperation(value = "拉入黑名单")
public ApiResult<Boolean> addImClientBlacklist(@Validated(Add.class) @RequestBody ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception { public ApiResult<Boolean> addImClientBlacklist(@Validated(Add.class) @RequestBody ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception {
imClientBlacklistService.addImClientBlacklist(null, imClientBlacklistUpdate); imClientBlacklistService.addImClientBlacklist(imClientBlacklistUpdate);
return ApiResult.ok(); return ApiResult.ok();
} }
...@@ -54,7 +54,7 @@ public class ImClientBlacklistController extends BaseController { ...@@ -54,7 +54,7 @@ public class ImClientBlacklistController extends BaseController {
@PostMapping("/delete") @PostMapping("/delete")
@ApiOperation(value = "移出黑名单") @ApiOperation(value = "移出黑名单")
public ApiResult<Boolean> deleteImClientBlacklist(@RequestBody ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception { public ApiResult<Boolean> deleteImClientBlacklist(@RequestBody ImClientBlacklistUpdate imClientBlacklistUpdate) throws Exception {
imClientBlacklistService.removeImClientBlacklist(null, imClientBlacklistUpdate); imClientBlacklistService.removeImClientBlacklist(imClientBlacklistUpdate);
return ApiResult.ok(); return ApiResult.ok();
} }
...@@ -66,7 +66,7 @@ public class ImClientBlacklistController extends BaseController { ...@@ -66,7 +66,7 @@ public class ImClientBlacklistController extends BaseController {
@ApiOperation(value = "黑名单分页列表") @ApiOperation(value = "黑名单分页列表")
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception { public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
Paging<ImClientBlacklistQueryVo> blacklist = Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageList(null, imClientBlacklistPageParam); imClientBlacklistService.getImClientBlacklistPageList(imClientBlacklistPageParam);
return ApiResult.ok(blacklist); return ApiResult.ok(blacklist);
} }
......
...@@ -66,7 +66,7 @@ public class ImClientController extends BaseController { ...@@ -66,7 +66,7 @@ public class ImClientController extends BaseController {
@PostMapping("/myInfo") @PostMapping("/myInfo")
@ApiOperation(value = "查询我的信息") @ApiOperation(value = "查询我的信息")
public ApiResult<MyInfoVo> myInfo() { public ApiResult<MyInfoVo> myInfo() {
MyInfoVo myInfo = imClientService.getMyInfo(null); MyInfoVo myInfo = imClientService.getMyInfo();
return ApiResult.ok(myInfo); return ApiResult.ok(myInfo);
} }
...@@ -74,7 +74,7 @@ public class ImClientController extends BaseController { ...@@ -74,7 +74,7 @@ public class ImClientController extends BaseController {
@PostMapping("/infoList") @PostMapping("/infoList")
@ApiOperation(value = "根据id获取Client的头像昵称") @ApiOperation(value = "根据id获取Client的头像昵称")
public ApiResult<List<GetInfoListVo>> getInfoList(@Validated(Add.class) @RequestBody GetClientInfoParam getClientInfoParam) throws Exception { public ApiResult<List<GetInfoListVo>> getInfoList(@Validated(Add.class) @RequestBody GetClientInfoParam getClientInfoParam) throws Exception {
return ApiResult.ok(imClientService.getInfoList(null, getClientInfoParam)); return ApiResult.ok(imClientService.getInfoList(getClientInfoParam));
} }
/** /**
...@@ -86,7 +86,7 @@ public class ImClientController extends BaseController { ...@@ -86,7 +86,7 @@ public class ImClientController extends BaseController {
if (param == null) { if (param == null) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null); return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
} }
ClientInfoVo clientInfoVo = imClientService.getClientInfo(null, param); ClientInfoVo clientInfoVo = imClientService.getClientInfo(param);
return ApiResult.ok(clientInfoVo); return ApiResult.ok(clientInfoVo);
} }
...@@ -107,7 +107,7 @@ public class ImClientController extends BaseController { ...@@ -107,7 +107,7 @@ public class ImClientController extends BaseController {
@ApiOperation(value = "添加或修改头像和昵称") @ApiOperation(value = "添加或修改头像和昵称")
public ApiResult<Boolean> updateHeadAndNickname(@Validated(Add.class) @RequestBody ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate) throws Exception { public ApiResult<Boolean> updateHeadAndNickname(@Validated(Add.class) @RequestBody ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate) throws Exception {
log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(imClientHeadPortraitAndNicknameUpdate)); log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(imClientHeadPortraitAndNicknameUpdate));
boolean flag = imClientService.updateHeadAndNickname(null, imClientHeadPortraitAndNicknameUpdate); boolean flag = imClientService.updateHeadAndNickname(imClientHeadPortraitAndNicknameUpdate);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -116,7 +116,7 @@ public class ImClientController extends BaseController { ...@@ -116,7 +116,7 @@ public class ImClientController extends BaseController {
@ApiOperation(value = "添加或修改头像") @ApiOperation(value = "添加或修改头像")
public ApiResult<Boolean> updateHeadPortrait(@Validated(Add.class) @RequestBody ImClientHeadPortraitAdd imClientHeadPortraitAdd) throws Exception { public ApiResult<Boolean> updateHeadPortrait(@Validated(Add.class) @RequestBody ImClientHeadPortraitAdd imClientHeadPortraitAdd) throws Exception {
log.info("添加或修改头像入参 {}", JSON.toJSONString(imClientHeadPortraitAdd)); log.info("添加或修改头像入参 {}", JSON.toJSONString(imClientHeadPortraitAdd));
boolean flag = imClientService.updateHeadPortrait(null, imClientHeadPortraitAdd); boolean flag = imClientService.updateHeadPortrait(imClientHeadPortraitAdd);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -124,7 +124,7 @@ public class ImClientController extends BaseController { ...@@ -124,7 +124,7 @@ public class ImClientController extends BaseController {
@ApiOperation(value = "添加或修改主昵称") @ApiOperation(value = "添加或修改主昵称")
public ApiResult<Boolean> updateNickname(@Validated(Add.class) @RequestBody ImClientNicknameAdd imClientNicknameAdd) throws Exception { public ApiResult<Boolean> updateNickname(@Validated(Add.class) @RequestBody ImClientNicknameAdd imClientNicknameAdd) throws Exception {
log.info("添加或修改主昵称入参 {}", JSON.toJSONString(imClientNicknameAdd)); log.info("添加或修改主昵称入参 {}", JSON.toJSONString(imClientNicknameAdd));
boolean flag = imClientService.updateNickname(null, imClientNicknameAdd); boolean flag = imClientService.updateNickname(imClientNicknameAdd);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -139,7 +139,7 @@ public class ImClientController extends BaseController { ...@@ -139,7 +139,7 @@ public class ImClientController extends BaseController {
@ApiOperation(value = "退出登陆 清除推送token等") @ApiOperation(value = "退出登陆 清除推送token等")
public ApiResult<Boolean> logout(@RequestBody @Validated LogoutParam param) { public ApiResult<Boolean> logout(@RequestBody @Validated LogoutParam param) {
log.info("退出登陆入参 {}", JSON.toJSONString(param)); log.info("退出登陆入参 {}", JSON.toJSONString(param));
boolean flag = imClientService.logout(null, param); boolean flag = imClientService.logout(param);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
......
package com.wecloud.im.controller; package com.wecloud.im.controller;
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 java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wecloud.im.param.DisbandConversationParam; import com.wecloud.im.param.DisbandConversationParam;
import com.wecloud.im.param.ImConversationQueryParam; import com.wecloud.im.param.ImConversationQueryParam;
...@@ -16,21 +33,6 @@ import com.wecloud.im.param.add.ImConversationNameUpdate; ...@@ -16,21 +33,6 @@ import com.wecloud.im.param.add.ImConversationNameUpdate;
import com.wecloud.im.service.ImConversationService; import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.vo.ConversationVo; import com.wecloud.im.vo.ConversationVo;
import com.wecloud.im.vo.ImConversationCreateVo; 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.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 会话表 控制器 * 会话表 控制器
...@@ -78,7 +80,7 @@ public class ImConversationController extends BaseController { ...@@ -78,7 +80,7 @@ public class ImConversationController extends BaseController {
@ApiOperation(value = "client退出会话", notes = "若是创建者退出,[创建者]权限将会转移给按加入会话时间排序的下一个client") @ApiOperation(value = "client退出会话", notes = "若是创建者退出,[创建者]权限将会转移给按加入会话时间排序的下一个client")
public ApiResult<Boolean> leaveConversation(@RequestBody ImClientLeaveConversation imClientToConversation) { public ApiResult<Boolean> leaveConversation(@RequestBody ImClientLeaveConversation imClientToConversation) {
log.info("client退出会话入参 {}", JSON.toJSONString(imClientToConversation)); log.info("client退出会话入参 {}", JSON.toJSONString(imClientToConversation));
return imConversationService.leaveConversation(imClientToConversation); return ApiResult.ok(imConversationService.leaveConversation(imClientToConversation));
} }
...@@ -89,7 +91,7 @@ public class ImConversationController extends BaseController { ...@@ -89,7 +91,7 @@ public class ImConversationController extends BaseController {
@ApiOperation(value = "将client从会话移除", notes = "权限:目前只有群主有权限操作") @ApiOperation(value = "将client从会话移除", notes = "权限:目前只有群主有权限操作")
public ApiResult<Boolean> delClientToConversation(@RequestBody ImClientToConversation imClientToConversation) throws Exception { public ApiResult<Boolean> delClientToConversation(@RequestBody ImClientToConversation imClientToConversation) throws Exception {
log.info("将client从会话移除入参 {}", JSON.toJSONString(imClientToConversation)); log.info("将client从会话移除入参 {}", JSON.toJSONString(imClientToConversation));
return imConversationService.delClientToConversation(imClientToConversation); return ApiResult.ok(imConversationService.delClientToConversation(imClientToConversation));
} }
/** /**
...@@ -111,7 +113,7 @@ public class ImConversationController extends BaseController { ...@@ -111,7 +113,7 @@ public class ImConversationController extends BaseController {
@ApiOperation(value = "将用户添加进会话", notes = "权限:会话中所有client都有权限操作") @ApiOperation(value = "将用户添加进会话", notes = "权限:会话中所有client都有权限操作")
public ApiResult<Boolean> addClientToConversation(@RequestBody ImClientToConversation imClientToConversation) throws Exception { public ApiResult<Boolean> addClientToConversation(@RequestBody ImClientToConversation imClientToConversation) throws Exception {
log.info("将用户添加进会话入参 {}", JSON.toJSONString(imClientToConversation)); log.info("将用户添加进会话入参 {}", JSON.toJSONString(imClientToConversation));
return imConversationService.addClientToConversation(imClientToConversation); return ApiResult.ok(imConversationService.addClientToConversation(imClientToConversation));
} }
/** /**
...@@ -121,7 +123,7 @@ public class ImConversationController extends BaseController { ...@@ -121,7 +123,7 @@ public class ImConversationController extends BaseController {
@ApiOperation(value = "创建会话", notes = "后台可配置:两个客户端如果已经创建过会话,是否重复创建会话") @ApiOperation(value = "创建会话", notes = "后台可配置:两个客户端如果已经创建过会话,是否重复创建会话")
public ApiResult<ImConversationCreateVo> createImConversation(@RequestBody ImConversationCreate imConversationCreate) throws Exception { public ApiResult<ImConversationCreateVo> createImConversation(@RequestBody ImConversationCreate imConversationCreate) throws Exception {
log.info("创建会话入参 {}", JSON.toJSONString(imConversationCreate)); log.info("创建会话入参 {}", JSON.toJSONString(imConversationCreate));
return imConversationService.createImConversation(imConversationCreate); return ApiResult.ok(imConversationService.createImConversation(imConversationCreate));
} }
/** /**
...@@ -129,7 +131,7 @@ public class ImConversationController extends BaseController { ...@@ -129,7 +131,7 @@ public class ImConversationController extends BaseController {
*/ */
@PostMapping("/transferOwner") @PostMapping("/transferOwner")
@ApiOperation(value = "群主转让", notes = "权限:目前只有群主有权限操作") @ApiOperation(value = "群主转让", notes = "权限:目前只有群主有权限操作")
public ApiResult<Boolean> transferOwner(@RequestBody TransferOwnerParam param) { public ApiResult<Boolean> transferOwner(@RequestBody TransferOwnerParam param) {
log.info("群主转让入参 {}", JSON.toJSONString(param)); log.info("群主转让入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.transferOwner(param); Boolean result = imConversationService.transferOwner(param);
return ApiResult.ok(result); return ApiResult.ok(result);
...@@ -140,7 +142,7 @@ public class ImConversationController extends BaseController { ...@@ -140,7 +142,7 @@ public class ImConversationController extends BaseController {
*/ */
@PostMapping("/setAdmins") @PostMapping("/setAdmins")
@ApiOperation(value = "设置群管理员", notes = "权限:目前只有群主有权限操作") @ApiOperation(value = "设置群管理员", notes = "权限:目前只有群主有权限操作")
public ApiResult<Boolean> setAdmins(@RequestBody @Validated SetAdminsParam param) { public ApiResult<Boolean> setAdmins(@RequestBody @Validated SetAdminsParam param) {
log.info("设置群管理员入参 {}", JSON.toJSONString(param)); log.info("设置群管理员入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) { if (CollectionUtils.isEmpty(param.getClientIds())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null); return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
...@@ -154,7 +156,7 @@ public class ImConversationController extends BaseController { ...@@ -154,7 +156,7 @@ public class ImConversationController extends BaseController {
*/ */
@PostMapping("/mutedGroup") @PostMapping("/mutedGroup")
@ApiOperation(value = "群禁言、取消群禁言", notes = "权限:群主和管理员有权限操作") @ApiOperation(value = "群禁言、取消群禁言", notes = "权限:群主和管理员有权限操作")
public ApiResult<Boolean> mutedGroup(@RequestBody @Validated MutedGroupParam param) { public ApiResult<Boolean> mutedGroup(@RequestBody @Validated MutedGroupParam param) {
log.info("群禁言、取消群禁言入参 {}", JSON.toJSONString(param)); log.info("群禁言、取消群禁言入参 {}", JSON.toJSONString(param));
Boolean result = imConversationService.mutedGroup(param); Boolean result = imConversationService.mutedGroup(param);
return ApiResult.ok(result); return ApiResult.ok(result);
...@@ -165,7 +167,7 @@ public class ImConversationController extends BaseController { ...@@ -165,7 +167,7 @@ public class ImConversationController extends BaseController {
*/ */
@PostMapping("/mutedGroupMember") @PostMapping("/mutedGroupMember")
@ApiOperation(value = "选择禁言", notes = "权限:群主和管理员有权限操作") @ApiOperation(value = "选择禁言", notes = "权限:群主和管理员有权限操作")
public ApiResult<Boolean> mutedGroupMember(@RequestBody @Validated MutedGroupMemberParam param) { public ApiResult<Boolean> mutedGroupMember(@RequestBody @Validated MutedGroupMemberParam param) {
log.info("选择禁言入参 {}", JSON.toJSONString(param)); log.info("选择禁言入参 {}", JSON.toJSONString(param));
if (CollectionUtils.isEmpty(param.getClientIds())) { if (CollectionUtils.isEmpty(param.getClientIds())) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null); return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
......
...@@ -298,7 +298,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> { ...@@ -298,7 +298,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
this.updateById(user); this.updateById(user);
ImClientHeadPortraitAdd imClientHeadPortraitAdd = new ImClientHeadPortraitAdd(); ImClientHeadPortraitAdd imClientHeadPortraitAdd = new ImClientHeadPortraitAdd();
imClientHeadPortraitAdd.setHeadPortrait(param.getHeadPortrait()); imClientHeadPortraitAdd.setHeadPortrait(param.getHeadPortrait());
imClientService.updateHeadPortrait(null, imClientHeadPortraitAdd); imClientService.updateHeadPortrait(imClientHeadPortraitAdd);
} }
/** /**
...@@ -319,7 +319,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> { ...@@ -319,7 +319,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
this.updateById(user); this.updateById(user);
ImClientNicknameUpdate imClientNicknameUpdate = new ImClientNicknameUpdate(); ImClientNicknameUpdate imClientNicknameUpdate = new ImClientNicknameUpdate();
imClientNicknameUpdate.setNickname(param.getNickname()); imClientNicknameUpdate.setNickname(param.getNickname());
imClientService.updateNickname(null, imClientNicknameUpdate); imClientService.updateNickname(imClientNicknameUpdate);
} }
/** /**
......
...@@ -19,7 +19,7 @@ public interface ContextService { ...@@ -19,7 +19,7 @@ public interface ContextService {
* @param request Ws请求 * @param request Ws请求
* @Return * @Return
*/ */
ImClient getImClientIfNotNullOrThrow(ActionRequest request); ImClient getImClientIfNotNullOrThrow();
/** /**
* 获取当前或指定appId的ImApplication 存在返回 不存在则抛出异常 * 获取当前或指定appId的ImApplication 存在返回 不存在则抛出异常
......
...@@ -34,7 +34,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -34,7 +34,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
Boolean addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate); Boolean addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate);
/** /**
* 移出黑名单 * 移出黑名单
...@@ -43,7 +43,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -43,7 +43,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
Boolean removeImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate); Boolean removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate);
/** /**
* 获取分页对象 * 获取分页对象
...@@ -51,6 +51,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -51,6 +51,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam imClientBlacklistPageParam); Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam);
} }
...@@ -35,23 +35,23 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -35,23 +35,23 @@ public interface ImClientService extends BaseService<ImClient> {
* 查询我的信息 * 查询我的信息
* @return * @return
*/ */
MyInfoVo getMyInfo(ActionRequest request); MyInfoVo getMyInfo();
/** /**
* 更新头像 * 更新头像
* @param imClientHeadPortraitAdd * @param imClientHeadPortraitAdd
* @return * @return
*/ */
boolean updateHeadPortrait(ActionRequest request, ImClientHeadPortraitAdd imClientHeadPortraitAdd); boolean updateHeadPortrait(ImClientHeadPortraitAdd imClientHeadPortraitAdd);
/** /**
* 修改昵称 * 修改昵称
* @param imClientNicknameUpdate * @param imClientNicknameUpdate
* @return * @return
*/ */
boolean updateNickname(ActionRequest request, ImClientNicknameUpdate imClientNicknameUpdate); boolean updateNickname(ImClientNicknameUpdate imClientNicknameUpdate);
boolean updateHeadAndNickname(ActionRequest request, ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate); boolean updateHeadAndNickname(ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate);
/** /**
...@@ -61,17 +61,17 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -61,17 +61,17 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
List<GetInfoListVo> getInfoList(ActionRequest request, GetClientInfoParam getClientInfoParam) throws Exception; List<GetInfoListVo> getInfoList(GetClientInfoParam getClientInfoParam) throws Exception;
/** /**
* 获取群里成员信息 * 获取群里成员信息
* @param param * @param param
* @return * @return
*/ */
ClientInfoVo getClientInfo(ActionRequest request, ClientInfoParam param); ClientInfoVo getClientInfo(ClientInfoParam param);
boolean updateNickname(ActionRequest request, ImClientNicknameAdd imClientNicknameAdd) throws Exception; boolean updateNickname(ImClientNicknameAdd imClientNicknameAdd) throws Exception;
/** /**
* 保存 * 保存
...@@ -95,7 +95,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -95,7 +95,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @param param * @param param
* @return * @return
*/ */
boolean logout(ActionRequest request, LogoutParam param); boolean logout(LogoutParam param);
/** /**
...@@ -123,7 +123,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -123,7 +123,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
Paging<ImClientQueryVo> getImClientPageList(ActionRequest request, ImClientPageParam imClientPageParam) throws Exception; Paging<ImClientQueryVo> getImClientPageList(ImClientPageParam imClientPageParam) throws Exception;
/** /**
......
package com.wecloud.im.service; package com.wecloud.im.service;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.wecloud.im.entity.ImConversation; import com.wecloud.im.entity.ImConversation;
import com.wecloud.im.param.DisbandConversationParam; import com.wecloud.im.param.DisbandConversationParam;
...@@ -16,14 +22,8 @@ import com.wecloud.im.param.add.ImConversationAttrUpdate; ...@@ -16,14 +22,8 @@ import com.wecloud.im.param.add.ImConversationAttrUpdate;
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.param.add.ImConversationNameUpdate; import com.wecloud.im.param.add.ImConversationNameUpdate;
import com.wecloud.im.vo.ImConversationCreateVo;
import com.wecloud.im.vo.ConversationVo; import com.wecloud.im.vo.ConversationVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import com.wecloud.im.vo.ImConversationCreateVo;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/** /**
* 会话表 服务类 * 会话表 服务类
...@@ -49,7 +49,7 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -49,7 +49,7 @@ public interface ImConversationService extends BaseService<ImConversation> {
* @param imConversationCreate * @param imConversationCreate
* @return * @return
*/ */
ApiResult<ImConversationCreateVo> createImConversation(ImConversationCreate imConversationCreate); ImConversationCreateVo createImConversation(ImConversationCreate imConversationCreate);
/** /**
...@@ -59,7 +59,7 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -59,7 +59,7 @@ public interface ImConversationService extends BaseService<ImConversation> {
* @return * @return
* @throws JsonProcessingException * @throws JsonProcessingException
*/ */
ApiResult<Boolean> addClientToConversation(ImClientToConversation imClientToConversation); Boolean addClientToConversation(ImClientToConversation imClientToConversation);
/** /**
* 将client从会话移除 * 将client从会话移除
...@@ -67,7 +67,7 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -67,7 +67,7 @@ public interface ImConversationService extends BaseService<ImConversation> {
* @param imClientToConversation * @param imClientToConversation
* @return * @return
*/ */
ApiResult<Boolean> delClientToConversation(ImClientToConversation imClientToConversation) throws Exception; Boolean delClientToConversation(ImClientToConversation imClientToConversation) throws Exception;
/** /**
* 解散群聊 * 解散群聊
...@@ -79,35 +79,35 @@ public interface ImConversationService extends BaseService<ImConversation> { ...@@ -79,35 +79,35 @@ public interface ImConversationService extends BaseService<ImConversation> {
/** /**
* client退出会话 * client退出会话
*/ */
ApiResult<Boolean> leaveConversation(ImClientLeaveConversation imClientToConversation); Boolean leaveConversation(ImClientLeaveConversation imClientToConversation);
/** /**
* 群主转让 * 群主转让
* @param param * @param param
* @return * @return
*/ */
Boolean transferOwner(@RequestBody TransferOwnerParam param); Boolean transferOwner(TransferOwnerParam param);
/** /**
* 设置管理员 * 设置管理员
* @param param * @param param
* @return * @return
*/ */
Boolean setAdmins(@RequestBody SetAdminsParam param); Boolean setAdmins(SetAdminsParam param);
/** /**
* 群禁言 * 群禁言
* @param param * @param param
* @return * @return
*/ */
Boolean mutedGroup(@RequestBody MutedGroupParam param); Boolean mutedGroup(MutedGroupParam param);
/** /**
* 选择禁言 * 选择禁言
* @param param * @param param
* @return * @return
*/ */
Boolean mutedGroupMember(@RequestBody MutedGroupMemberParam param); Boolean mutedGroupMember(MutedGroupMemberParam param);
/** /**
* 判断当前操作人是否为指定角色成员 * 判断当前操作人是否为指定角色成员
......
...@@ -7,6 +7,7 @@ import org.springframework.context.annotation.Lazy; ...@@ -7,6 +7,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.wecloud.dispatch.extend.ActionRequest; import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.dispatch.util.ActionRequestHolder;
import com.wecloud.im.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.service.ContextService; import com.wecloud.im.service.ContextService;
...@@ -31,11 +32,12 @@ public class ContextServiceImpl implements ContextService { ...@@ -31,11 +32,12 @@ public class ContextServiceImpl implements ContextService {
private ImApplicationService imApplicationService; private ImApplicationService imApplicationService;
@Override @Override
public ImClient getImClientIfNotNullOrThrow(ActionRequest request) { public ImClient getImClientIfNotNullOrThrow() {
ImClient currentClient; ImClient currentClient;
if (request != null) { if (ActionRequestHolder.getActionRequest() != null) {
ActionRequest request = ActionRequestHolder.getActionRequest();
currentClient = imClientService.getCacheImClient(request.getSenderClientId()); currentClient = imClientService.getCacheImClient(request.getSenderClientId());
} else { } else {
currentClient = imClientService.getCurrentClient(); currentClient = imClientService.getCurrentClient();
......
...@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.entity.ImClientBlacklist; import com.wecloud.im.entity.ImClientBlacklist;
import com.wecloud.im.mapper.ImClientBlacklistMapper; import com.wecloud.im.mapper.ImClientBlacklistMapper;
...@@ -57,8 +56,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -57,8 +56,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate) { public Boolean addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) {
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda() ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, currentClient.getFkAppid()) .eq(ImClient::getFkAppid, currentClient.getFkAppid())
.eq(ImClient::getClientId, imClientBlacklistUpdate.getClientIdBePrevent())); .eq(ImClient::getClientId, imClientBlacklistUpdate.getClientIdBePrevent()));
...@@ -78,9 +77,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -78,9 +77,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean removeImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate) { public Boolean removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) {
// 操作者 // 操作者
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
// 被拉黑者 // 被拉黑者
ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda() ImClient beBlacker = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, currentClient.getFkAppid()) .eq(ImClient::getFkAppid, currentClient.getFkAppid())
...@@ -96,9 +95,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -96,9 +95,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
} }
@Override @Override
public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam imClientBlacklistPageParam) { public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) {
Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam); Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam);
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, currentClient.getClientId()); IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, currentClient.getClientId());
Paging<ImClientBlacklistQueryVo> imClientBlacklistQueryVoPaging = new Paging<>(imClientBlacklistPageList); Paging<ImClientBlacklistQueryVo> imClientBlacklistQueryVoPaging = new Paging<>(imClientBlacklistPageList);
return imClientBlacklistQueryVoPaging; return imClientBlacklistQueryVoPaging;
......
package com.wecloud.im.service.impl; package com.wecloud.im.service.impl;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.exception.BusinessException; import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl; import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo; import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
...@@ -28,6 +27,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem; ...@@ -28,6 +27,7 @@ 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.wecloud.dispatch.extend.ActionRequest; import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.dispatch.util.ActionRequestHolder;
import com.wecloud.im.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.entity.ImClientDevice; import com.wecloud.im.entity.ImClientDevice;
...@@ -87,8 +87,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -87,8 +87,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
private ContextService contextService; private ContextService contextService;
@Override @Override
public MyInfoVo getMyInfo(ActionRequest request) { public MyInfoVo getMyInfo() {
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
MyInfoVo myInfoVo = new MyInfoVo(); MyInfoVo myInfoVo = new MyInfoVo();
BeanUtils.copyProperties(currentClient, myInfoVo); BeanUtils.copyProperties(currentClient, myInfoVo);
return myInfoVo; return myInfoVo;
...@@ -96,8 +96,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -96,8 +96,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean updateHeadPortrait(ActionRequest request, ImClientHeadPortraitAdd imClientHeadPortraitAdd) { public boolean updateHeadPortrait(ImClientHeadPortraitAdd imClientHeadPortraitAdd) {
ImClient curentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient curentClient = contextService.getImClientIfNotNullOrThrow();
curentClient.setHeadPortrait(imClientHeadPortraitAdd.getHeadPortrait()); curentClient.setHeadPortrait(imClientHeadPortraitAdd.getHeadPortrait());
imClientMapper.updateById(curentClient); imClientMapper.updateById(curentClient);
...@@ -108,8 +108,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -108,8 +108,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public boolean updateNickname(ActionRequest request, ImClientNicknameUpdate imClientNicknameUpdate) { public boolean updateNickname(ImClientNicknameUpdate imClientNicknameUpdate) {
ImClient curentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient curentClient = contextService.getImClientIfNotNullOrThrow();
curentClient.setNickname(imClientNicknameUpdate.getNickname()); curentClient.setNickname(imClientNicknameUpdate.getNickname());
imClientMapper.updateById(curentClient); imClientMapper.updateById(curentClient);
...@@ -120,8 +120,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -120,8 +120,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public boolean updateHeadAndNickname(ActionRequest request, ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate) { public boolean updateHeadAndNickname(ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate) {
ImClient curentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient curentClient = contextService.getImClientIfNotNullOrThrow();
curentClient.setHeadPortrait(imClientHeadPortraitAndNicknameUpdate.getHeadPortrait()); curentClient.setHeadPortrait(imClientHeadPortraitAndNicknameUpdate.getHeadPortrait());
curentClient.setNickname(imClientHeadPortraitAndNicknameUpdate.getNickname()); curentClient.setNickname(imClientHeadPortraitAndNicknameUpdate.getNickname());
imClientMapper.updateById(curentClient); imClientMapper.updateById(curentClient);
...@@ -133,8 +133,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -133,8 +133,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public List<GetInfoListVo> getInfoList(ActionRequest request, GetClientInfoParam getClientInfoParam) throws Exception { public List<GetInfoListVo> getInfoList(GetClientInfoParam getClientInfoParam) throws Exception {
ImClient curentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient curentClient = contextService.getImClientIfNotNullOrThrow();
if (getClientInfoParam.getClientIds() == null || getClientInfoParam.getClientIds().isEmpty()) { if (getClientInfoParam.getClientIds() == null || getClientInfoParam.getClientIds().isEmpty()) {
throw new BusinessException("getClientInfoParam.getClientIds() == null"); throw new BusinessException("getClientInfoParam.getClientIds() == null");
...@@ -162,8 +162,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -162,8 +162,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public ClientInfoVo getClientInfo(ActionRequest request, ClientInfoParam param) { public ClientInfoVo getClientInfo(ClientInfoParam param) {
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
if (currentClient == null) { if (currentClient == null) {
throw new BusinessException("当前用户登录信息失效"); throw new BusinessException("当前用户登录信息失效");
} }
...@@ -194,8 +194,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -194,8 +194,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean updateNickname(ActionRequest request, ImClientNicknameAdd imClientNicknameAdd) throws Exception { public boolean updateNickname(ImClientNicknameAdd imClientNicknameAdd) throws Exception {
ImClient curentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient curentClient = contextService.getImClientIfNotNullOrThrow();
curentClient.setNickname(imClientNicknameAdd.getNickname()); curentClient.setNickname(imClientNicknameAdd.getNickname());
imClientMapper.updateById(curentClient); imClientMapper.updateById(curentClient);
...@@ -248,8 +248,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -248,8 +248,8 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public boolean logout(ActionRequest request, LogoutParam param) { public boolean logout(LogoutParam param) {
ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request); ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
// 清除设备token // 清除设备token
return imClientDeviceService.update(new UpdateWrapper<ImClientDevice>().lambda() return imClientDeviceService.update(new UpdateWrapper<ImClientDevice>().lambda()
.eq(ImClientDevice::getFkAppid, currentClient.getFkAppid()) .eq(ImClientDevice::getFkAppid, currentClient.getFkAppid())
...@@ -270,7 +270,7 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -270,7 +270,7 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
} }
@Override @Override
public Paging<ImClientQueryVo> getImClientPageList(ActionRequest request, ImClientPageParam imClientPageParam) throws Exception { public Paging<ImClientQueryVo> getImClientPageList(ImClientPageParam imClientPageParam) throws Exception {
Page<ImClientQueryVo> page = new PageInfo<>(imClientPageParam, OrderItem.desc(getLambdaColumn(ImClient::getCreateTime))); Page<ImClientQueryVo> page = new PageInfo<>(imClientPageParam, OrderItem.desc(getLambdaColumn(ImClient::getCreateTime)));
IPage<ImClientQueryVo> iPage = imClientMapper.getImClientPageList(page, imClientPageParam); IPage<ImClientQueryVo> iPage = imClientMapper.getImClientPageList(page, imClientPageParam);
return new Paging<>(iPage); return new Paging<>(iPage);
...@@ -278,12 +278,19 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien ...@@ -278,12 +278,19 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
@Override @Override
public ImClient getCurrentClient() { public ImClient getCurrentClient() {
ImClient imClient = null;
// shiro线程中获取当前token // modify by luozh 2022/04/03 增加是否存在ActionRequest的判断,如果是则说明请求来源于ws 否则是HTTP请求
JwtToken curentJwtToken = JwtUtil.getCurrentJwtToken(); if (ActionRequestHolder.getActionRequest() != null) {
// 根据appKey查询appid ActionRequest request = ActionRequestHolder.getActionRequest();
ImApplication imApplication = imApplicationService.getCacheAppByAppKey(curentJwtToken.getAppKey()); imClient = getCacheImClient(request.getSenderClientId());
return getCacheImClient(imApplication.getId(), curentJwtToken.getClientId()); } else {
// shiro线程中获取当前token
JwtToken curentJwtToken = JwtUtil.getCurrentJwtToken();
// 根据appKey查询appid
ImApplication imApplication = imApplicationService.getCacheAppByAppKey(curentJwtToken.getAppKey());
imClient = getCacheImClient(imApplication.getId(), curentJwtToken.getClientId());
}
return imClient;
} }
@Override @Override
......
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