ai_pormpt.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package ai_summary
  2. import (
  3. "eta/eta_api/utils"
  4. "github.com/beego/beego/v2/client/orm"
  5. "time"
  6. )
  7. type AiPrompt struct {
  8. AiPromptId int `orm:"column(ai_prompt_id);pk;auto"` // ai纪要提示词id
  9. PromptContent string // 原始内容
  10. SysAdminId int // 创建人ID
  11. SysAdminName string // 创建人姓名
  12. Title string // 文档标题
  13. CreateTime time.Time // 创建时间
  14. ModifyTime time.Time // 更新时间
  15. IsShare int // 是否分享,0:不分享,1:分享
  16. Sort int // 排序
  17. }
  18. // [2025-zsh-时间类型修复-chenhan]
  19. type AiPromptItem struct {
  20. AiPromptId int `orm:"column(ai_prompt_id);pk"` // ai纪要提示词id
  21. PromptContent string // 原始内容
  22. SysAdminId int // 创建人ID
  23. SysAdminName string // 创建人姓名
  24. Title string // 文档标题
  25. CreateTime string // 创建时间
  26. ModifyTime string // 更新时间
  27. IsShare int // 是否分享,0:不分享,1:分享
  28. Sort int // 排序
  29. }
  30. func (aiPrompt *AiPrompt) ToItem() *AiPromptItem {
  31. return &AiPromptItem{
  32. AiPromptId: aiPrompt.AiPromptId,
  33. PromptContent: aiPrompt.PromptContent,
  34. SysAdminId: aiPrompt.SysAdminId,
  35. SysAdminName: aiPrompt.SysAdminName,
  36. Title: aiPrompt.Title,
  37. CreateTime: aiPrompt.CreateTime.Format(utils.FormatDateTime),
  38. ModifyTime: aiPrompt.ModifyTime.Format(utils.FormatDateTime), // 更新时间
  39. IsShare: aiPrompt.IsShare, // 是否分享,0:不分享,1:分享
  40. Sort: aiPrompt.Sort, // 排序
  41. }
  42. }
  43. // [2025-zsh-时间类型修复-chenhan]
  44. func GetAiPromptList(sysUserId, isShare int) (items []*AiPrompt, err error) {
  45. sql := ``
  46. if isShare == 1 {
  47. sql = ` SELECT * FROM ai_prompt WHERE sys_admin_id=? and is_share=1 ORDER BY sort `
  48. } else {
  49. sql = ` SELECT * FROM ai_prompt WHERE sys_admin_id=? ORDER BY sort `
  50. }
  51. o := orm.NewOrm()
  52. _, err = o.Raw(sql, sysUserId).QueryRows(&items)
  53. return
  54. }
  55. // [2025-zsh-时间类型修复-chenhan]
  56. func GetAiPromptShareList() (items []*AiPrompt, err error) {
  57. sql := ``
  58. sql = ` SELECT * FROM ai_prompt WHERE is_share=1 ORDER BY create_time DESC `
  59. o := orm.NewOrm()
  60. _, err = o.Raw(sql).QueryRows(&items)
  61. return
  62. }
  63. type RespGroupListItem struct {
  64. GroupId int64 `description:"目录id"`
  65. GroupName string `description:"目录名称"`
  66. AdminId int `description:"目录创建者账号ID"`
  67. IsShare int8 `description:"是否共享,0私有,1共享"`
  68. PromptList []*AiPromptItem
  69. }
  70. type AiPromptAddReq struct {
  71. PromptContent string // 原始内容
  72. Title string // 文档标题
  73. }
  74. func AddPropmt(item *AiPrompt) (lastId int64, err error) {
  75. o := orm.NewOrm()
  76. lastId, err = o.Insert(item)
  77. return
  78. }
  79. type AiPromptEditReq struct {
  80. PromptContent string // 原始内容
  81. Title string // 文档标题
  82. AiPromptId int // ai纪要提示词id
  83. }
  84. // Update
  85. func (aiPrompt *AiPrompt) Update(cols []string) (err error) {
  86. o := orm.NewOrm()
  87. _, err = o.Update(aiPrompt, cols...)
  88. return
  89. }
  90. // DelAiSummaryById 根据纪要id删除纪要
  91. func DelAiPromptyId(aiPromptId int) (err error) {
  92. o := orm.NewOrm()
  93. sql := `delete from ai_prompt where ai_prompt_id = ? `
  94. _, err = o.Raw(sql, aiPromptId).Exec()
  95. return
  96. }
  97. func GetAiPromptById(promptId int) (item *AiPrompt, err error) {
  98. o := orm.NewOrm()
  99. sql := `SELECT * FROM ai_prompt WHERE 1=1 AND ai_prompt_id=? `
  100. err = o.Raw(sql, promptId).QueryRow(&item)
  101. return
  102. }
  103. type DeleteAipromptReq struct {
  104. AiPromptId int // ai纪要提示词id
  105. }
  106. type ReqMovePrompt struct {
  107. AiPromptId int `description:"当前被移动的目录里的ppt绑定序号"`
  108. PrevAiPromptId int `description:"上一个目录里的ppt绑定序号,ppt最终在目录中置顶,则传0值"`
  109. NextAiPromptId int `description:"下一个目录里的ppt绑定序号,ppt最终在目录末尾,则传0值"`
  110. }
  111. // GetAiPromptMaxSort 获取ai提示词下最大的排序数
  112. func GetAiPromptMaxSort(adminId int) (sort int, err error) {
  113. o := orm.NewOrm()
  114. sql := `SELECT Max(sort) AS sort FROM ai_prompt WHERE sys_admin_id=? `
  115. err = o.Raw(sql, adminId).QueryRow(&sort)
  116. return
  117. }
  118. // MoveDownPromptBySort 往下移动提示词
  119. func MoveDownPromptBySort(sysAdminId, prevSort, currentSort int) (err error) {
  120. o := orm.NewOrm()
  121. sql := `update ai_prompt set sort = sort - 1 where sys_admin_id = ? and sort <= ? and sort> ? `
  122. _, err = o.Raw(sql, sysAdminId, prevSort, currentSort).Exec()
  123. return
  124. }
  125. // MoveUpPromptBySort 往上移动提示词
  126. func MoveUpPromptBySort(sysAdminId, nextSort, currentSort int) (err error) {
  127. o := orm.NewOrm()
  128. sql := `update ai_prompt set sort = sort + 1 where sys_admin_id = ? and sort >= ? and sort< ?`
  129. _, err = o.Raw(sql, sysAdminId, nextSort, currentSort).Exec()
  130. return
  131. }