base_from_mtjh.go 9.5 KB

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