base_from_mtjh.go 9.8 KB

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