|
@@ -2,9 +2,11 @@ package ai
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "errors"
|
|
|
"eta/eta_api/models"
|
|
|
"eta/eta_api/models/ai_summary"
|
|
|
"eta/eta_api/models/system"
|
|
|
+ "eta/eta_api/utils"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -121,6 +123,8 @@ func (this *AiController) AddPrompt() {
|
|
|
}
|
|
|
|
|
|
var msg string
|
|
|
+ //获取该层级下最大的排序数
|
|
|
+ maxSort, err := ai_summary.GetAiPromptMaxSort(this.SysUser.AdminId)
|
|
|
|
|
|
prompt := &ai_summary.AiPrompt{
|
|
|
CreateTime: time.Now(),
|
|
@@ -129,6 +133,7 @@ func (this *AiController) AddPrompt() {
|
|
|
SysAdminId: this.SysUser.AdminId,
|
|
|
SysAdminName: this.SysUser.RealName,
|
|
|
Title: req.Title,
|
|
|
+ Sort: maxSort + 1,
|
|
|
}
|
|
|
_, err = ai_summary.AddPropmt(prompt)
|
|
|
if err != nil {
|
|
@@ -270,3 +275,102 @@ func (this *AiController) DetailPrompt() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = promptInfo
|
|
|
}
|
|
|
+
|
|
|
+// MoveAiPrompt
|
|
|
+// @Title 移动提示词
|
|
|
+// @Description 移动提示词接口
|
|
|
+// @Param request body models.ReqMoveGroupPpt true "type json string"
|
|
|
+// @Success 200 Ret=200 移动成功
|
|
|
+// @router /prompt/move [post]
|
|
|
+func (this *AiController) MoveAiPrompt() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req ai_summary.ReqMovePrompt
|
|
|
+ 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 = "请输入提示词ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ prompt, err := ai_summary.GetAiPromptById(req.AiPromptId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "当前提示词不存在"
|
|
|
+ br.ErrMsg = "当前提示词不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "提示词查询出错"
|
|
|
+ br.ErrMsg = "提示词查询出错:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var updateStr []string
|
|
|
+
|
|
|
+ var currentSort, prevSort, nextSort int
|
|
|
+ currentSort = prompt.Sort
|
|
|
+
|
|
|
+ var prevPrompt *ai_summary.AiPrompt
|
|
|
+ var nextPrompt *ai_summary.AiPrompt
|
|
|
+ if req.PrevAiPromptId > 0 {
|
|
|
+ prevPrompt, err = ai_summary.GetAiPromptById(req.PrevAiPromptId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ err = errors.New("目录下的提示词不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = errors.New("目录下的提示词查询出错:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ prevSort = prevPrompt.Sort
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.NextAiPromptId > 0 {
|
|
|
+ nextPrompt, err = ai_summary.GetAiPromptById(req.NextAiPromptId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ err = errors.New("目录下的提示词不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = errors.New("目录下的提示词查询出错:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ nextSort = nextPrompt.Sort
|
|
|
+ }
|
|
|
+
|
|
|
+ updateStr = append(updateStr, "sort")
|
|
|
+
|
|
|
+ //移到两个排序值中间操作
|
|
|
+ if prevSort >= currentSort {
|
|
|
+ //往下移动
|
|
|
+ err = ai_summary.MoveDownPromptBySort(this.SysUser.AdminId, prevSort, currentSort)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("向下移动提示词出错:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ prompt.Sort = prevSort
|
|
|
+ } else if nextSort <= currentSort && nextSort != 0 {
|
|
|
+ //往上移动
|
|
|
+ err = ai_summary.MoveUpPromptBySort(this.SysUser.AdminId, nextSort, currentSort)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("向上移动提示词出错:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ prompt.Sort = nextSort
|
|
|
+ }
|
|
|
+ //更新当前排序
|
|
|
+ err = prompt.Update(updateStr)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("移动提示词出错:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "移动成功"
|
|
|
+}
|