base_from_sci.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  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 BaseFromSci struct {
  9. BaseFromSciId int `orm:"column(base_from_sci_id);pk"`
  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 BaseFromSciIndex struct {
  34. BaseFromSciIndexId int `orm:"column(base_from_sci_index_id);pk"`
  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 BaseFromSciData struct {
  46. SciDataId int `orm:"column(sci_data_id);pk"`
  47. BaseFromSciIndexId int
  48. IndexCode string
  49. DataTime string
  50. Value string
  51. CreateTime time.Time
  52. ModifyTime time.Time
  53. DataTimestamp int64
  54. }
  55. func GetBaseFromSciIndexByIndexCode(indexCode string) (list *BaseFromSciIndex, err error) {
  56. sql := ` SELECT * FROM base_from_sci_index WHERE index_code=? `
  57. err = global.DmSQL["data"].Raw(sql, indexCode).First(&list).Error
  58. return
  59. }
  60. // GetBaseFromSciIndexCountByClassifyIds 获取分类下指标的个数
  61. func GetBaseFromSciIndexCountByClassifyIds(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_sci_index WHERE classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  67. err = global.DmSQL["data"].Raw(sql, classifyIds).Scan(&count).Error
  68. return
  69. }
  70. // GetBaseFromSciIndexByClassifyId 获取根据分类查询指标
  71. func GetBaseFromSciIndexByClassifyId(classifyId int) (list []*BaseFromSciIndex, err error) {
  72. sql := `SELECT * FROM base_from_sci_index WHERE classify_id =? ORDER BY sort ASC, base_from_sci_index_id ASC `
  73. err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&list).Error
  74. return
  75. }
  76. // GetSciIndexAll 用于分类展示
  77. func GetSciIndexAll() (items []*BaseFromSciClassifyItems, err error) {
  78. sql := ` SELECT base_from_sci_index_id, classify_id, index_name as classify_name, index_code as base_from_sci_index_code
  79. FROM base_from_sci_index ORDER BY sort ASC, base_from_sci_index_id ASC `
  80. err = global.DmSQL["data"].Raw(sql).Scan(&items).Error
  81. return
  82. }
  83. // GetBaseFromSciIndexByIndexId 根据指标id获取指标信息
  84. func GetBaseFromSciIndexByIndexId(indexId int) (item *BaseFromSciIndex, err error) {
  85. sql := `SELECT * FROM base_from_sci_index WHERE base_from_sci_index_id=? `
  86. err = global.DmSQL["data"].Raw(sql, indexId).First(&item).Error
  87. return
  88. }
  89. // GetBaseFromSciIndexMaxSortByClassifyId 根据指标id获取指标信息
  90. func GetBaseFromSciIndexMaxSortByClassifyId(classifyId int) (sort int, err error) {
  91. sql := `SELECT max(sort) FROM base_from_sci_index WHERE classify_id=? `
  92. err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&sort).Error
  93. return
  94. }
  95. // GetBaseFromSciIndexMinSortByClassifyId 获取最小不等于0的排序
  96. func GetBaseFromSciIndexMinSortByClassifyId(classifyId int) (sort int, err error) {
  97. sql := `SELECT min(sort) FROM base_from_sci_index WHERE classify_id=? and sort <> 0 `
  98. err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&sort).Error
  99. return
  100. }
  101. type BaseFromSciIndexType struct {
  102. Type2 string `orm:"column(type_2)"`
  103. Type3 string `orm:"column(type_3)"`
  104. }
  105. // GetBaseFromSciIndexType 获取历史指标信息类型
  106. func GetBaseFromSciIndexType() (list []BaseFromSciIndexType, err error) {
  107. o := global.DmSQL["data"]
  108. sql := `SELECT type_2, type_3 from base_from_sci_index where type_2 <> "" GROUP BY type_2, type_3`
  109. err = o.Raw(sql).Scan(&list).Error
  110. return
  111. }
  112. // MoveBaseFromSciIndex 移动指标分类
  113. func MoveBaseFromSciIndex(chartInfoId, classifyId int) (err error) {
  114. o := global.DmSQL["data"]
  115. sql := ` UPDATE base_from_sci_index
  116. SET
  117. classify_id = ?, modify_time=NOW()
  118. WHERE base_from_sci_index_id = ?`
  119. err = o.Exec(sql, classifyId, chartInfoId).Error
  120. return
  121. }
  122. // UpdateBaseFromSciIndexByClassifyId 根据指标id更新排序
  123. func UpdateBaseFromSciIndexByClassifyId(classifyId, nowSort, prevIndexInfoId int, updateSort string) (err error) {
  124. o := global.DmSQL["data"]
  125. sql := ` update base_from_sci_index set sort = ` + updateSort + ` WHERE classify_id=? AND `
  126. if prevIndexInfoId > 0 {
  127. sql += ` ( sort > ? or (base_from_sci_index_id > ` + fmt.Sprint(prevIndexInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
  128. }
  129. err = o.Exec(sql, classifyId, nowSort).Error
  130. return
  131. }
  132. // MoveUpSciIndexBySort 往上移动
  133. func MoveUpSciIndexBySort(classifyId, nextSort, currentSort int) (err error) {
  134. o := global.DmSQL["data"]
  135. sql := `update base_from_sci_index set sort = sort + 1 where classify_id=? and sort >= ? and sort< ?`
  136. err = o.Exec(sql, classifyId, nextSort, currentSort).Error
  137. return
  138. }
  139. // MoveDownSciIndexBySort 往下移动
  140. func MoveDownSciIndexBySort(classifyId, prevSort, currentSort int) (err error) {
  141. o := global.DmSQL["data"]
  142. sql := `update base_from_sci_index set sort = sort - 1 where classify_id=? and sort <= ? and sort> ? `
  143. err = o.Exec(sql, classifyId, prevSort, currentSort).Error
  144. return
  145. }
  146. // GetFirstBaseFromSciIndexByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
  147. func GetFirstBaseFromSciIndexByClassifyId(classifyId int) (item *BaseFromSciIndex, err error) {
  148. o := global.DmSQL["data"]
  149. sql := ` SELECT * FROM base_from_sci_index WHERE classify_id=? order by sort asc,base_from_sci_index_id asc limit 1`
  150. err = o.Raw(sql, classifyId).First(&item).Error
  151. return
  152. }
  153. // Update 更新Sci指标基础信息
  154. func (item *BaseFromSciIndex) Update(cols []string) (err error) {
  155. err = global.DmSQL["data"].Select(cols).Updates(item).Error
  156. return
  157. }
  158. // DeleteBaseFromSciIndexById 根据指标id删除对应的指标、指标数据
  159. func DeleteBaseFromSciIndexById(sciIndexId int) (err error) {
  160. to := global.DmSQL["data"].Begin()
  161. defer func() {
  162. if err != nil {
  163. _ = to.Rollback()
  164. } else {
  165. _ = to.Commit()
  166. }
  167. }()
  168. //删除指标
  169. sql := `DELETE FROM base_from_sci_index WHERE base_from_sci_index_id = ? `
  170. err = to.Exec(sql, sciIndexId).Error
  171. if err != nil {
  172. return
  173. }
  174. //删除指标数据
  175. sql = `DELETE FROM base_from_sci_data WHERE base_from_sci_index_id = ? `
  176. err = to.Exec(sql, sciIndexId).Error
  177. if err != nil {
  178. return
  179. }
  180. return
  181. }
  182. // EditSciIndexInfoResp 新增指标的返回
  183. type EditSciIndexInfoResp struct {
  184. BaseFromSciIndexId int `description:"指标ID"`
  185. IndexCode string `description:"指标code"`
  186. }
  187. type SciSingleDataResp struct {
  188. BaseFromSciIndexId int
  189. ClassifyId int
  190. Interface string
  191. Name string
  192. IndexCode string
  193. IndexName string
  194. Frequency string
  195. Unit string
  196. ApiStartTime string
  197. ApiUpdateTime string
  198. StartTime string
  199. FinishTime string
  200. CreateTime string
  201. ModifyTime string
  202. Data []*SciIndexData
  203. }