base_from_business_index.go 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. package data_manage
  2. import (
  3. "database/sql"
  4. "eta/eta_api/global"
  5. "eta/eta_api/utils"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "time"
  8. )
  9. // BaseFromBusinessIndex
  10. // @Description: 外部指标(商家系统)表
  11. type BaseFromBusinessIndex struct {
  12. BaseFromBusinessIndexId int64 `orm:"column(base_from_business_index_id);pk"`
  13. IndexCode string `description:"指标编码"`
  14. IndexName string `description:"指标名称"`
  15. Unit string `description:"单位"`
  16. Frequency string `description:"频度"`
  17. Source int `description:"数据来源"`
  18. SourceName string `description:"数据来源名称"`
  19. StartDate time.Time `description:"开始日期"`
  20. EndDate time.Time `description:"结束日期"`
  21. Remark string `description:"备注字段"`
  22. BaseModifyTime time.Time `description:"基础信息(名称,单位,频度)变更时间"`
  23. DataUpdateTime time.Time `description:"最近一次数据发生变化的时间"`
  24. CreateTime time.Time `description:"创建时间"`
  25. ModifyTime time.Time `description:"修改时间"`
  26. }
  27. var BaseFromBusinessIndexCols = struct {
  28. BaseFromBusinessIndexId string
  29. IndexCode string
  30. IndexName string
  31. Unit string
  32. Frequency string
  33. Source string
  34. SourceName string
  35. StartDate string
  36. EndDate string
  37. Remark string
  38. BaseModifyTime string
  39. DataUpdateTime string
  40. CreateTime string
  41. ModifyTime string
  42. }{
  43. BaseFromBusinessIndexId: "base_from_business_index_id",
  44. IndexCode: "index_code",
  45. IndexName: "index_name",
  46. Unit: "unit",
  47. Frequency: "frequency",
  48. Source: "source",
  49. SourceName: "source_name",
  50. StartDate: "start_date",
  51. EndDate: "end_date",
  52. Remark: "remark",
  53. BaseModifyTime: "base_modify_time",
  54. DataUpdateTime: "data_update_time",
  55. CreateTime: "create_time",
  56. ModifyTime: "modify_time",
  57. }
  58. // EdbBusinessSource
  59. // @Description: 自有数据(商家)指标来源
  60. type EdbBusinessSource struct {
  61. EdbBusinessSourceId int64 `orm:"column(edb_business_source_id);pk"`
  62. SourceName string `description:"来源名称"` // 来源名称
  63. CreateTime time.Time `description:"创建时间"` // 创建时间
  64. }
  65. // GetEdbBusinessSourceItem
  66. // @Description: 根据来源名称获取来源信息
  67. // @author: Roc
  68. // @receiver m
  69. // @datetime 2024-04-25 18:09:03
  70. // @param sourceName string
  71. // @return item *EdbBusinessSource
  72. // @return err error
  73. func (m *EdbBusinessSource) GetEdbBusinessSourceItem(sourceName string) (item *EdbBusinessSource, err error) {
  74. sql := `SELECT * FROM edb_business_source WHERE source_name = ? `
  75. err = global.DbMap[utils.DbNameIndex].Raw(sql, sourceName).First(&item).Error
  76. return
  77. }
  78. // GetAllList
  79. // @Description: 获取所有来源列表
  80. // @author: Roc
  81. // @receiver m
  82. // @datetime 2024-05-06 09:21:42
  83. // @return items []*EdbBusinessSource
  84. // @return err error
  85. func (m *EdbBusinessSource) GetAllList() (items []*EdbBusinessSource, err error) {
  86. sql := `SELECT * FROM edb_business_source order by edb_business_source_id desc `
  87. err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
  88. return
  89. }
  90. // GetListCount
  91. // @Description: 根据条件获取列表页的总数量
  92. // @author: Roc
  93. // @receiver m
  94. // @datetime 2024-05-06 17:15:28
  95. // @param condition string
  96. // @param pars []interface{}
  97. // @return count int
  98. // @return err error
  99. func (m *BaseFromBusinessIndex) GetListCount(condition string, pars []interface{}) (count int, err error) {
  100. sqlStr := ` select count(1) as count FROM base_from_business_index as a WHERE 1=1 `
  101. if condition != "" {
  102. sqlStr += condition
  103. }
  104. var totalNull sql.NullInt64
  105. err = global.DbMap[utils.DbNameIndex].Raw(sqlStr, pars...).Scan(&totalNull).Error
  106. if !totalNull.Valid {
  107. count = 0
  108. } else {
  109. count = int(totalNull.Int64)
  110. }
  111. return
  112. }
  113. // GetList
  114. // @Description: 根据条件获取列表页的数据
  115. // @author: Roc
  116. // @receiver m
  117. // @datetime 2024-05-06 17:15:42
  118. // @param condition string
  119. // @param pars []interface{}
  120. // @param startSize int
  121. // @param pageSize int
  122. // @return items []*BaseFromBusinessIndex
  123. // @return err error
  124. func (m *BaseFromBusinessIndex) GetList(condition string, pars []interface{}, startSize, pageSize int) (items []*BaseFromBusinessIndex, err error) {
  125. sql := `select * FROM base_from_business_index AS a WHERE 1=1 `
  126. if condition != "" {
  127. sql += condition
  128. }
  129. sql += ` order by a.base_from_business_index_id desc limit ?,? `
  130. pars = append(pars, startSize, pageSize)
  131. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
  132. return
  133. }
  134. // BusinessIndexListResp
  135. // @Description: 外部(商家)指标列表返回
  136. type BusinessIndexListResp struct {
  137. List []*BaseFromBusinessIndexItem
  138. Paging *paging.PagingItem `description:"分页数据"`
  139. }
  140. // BaseFromBusinessIndexItem
  141. // @Description: 外部指标(商家系统)结构
  142. type BaseFromBusinessIndexItem struct {
  143. BaseFromBusinessIndexId int64 `orm:"column(base_from_business_index_id);pk"`
  144. IndexCode string `description:"指标编码"`
  145. IndexName string `description:"指标名称"`
  146. Unit string `description:"单位"`
  147. Frequency string `description:"频度"`
  148. Source int `description:"数据来源"`
  149. SourceName string `description:"数据来源名称"`
  150. StartDate string `description:"开始日期"`
  151. EndDate string `description:"结束日期"`
  152. Remark string `description:"备注字段"`
  153. BaseModifyTime string `description:"基础信息(名称,单位,频度)变更时间"`
  154. DataUpdateTime string `description:"最近一次数据发生变化的时间"`
  155. CreateTime string `description:"创建时间"`
  156. ModifyTime string `description:"修改时间"`
  157. EdbInfoId int `description:"eta指标库的id"`
  158. EdbUniqueCode string `description:"指标库唯一编码"`
  159. EdbClassifyId int `description:"指标库分类ID"`
  160. EdbExist int `description:"指标库是否已添加:0-否;1-是"`
  161. }
  162. func (m *BaseFromBusinessIndex) GetPageItemsByCondition(condition string, pars []interface{}, orderRule string, startSize, pageSize int) (items []*BaseFromBusinessIndexItem, err error) {
  163. sql := `select a.*,b.edb_info_id,b.unique_code as edb_unique_code,b.classify_id as edb_classify_id FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code AND b.source=? WHERE 1=1 `
  164. if condition != "" {
  165. sql += condition
  166. }
  167. if orderRule == `` {
  168. sql += ` order by a.base_from_business_index_id desc`
  169. } else {
  170. sql += ` order by ` + orderRule
  171. }
  172. sql += ` limit ?,? `
  173. err = global.DbMap[utils.DbNameIndex].Raw(sql, utils.DATA_SOURCE_BUSINESS, pars, startSize, pageSize).Find(&items).Error
  174. return
  175. }
  176. // GeItemsByCondition
  177. // @Description: 根据条件获取指定数量的指标
  178. // @author: Roc
  179. // @receiver m
  180. // @datetime 2024-05-06 17:16:02
  181. // @param condition string
  182. // @param pars []interface{}
  183. // @param limitSize int
  184. // @return items []*BaseFromBusinessIndexItem
  185. // @return err error
  186. func (m *BaseFromBusinessIndex) GeItemsByCondition(condition string, pars []interface{}, limitSize int) (items []*BaseFromBusinessIndexItem, err error) {
  187. if pars == nil {
  188. pars = make([]interface{}, 0)
  189. }
  190. sql := `select a.*,b.edb_info_id,b.unique_code as edb_unique_code,b.classify_id as edb_classify_id FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code AND b.source=? WHERE 1=1 `
  191. if condition != "" {
  192. sql += condition
  193. }
  194. sql += ` order by a.base_from_business_index_id desc `
  195. if limitSize > 0 {
  196. sql += " limit ? "
  197. pars = append(pars, limitSize)
  198. }
  199. pars = utils.ForwardPars(pars, utils.DATA_SOURCE_BUSINESS)
  200. //err = global.DbMap[utils.DbNameIndex].Raw(sql, utils.DATA_SOURCE_BUSINESS, pars).Find(&items).Error
  201. //pars = utils.ForwardPars(pars, utils.DATA_SOURCE_BUSINESS)
  202. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
  203. return
  204. }
  205. // GetDetailByEdbCode
  206. // @Description: 根据edbCode获取指标详情
  207. // @author: Roc
  208. // @receiver m
  209. // @datetime 2024-05-07 11:00:07
  210. // @param edbCode string
  211. // @return item *BaseFromBusinessIndex
  212. // @return err error
  213. func (m *BaseFromBusinessIndex) GetDetailByEdbCode(edbCode string) (item *BaseFromBusinessIndex, err error) {
  214. sql := `select * FROM base_from_business_index WHERE index_code = ? `
  215. err = global.DbMap[utils.DbNameIndex].Raw(sql, edbCode).Find(&item).Error
  216. return
  217. }
  218. // BusinessIndexDataListResp
  219. // @Description: 外部(商家)指标数据列表返回
  220. type BusinessIndexDataListResp struct {
  221. List []*BaseFromBusinessIndexDataItem
  222. Paging *paging.PagingItem `description:"分页数据"`
  223. }
  224. // BaseFromBusinessIndexDataItem
  225. // @Description: 外部指标(商家系统)数据结构
  226. type BaseFromBusinessIndexDataItem struct {
  227. ID string
  228. EdbDataId int `orm:"column(edb_data_id);pk"`
  229. IndexCode string
  230. DataTime string
  231. Value float64
  232. }