Commit 0ce048a0 by 罗长华

1、改造ImClient和ImBlacklist -> websocket

parent 7238ef14
package com.wecloud.im.action;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
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.stereotype.Component;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.param.ImClientBlacklistPageParam;
import com.wecloud.im.param.ImClientBlacklistQueryVo;
import com.wecloud.im.param.add.ImClientBlacklistUpdate;
import com.wecloud.im.service.ImClientBlacklistService;
import com.wecloud.im.ws.model.WsResponse;
/**
* ws 黑名单
* @Author luozh
* @Date 2022年04月02日 09:20
* @Version 1.0
*/
@Slf4j
@Component
@ActionMapping(value = "/blacklist")
@Api(value = "ws-黑名单API", tags = {"黑名单"})
public class BlacklistAction {
@Autowired
private ImClientBlacklistService imClientBlacklistService;
/**
* 添加黑名单
*/
@ActionMapping("/add")
@ApiOperation(value = "拉入黑名单")
public WsResponse<Boolean> addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate data) {
imClientBlacklistService.addImClientBlacklist(request, data);
return WsResponse.ok();
}
/**
* 删除黑名单
*/
@ActionMapping("/delete")
@ApiOperation(value = "移出黑名单")
public WsResponse<Boolean> deleteImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate data) {
imClientBlacklistService.removeImClientBlacklist(request, data);
return WsResponse.ok();
}
/**
* 黑名单分页列表
*/
@ActionMapping("/getPageList")
@OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "黑名单分页列表")
public WsResponse<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam data) {
Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageList(request, data);
return WsResponse.ok(blacklist);
}
}
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.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON;
import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient;
import com.wecloud.im.param.ClientInfoParam;
import com.wecloud.im.param.GetClientInfoParam;
import com.wecloud.im.param.GetOnlineStatusParam;
import com.wecloud.im.param.LogoutParam;
import com.wecloud.im.param.add.ImClientHeadPortraitAdd;
import com.wecloud.im.param.add.ImClientHeadPortraitAndNicknameUpdate;
import com.wecloud.im.param.add.ImClientNicknameAdd;
import com.wecloud.im.service.ContextService;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.vo.ClientInfoVo;
import com.wecloud.im.vo.GetInfoListVo;
import com.wecloud.im.vo.ImOnlineStatusVo;
import com.wecloud.im.vo.MyInfoVo;
import com.wecloud.im.ws.cache.UserStateCacheManager;
import com.wecloud.im.ws.model.WsResponse;
/**
* 终端 action
* @Author luozh
* @Date 2022年04月02日 15:14
* @Version 1.0
*/
@Slf4j
@Component
@ActionMapping("/client")
@Api(value = "ws-终端", tags = {"终端"})
public class ClientAction {
@Autowired
private ImClientService imClientService;
@Autowired
private UserStateCacheManager userStateCacheManager;
@Autowired
private ImApplicationService imApplicationService;
@Autowired
private ContextService contextService;
/**
* 查询我的信息
*/
@ActionMapping("/myInfo")
@ApiOperation(value = "查询我的信息")
public WsResponse<MyInfoVo> myInfo(ActionRequest request) {
MyInfoVo myInfo = imClientService.getMyInfo(request);
return WsResponse.ok(myInfo);
}
@ActionMapping("/infoList")
@ApiOperation(value = "根据id获取Client的头像昵称")
public WsResponse<List<GetInfoListVo>> getInfoList(ActionRequest request, GetClientInfoParam data) throws Exception {
return WsResponse.ok(imClientService.getInfoList(request, data));
}
/**
* 查询用户信息 用户可能是好友、陌生人、被拉黑名单的人
*/
@ActionMapping("/clientInfo")
@ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人")
public WsResponse<ClientInfoVo> getClientInfo(ActionRequest request, ClientInfoParam data) {
ClientInfoVo clientInfoVo = imClientService.getClientInfo(request, data);
return WsResponse.ok(clientInfoVo);
}
@ActionMapping("/updateHeadAndNickname")
@ApiOperation(value = "添加或修改头像和昵称")
public WsResponse<Boolean> updateHeadAndNickname(ActionRequest request, ImClientHeadPortraitAndNicknameUpdate data) throws Exception {
log.info("添加或修改头像和昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadAndNickname(request, data);
return WsResponse.ok(flag);
}
@ActionMapping("/updateHeadPortrait")
@ApiOperation(value = "添加或修改头像")
public WsResponse<Boolean> updateHeadPortrait(ActionRequest request, ImClientHeadPortraitAdd data) throws Exception {
log.info("添加或修改头像入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateHeadPortrait(request, data);
return WsResponse.ok(flag);
}
@ActionMapping("/updateNickname")
@ApiOperation(value = "添加或修改主昵称")
public WsResponse<Boolean> updateNickname(ActionRequest request, ImClientNicknameAdd data) throws Exception {
log.info("添加或修改主昵称入参 {}", JSON.toJSONString(data));
boolean flag = imClientService.updateNickname(request, data);
return WsResponse.ok(flag);
}
/**
* 退出登陆
*
* @return
* @throws Exception
*/
@ActionMapping("/logout")
@ApiOperation(value = "退出登陆 清除推送token等")
public WsResponse<Boolean> logout(ActionRequest request, LogoutParam param) {
log.info("退出登陆入参 {}", JSON.toJSONString(param));
boolean flag = imClientService.logout(request, param);
return WsResponse.ok(flag);
}
/**
* 获取用户在线状态(批量)
*
* @return true:在线, false 不在线
*/
@ActionMapping("/onlineStatus")
@ApiOperation(value = "获取用户在线状态(批量)")
public WsResponse<List<ImOnlineStatusVo>> getOnlineStatus(ActionRequest request,
GetOnlineStatusParam getOnlineStatusParam) {
// shiro线程中获取当前token
ImClient imClient = contextService.getImClientIfNotNullOrThrow(request);
ImApplication imApplication = contextService.getImApplicationIfNotNullOrThrow(imClient.getFkAppid());
ArrayList<ImOnlineStatusVo> imOnlineStatusVos = new ArrayList<>();
for (String clientId : getOnlineStatusParam.getClientIds()) {
ImOnlineStatusVo imOnlineStatusVo = new ImOnlineStatusVo();
// todo 需要改成批量
ImClient client = imClientService.getCacheImClient(imApplication.getId(), clientId);
imOnlineStatusVo.setStatus(userStateCacheManager.isOnline(client.getId()));
imOnlineStatusVo.setClientId(clientId);
imOnlineStatusVos.add(imOnlineStatusVo);
}
return WsResponse.ok(imOnlineStatusVos);
}
}
package com.wecloud.im.controller; package com.wecloud.im.controller;
import com.wecloud.im.param.ImClientBlacklistPageParam;
import com.wecloud.im.param.ImClientBlacklistQueryVo;
import com.wecloud.im.param.add.ImClientBlacklistUpdate;
import com.wecloud.im.service.ImClientBlacklistService;
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.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
...@@ -13,6 +9,7 @@ import io.geekidea.springbootplus.framework.log.enums.OperationLogType; ...@@ -13,6 +9,7 @@ import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
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.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -20,6 +17,11 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -20,6 +17,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.wecloud.im.param.ImClientBlacklistPageParam;
import com.wecloud.im.param.ImClientBlacklistQueryVo;
import com.wecloud.im.param.add.ImClientBlacklistUpdate;
import com.wecloud.im.service.ImClientBlacklistService;
/** /**
* 黑名单 控制器 * 黑名单 控制器
* *
...@@ -41,7 +43,8 @@ public class ImClientBlacklistController extends BaseController { ...@@ -41,7 +43,8 @@ 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 {
return imClientBlacklistService.addImClientBlacklist(imClientBlacklistUpdate); imClientBlacklistService.addImClientBlacklist(null, imClientBlacklistUpdate);
return ApiResult.ok();
} }
...@@ -51,7 +54,8 @@ public class ImClientBlacklistController extends BaseController { ...@@ -51,7 +54,8 @@ 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 {
return imClientBlacklistService.removeImClientBlacklist(imClientBlacklistUpdate); imClientBlacklistService.removeImClientBlacklist(null, imClientBlacklistUpdate);
return ApiResult.ok();
} }
/** /**
...@@ -61,7 +65,9 @@ public class ImClientBlacklistController extends BaseController { ...@@ -61,7 +65,9 @@ public class ImClientBlacklistController extends BaseController {
@OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE) @OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "黑名单分页列表") @ApiOperation(value = "黑名单分页列表")
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception { public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
return imClientBlacklistService.getImClientBlacklistPageList(imClientBlacklistPageParam); Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageList(null, imClientBlacklistPageParam);
return ApiResult.ok(blacklist);
} }
} }
......
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.geekidea.springbootplus.framework.core.validator.groups.Add;
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.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
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.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
...@@ -18,24 +38,6 @@ import com.wecloud.im.vo.GetInfoListVo; ...@@ -18,24 +38,6 @@ import com.wecloud.im.vo.GetInfoListVo;
import com.wecloud.im.vo.ImOnlineStatusVo; import com.wecloud.im.vo.ImOnlineStatusVo;
import com.wecloud.im.vo.MyInfoVo; import com.wecloud.im.vo.MyInfoVo;
import com.wecloud.im.ws.cache.UserStateCacheManager; import com.wecloud.im.ws.cache.UserStateCacheManager;
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.validator.groups.Add;
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.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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.ArrayList;
import java.util.List;
/** /**
* 终端表 控制器 * 终端表 控制器
...@@ -64,7 +66,7 @@ public class ImClientController extends BaseController { ...@@ -64,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(); MyInfoVo myInfo = imClientService.getMyInfo(null);
return ApiResult.ok(myInfo); return ApiResult.ok(myInfo);
} }
...@@ -72,7 +74,7 @@ public class ImClientController extends BaseController { ...@@ -72,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 imClientService.getInfoList(getClientInfoParam); return ApiResult.ok(imClientService.getInfoList(null, getClientInfoParam));
} }
/** /**
...@@ -81,10 +83,10 @@ public class ImClientController extends BaseController { ...@@ -81,10 +83,10 @@ public class ImClientController extends BaseController {
@PostMapping("/clientInfo") @PostMapping("/clientInfo")
@ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人") @ApiOperation(value = "查询用户信息 用户可能是好友、陌生人、被拉黑名单的人")
public ApiResult<ClientInfoVo> getClientInfo(@RequestBody ClientInfoParam param) { public ApiResult<ClientInfoVo> getClientInfo(@RequestBody ClientInfoParam param) {
if(param == null) { if (param == null) {
return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null); return ApiResult.fail(ApiCode.PARAMETER_EXCEPTION, null);
} }
ClientInfoVo clientInfoVo = imClientService.getClientInfo(param); ClientInfoVo clientInfoVo = imClientService.getClientInfo(null, param);
return ApiResult.ok(clientInfoVo); return ApiResult.ok(clientInfoVo);
} }
...@@ -105,7 +107,7 @@ public class ImClientController extends BaseController { ...@@ -105,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(imClientHeadPortraitAndNicknameUpdate); boolean flag = imClientService.updateHeadAndNickname(null, imClientHeadPortraitAndNicknameUpdate);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -114,7 +116,7 @@ public class ImClientController extends BaseController { ...@@ -114,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(imClientHeadPortraitAdd); boolean flag = imClientService.updateHeadPortrait(null, imClientHeadPortraitAdd);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -122,7 +124,7 @@ public class ImClientController extends BaseController { ...@@ -122,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(imClientNicknameAdd); boolean flag = imClientService.updateNickname(null, imClientNicknameAdd);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -137,7 +139,7 @@ public class ImClientController extends BaseController { ...@@ -137,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(param); boolean flag = imClientService.logout(null, param);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
......
package com.wecloud.im.externalaccess.service; package com.wecloud.im.externalaccess.service;
import cn.hutool.core.lang.Snowflake; import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import java.util.Date;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wecloud.im.constant.NumberConstant; import com.wecloud.im.constant.NumberConstant;
import com.wecloud.im.constant.RedisKeyPrefixConstant; import com.wecloud.im.constant.RedisKeyPrefixConstant;
...@@ -37,14 +46,6 @@ import com.wecloud.im.ws.utils.RedisUtils; ...@@ -37,14 +46,6 @@ import com.wecloud.im.ws.utils.RedisUtils;
import com.wecloud.utils.AesUtil; import com.wecloud.utils.AesUtil;
import com.wecloud.utils.RandomUtil; import com.wecloud.utils.RandomUtil;
import com.wecloud.utils.SnowflakeUtil; import com.wecloud.utils.SnowflakeUtil;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/** /**
* @Author wenzhida * @Author wenzhida
...@@ -297,7 +298,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> { ...@@ -297,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(imClientHeadPortraitAdd); imClientService.updateHeadPortrait(null, imClientHeadPortraitAdd);
} }
/** /**
...@@ -318,7 +319,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> { ...@@ -318,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(imClientNicknameUpdate); imClientService.updateNickname(null, imClientNicknameUpdate);
} }
/** /**
......
package com.wecloud.im.service; package com.wecloud.im.service;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImClientBlacklist; import com.wecloud.im.entity.ImClientBlacklist;
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;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
/** /**
* 黑名单 服务类 * 黑名单 服务类
...@@ -33,7 +34,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -33,7 +34,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate); Boolean addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate);
/** /**
* 移出黑名单 * 移出黑名单
...@@ -42,7 +43,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -42,7 +43,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate); Boolean removeImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate);
/** /**
* 获取分页对象 * 获取分页对象
...@@ -50,6 +51,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist> ...@@ -50,6 +51,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return * @return
* @throws Exception * @throws Exception
*/ */
ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam); Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam imClientBlacklistPageParam);
} }
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.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.param.ClientInfoParam; import com.wecloud.im.param.ClientInfoParam;
import com.wecloud.im.param.GetClientInfoParam; import com.wecloud.im.param.GetClientInfoParam;
...@@ -15,11 +22,6 @@ import com.wecloud.im.param.add.ImClientNicknameUpdate; ...@@ -15,11 +22,6 @@ import com.wecloud.im.param.add.ImClientNicknameUpdate;
import com.wecloud.im.vo.ClientInfoVo; import com.wecloud.im.vo.ClientInfoVo;
import com.wecloud.im.vo.GetInfoListVo; import com.wecloud.im.vo.GetInfoListVo;
import com.wecloud.im.vo.MyInfoVo; import com.wecloud.im.vo.MyInfoVo;
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;
/** /**
* 终端表 服务类 * 终端表 服务类
...@@ -33,23 +35,23 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -33,23 +35,23 @@ public interface ImClientService extends BaseService<ImClient> {
* 查询我的信息 * 查询我的信息
* @return * @return
*/ */
MyInfoVo getMyInfo(); MyInfoVo getMyInfo(ActionRequest request);
/** /**
* 更新头像 * 更新头像
* @param imClientHeadPortraitAdd * @param imClientHeadPortraitAdd
* @return * @return
*/ */
boolean updateHeadPortrait(ImClientHeadPortraitAdd imClientHeadPortraitAdd); boolean updateHeadPortrait(ActionRequest request, ImClientHeadPortraitAdd imClientHeadPortraitAdd);
/** /**
* 修改昵称 * 修改昵称
* @param imClientNicknameUpdate * @param imClientNicknameUpdate
* @return * @return
*/ */
boolean updateNickname(ImClientNicknameUpdate imClientNicknameUpdate); boolean updateNickname(ActionRequest request, ImClientNicknameUpdate imClientNicknameUpdate);
boolean updateHeadAndNickname(ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate); boolean updateHeadAndNickname(ActionRequest request, ImClientHeadPortraitAndNicknameUpdate imClientHeadPortraitAndNicknameUpdate);
/** /**
...@@ -59,17 +61,17 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -59,17 +61,17 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
ApiResult<List<GetInfoListVo>> getInfoList(GetClientInfoParam getClientInfoParam) throws Exception; List<GetInfoListVo> getInfoList(ActionRequest request, GetClientInfoParam getClientInfoParam) throws Exception;
/** /**
* 获取群里成员信息 * 获取群里成员信息
* @param param * @param param
* @return * @return
*/ */
ClientInfoVo getClientInfo(ClientInfoParam param); ClientInfoVo getClientInfo(ActionRequest request, ClientInfoParam param);
boolean updateNickname(ImClientNicknameAdd imClientNicknameAdd) throws Exception; boolean updateNickname(ActionRequest request, ImClientNicknameAdd imClientNicknameAdd) throws Exception;
/** /**
* 保存 * 保存
...@@ -93,7 +95,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -93,7 +95,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @param param * @param param
* @return * @return
*/ */
boolean logout(LogoutParam param); boolean logout(ActionRequest request, LogoutParam param);
/** /**
...@@ -103,7 +105,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -103,7 +105,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
boolean updateImClient(ImClient imClient) throws Exception; boolean updateImClient( ImClient imClient) throws Exception;
/** /**
* 删除 * 删除
...@@ -112,7 +114,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -112,7 +114,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
boolean deleteImClient(Long id) throws Exception; boolean deleteImClient( Long id) throws Exception;
/** /**
* 获取分页对象 * 获取分页对象
...@@ -121,7 +123,7 @@ public interface ImClientService extends BaseService<ImClient> { ...@@ -121,7 +123,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return * @return
* @throws Exception * @throws Exception
*/ */
Paging<ImClientQueryVo> getImClientPageList(ImClientPageParam imClientPageParam) throws Exception; Paging<ImClientQueryVo> getImClientPageList(ActionRequest request, ImClientPageParam imClientPageParam) throws Exception;
/** /**
......
package com.wecloud.im.service.impl; package com.wecloud.im.service.impl;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
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;
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;
import com.wecloud.im.service.ContextService;
import com.wecloud.im.service.ImClientBlacklistService; import com.wecloud.im.service.ImClientBlacklistService;
import com.wecloud.im.service.ImClientService; import com.wecloud.im.service.ImClientService;
import com.wecloud.utils.SnowflakeUtil; import com.wecloud.utils.SnowflakeUtil;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/** /**
* 黑名单 服务实现类 * 黑名单 服务实现类
...@@ -40,6 +43,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -40,6 +43,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Autowired @Autowired
private ImClientService imClientService; private ImClientService imClientService;
@Autowired
private ContextService contextService;
@Override @Override
public boolean isBeBlack(String currentClientId, String toClientId) { public boolean isBeBlack(String currentClientId, String toClientId) {
ImClientBlacklist one = this.getOne(new QueryWrapper<ImClientBlacklist>().lambda() ImClientBlacklist one = this.getOne(new QueryWrapper<ImClientBlacklist>().lambda()
...@@ -51,11 +57,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -51,11 +57,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> addImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) { public Boolean addImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate) {
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request);
if (currentClient == null) {
throw new BusinessException("当前用户登录信息失效");
}
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()));
...@@ -70,17 +73,14 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -70,17 +73,14 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
imClientBlacklist.setClientIdBePrevent(beBlacker.getClientId()); imClientBlacklist.setClientIdBePrevent(beBlacker.getClientId());
this.save(imClientBlacklist); this.save(imClientBlacklist);
return ApiResult.ok(); return true;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ApiResult<Boolean> removeImClientBlacklist(ImClientBlacklistUpdate imClientBlacklistUpdate) { public Boolean removeImClientBlacklist(ActionRequest request, ImClientBlacklistUpdate imClientBlacklistUpdate) {
// 操作者 // 操作者
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request);
if (currentClient == null) {
throw new BusinessException("当前用户登录信息失效");
}
// 被拉黑者 // 被拉黑者
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())
...@@ -92,16 +92,16 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl ...@@ -92,16 +92,16 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
this.remove(new QueryWrapper<ImClientBlacklist>().lambda() this.remove(new QueryWrapper<ImClientBlacklist>().lambda()
.eq(ImClientBlacklist::getClientIdPrevent, currentClient.getClientId()) .eq(ImClientBlacklist::getClientIdPrevent, currentClient.getClientId())
.eq(ImClientBlacklist::getClientIdBePrevent, beBlacker.getClientId())); .eq(ImClientBlacklist::getClientIdBePrevent, beBlacker.getClientId()));
return ApiResult.ok(); return true;
} }
@Override @Override
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) { public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ActionRequest request, ImClientBlacklistPageParam imClientBlacklistPageParam) {
Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam); Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam);
ImClient currentClient = imClientService.getCurrentClient(); ImClient currentClient = contextService.getImClientIfNotNullOrThrow(request);
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 ApiResult.ok(imClientBlacklistQueryVoPaging); return imClientBlacklistQueryVoPaging;
} }
} }
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