base_from_business_index.go 9.8 KB

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