base_from_ccf.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package data_manage
  2. import (
  3. "eta/eta_api/utils"
  4. "github.com/beego/beego/v2/client/orm"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "time"
  7. )
  8. type BaseFromCCFIndex struct {
  9. BaseFromCcfIndexId int `orm:"column(base_from_ccf_index_id);pk"`
  10. ClassifyId int
  11. IndexCode string
  12. IndexName string
  13. Frequency string
  14. Unit string
  15. Sort int
  16. CreateTime time.Time
  17. ModifyTime time.Time
  18. }
  19. type BaseFromCCFIndexList struct {
  20. BaseFromCcfIndexId int `orm:"column(base_from_ccf_index_id);pk"`
  21. EdbInfoId int
  22. ClassifyId int
  23. IndexCode string
  24. IndexName string
  25. Frequency string
  26. Unit string
  27. Sort int
  28. CreateTime string
  29. ModifyTime string
  30. DataList []*BaseFromCCFData
  31. Paging *paging.PagingItem `description:"分页数据"`
  32. }
  33. type CCFSingleDataResp struct {
  34. BaseFromCcfIndexId int
  35. ClassifyId int
  36. IndexCode string
  37. IndexName string
  38. Frequency string
  39. Unit string
  40. CreateTime string
  41. ModifyTime string
  42. Data []*CCFSingleData
  43. }
  44. type CCFSingleData struct {
  45. Value string `orm:"column(value)" description:"日期"`
  46. DataTime string `orm:"column(data_time)" description:"值"`
  47. }
  48. func GetCCFIndex(condition string, pars interface{}) (items []*BaseFromCCFIndexList, err error) {
  49. o := orm.NewOrmUsingDB("data")
  50. sql := ` SELECT * FROM base_from_ccf_index WHERE 1=1 `
  51. if condition != "" {
  52. sql += condition
  53. }
  54. sql += ` ORDER BY sort ASC, base_from_ccf_index_id asc`
  55. _, err = o.Raw(sql, pars).QueryRows(&items)
  56. return
  57. }
  58. func GetCCFIndexDataCount(indexCode string) (count int, err error) {
  59. o := orm.NewOrmUsingDB("data")
  60. sql := ` SELECT COUNT(1) AS count FROM base_from_ccf_data WHERE index_code=? `
  61. err = o.Raw(sql, indexCode).QueryRow(&count)
  62. return
  63. }
  64. type CCFIndexDataCountGroup struct {
  65. IndexCode string
  66. Count int
  67. }
  68. func GetCCFIndexDataCountGroup(indexCodes []string) (items []*CCFIndexDataCountGroup, err error) {
  69. if len(indexCodes) <= 0 {
  70. return
  71. }
  72. o := orm.NewOrmUsingDB("data")
  73. sql := ` SELECT COUNT(1) AS count, index_code FROM base_from_ccf_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) GROUP BY index_code`
  74. _, err = o.Raw(sql, indexCodes).QueryRows(&items)
  75. return
  76. }
  77. func GetCCFIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromCCFData, err error) {
  78. o := orm.NewOrmUsingDB("data")
  79. sql := ` SELECT * FROM base_from_ccf_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
  80. _, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  81. return
  82. }
  83. func GetCCFIndexDataByCodes(indexCode []string) (items []*BaseFromCCFData, err error) {
  84. if len(indexCode) <= 0 {
  85. return
  86. }
  87. o := orm.NewOrmUsingDB("data")
  88. sql := ` SELECT * FROM base_from_ccf_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCode)) + `) ORDER BY data_time DESC `
  89. _, err = o.Raw(sql, indexCode).QueryRows(&items)
  90. return
  91. }
  92. type BaseFromCCFData struct {
  93. BaseFromCcfDataId int `orm:"column(base_from_ccf_data_id);pk"`
  94. BaseFromCcfIndexId int
  95. IndexCode string
  96. DataTime string
  97. Value string
  98. CreateTime string
  99. ModifyTime string
  100. DataTimestamp int64
  101. }
  102. type BaseFromCCFIndexSearchItem struct {
  103. BaseFromCcfIndexId int `orm:"column(base_from_ccf_index_id);pk"`
  104. ClassifyId int
  105. IndexCode string
  106. IndexName string
  107. }
  108. // GetCCFItemList 模糊查询CCF数据库指标列表
  109. func GetCCFItemList(condition string) (items []*BaseFromCCFIndexSearchItem, err error) {
  110. o := orm.NewOrmUsingDB("data")
  111. sql := "SELECT * FROM base_from_ccf_index WHERE 1=1"
  112. if condition != "" {
  113. sql += condition
  114. }
  115. _, err = o.Raw(sql).QueryRows(&items)
  116. return
  117. }
  118. func GetCCFIndexDataByCode(indexCode string) (list []*BaseFromCCFData, err error) {
  119. o := orm.NewOrmUsingDB("data")
  120. sql := `SELECT * FROM base_from_ccf_data WHERE index_code=? `
  121. _, err = o.Raw(sql, indexCode).QueryRows(&list)
  122. return
  123. }
  124. func GetBaseFromCCFIndexByIndexCode(indexCode string) (list *BaseFromCCFIndex, err error) {
  125. o := orm.NewOrmUsingDB("data")
  126. sql := ` SELECT * FROM base_from_ccf_index WHERE index_code=? `
  127. err = o.Raw(sql, indexCode).QueryRow(&list)
  128. return
  129. }
  130. func GetCCFIndexPage(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromCCFIndexList, err error) {
  131. o := orm.NewOrmUsingDB("data")
  132. sql := ` SELECT * FROM base_from_ccf_index WHERE 1=1 `
  133. if condition != "" {
  134. sql += condition
  135. }
  136. sql += ` ORDER BY sort ASC, base_from_ccf_index_id asc LIMIT ?,?`
  137. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  138. return
  139. }
  140. func GetCCFIndexPageCount(condition string, pars interface{}) (count int, err error) {
  141. o := orm.NewOrmUsingDB("data")
  142. sql := ` SELECT COUNT(1) AS count FROM base_from_ccf_index WHERE 1=1 `
  143. if condition != "" {
  144. sql += condition
  145. }
  146. err = o.Raw(sql, pars).QueryRow(&count)
  147. return
  148. }
  149. type BaseFromCCFIndexSearchList struct {
  150. List []*BaseFromCCFIndexList
  151. Paging *paging.PagingItem `description:"分页数据"`
  152. }
  153. type CCFIndexSource2EdbReq struct {
  154. EdbCode string
  155. EdbName string
  156. Frequency string
  157. Unit string
  158. ClassifyId int
  159. AdminId int
  160. AdminRealName string
  161. }
  162. // BatchCheckCCFEdbReq 指标数据结构体
  163. type BatchCheckCCFEdbReq struct {
  164. //IsJoinEdb int `form:"IsJoinEdb" description:"是否加到指标库,0:未加到指标库"`
  165. Frequencies string `description:"频度;枚举值:日度、周度、月度、季度、半年度、年度"`
  166. Keyword string `description:"关键字"`
  167. ClassifyIds string `description:"所选品种id列表"`
  168. ListAll bool `form:"ListAll" json:"ListAll" description:"列表全选"`
  169. TradeCodeList string `form:"TradeCodeList" json:"TradeCodeList" description:"全选为false时, 该数组为选中; 全选为true时, 该数组为不选的指标"`
  170. }
  171. func GetCCFFrequencyByClassifyId(classifyId int) (items []*GlFrequency, err error) {
  172. o := orm.NewOrmUsingDB("data")
  173. sql := ` SELECT frequency FROM base_from_ccf_index WHERE classify_id = ? `
  174. sql += ` GROUP BY frequency ORDER BY frequency ASC `
  175. _, err = o.Raw(sql, classifyId).QueryRows(&items)
  176. return
  177. }