base_from_oilchem.go 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  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. )
  7. type BaseFromOilchemClassify struct {
  8. BaseFromOilchemClassifyId int // 分类ID
  9. ClassifyName string // 分类名称
  10. ParentID int // 上级ID
  11. Level int // 层级
  12. Sort int // 排序
  13. CreateTime string // 创建时间
  14. ModifyTime string // 修改时间
  15. }
  16. type BaseFromOilchemIndex struct {
  17. BaseFromOilchemIndexId int // 主键ID
  18. IndexCode string // 指标编码
  19. IndexName string // 指标名称
  20. ClassifyId uint // 分类ID
  21. Unit string // 单位
  22. Frequency string // 频度
  23. Describe string // 指标描述
  24. Sort int // 排序
  25. CreateTime string // 创建时间
  26. ModifyTime string // 修改时间
  27. }
  28. type BaseFromOilchemData struct {
  29. BaseFromOilchemDataId int // 数据表ID
  30. BaseFromOilchemIndexId int // 指标ID
  31. IndexCode string // 指标编码
  32. DataTime string
  33. Value string
  34. CreateTime string
  35. ModifyTime string
  36. }
  37. func GetOilchemClassifyList() (list []*BaseFromOilchemClassify, err error) {
  38. o := orm.NewOrmUsingDB("data")
  39. sql := "SELECT * FROM base_from_oilchem_classify ORDER BY sort ASC"
  40. _, err = o.Raw(sql).QueryRows(&list)
  41. return
  42. }
  43. type BaseFromOilchemIndexList struct {
  44. BaseFromOilchemIndexId int // 主键ID
  45. IndexCode string // 指标编码
  46. IndexName string // 指标名称
  47. ClassifyId uint // 分类ID
  48. Unit string // 单位
  49. Frequency string // 频度
  50. Describe string // 指标描述
  51. Sort int // 排序
  52. CreateTime string // 创建时间
  53. ModifyTime string // 修改时间
  54. DataList []*BaseFromOilchemData
  55. Paging *paging.PagingItem `description:"分页数据"`
  56. }
  57. type BaseFromOilchemIndexListResp struct {
  58. List []*BaseFromOilchemIndexView
  59. Paging *paging.PagingItem `description:"分页数据"`
  60. }
  61. func GetOilchemIndexById(indexId int) (item *BaseFromOilchemIndex, err error) {
  62. o := orm.NewOrmUsingDB("data")
  63. sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 base_from_oilchem_index_id = ? `
  64. sql += `ORDER BY base_from_oilchem_index_id ASC `
  65. err = o.Raw(sql, indexId).QueryRow(&item)
  66. return
  67. }
  68. func GetOilchemIndexByCode(indexCode string) (item *BaseFromOilchemIndex, err error) {
  69. o := orm.NewOrmUsingDB("data")
  70. sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 and index_code = ? `
  71. sql += `ORDER BY base_from_oilchem_index_id ASC `
  72. err = o.Raw(sql, indexCode).QueryRow(&item)
  73. return
  74. }
  75. func GetOilchemIndexList(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromOilchemIndex, err error) {
  76. o := orm.NewOrmUsingDB("data")
  77. sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 `
  78. if condition != "" {
  79. sql += condition
  80. }
  81. sql += `group BY index_code ASC order by create_time DESC LIMIT ?,? `
  82. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  83. return
  84. }
  85. func GetOilchemIndexListCount(condition string, pars interface{}) (count int, err error) {
  86. o := orm.NewOrmUsingDB("data")
  87. sql := ` SELECT COUNT(1) AS count FROM base_from_oilchem_index WHERE 1=1 `
  88. if condition != "" {
  89. sql += condition
  90. }
  91. err = o.Raw(sql, pars).QueryRow(&count)
  92. return
  93. }
  94. func GetOilchemDataListCount(condition string, pars interface{}) (count int, err error) {
  95. o := orm.NewOrmUsingDB("data")
  96. sql := ` SELECT COUNT(1) AS count FROM base_from_oilchem_data WHERE 1=1 `
  97. if condition != "" {
  98. sql += condition
  99. }
  100. err = o.Raw(sql, pars).QueryRow(&count)
  101. return
  102. }
  103. func GetOilchemIndexData(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromOilchemData, err error) {
  104. o := orm.NewOrmUsingDB("data")
  105. sql := ` SELECT * FROM base_from_oilchem_data WHERE 1=1 `
  106. if condition != "" {
  107. sql += condition
  108. }
  109. sql += ` order by data_time DESC LIMIT ?,? `
  110. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  111. return
  112. }
  113. // GetOilchemItemList 模糊查询隆众资讯数据库指标列表
  114. func GetOilchemItemList(keyword string) (items []*BaseFromOilchemIndex, err error) {
  115. o := orm.NewOrmUsingDB("data")
  116. sql := "SELECT * FROM base_from_oilchem_index WHERE CONCAT(index_name,index_code) LIKE ? "
  117. _, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
  118. return
  119. }
  120. // OilchemDataBatchListReq 隆众资讯指标批量列表
  121. type OilchemDataBatchListReq struct {
  122. ClassifyId int `description:"分类id"`
  123. KeyWord string `description:"关键字"`
  124. SelectedId []int `description:"已选指标id, 为true时表示反选"`
  125. IsSelectAll bool `description:"是否查询全部, 默认false, true:全选, false:查询已选"`
  126. }
  127. // GetOilchemIndexByCondition 根据条件获取隆众资讯指标列表
  128. func GetOilchemIndexByCondition(condition string, pars []interface{}) (items []*BaseFromOilchemIndex, err error) {
  129. o := orm.NewOrmUsingDB("data")
  130. sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 `
  131. if condition != "" {
  132. sql += condition
  133. }
  134. sql += ` ORDER BY sort ASC, base_from_oilchem_index_id ASC`
  135. _, err = o.Raw(sql, pars).QueryRows(&items)
  136. return
  137. }
  138. // OilchemDataBatchAddCheckReq 隆众资讯指标批量添加校验
  139. type OilchemDataBatchAddCheckReq struct {
  140. IndexCodes []string `description:"指标编码"`
  141. }
  142. // GetOilchemIndexAndEdbInfoByCondition 根据条件获取隆众资讯index和指标库的信息
  143. func GetOilchemIndexAndEdbInfoByCondition(condition string, pars []interface{}) (items []*BaseFromOilchemIndexView, err error) {
  144. o := orm.NewOrmUsingDB("data")
  145. sql := ` SELECT b.*, e.edb_info_id, e.unique_code, e.classify_id AS edb_classify_id FROM base_from_oilchem_index AS b LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=? WHERE 1=1 `
  146. if condition != "" {
  147. sql += condition
  148. }
  149. sql += ` ORDER BY sort ASC `
  150. _, err = o.Raw(sql, utils.DATA_SOURCE_OILCHEM, pars).QueryRows(&items)
  151. return
  152. }
  153. type BaseFromOilchemIndexView struct {
  154. BaseFromOilchemIndexId int `orm:"pk"`
  155. EdbInfoId int `description:"指标库id"`
  156. ClassifyId int `description:"指标分类id"`
  157. IndexCode string `description:"指标编码"`
  158. IndexName string `description:"指标名称"`
  159. UniqueCode string `description:"唯一code"`
  160. Frequency string `description:"频度"`
  161. Unit string `description:"单位"`
  162. StartDate string `description:"开始日期"`
  163. EndDate string `description:"结束日期"`
  164. Sort int `description:"排序"`
  165. EdbExist int `description:"edb是否存在"`
  166. EdbClassifyId int `description:"edb分类id"`
  167. ModifyTime string
  168. }
  169. // ExportOilchemExcelReq 导出隆众资讯excel指标
  170. type ExportOilchemExcelReq struct {
  171. KeyWord string `description:"关键字, 指标编码或指标ID"`
  172. IndexCode []string `description:"指标编码,全选时,表示反选"`
  173. IsSelectedAll bool `description:"是否全选:true:全选|false: 无"`
  174. ClassifyId int `description:"指标id"`
  175. }
  176. // GetOilchemIndexByConditionAndFrequency 根据条件获取隆众资讯指标列表
  177. func GetOilchemIndexByConditionAndFrequency(condition, frequency string, pars []interface{}) (items []*BaseFromOilchemIndex, err error) {
  178. o := orm.NewOrmUsingDB("data")
  179. sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 `
  180. if condition != "" {
  181. sql += condition
  182. }
  183. sql += ` AND frequency=?`
  184. sql += ` ORDER BY sort ASC, base_from_oilchem_index_id ASC`
  185. _, err = o.Raw(sql, pars, frequency).QueryRows(&items)
  186. return
  187. }
  188. func GetOilchemDataMaxCount(classifyId int) (count int, err error) {
  189. o := orm.NewOrmUsingDB("data")
  190. sql := `SELECT MAX(t.num) AS count FROM (
  191. SELECT COUNT(1) AS num FROM base_from_oilchem_index AS a
  192. INNER JOIN base_from_oilchem_data AS b ON a.index_code=b.index_code
  193. WHERE a.classify_id=?
  194. GROUP BY a.base_from_oilchem_index_id
  195. )AS t `
  196. err = o.Raw(sql, classifyId).QueryRow(&count)
  197. return
  198. }
  199. func GetOilchemIndexDataByCode(indexCode string) (items []*BaseFromOilchemData, err error) {
  200. o := orm.NewOrmUsingDB("data")
  201. sql := ` SELECT * FROM base_from_oilchem_data WHERE index_code=? ORDER BY data_time DESC `
  202. _, err = o.Raw(sql, indexCode).QueryRows(&items)
  203. return
  204. }
  205. func GetOilchemFrequencyByCondition(condition string, pars []interface{}) (items []*string, err error) {
  206. sql := `SELECT DISTINCT frequency FROM base_from_oilchem_index WHERE 1=1 `
  207. if condition != "" {
  208. sql += condition
  209. }
  210. sql += ` ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
  211. o := orm.NewOrmUsingDB("data")
  212. _, err = o.Raw(sql, pars...).QueryRows(&items)
  213. return
  214. }
  215. // GetOilchemIndexViewList 根据分类id获取隆众资讯指标列表
  216. func GetOilchemIndexViewList(condition string, pars []interface{}, startSize, pageSize int) (items []*BaseFromOilchemIndexView, err error) {
  217. o := orm.NewOrmUsingDB("data")
  218. sql := ` SELECT b.*, e.edb_info_id,
  219. CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist
  220. FROM base_from_oilchem_index AS b
  221. LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=89
  222. WHERE 1=1 `
  223. if condition != "" {
  224. sql += condition
  225. }
  226. sql += ` ORDER BY b.modify_time ASC LIMIT ?,? `
  227. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  228. return
  229. }
  230. // GetOilchemIndexViewListCount 根据分类id获取隆众资讯指标列表
  231. func GetOilchemIndexViewListCount(condition string, pars []interface{}) (count int, err error) {
  232. o := orm.NewOrmUsingDB("data")
  233. sql := ` SELECT COUNT(1) AS count
  234. FROM base_from_oilchem_index AS b
  235. LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=89
  236. WHERE 1=1 `
  237. if condition != "" {
  238. sql += condition
  239. }
  240. sql += ` ORDER BY b.modify_time ASC `
  241. err = o.Raw(sql, pars).QueryRow(&count)
  242. return
  243. }