| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812 |
- package com.takai.web.controller.takaiai;
- import com.alibaba.fastjson2.JSONObject;
- import com.github.pagehelper.PageHelper;
- import com.takai.ai.domain.dto.TakaiDialogReqDTO;
- import com.takai.ai.domain.dto.TakaiQuestionDTO;
- import com.takai.ai.domain.entity.*;
- import com.takai.ai.service.ITakaiAiService;
- import com.takai.bigmodel.domain.entity.PageParams;
- import com.takai.common.annotation.Log;
- import com.takai.common.core.controller.BaseController;
- import com.takai.common.core.domain.AjaxResult;
- import com.takai.common.core.domain.entity.SysDictData;
- import com.takai.common.core.domain.entity.SysUser;
- import com.takai.common.core.domain.model.LoginUser;
- import com.takai.common.core.page.TableDataInfo;
- import com.takai.ai.domain.dto.TakaiDialogRespDTO;
- import com.takai.common.enums.BusinessType;
- import com.takai.common.utils.SecurityUtils;
- import com.takai.common.utils.poi.ExcelUtil;
- import com.takai.framework.web.service.SysPermissionService;
- import com.takai.system.service.ISysDictDataService;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.*;
- import java.util.stream.Collectors;
- @Slf4j
- @RestController
- @RequestMapping("/deepseek/api")
- public class TakaiAiController extends BaseController {
- @Autowired
- private ITakaiAiService takaiAisService;
- @Autowired
- private ISysDictDataService dictDataService;
- @Autowired
- private SysPermissionService permissionService;
- /**
- * 对话聊天
- *
- * @param response
- * @param request
- * @param sseParams
- * @return
- */
- @PostMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
- public SseEmitter chat(HttpServletResponse response, HttpServletRequest request, @RequestBody TakaiSseInfoParams sseParams)
- throws Exception {
- return takaiAisService.sseInvoke(sseParams);
- }
- @PostMapping("/async/completions")
- public AjaxResult asyncCompletions(@RequestBody TakaiCompletionsParams params) {
- return success(takaiAisService.asyncCompletions(params));
- }
- /**
- * 应用列表
- *
- * @param params
- * @return
- */
- @PostMapping("/getApplicationList")
- public TableDataInfo getApplicationList(@RequestBody TakaiPageParams params) {
- TakaiApplication vo = setFlagParams(params.getUserId(), params.getTypeId(), params.getProjectId(), 1);
- List<TakaiApplicationResult> s = takaiAisService.getApplicationList(vo);
- PageHelper.startPage(params.getPageNumber(), params.getPageSize(), "").setReasonable(true);
- List<TakaiApplicationResult> list = takaiAisService.getApplicationList(vo);
- return getDataTableResultTotal(list, Long.valueOf(s.size()));
- }
- /**
- * 创建应用
- *
- * @param params
- * @return
- */
- @PostMapping("/createApplication")
- public AjaxResult addApplication(@RequestBody TakaiApplicationParams params) {
- SysUser user = new SysUser();
- user.setUserId(params.getUserId());
- Set<String> permissions = permissionService.getMenuPermission(user);
- int i = 0;
- if (permissions != null && permissions.size() > 0 && (permissions.contains("deepseek:application:role") || permissions.contains("*:*:*"))) {
- i = takaiAisService.createApplication(params, true);
- }else{
- i = takaiAisService.createApplication(params, false);
- }
- return AjaxResult.success(i);
- }
- /**
- * 查询应用详情
- *
- * @param appId
- * @return
- */
- @GetMapping("/selectApplication/{appId}")
- public AjaxResult selectApplication(@PathVariable String appId) {
- JSONObject application = takaiAisService.selectApplication(appId);
- return AjaxResult.success(application);
- }
- /**
- * 修改应用
- *
- * @param params
- * @param appId
- * @return
- */
- @PutMapping("/updateApplication/{appId}")
- public AjaxResult updateApplication(@RequestBody TakaiApplicationParams params, @PathVariable String appId) {
- SysUser user = new SysUser();
- user.setUserId(params.getUserId());
- Set<String> permissions = permissionService.getMenuPermission(user);
- int application = 0;
- if (permissions != null && permissions.size() > 0 && (permissions.contains("deepseek:application:role") || permissions.contains("*:*:*"))) {
- application = takaiAisService.updateApplication(params, appId, true);
- }else{
- application = takaiAisService.updateApplication(params, appId, false);
- }
- return AjaxResult.success(application);
- }
- /**
- * 删除应用
- *
- * @param appId
- * @return
- */
- @DeleteMapping("/delApplication/{appId}")
- public AjaxResult delApplication(@PathVariable String appId) {
- int application = takaiAisService.delApplication(appId);
- return AjaxResult.success(application);
- }
- /**
- * 首页
- *
- * @param params
- * @return
- */
- @PostMapping("/index")
- public AjaxResult index(@RequestBody PageParams params) {
- TakaiApplication vo = setFlagParams(params.getUserId(), params.getTypeId(), params.getProjectId(), 2);
- // 问答应用总数
- List<TakaiApplicationResult> appList = takaiAisService.getApplicationList(vo);
- // 知识库总数
- List<TakaiKnowledge> knowledgeList = takaiAisService.queryKnowledgeList();
- Map<String, Object> map = new HashMap();
- map.put("applicationCount", appList.size());
- map.put("knowledgeCount", knowledgeList.size());
- return success(map);
- }
- /**
- * 获取知识库下拉列表
- *
- * @return
- */
- @GetMapping("/knowledgeList")
- public AjaxResult getKnowledgeList() {
- return success(takaiAisService.queryKnowledgeList());
- }
- /**
- * 知识库列表
- *
- * @param params
- * @return
- */
- @PostMapping("/getKnowledgeList")
- public TableDataInfo getKnowledgeList(@RequestBody TakaiPageParams params) {
- List<TakaiKnowledge> s = takaiAisService.queryKnowledgeList();
- PageHelper.startPage(params.getPageNumber(), params.getPageSize(), "").setReasonable(true);
- List<TakaiKnowledge> list = takaiAisService.queryKnowledgeList();
- return getDataTableResultTotal(list, Long.valueOf(s.size()));
- }
- /**
- * 创建知识库
- *
- * @param knowledge
- * @return
- */
- @PostMapping("/createKnowledge")
- public AjaxResult createKnowledge(@RequestBody TakaiKnowledgeParams knowledge) {
- int i = takaiAisService.createKnowledge(knowledge);
- return success(i);
- }
- /**
- * 知识库详情
- *
- * @param knowledgeId
- * @return
- */
- @GetMapping("/detailKnowledge/{knowledgeId}")
- public AjaxResult detailKnowledge(@PathVariable String knowledgeId) {
- TakaiKnowledge result = takaiAisService.detailKnowledge(knowledgeId);
- return success(result);
- }
- /**
- * 修改知识库
- *
- * @param knowledge
- * @param knowledgeId
- * @return
- */
- @PutMapping("/updateKnowledge/{knowledgeId}")
- public AjaxResult updateKnowledge(@RequestBody TakaiKnowledgeParams knowledge, @PathVariable String knowledgeId) {
- int i = takaiAisService.updateKnowledge(knowledge, knowledgeId);
- return success(i);
- }
- /**
- * 删除知识库
- *
- * @param knowledgeId
- * @return
- */
- @DeleteMapping("/delKnowledge/{knowledgeId}")
- public AjaxResult delKnowledge(@PathVariable String knowledgeId) {
- int i = takaiAisService.delKnowledge(knowledgeId);
- return success(i);
- }
- /**
- * 知识列表
- *
- * @param params
- * @return
- */
- @PostMapping("/documentList")
- public TableDataInfo documentList(@RequestBody TakaiDocumentParams params) {
- List<TakaiDocument> sTotal = takaiAisService.documentList(params);
- PageHelper.startPage(params.getPage(), params.getSize(), "").setReasonable(true);
- List<TakaiDocument> list = takaiAisService.documentList(params);
- return getDataTableResultTotal(list, Long.valueOf(sTotal.size()));
- // SysUser user = new SysUser();
- // user.setUserId(Long.valueOf(params.getUserId()));
- // // 角色集合
- // Set<String> permissions = permissionService.getMenuPermission(user);
- // // admin 所有文件
- // if (permissions.contains("document:public") && permissions.contains("document:internal") && permissions.contains("document:confidential") && permissions.contains("document:topsecret")) {
- // params.setFileLevel("4");
- // }
- // // 项目经理 机密文件 + 所有项目下的内部文件 + 公开文件
- // else if (permissions.contains("public") && permissions.contains("internal") && permissions.contains("confidential")) {
- // params.setFileLevel("3");
- // }
- // // 普通用户 所属项目下的内部文件 + 公开文件
- // else if (permissions.contains("public") && permissions.contains("internal")) {
- // params.setFileLevel("2");
- // }
- // // 游客 只能浏览公开文件
- // else if (permissions.contains("public")){
- // params.setFileLevel("1");
- // }else{
- // params.setFileLevel("0"); // 没有权限
- // }
- // List<TakaiDocument> sTotal = takaiAisService.documentList(params);
- // PageHelper.startPage(params.getPage(), params.getSize(), "").setReasonable(true);
- // List<TakaiDocument> list = takaiAisService.documentList(params);
- // return getDataTableResultTotal(list, Long.valueOf(sTotal.size()));
- }
- /**
- * 知识详情
- *
- * @param documentId
- * @return
- */
- @GetMapping("/documentDetail/{documentId}")
- public AjaxResult documentDetail(@PathVariable String documentId) {
- return success(takaiAisService.documentDetail(documentId));
- }
- /**
- * 更新知识
- *
- * @param params
- * @param documentId
- * @return
- */
- @PutMapping("/updateDocument/{documentId}")
- public AjaxResult updateDocument(@RequestBody TakaiDocumentParams params, @PathVariable String documentId) {
- int i = takaiAisService.updateDocument(params, documentId);
- return success(i);
- }
- /**
- * 删除知识
- *
- * @param documentId
- * @return
- */
- @DeleteMapping("/delDocument/{documentId}")
- public AjaxResult delDocument(@PathVariable String documentId) {
- int i = takaiAisService.delDocument(documentId);
- return success(i);
- }
- /**
- * 上传知识文件
- *
- * @param files
- * @param knowledgeId
- * @return
- * @throws Exception
- */
- @PostMapping("/uploadDocument/{knowledgeId}") //@RequestPart DocumentParams documentParams,
- public AjaxResult uploadDocument(@RequestParam("files") MultipartFile[] files,
- @PathVariable String knowledgeId) throws Exception {
- try {
- int i = takaiAisService.uploadDocument(files, knowledgeId);
- return success(i);
- } catch (Exception e) {
- return error("0");
- }
- }
- /**
- * 获取知识配置信息
- *
- * @param documentId
- * @return
- */
- @GetMapping("/documentSetting/{documentId}")
- public AjaxResult documentSetting(@PathVariable String documentId) {
- TakaiDocumentSettings json = takaiAisService.documentSetting(documentId);
- return success(json);
- }
- /**
- * 更新知识配置详情
- *
- * @param documentSetting
- * @param documentId
- * @return
- */
- @PutMapping("/updateDocumentSetting/{documentId}")
- public AjaxResult updateDocumentSetting(@RequestBody TakaiDocumentSettings documentSetting, @PathVariable String documentId) {
- int i = takaiAisService.updateDocumentSetting(documentSetting, documentId); // 更新知识配置信息
- return success(i);
- }
- /**
- * 获取切片列表
- *
- * @param params
- * @return
- */
- @PostMapping("/getSliceList")
- public TableDataInfo getDialogDetail(@RequestBody TakaiSliceParams params) {
- List<TakaiSliceInfo> s = takaiAisService.selectByDocumentId(params.getDocument_id());
- PageHelper.startPage(params.getPageNum(), params.getPageSize(), "").setReasonable(true);
- List<TakaiSliceInfo> list = takaiAisService.selectByDocumentId(params.getDocument_id());
- return getDataTableResultTotal(list, Long.valueOf(s.size()));
- // JSONObject json = takaiAisService.getSliceList(params);
- // return success(json);
- }
- /**
- * 删除切片
- *
- * @param sliceId
- * @param knowledgeId
- */
- @DeleteMapping("/deleteSlice/{sliceId}/{knowledgeId}/{documentId}")
- public AjaxResult deleteSlice(@PathVariable String sliceId, @PathVariable String knowledgeId, @PathVariable String documentId) {
- return success(takaiAisService.deleteSlice(sliceId, knowledgeId, documentId));
- }
- /**
- * 切片详情
- *
- * @param sliceId
- * @param knowledgeId
- * @return
- */
- @GetMapping("/getSliceDetail/{sliceId}/{knowledgeId}")
- public AjaxResult test(@PathVariable String sliceId, @PathVariable String knowledgeId) {
- JSONObject json = takaiAisService.getSliceDetail(sliceId, knowledgeId);
- return success(json);
- }
- /**
- * 更新切片信息
- *
- * @param params
- * @return
- */
- @PutMapping("/updateSliceInfo")
- public AjaxResult updateSliceInfo(@RequestBody TakaiSliceUpdateParams params) {
- return success(takaiAisService.updateSliceInfo(params));
- }
- /**
- * 获取聊天列表
- *
- * @param params
- * @return
- */
- @PostMapping("/chatHistory/list")
- public TableDataInfo dataExportList(@RequestBody TakaiPageParams params) {
- if (StringUtils.isNotBlank(params.getAppId())) {
- //获取应用聊天列表
- List<Object> s = takaiAisService.selectDialogListByAppId(params.getAppId(), params.getUserId());
- PageHelper.startPage(params.getPageNumber(), params.getPageSize(), "").setReasonable(true);
- List<Object> list = takaiAisService.selectDialogListByAppId(params.getAppId(), params.getUserId());
- return getDataTableResultTotal(list, Long.valueOf(s.size()));
- } else {
- //获取所有列表
- List<Object> s = takaiAisService.selectDialogListByAppId(null, null);
- PageHelper.startPage(params.getPageNumber(), params.getPageSize(), "").setReasonable(true);
- List<Object> list = takaiAisService.selectDialogListByAppId(null, null);
- return getDataTableResultTotal(list, Long.valueOf(s.size()));
- }
- }
- /**
- * 导出聊天记录
- *
- * @param response
- * @param id
- */
- @Log(title = "聊天详情", businessType = BusinessType.EXPORT)
- @PostMapping("/dialog/export/{id}")
- public void export(HttpServletResponse response, @PathVariable String id) {
- List<TakaiDialogRespDTO> dialogs = takaiAisService.exportExcel(id);
- ExcelUtil<TakaiDialogRespDTO> util = new ExcelUtil(TakaiDialogRespDTO.class);
- util.exportExcel(response, dialogs, "聊天记录");
- }
- /**
- * 应用列表
- *
- * @return
- */
- @GetMapping("/application/list")
- public AjaxResult applicationList() {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if(loginUser != null){
- TakaiApplication vo = setFlagParams(loginUser.getUserId(), null, null, 3);
- List<TakaiApplicationResult> appList = takaiAisService.getApplicationList(vo);
- return success(appList);
- }else{
- TakaiApplication vo = setFlagParams(null, null, null, 3);
- List<TakaiApplicationResult> appList = takaiAisService.getApplicationList(vo);
- return success(appList);
- }
- }
- /**
- * 管理后台应用列表
- * @return
- */
- @GetMapping("/application/list/{userId}")
- public AjaxResult adminApp(@PathVariable String userId) {
- TakaiApplication vo = setFlagParams(userId, null, null, 3);
- List<TakaiApplicationResult> appList = takaiAisService.getApplicationList(vo);
- return success(appList);
- }
- @GetMapping("/role/list")
- public AjaxResult roleApp() {
- List<TakaiApplicationResult> appList = takaiAisService.selectRoleApp();
- return success(appList);
- }
- /**
- * 保存聊天记录
- *
- * @param dialogReqDTO
- * @return
- */
- @PostMapping("/dialog/save")
- public AjaxResult saveDialog(@RequestBody TakaiDialogReqDTO dialogReqDTO) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if (loginUser != null) {
- dialogReqDTO.setUserId(loginUser.getUserId());
- takaiAisService.saveDialog(dialogReqDTO);
- }
- return success();
- }
- /**
- * 聊天集合
- *
- * @return
- */
- @GetMapping("/dialog/list/{appId}")
- public AjaxResult dialogList(@PathVariable String appId) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if (loginUser != null) {
- List<Object> dialogs = takaiAisService.getDialogList(appId, loginUser.getUserId());
- return success(dialogs);
- }
- return success(null);
- }
- /**
- * 聊天详情
- *
- * @param dialogId
- * @return
- */
- @GetMapping("/dialog/detail/{dialogId}")
- public AjaxResult dialogDetail(@PathVariable String dialogId) {
- List<TakaiDialogRespDTO> detail = takaiAisService.getDialogDetail(dialogId);
- return success(detail);
- }
- /**
- * 删除聊天记录
- *
- * @param id
- * @return
- */
- @DeleteMapping("/dialog/del/{id}")
- public AjaxResult delDialog(@PathVariable String id) {
- takaiAisService.DelDialogDetail(id);
- return success();
- }
- /**
- * 聊天标题重命名
- *
- * @param dialogReqDTO
- * @return
- */
- @PutMapping("/dialog/update")
- public AjaxResult updateDialog(@RequestBody TakaiDialogReqDTO dialogReqDTO) {
- takaiAisService.updateDialog(dialogReqDTO);
- return success();
- }
- /**
- * 预设问题
- *
- * @param appId
- * @return
- */
- @GetMapping("/presets/{appId}")
- public AjaxResult presets(@PathVariable String appId) {
- List<TakaiQuestionDTO> list = takaiAisService.selectQuestionByAppId(appId);
- List<String> strList = new ArrayList();
- for (TakaiQuestionDTO vo : list) {
- strList.add(vo.getQuestion());
- }
- return success(strList);
- }
- /**
- * 新增切片
- *
- * @param params
- * @return
- */
- @PostMapping("/add/slice")
- public AjaxResult addSlice(@RequestBody TakaiSliceUpdateParams params) {
- return success(takaiAisService.addSlice(params));
- }
- /**
- * 获取聊天切片列表
- *
- * @param params
- * @return
- */
- @PostMapping("/slicePage")
- public TableDataInfo dataExportList(@RequestBody SlicePageInfo params) {
- DocumentInfo chunkInfo = params.getChunk_info();
- List<ChunkList> chunkList = chunkInfo.getChunk_list();
- // 1. 先按 rerank_score 降序排序所有chunk
- List<ChunkList> sortedChunks = chunkList.stream()
- .sorted(Comparator.comparingDouble(
- (ChunkList s) -> Double.parseDouble(s.getRerank_score())
- ).reversed())
- .collect(Collectors.toList());
- // 2. 提取排序后的chunk_ids(此时已按分数排序)
- List<String> sortedChunkIds = sortedChunks.stream()
- .map(ChunkList::getChunk_id)
- .collect(Collectors.toList());
- int fromIndex = (params.getPageNum() - 1) * params.getPageSize();
- int toIndex = Math.min(fromIndex + params.getPageSize(), chunkList.size());
- List<String> ids = sortedChunkIds.subList(fromIndex, toIndex);
- PageHelper.startPage(params.getPageNum(), params.getPageSize(), "").setReasonable(true);
- List<SliceInfo> list = takaiAisService.slicePageInfoList(ids);
- list.forEach(sliceInfo -> {
- chunkList.forEach(chunk -> {
- if (sliceInfo.getSliceId().equals(chunk.getChunk_id())) {
- sliceInfo.setRerankScore(chunk.getRerank_score());
- sliceInfo.setChunkLength(chunk.getChunk_len());
- }
- });
- });
- List<SliceInfo> sliceList = list.stream()
- .sorted(Comparator.comparingDouble((SliceInfo s) -> Double.parseDouble(s.getRerankScore())).reversed())
- .collect(Collectors.toList());
- return getDataTableResultTotal(sliceList, sortedChunkIds.size());
- }
- @GetMapping("/slice/search/{id}")
- public AjaxResult searchSlice(@PathVariable String id) {
- return success(takaiAisService.searchSlice(id));
- }
- /**
- *
- * 类型列表
- * @param dictType
- * @return
- */
- @GetMapping(value = "/{dictType}")
- public AjaxResult geDictInfo(@PathVariable String dictType) {
- SysDictData dictData = new SysDictData();
- dictData.setDictType(dictType);
- List<SysDictData> dictDataList = dictDataService.selectDictDataList(dictData);
- return success(dictDataList);
- }
- /**
- * 应用类型列表
- * @return
- */
- @GetMapping("/appType")
- public AjaxResult appType() {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if (loginUser != null) {
- SysDictData dictData = new SysDictData();
- dictData.setDictType("app_type");
- List<SysDictData> dictDataList = dictDataService.selectDictDataList(dictData);
- List<Object> list = takaiAisService.searchAppTypeGroupList(dictDataList, loginUser.getUserId());
- return success(list);
- }
- return null;
- }
- /**
- * 审核列表
- * @param params
- * @return
- */
- @PostMapping("/app/audit/list")
- public TableDataInfo documentAuditList(@RequestBody TakaiApplicationParams params) {
- startPage();
- List<TakaiApplication> list = takaiAisService.applicationListByApprover(params);
- return getDataTable(list);
- }
- /**
- * 开始审核
- * @return
- */
- @PutMapping(value = "/audit/{appId}/{userId}")
- public AjaxResult startAudit(@PathVariable String appId, @PathVariable String userId){
- return success(takaiAisService.startAudit(appId, userId));
- }
- /**
- * 审核
- * @param params
- * @param appId
- * @return
- */
- @PutMapping("/updateDocumentAudit/{appId}")
- public AjaxResult updateAuditApplication(@RequestBody TakaiApplicationParams params, @PathVariable String appId) {
- int i = takaiAisService.updateAuditApplication(params, appId);
- return success(i);
- }
- /**
- * 根据登录用户获取项目下的应用列表
- * @return
- */
- @GetMapping("/project/app")//@RequestBody TakaiPageParams params
- public AjaxResult appFlag() {
- // TakaiApplication vo = setFlagParams(params.getUserId());
- // vo.setApprover(params.getUserId());
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if(loginUser != null){
- TakaiApplication vo = setFlagParams(loginUser.getUserId(), null, null, 1);
- List<TakaiApplicationResult> s = takaiAisService.getApplicationList(vo);
- return success(takaiAisService.getChatAppList(s, loginUser.getUserId()));
- }else{
- return success(null);
- }
- }
- /**
- * 收藏列表
- * @param userId
- * @return
- */
- @GetMapping("/app/collect/list/{userId}")
- public AjaxResult appCollectList(@PathVariable String userId) {
- List<String> list = takaiAisService.selectAppCollectList(userId);
- return success(list);
- }
- /**
- * 收藏
- * @param appCollect
- * @return
- */
- @PostMapping("/app/collect")
- public AjaxResult appCollect(@RequestBody AppCollect appCollect) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if(loginUser != null){
- appCollect.setUserId(loginUser.getUserId());
- return success(takaiAisService.insertAppCollect(appCollect));
- }else {
- return success(null);
- }
- }
- /**
- * 取消收藏
- * @param appId
- * @return
- */
- @DeleteMapping("/app/collect/{appId}")
- public AjaxResult appCollectDel(@PathVariable String appId) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if(loginUser != null){
- return success(takaiAisService.deleteAppCollect(loginUser.getUserId(), appId));
- }else{
- return success(null);
- }
- }
- private TakaiApplication setFlagParams(String userId, String typeId, String projectId, int i) {
- if(i == 3){
- return returnParams(userId, typeId, projectId, "0");
- }else{
- // 角色集合
- SysUser user = new SysUser();
- user.setUserId(userId);
- Set<String> permissions = permissionService.getMenuPermission(user);
- if (permissions.contains("deepseek:application:create") || permissions.contains("deepseek:application:update")) {
- return returnParams(userId, typeId, projectId, "1");
- }else{
- return returnParams(userId, typeId, projectId, "0");
- }
- }
- }
- private TakaiApplication returnParams(String userId, String typeId, String projectId, String flag) {
- return TakaiApplication.builder().approver(userId == null ? null : userId)
- .typeId(typeId == null ? null : Long.valueOf(typeId))
- .projectId(projectId == null ? null : projectId)
- .flag(flag).build();
- }
- @GetMapping("/test")
- public AjaxResult test() {
- TakaiMediaReplacement vo = takaiAisService.getTakaiMediaReplacement();
- return success(vo);
- }
- @GetMapping("/download/{fileName}")
- public void downloadFile(@PathVariable String fileName) {
- try {
- // InputStream stream = minioUtil.download(bucketName, fileName);
- // 这里简化处理,实际应该设置正确的Content-Type和Content-Disposition
- // return ResponseEntity.ok()
- // .header("Content-Type", "application/octet-stream")
- // .header("Content-Disposition", "attachment; filename=\"" + fileName + "\"")
- // .body(stream);
- } catch (Exception e) {
- logger.error("文件下载失败: " + e.getMessage());
- }
- }
- @DeleteMapping("/delete/{fileName}")
- public void deleteFile(@PathVariable String fileName) {
- try {
- // minioUtil.remove(bucketName, fileName);
- } catch (Exception e) {
- logger.error("文件删除失败: " + e.getMessage());
- }
- }
- }
|