ai_pormpt.go 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package ai
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/ai_summary"
  6. "eta/eta_api/models/system"
  7. "time"
  8. )
  9. // AiPromptList
  10. // @Title 获取所有ai纪要分类接口-包含沙盘
  11. // @Description 获取所有ai纪要分类接口-包含沙盘
  12. // @Success 200 {object} data_manage.ChartClassifyListResp
  13. // @router /prompt/list [get]
  14. func (this *AiController) AiPromptList() {
  15. br := new(models.BaseResponse).Init()
  16. defer func() {
  17. this.Data["json"] = br
  18. this.ServeJSON()
  19. }()
  20. list, err := ai_summary.GetAiPromptList(this.SysUser.AdminId, 0)
  21. if err != nil {
  22. br.Msg = "获取失败"
  23. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  24. return
  25. }
  26. br.Ret = 200
  27. br.Success = true
  28. br.Msg = "获取成功"
  29. br.Data = list
  30. }
  31. // PromptGroupList
  32. // @Title 获取可见的目录列表
  33. // @Description 获取可见的目录列表接口
  34. // @Success 200 {object} ppt_english.RespGroupList
  35. // @router /prompt/groups [get]
  36. func (this *AiController) PromptGroupList() {
  37. br := new(models.BaseResponse).Init()
  38. defer func() {
  39. this.Data["json"] = br
  40. this.ServeJSON()
  41. }()
  42. list, err := ai_summary.GetAiPromptShareList()
  43. if err != nil {
  44. br.Msg = err.Error()
  45. return
  46. }
  47. resp := make([]*ai_summary.RespGroupListItem, 0)
  48. publicAdminIdList := make([]int, 0)
  49. publicPromptListMap := make(map[int][]*ai_summary.AiPromptItem)
  50. systemAdminMap := make(map[int]*system.Admin)
  51. for _, v := range list {
  52. publicPromptList, ok := publicPromptListMap[v.SysAdminId]
  53. if !ok {
  54. publicPromptList = make([]*ai_summary.AiPromptItem, 0)
  55. publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
  56. }
  57. systemAdminMap[v.SysAdminId] = &system.Admin{
  58. AdminId: v.SysAdminId,
  59. RealName: v.SysAdminName,
  60. }
  61. publicPromptList = append(publicPromptList, v)
  62. publicPromptListMap[v.SysAdminId] = publicPromptList
  63. }
  64. for _, v := range publicAdminIdList {
  65. systemAdmin, ok := systemAdminMap[v]
  66. if !ok {
  67. continue
  68. }
  69. respGroupPptNameListItemList, ok := publicPromptListMap[v]
  70. if !ok {
  71. respGroupPptNameListItemList = make([]*ai_summary.AiPromptItem, 0)
  72. }
  73. // 分组信息
  74. tmpRespGroupListItem := &ai_summary.RespGroupListItem{
  75. GroupId: int64(systemAdmin.AdminId),
  76. GroupName: systemAdmin.RealName,
  77. AdminId: systemAdmin.AdminId,
  78. IsShare: 1,
  79. PromptList: respGroupPptNameListItemList,
  80. }
  81. resp = append(resp, tmpRespGroupListItem)
  82. }
  83. br.Ret = 200
  84. br.Success = true
  85. br.Msg = "查询成功"
  86. br.Data = resp
  87. return
  88. }
  89. // AddPpt
  90. // @Title 新增提示词
  91. // @Description 新增提示词接口
  92. // @Param request body ppt_english.AddPptEnglishReq true "type json string"
  93. // @Success 200 Ret=200 新增成功
  94. // @router /prompt/add [post]
  95. func (this *AiController) AddPrompt() {
  96. br := new(models.BaseResponse).Init()
  97. defer func() {
  98. this.Data["json"] = br
  99. this.ServeJSON()
  100. }()
  101. var req ai_summary.AiPromptAddReq
  102. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  103. if err != nil {
  104. br.Msg = "参数解析异常!"
  105. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  106. return
  107. }
  108. if req.Title == "" {
  109. br.Msg = "标题不能为空"
  110. return
  111. }
  112. var msg string
  113. prompt := &ai_summary.AiPrompt{
  114. CreateTime: time.Now(),
  115. ModifyTime: time.Now(),
  116. PromptContent: req.PromptContent,
  117. SysAdminId: this.SysUser.AdminId,
  118. SysAdminName: this.SysUser.RealName,
  119. Title: req.Title,
  120. }
  121. _, err = ai_summary.AddPropmt(prompt)
  122. if err != nil {
  123. br.Msg = "新增失败"
  124. br.ErrMsg = "新增失败,Err:" + err.Error()
  125. return
  126. }
  127. msg = "新增成功"
  128. br.Ret = 200
  129. br.Success = true
  130. br.Msg = msg
  131. }
  132. // EditPpt
  133. // @Title 编辑提示词
  134. // @Description 编辑提示词接口
  135. // @Param request body ppt_english.AddPptEnglishReq true "type json string"
  136. // @Success 200 Ret=200 编辑成功
  137. // @router /prompt/edit [post]
  138. func (this *AiController) EditPrompt() {
  139. br := new(models.BaseResponse).Init()
  140. defer func() {
  141. this.Data["json"] = br
  142. this.ServeJSON()
  143. }()
  144. var req ai_summary.AiPromptEditReq
  145. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  146. if err != nil {
  147. br.Msg = "参数解析异常!"
  148. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  149. return
  150. }
  151. if req.Title == "" {
  152. br.Msg = "标题不能为空"
  153. return
  154. }
  155. promptItem := &ai_summary.AiPrompt{
  156. AiPromptId: req.AiPromptId,
  157. PromptContent: req.PromptContent,
  158. Title: req.Title,
  159. CreateTime: time.Time{},
  160. ModifyTime: time.Now(),
  161. IsShare: req.IsShare,
  162. }
  163. err = promptItem.Update([]string{"ModifyTime", "PromptContent", "Title", "IsShare"})
  164. if err != nil {
  165. br.Msg = "编辑失败"
  166. br.ErrMsg = "编辑失败,Err:" + err.Error()
  167. return
  168. }
  169. br.Ret = 200
  170. br.Success = true
  171. br.Msg = "编辑成功"
  172. br.IsAddLog = true
  173. }
  174. // DeletePpt
  175. // @Title 删除提示词
  176. // @Description 删除ppt接口
  177. // @Param request body ppt_english.DeletePptEnglishReq true "type json string"
  178. // @Success 200 Ret=200 删除成功
  179. // @router /prompt/delete [post]
  180. func (this *AiController) DeletePrompt() {
  181. br := new(models.BaseResponse).Init()
  182. defer func() {
  183. this.Data["json"] = br
  184. this.ServeJSON()
  185. }()
  186. var req ai_summary.DeleteAipromptReq
  187. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  188. if err != nil {
  189. br.Msg = "参数解析异常!"
  190. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  191. return
  192. }
  193. if req.AiPromptId <= 0 {
  194. br.Msg = "参数错误"
  195. return
  196. }
  197. promptInfo, err := ai_summary.GetAiPromptById(req.AiPromptId)
  198. if err != nil {
  199. br.Msg = "提示词不存在"
  200. return
  201. }
  202. if promptInfo.SysAdminId != this.SysUser.AdminId {
  203. br.Msg = "无权删除"
  204. return
  205. }
  206. err = ai_summary.DelAiPromptyId(req.AiPromptId)
  207. if err != nil {
  208. br.Msg = "删除失败"
  209. br.ErrMsg = "删除失败,Err:" + err.Error()
  210. return
  211. }
  212. br.Ret = 200
  213. br.Success = true
  214. br.IsAddLog = true
  215. br.Msg = "删除成功"
  216. }
  217. // DetailPrompt
  218. // @Title 获取提示词详情
  219. // @Description 获取提示词详情接口
  220. // @Param AiPromptId query int true "提示词id"
  221. // @Success 200 {object} ppt_english.PptEnglish
  222. // @router /prompt/detail [get]
  223. func (this *AiController) DetailPrompt() {
  224. br := new(models.BaseResponse).Init()
  225. defer func() {
  226. if br.ErrMsg == "" {
  227. br.IsSendEmail = false
  228. }
  229. this.Data["json"] = br
  230. this.ServeJSON()
  231. }()
  232. sysUser := this.SysUser
  233. if sysUser == nil {
  234. br.Msg = "请登录"
  235. br.ErrMsg = "请登录,SysUser Is Empty"
  236. br.Ret = 408
  237. return
  238. }
  239. aiPromptId, _ := this.GetInt("AiPromptId")
  240. promptInfo, err := ai_summary.GetAiPromptById(aiPromptId)
  241. if err != nil {
  242. br.Msg = "提示词不存在"
  243. return
  244. }
  245. br.Ret = 200
  246. br.Success = true
  247. br.Msg = "获取成功"
  248. br.Data = promptInfo
  249. }