package ai import ( "encoding/json" "eta/eta_api/models" "eta/eta_api/models/ai_summary" "eta/eta_api/models/system" "time" ) // AiPromptList // @Title 获取所有ai纪要分类接口-包含沙盘 // @Description 获取所有ai纪要分类接口-包含沙盘 // @Success 200 {object} data_manage.ChartClassifyListResp // @router /prompt/list [get] func (this *AiController) AiPromptList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() list, err := ai_summary.GetAiPromptList(this.SysUser.AdminId, 0) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = list } // PromptGroupList // @Title 获取可见的目录列表 // @Description 获取可见的目录列表接口 // @Success 200 {object} ppt_english.RespGroupList // @router /prompt/groups [get] func (this *AiController) PromptGroupList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() list, err := ai_summary.GetAiPromptShareList() if err != nil { br.Msg = err.Error() return } resp := make([]*ai_summary.RespGroupListItem, 0) publicAdminIdList := make([]int, 0) publicPromptListMap := make(map[int][]*ai_summary.AiPromptItem) systemAdminMap := make(map[int]*system.Admin) for _, v := range list { publicPromptList, ok := publicPromptListMap[v.SysAdminId] if !ok { publicPromptList = make([]*ai_summary.AiPromptItem, 0) publicAdminIdList = append(publicAdminIdList, v.SysAdminId) } systemAdminMap[v.SysAdminId] = &system.Admin{ AdminId: v.SysAdminId, RealName: v.SysAdminName, } publicPromptList = append(publicPromptList, v) publicPromptListMap[v.SysAdminId] = publicPromptList } for _, v := range publicAdminIdList { systemAdmin, ok := systemAdminMap[v] if !ok { continue } respGroupPptNameListItemList, ok := publicPromptListMap[v] if !ok { respGroupPptNameListItemList = make([]*ai_summary.AiPromptItem, 0) } // 分组信息 tmpRespGroupListItem := &ai_summary.RespGroupListItem{ GroupId: int64(systemAdmin.AdminId), GroupName: systemAdmin.RealName, AdminId: systemAdmin.AdminId, IsShare: 1, PromptList: respGroupPptNameListItemList, } resp = append(resp, tmpRespGroupListItem) } br.Ret = 200 br.Success = true br.Msg = "查询成功" br.Data = resp return } // AddPpt // @Title 新增提示词 // @Description 新增提示词接口 // @Param request body ppt_english.AddPptEnglishReq true "type json string" // @Success 200 Ret=200 新增成功 // @router /prompt/add [post] func (this *AiController) AddPrompt() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req ai_summary.AiPromptAddReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.Title == "" { br.Msg = "标题不能为空" return } var msg string prompt := &ai_summary.AiPrompt{ CreateTime: time.Now(), ModifyTime: time.Now(), PromptContent: req.PromptContent, SysAdminId: this.SysUser.AdminId, SysAdminName: this.SysUser.RealName, Title: req.Title, } _, err = ai_summary.AddPropmt(prompt) if err != nil { br.Msg = "新增失败" br.ErrMsg = "新增失败,Err:" + err.Error() return } msg = "新增成功" br.Ret = 200 br.Success = true br.Msg = msg } // EditPpt // @Title 编辑提示词 // @Description 编辑提示词接口 // @Param request body ppt_english.AddPptEnglishReq true "type json string" // @Success 200 Ret=200 编辑成功 // @router /prompt/edit [post] func (this *AiController) EditPrompt() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req ai_summary.AiPromptEditReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.Title == "" { br.Msg = "标题不能为空" return } promptItem := &ai_summary.AiPrompt{ AiPromptId: req.AiPromptId, PromptContent: req.PromptContent, Title: req.Title, CreateTime: time.Time{}, ModifyTime: time.Now(), IsShare: req.IsShare, } err = promptItem.Update([]string{"ModifyTime", "PromptContent", "Title", "IsShare"}) if err != nil { br.Msg = "编辑失败" br.ErrMsg = "编辑失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "编辑成功" br.IsAddLog = true } // DeletePpt // @Title 删除提示词 // @Description 删除ppt接口 // @Param request body ppt_english.DeletePptEnglishReq true "type json string" // @Success 200 Ret=200 删除成功 // @router /prompt/delete [post] func (this *AiController) DeletePrompt() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req ai_summary.DeleteAipromptReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.AiPromptId <= 0 { br.Msg = "参数错误" return } promptInfo, err := ai_summary.GetAiPromptById(req.AiPromptId) if err != nil { br.Msg = "提示词不存在" return } if promptInfo.SysAdminId != this.SysUser.AdminId { br.Msg = "无权删除" return } err = ai_summary.DelAiPromptyId(req.AiPromptId) if err != nil { br.Msg = "删除失败" br.ErrMsg = "删除失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.IsAddLog = true br.Msg = "删除成功" } // DetailPrompt // @Title 获取提示词详情 // @Description 获取提示词详情接口 // @Param AiPromptId query int true "提示词id" // @Success 200 {object} ppt_english.PptEnglish // @router /prompt/detail [get] func (this *AiController) DetailPrompt() { br := new(models.BaseResponse).Init() defer func() { if br.ErrMsg == "" { br.IsSendEmail = false } this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } aiPromptId, _ := this.GetInt("AiPromptId") promptInfo, err := ai_summary.GetAiPromptById(aiPromptId) if err != nil { br.Msg = "提示词不存在" return } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = promptInfo }