|
@@ -1,20 +1,29 @@
|
|
|
package com.cyksj.web.controller.manage.account;
|
|
package com.cyksj.web.controller.manage.account;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.dto.Result;
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.GptTeamUserBindRecordMapper;
|
|
import com.cyksj.mapper.GptTeamUserBindRecordMapper;
|
|
|
|
|
+import com.cyksj.mapper.UserMapper;
|
|
|
import com.cyksj.model.entity.GptTeamAccount;
|
|
import com.cyksj.model.entity.GptTeamAccount;
|
|
|
import com.cyksj.model.entity.GptTeamUserBindRecord;
|
|
import com.cyksj.model.entity.GptTeamUserBindRecord;
|
|
|
|
|
+import com.cyksj.model.entity.User;
|
|
|
import com.cyksj.service.chatgpt.GptTeamAccountService;
|
|
import com.cyksj.service.chatgpt.GptTeamAccountService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.SearchResult;
|
|
import com.ejlchina.searcher.SearchResult;
|
|
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapBuilder;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* admin/GPT Team账号管理
|
|
* admin/GPT Team账号管理
|
|
@@ -33,12 +42,37 @@ public class CmsGptTeamAccountController {
|
|
|
|
|
|
|
|
private final GptTeamUserBindRecordMapper gptTeamUserBindRecordMapper;
|
|
private final GptTeamUserBindRecordMapper gptTeamUserBindRecordMapper;
|
|
|
|
|
|
|
|
|
|
+ private final UserMapper userMapper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取GPT Team账号列表
|
|
* 获取GPT Team账号列表
|
|
|
*/
|
|
*/
|
|
|
@GetMapping("/get")
|
|
@GetMapping("/get")
|
|
|
- public Result<SearchResult<GptTeamAccount>> getPage() {
|
|
|
|
|
- SearchResult<GptTeamAccount> search = beanSearcher.search(GptTeamAccount.class, MapUtils.flatBuilder(request.getParameterMap())
|
|
|
|
|
|
|
+ public Result<SearchResult<GptTeamAccount>> getPage(Long userId, String nickname) {
|
|
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
|
|
+ List<Long> userIds = null;
|
|
|
|
|
+ if (userId != null) {
|
|
|
|
|
+ userIds = new ArrayList<>();
|
|
|
|
|
+ userIds.add(userId);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StrUtil.isNotBlank(nickname)) {
|
|
|
|
|
+ if (userIds == null) {
|
|
|
|
|
+ userIds = new ArrayList<>();
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Long> collect = userMapper.selectList(Wrappers.lambdaQuery(User.class).eq(User::getNickname, nickname)).stream().map(User::getId).collect(Collectors.toList());
|
|
|
|
|
+ if (CollUtil.isEmpty(collect)) {
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
|
|
+ }
|
|
|
|
|
+ userIds.addAll(collect);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (CollUtil.isNotEmpty(userIds)) {
|
|
|
|
|
+ List<String> user_tokens = gptTeamUserBindRecordMapper.selectList(Wrappers.lambdaQuery(GptTeamUserBindRecord.class).in(GptTeamUserBindRecord::getUserId, userIds)).stream().map(GptTeamUserBindRecord::getToken).collect(Collectors.toList());
|
|
|
|
|
+ if (user_tokens.isEmpty()) {
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
|
|
+ }
|
|
|
|
|
+ builder.field(GptTeamAccount::getToken, user_tokens).op(Operator.InList);
|
|
|
|
|
+ }
|
|
|
|
|
+ SearchResult<GptTeamAccount> search = beanSearcher.search(GptTeamAccount.class, builder
|
|
|
.orderBy(GptTeamAccount::getId).desc()
|
|
.orderBy(GptTeamAccount::getId).desc()
|
|
|
.build());
|
|
.build());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|