package com.ruoyi.web.controller.group; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.im.config.AddTeamMembersRequest; import com.ruoyi.im.config.CreateTeamRequest; import com.ruoyi.im.config.AssignmentRequest; import com.ruoyi.im.service.NeteaseTeamService; import com.ruoyi.system.domain.NeteaseTeam; import com.ruoyi.system.domain.UserAccount; import com.ruoyi.system.domain.vo.UserAccountVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/im/group") @Slf4j public class ImGroupController extends BaseController { @Autowired NeteaseTeamService neteaseGroupService; /** * 获取会员列表 */ @PreAuthorize("@ss.hasPermi('im:group:list')") @GetMapping("/list") public TableDataInfo list(@PathVariable("keyword") String keyword) { // 创建查询条件包装器 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 只有当 keyword 不为空时才添加 OR 条件 if (ObjectUtil.isNotEmpty(keyword)) { queryWrapper.and(wrapper -> wrapper .eq(NeteaseTeam::getTid, keyword) .or() .eq(NeteaseTeam::getOwnerAccountId, keyword) .or() .eq(NeteaseTeam::getName,keyword) ); } // 默认按创建时间倒序 queryWrapper.orderByDesc(NeteaseTeam::getCreateTime); List list = neteaseGroupService.list(queryWrapper); return getDataTable(list); } /** * 创建群组 */ @PostMapping("/create") public AjaxResult createGroup(@Validated @RequestBody CreateTeamRequest request) { return neteaseGroupService.createGroup(request); } /** * 更新群组 */ @PostMapping("/updateCreate") public AjaxResult updateCreate(@Validated @RequestBody CreateTeamRequest request) { return neteaseGroupService.updateCreate(request); } /** * 拉人进去 */ @PostMapping("/inviteTeamMembers") public AjaxResult inviteTeamMembers(@Validated @RequestBody AddTeamMembersRequest request) { return neteaseGroupService.inviteTeamMembers(request); } /** * 转让群主 */ @PostMapping("/assignment") public AjaxResult assignment(@Validated @RequestBody AssignmentRequest request) { return neteaseGroupService.assignment(request); } /** * 解散 */ @PostMapping("/dismiss") public AjaxResult dismiss(@PathVariable("id") Long id) { return neteaseGroupService.dismiss(id); } }