|
@@ -6,10 +6,12 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ImGroup;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MK;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImGroupService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysUserService;
|
|
@@ -53,6 +55,9 @@ public class ImGroupController extends BaseController {
|
|
|
@Autowired
|
|
|
private ImUserFriendService imUserFriendService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ImGroupMemberService imGroupMemberService;
|
|
|
+
|
|
|
@ApiOperation("创建群聊")
|
|
|
@PostMapping(value = "/create")
|
|
|
public HttpResponseResult create(@Valid @RequestBody ImGroupWrapper.ImGroup imGroup, BindingResult bindingResult) throws Exception {
|
|
@@ -89,9 +94,17 @@ public class ImGroupController extends BaseController {
|
|
|
@ApiOperation("获取群详情")
|
|
|
@PostMapping(value = "/getDetail/{groupId}")
|
|
|
public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
|
|
|
- SysUser user = sysUserService.getUser();
|
|
|
ImGroup group = imGroupService.getById(groupId);
|
|
|
- if (group == null || group.getCreateBy().equals(user.getId())) {
|
|
|
+ if (group == null) {
|
|
|
+ return failed(HttpStatus.NO_CONTENT, "群组不存在");
|
|
|
+ }
|
|
|
+ ImGroupMember admin = imGroupMemberService.lambdaQuery()
|
|
|
+ .eq(ImGroupMember::getGroupId, group.getId())
|
|
|
+ .eq(ImGroupMember::getUserId, sysUserService.getUser().getId())
|
|
|
+ .eq(ImGroupMember::getIsAdmin, true)
|
|
|
+ .last("limit 1").one();
|
|
|
+ if (admin == null) {
|
|
|
+ // 该用户不在该群,无权限查看,处理用户退出群后,查看历史消息校验
|
|
|
return failed(HttpStatus.NO_CONTENT, "群组不存在");
|
|
|
}
|
|
|
return succeed(group);
|