fe_calendar_ai_article.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package fe_calendar
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. // FeCalendarAiArticle 外汇日历-AI数据点评文章表
  8. type FeCalendarAiArticle struct {
  9. FeCalendarAiArticleId int `gorm:"column:fe_calendar_ai_article_id;primaryKey;autoIncrement"` // 文章ID
  10. ChartPermissionId int `gorm:"column:chart_permission_id"` // 品种ID
  11. ChartPermissionName string `gorm:"column:chart_permission_name"` // 品种名称
  12. MatterMonth string `gorm:"column:matter_month"` // 事项年月:格式2006-01
  13. MatterDate string `gorm:"column:matter_date"` // 事项日期
  14. Title string `gorm:"column:title"` // 标题
  15. EdbInfoId int `gorm:"column:edb_info_id"` // 指标ID
  16. EdbCode string `gorm:"column:edb_code"` // 指标编码
  17. SysUserId int `gorm:"column:sys_user_id"` // 创建人ID
  18. SysUserName string `gorm:"column:sys_user_name"` // 创建人姓名
  19. Prompt string `gorm:"column:prompt;type:text"` // 提示词内容
  20. Content string `gorm:"column:content;type:text"` // 内容
  21. CreateTime time.Time `gorm:"column:create_time"` // 创建时间
  22. ModifyTime time.Time `gorm:"column:modify_time"` // 更新时间
  23. }
  24. // TableName 指定表名
  25. func (FeCalendarAiArticle) TableName() string {
  26. return "fe_calendar_ai_article"
  27. }
  28. // Create 创建文章
  29. func (f *FeCalendarAiArticle) Create() error {
  30. now := time.Now()
  31. f.CreateTime = now
  32. f.ModifyTime = now
  33. o := global.DbMap[utils.DbNameIndex]
  34. return o.Create(f).Error
  35. }
  36. // Update 更新文章
  37. func (f *FeCalendarAiArticle) Update(cols []string) error {
  38. now := time.Now()
  39. f.ModifyTime = now
  40. o := global.DbMap[utils.DbNameIndex]
  41. return o.Model(f).Where("fe_calendar_ai_article_id = ?", f.FeCalendarAiArticleId).Select(cols).Updates(f).Error
  42. }
  43. // Delete 删除文章
  44. func (f *FeCalendarAiArticle) Delete() error {
  45. o := global.DbMap[utils.DbNameIndex]
  46. return o.Delete(f, "fe_calendar_ai_article_id = ?", f.FeCalendarAiArticleId).Error
  47. }
  48. // GetByID 根据ID获取文章
  49. func (f *FeCalendarAiArticle) GetByID(id uint) error {
  50. o := global.DbMap[utils.DbNameIndex]
  51. return o.Where("fe_calendar_ai_article_id = ?", id).First(f).Error
  52. }
  53. // QueryParams 查询参数结构体
  54. type QueryParams struct {
  55. EdbInfoId uint // 指标ID
  56. ChartPermissionId uint // 品种权限ID
  57. StartDate *time.Time // 开始日期
  58. EndDate *time.Time // 结束日期
  59. MatterMonth string // 事项月份
  60. Page int // 页码
  61. PageSize int // 每页数量
  62. }
  63. // QueryArticles 查询文章列表
  64. func (f *FeCalendarAiArticle) QueryArticles(params QueryParams) ([]FeCalendarAiArticle, int64, error) {
  65. var articles []FeCalendarAiArticle
  66. var total int64
  67. o := global.DbMap[utils.DbNameIndex]
  68. query := o.Model(&FeCalendarAiArticle{})
  69. // 添加查询条件
  70. if params.EdbInfoId > 0 {
  71. query = query.Where("edb_info_id = ?", params.EdbInfoId)
  72. }
  73. if params.ChartPermissionId > 0 {
  74. query = query.Where("chart_permission_id = ?", params.ChartPermissionId)
  75. }
  76. if params.MatterMonth != "" {
  77. query = query.Where("matter_month = ?", params.MatterMonth)
  78. }
  79. if params.StartDate != nil {
  80. query = query.Where("matter_date >= ?", params.StartDate)
  81. }
  82. if params.EndDate != nil {
  83. query = query.Where("matter_date <= ?", params.EndDate)
  84. }
  85. // 获取总数
  86. err := query.Count(&total).Error
  87. if err != nil {
  88. return nil, 0, err
  89. }
  90. // 分页查询
  91. if params.Page > 0 && params.PageSize > 0 {
  92. offset := (params.Page - 1) * params.PageSize
  93. query = query.Offset(offset).Limit(params.PageSize)
  94. }
  95. // 按时间倒序排序
  96. query = query.Order("matter_date DESC")
  97. // 执行查询
  98. err = query.Find(&articles).Error
  99. if err != nil {
  100. return nil, 0, err
  101. }
  102. return articles, total, nil
  103. }
  104. // GetByEdbInfoID 根据指标ID获取文章列表
  105. func (f *FeCalendarAiArticle) GetByEdbInfoID(edbInfoID uint) ([]FeCalendarAiArticle, error) {
  106. var articles []FeCalendarAiArticle
  107. o := global.DbMap[utils.DbNameIndex]
  108. err := o.Where("edb_info_id = ?", edbInfoID).Order("matter_date DESC").Find(&articles).Error
  109. return articles, err
  110. }
  111. // GetByChartPermissionID 根据品种权限ID获取文章列表
  112. func (f *FeCalendarAiArticle) GetByChartPermissionID(chartPermissionID uint) ([]FeCalendarAiArticle, error) {
  113. var articles []FeCalendarAiArticle
  114. o := global.DbMap[utils.DbNameIndex]
  115. err := o.Where("chart_permission_id = ?", chartPermissionID).Order("matter_date DESC").Find(&articles).Error
  116. return articles, err
  117. }
  118. // GetByDateRange 根据日期范围获取文章列表
  119. func (f *FeCalendarAiArticle) GetByDateRange(startDate, endDate time.Time) ([]FeCalendarAiArticle, error) {
  120. var articles []FeCalendarAiArticle
  121. o := global.DbMap[utils.DbNameIndex]
  122. err := o.Where("matter_date BETWEEN ? AND ?", startDate, endDate).
  123. Order("matter_date DESC").
  124. Find(&articles).Error
  125. return articles, err
  126. }
  127. // GetByMatterMonth 根据事项月份获取文章列表
  128. func (f *FeCalendarAiArticle) GetByMatterMonth(matterMonth string) ([]FeCalendarAiArticle, error) {
  129. var articles []FeCalendarAiArticle
  130. o := global.DbMap[utils.DbNameIndex]
  131. err := o.Where("matter_month = ?", matterMonth).
  132. Order("matter_date DESC").
  133. Find(&articles).Error
  134. return articles, err
  135. }
  136. type FeCalendarAiArticleGenerateReq struct {
  137. MatterDate string // 事项日期
  138. EdbInfoId int // 指标ID
  139. }
  140. type FeCalendarAiArticleGenerateResp struct {
  141. Content string // 内容
  142. ModifyTime string // 修改时间
  143. }
  144. type FeCalendarAiArticleSaveReq struct {
  145. FeCalendarAiArticleId int // 文章ID
  146. ChartPermissionId int // 品种ID
  147. MatterDate string // 事项日期
  148. EdbInfoId int // 指标ID
  149. Content string // 内容
  150. FeCalendarMatterId int // 事项ID
  151. }
  152. type FeCalendarAiArticleSaveResp struct {
  153. FeCalendarAiArticleId int // 文章ID
  154. }
  155. type FeCalendarAiArticleDetailResp struct {
  156. FeCalendarAiArticleId int // 文章ID
  157. EdbName string // 指标名称
  158. EdbInfoId int // 指标ID
  159. EdbCode string // 指标编码
  160. Content string // 内容
  161. ModifyTime string // 修改时间
  162. }