base_from_baiinfo.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. type BaseFromBaiinfo struct {
  9. BaseFromBaiinfoId int `orm:"column(base_from_baiinfo_id);pk" gorm:"primaryKey" `
  10. Aid int
  11. Name string
  12. Interface string
  13. ApiUpdate int
  14. ApiUpdateType string
  15. ApiType int
  16. ApiTypeAll string
  17. Type1 string `orm:"column(type_1)"`
  18. Type2 string `orm:"column(type_2)"`
  19. Type3 string `orm:"column(type_3)"`
  20. ApiStartTime string
  21. ApiUpdateTime string
  22. StartTime string
  23. FinishTime string
  24. AuthModule string
  25. AuthLang string
  26. ApiLabel string
  27. Enable string
  28. EditPerson string
  29. EditTime string
  30. AuthDur int
  31. AuthDurType string
  32. }
  33. type BaseFromBaiinfoIndex struct {
  34. BaseFromBaiinfoIndexId int `orm:"column(base_from_baiinfo_index_id);pk" gorm:"primaryKey" `
  35. ClassifyId int
  36. Interface string
  37. IndexCode string
  38. IndexName string
  39. Frequency string
  40. Unit string
  41. Sort int
  42. CreateTime time.Time
  43. ModifyTime time.Time
  44. }
  45. type BaseFromBaiinfoData struct {
  46. BaiinfoDataId int `orm:"column(baiinfo_data_id);pk" gorm:"primaryKey" `
  47. BaseFromBaiinfoIndexId int
  48. IndexCode string
  49. DataTime string
  50. Value string
  51. CreateTime time.Time
  52. ModifyTime time.Time
  53. DataTimestamp int64
  54. }
  55. func GetBaseFromBaiinfoIndexByIndexCode(indexCode string) (item *BaseFromBaiinfoIndex, err error) {
  56. sql := ` SELECT * FROM base_from_baiinfo_index WHERE index_code=? `
  57. err = global.DmSQL["data"].Raw(sql, indexCode).First(&item).Error
  58. return
  59. }
  60. // GetBaseFromBaiinfoIndexCountByClassifyIds 获取分类下指标的个数
  61. func GetBaseFromBaiinfoIndexCountByClassifyIds(classifyIds []int) (count int, err error) {
  62. num := len(classifyIds)
  63. if num <= 0 {
  64. return
  65. }
  66. sql := `SELECT COUNT(1) AS count FROM base_from_baiinfo_index WHERE classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  67. err = global.DmSQL["data"].Raw(sql, classifyIds).Scan(&count).Error
  68. return
  69. }
  70. // GetBaseFromBaiinfoIndexByClassifyId 获取根据分类查询指标
  71. func GetBaseFromBaiinfoIndexByClassifyId(classifyId int) (list []*BaseFromBaiinfoIndex, err error) {
  72. sql := `SELECT * FROM base_from_baiinfo_index WHERE classify_id =? ORDER BY sort ASC, base_from_baiinfo_index_id ASC `
  73. err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&list).Error
  74. return
  75. }
  76. // GetBaiinfoIndexAll 用于分类展示
  77. func GetBaiinfoIndexAll() (items []*BaseFromBaiinfoClassifyItems, err error) {
  78. o := global.DmSQL["data"]
  79. sql := ` SELECT base_from_baiinfo_index_id, classify_id, index_name as classify_name, index_code as base_from_baiinfo_index_code
  80. FROM base_from_baiinfo_index ORDER BY sort ASC, base_from_baiinfo_index_id ASC `
  81. err = o.Raw(sql).Scan(&items).Error
  82. return
  83. }
  84. // GetBaseFromBaiinfoIndexByIndexId 根据指标id获取指标信息
  85. func GetBaseFromBaiinfoIndexByIndexId(indexId int) (item *BaseFromBaiinfoIndex, err error) {
  86. o := global.DmSQL["data"]
  87. sql := `SELECT * FROM base_from_baiinfo_index WHERE base_from_baiinfo_index_id=? `
  88. err = o.Raw(sql, indexId).First(&item).Error
  89. return
  90. }
  91. // GetBaseFromBaiinfoIndexMaxSortByClassifyId 根据指标id获取指标信息
  92. func GetBaseFromBaiinfoIndexMaxSortByClassifyId(classifyId int) (sort int, err error) {
  93. o := global.DmSQL["data"]
  94. sql := `SELECT max(sort) FROM base_from_baiinfo_index WHERE classify_id=? `
  95. err = o.Raw(sql, classifyId).Scan(&sort).Error
  96. return
  97. }
  98. // GetBaseFromBaiinfoIndexMinSortByClassifyId 获取最小不等于0的排序
  99. func GetBaseFromBaiinfoIndexMinSortByClassifyId(classifyId int) (sort int, err error) {
  100. o := global.DmSQL["data"]
  101. sql := `SELECT min(sort) FROM base_from_baiinfo_index WHERE classify_id=? and sort <> 0 `
  102. err = o.Raw(sql, classifyId).Scan(&sort).Error
  103. return
  104. }
  105. type BaseFromBaiinfoIndexType struct {
  106. Type2 string `orm:"column(type_2)"`
  107. Type3 string `orm:"column(type_3)"`
  108. }
  109. // GetBaseFromBaiinfoIndexType 获取历史指标信息类型
  110. func GetBaseFromBaiinfoIndexType() (list []BaseFromBaiinfoIndexType, err error) {
  111. o := global.DmSQL["data"]
  112. sql := `SELECT type_2, type_3 from base_from_baiinfo_index where type_2 <> "" GROUP BY type_2, type_3`
  113. err = o.Raw(sql).Scan(&list).Error
  114. return
  115. }
  116. // MoveBaseFromBaiinfoIndex 移动指标分类
  117. func MoveBaseFromBaiinfoIndex(chartInfoId, classifyId int) (err error) {
  118. o := global.DmSQL["data"]
  119. sql := ` UPDATE base_from_baiinfo_index
  120. SET
  121. classify_id = ?, modify_time=NOW()
  122. WHERE base_from_baiinfo_index_id = ?`
  123. err = o.Exec(sql, classifyId, chartInfoId).Error
  124. return
  125. }
  126. // UpdateBaseFromBaiinfoIndexByClassifyId 根据指标id更新排序
  127. func UpdateBaseFromBaiinfoIndexByClassifyId(classifyId, nowSort, prevIndexInfoId int, updateSort string) (err error) {
  128. o := global.DmSQL["data"]
  129. sql := ` update base_from_baiinfo_index set sort = ` + updateSort + ` WHERE classify_id=? AND `
  130. if prevIndexInfoId > 0 {
  131. sql += ` ( sort > ? or (base_from_baiinfo_index_id > ` + fmt.Sprint(prevIndexInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
  132. }
  133. err = o.Exec(sql, classifyId, nowSort).Error
  134. return
  135. }
  136. // MoveUpBaiinfoIndexBySort 往上移动
  137. func MoveUpBaiinfoIndexBySort(classifyId, nextSort, currentSort int) (err error) {
  138. o := global.DmSQL["data"]
  139. sql := `update base_from_baiinfo_index set sort = sort + 1 where classify_id=? and sort >= ? and sort< ?`
  140. err = o.Exec(sql, classifyId, nextSort, currentSort).Error
  141. return
  142. }
  143. // MoveDownBaiinfoIndexBySort 往下移动
  144. func MoveDownBaiinfoIndexBySort(classifyId, prevSort, currentSort int) (err error) {
  145. o := global.DmSQL["data"]
  146. sql := `update base_from_baiinfo_index set sort = sort - 1 where classify_id=? and sort <= ? and sort> ? `
  147. err = o.Exec(sql, classifyId, prevSort, currentSort).Error
  148. return
  149. }
  150. // GetFirstBaseFromBaiinfoIndexByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
  151. func GetFirstBaseFromBaiinfoIndexByClassifyId(classifyId int) (item *BaseFromBaiinfoIndex, err error) {
  152. o := global.DmSQL["data"]
  153. sql := ` SELECT * FROM base_from_baiinfo_index WHERE classify_id=? order by sort asc,base_from_baiinfo_index_id asc limit 1`
  154. err = o.Raw(sql, classifyId).First(&item).Error
  155. return
  156. }
  157. // Update 更新Baiinfo指标基础信息
  158. func (item *BaseFromBaiinfoIndex) Update(cols []string) (err error) {
  159. err = global.DmSQL["data"].Select(cols).Updates(item).Error
  160. return
  161. }
  162. // DeleteBaseFromBaiinfoIndexById 根据指标id删除对应的指标、指标数据
  163. func DeleteBaseFromBaiinfoIndexById(baiinfoIndexId int) (err error) {
  164. o := global.DmSQL["data"]
  165. to := o.Begin()
  166. defer func() {
  167. if err != nil {
  168. _ = to.Rollback()
  169. } else {
  170. _ = to.Commit()
  171. }
  172. }()
  173. //删除指标
  174. sql := `DELETE FROM base_from_baiinfo_index WHERE base_from_baiinfo_index_id = ? `
  175. err = to.Exec(sql, baiinfoIndexId).Error
  176. if err != nil {
  177. return
  178. }
  179. //删除指标数据
  180. sql = `DELETE FROM base_from_baiinfo_data WHERE base_from_baiinfo_index_id = ? `
  181. err = to.Exec(sql, baiinfoIndexId).Error
  182. if err != nil {
  183. return
  184. }
  185. return
  186. }
  187. // EditBaiinfoIndexInfoResp 新增指标的返回
  188. type EditBaiinfoIndexInfoResp struct {
  189. BaseFromBaiinfoIndexId int `description:"指标ID"`
  190. IndexCode string `description:"指标code"`
  191. }
  192. type BaiinfoSingleDataResp struct {
  193. BaseFromBaiinfoIndexId int
  194. ClassifyId int
  195. Interface string
  196. Name string
  197. IndexCode string
  198. IndexName string
  199. Frequency string
  200. Unit string
  201. ApiStartTime string
  202. ApiUpdateTime string
  203. StartTime string
  204. FinishTime string
  205. CreateTime string
  206. ModifyTime string
  207. Data []*BaiinfoIndexData
  208. }