base_from_mtjh.go 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "time"
  7. "github.com/rdlucklib/rdluck_tools/paging"
  8. )
  9. type BaseFromMtjhMapping struct {
  10. BaseFromMtjhMappingId int `orm:"column(base_from_mtjh_mapping_id);pk" gorm:"primaryKey"`
  11. IndexName string `description:"持买单量指标名称"`
  12. IndexCode string `description:"持买单量指标编码"`
  13. CreateTime time.Time `description:"时间"`
  14. Area string `description:"区域"`
  15. Port string `description:"港口或码头"`
  16. Variety string `description:"品种"`
  17. Unit string `description:"单位"`
  18. Frequency string `description:"频率"`
  19. }
  20. type BaseFromMtjhIndex struct {
  21. BaseFromMtjhIndexId int `orm:"column(base_from_mtjh_index_id);pk" gorm:"primaryKey"`
  22. IndexName string `description:"持买单量指标名称"`
  23. IndexCode string `description:"持买单量指标编码"`
  24. DealValue string `description:"成交量"`
  25. DataTime string `description:"数据日期"`
  26. Area string `description:"区域"`
  27. Port string `description:"港口或码头"`
  28. Unit string `description:"单位"`
  29. Frequency string `description:"频率"`
  30. Variety string `description:"品种"`
  31. CreateTime time.Time `description:"插入时间"`
  32. ModifyTime time.Time `description:"修改时间"`
  33. }
  34. type BaseFromMtjhIndexItem struct {
  35. BaseFromMtjhIndexId int `orm:"column(base_from_mtjh_index_id);pk" gorm:"primaryKey"`
  36. IndexName string `description:"持买单量指标名称"`
  37. IndexCode string `description:"持买单量指标编码"`
  38. DealValue string `description:"成交量"`
  39. DataTime string `description:"数据日期"`
  40. Area string `description:"区域"`
  41. Port string `description:"港口或码头"`
  42. Unit string `description:"单位"`
  43. Frequency string `description:"频率"`
  44. Variety string `description:"品种"`
  45. CreateTime string `description:"插入时间"`
  46. ModifyTime string `description:"修改时间"`
  47. }
  48. // 查询指标
  49. func GetBaseFromMtjhMapping() (items []*BaseFromMtjhMapping, err error) {
  50. o := global.DbMap[utils.DbNameMaster]
  51. sql := `SELECT * FROM base_from_mtjh_mapping`
  52. err = o.Raw(sql).Find(&items).Error
  53. return
  54. }
  55. // 查询指标
  56. func GetBaseFromMtjhIndex() (items []*BaseFromMtjhIndex, err error) {
  57. o := global.DbMap[utils.DbNameMaster]
  58. sql := `SELECT * FROM base_from_mtjh_index`
  59. err = o.Raw(sql).Find(&items).Error
  60. return
  61. }
  62. // 添加数据
  63. func AddBaseFromMtjhIndex(item *BaseFromMtjhIndex) (lastId int64, err error) {
  64. o := global.DbMap[utils.DbNameMaster]
  65. err = o.Create(item).Error
  66. lastId = int64(item.BaseFromMtjhIndexId)
  67. return
  68. }
  69. func AddBaseFromMtjhIndexMuti(items []*BaseFromMtjhIndex) (lastId int64, err error) {
  70. o := global.DbMap[utils.DbNameMaster]
  71. err = o.CreateInBatches(items, utils.MultiAddNum).Error
  72. return
  73. }
  74. // 添加指标
  75. func AddBaseFromMtjhMapping(item *BaseFromMtjhMapping) (lastId int64, err error) {
  76. o := global.DbMap[utils.DbNameMaster]
  77. err = o.Create(item).Error
  78. lastId = int64(item.BaseFromMtjhMappingId)
  79. return
  80. }
  81. func AddBaseFromMtjhMappingMuti(items []*BaseFromMtjhMapping) (lastId int64, err error) {
  82. o := global.DbMap[utils.DbNameMaster]
  83. err = o.CreateInBatches(items, utils.MultiAddNum).Error
  84. return
  85. }
  86. func UpdateBaseFromMtjhIndex(item *BaseFromMtjhIndex) (err error) {
  87. o := global.DbMap[utils.DbNameMaster]
  88. sql := `UPDATE base_from_mtjh_index SET deal_value=? WHERE index_name=? AND data_time = ?`
  89. err = o.Exec(sql, item.DealValue, item.IndexName, item.DataTime).Error
  90. return
  91. }
  92. func GetMtjhClassifyList() (list []*BaseFromMtjhMapping, err error) {
  93. o := global.DbMap[utils.DbNameIndex]
  94. sql := "SELECT * FROM base_from_mtjh_mapping group by area"
  95. err = o.Raw(sql).Find(&list).Error
  96. return
  97. }
  98. type BaseFromMtjhMappingItem struct {
  99. BaseFromMtjhMappingId int `orm:"column(base_from_mtjh_mapping_id);pk" gorm:"primaryKey"`
  100. IndexName string `description:"持买单量指标名称"`
  101. IndexCode string `description:"持买单量指标编码"`
  102. CreateTime string `description:"时间"`
  103. Area string `description:"区域"`
  104. Port string `description:"港口或码头"`
  105. Variety string `description:"品种"`
  106. Unit string `description:"单位"`
  107. Frequency string `description:"频率"`
  108. }
  109. func GetMtjhMapping(condition string, pars []interface{}) (items []*BaseFromMtjhMappingItem, err error) {
  110. o := global.DbMap[utils.DbNameIndex]
  111. sql := ` SELECT * FROM base_from_mtjh_mapping WHERE 1=1 `
  112. if condition != "" {
  113. sql += condition
  114. }
  115. sql += ` ORDER BY base_from_mtjh_mapping_id asc`
  116. err = o.Raw(sql, pars...).Find(&items).Error
  117. return
  118. }
  119. type BaseFromMtjhIndexList struct {
  120. BaseFromMtjhMappingId int `orm:"column(base_from_mtjh_mapping_id);pk" gorm:"primaryKey"`
  121. IndexName string `description:"持买单量指标名称"`
  122. IndexCode string `description:"持买单量指标编码"`
  123. Area string `description:"区域"`
  124. Port string `description:"港口或码头"`
  125. Unit string `description:"单位"`
  126. Frequency string `description:"频率"`
  127. CreateTime string `description:"插入时间"`
  128. ModifyTime string `description:"修改时间"`
  129. Variety string `description:"品种"`
  130. DataList []*BaseFromMtjhIndexItem `gorm:"-"`
  131. Paging *paging.PagingItem `description:"分页数据" gorm:"-"`
  132. }
  133. func GetMtjhIndexDataCount(indexCode string) (count int, err error) {
  134. o := global.DbMap[utils.DbNameIndex]
  135. sql := ` SELECT COUNT(1) AS count FROM base_from_mtjh_index WHERE index_code=? `
  136. err = o.Raw(sql, indexCode).Scan(&count).Error
  137. return
  138. }
  139. func GetMtjhIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromMtjhIndexItem, err error) {
  140. o := global.DbMap[utils.DbNameIndex]
  141. sql := ` SELECT * FROM base_from_mtjh_index WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
  142. err = o.Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
  143. return
  144. }
  145. // GetMtjhItemList 模糊查询煤炭江湖数据库指标列表
  146. func GetMtjhItemList(keyword string) (items []*BaseFromMtjhMappingItem, err error) {
  147. o := global.DbMap[utils.DbNameIndex]
  148. sql := "SELECT * FROM base_from_mtjh_mapping WHERE CONCAT(index_name,index_code) LIKE ? "
  149. err = o.Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
  150. return
  151. }
  152. // 查询数据
  153. func GetBaseFromMtjhIndexByCode(indexCode string) (items []*BaseFromMtjhIndexItem, err error) {
  154. o := global.DbMap[utils.DbNameIndex]
  155. sql := `SELECT * FROM base_from_mtjh_index WHERE index_code=? ORDER BY data_time DESC `
  156. err = o.Raw(sql, indexCode).Find(&items).Error
  157. return
  158. }
  159. // GetMtjhMappingItemByCode
  160. func GetMtjhMappingItemByCode(indexCode string) (item *BaseFromMtjhMappingItem, err error) {
  161. o := global.DbMap[utils.DbNameIndex]
  162. sql := "SELECT * FROM base_from_mtjh_mapping WHERE index_code=? "
  163. err = o.Raw(sql, indexCode).First(&item).Error
  164. return
  165. }
  166. // GetMtjhFrequencyByArea
  167. func GetMtjhFrequencyByArea(area string) (items []*string, err error) {
  168. o := global.DbMap[utils.DbNameIndex]
  169. sql := "SELECT frequency FROM base_from_mtjh_index WHERE area=? group by area "
  170. err = o.Raw(sql, area).Find(&items).Error
  171. return
  172. }
  173. func GetClassifyMtjhByArea(area string) (items []*string, err error) {
  174. o := global.DbMap[utils.DbNameIndex]
  175. sql := `SELECT DISTINCT index_code FROM base_from_mtjh_index WHERE area=? `
  176. err = o.Raw(sql, area).Find(&items).Error
  177. return
  178. }
  179. func GetCoalMtjhMaxCount(area string) (count int, err error) {
  180. o := global.DbMap[utils.DbNameIndex]
  181. sql := `SELECT
  182. COALESCE(MAX(t.num), 0) AS count
  183. FROM
  184. (
  185. SELECT
  186. COUNT( 1 ) AS num
  187. FROM
  188. base_from_mtjh_index
  189. WHERE
  190. area =?
  191. GROUP BY
  192. index_name ) AS t `
  193. err = o.Raw(sql, area).Scan(&count).Error
  194. return
  195. }
  196. func GetMtjhCount(indexCode string) (count int, err error) {
  197. o := global.DbMap[utils.DbNameIndex]
  198. sql := `SELECT
  199. COUNT( 1 ) AS num
  200. FROM
  201. base_from_mtjh_index
  202. WHERE
  203. index_code =? `
  204. err = o.Raw(sql, indexCode).Scan(&count).Error
  205. return
  206. }
  207. func GetMtjhIndexLatestDate(indexCode string) (ModifyTime string, err error) {
  208. o := global.DbMap[utils.DbNameIndex]
  209. sql := ` SELECT modify_time FROM base_from_mtjh_index WHERE index_code=? ORDER BY modify_time DESC limit 1 `
  210. err = o.Raw(sql, indexCode).Scan(&ModifyTime).Error
  211. return
  212. }
  213. // GetMtjhItemsByCondition 获取煤炭江湖指标
  214. func GetMtjhItemsByCondition(cond string, pars []interface{}) (items []*BaseFromMtjhMappingItem, err error) {
  215. o := global.DbMap[utils.DbNameIndex]
  216. sql := fmt.Sprintf(`SELECT * FROM base_from_mtjh_mapping WHERE 1=1 %s`, cond)
  217. err = o.Raw(sql, pars...).Find(&items).Error
  218. return
  219. }