chart_info.go 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. package data_manage
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_hub/global"
  5. "eta/eta_hub/utils"
  6. "fmt"
  7. "strings"
  8. "time"
  9. "github.com/rdlucklib/rdluck_tools/paging"
  10. )
  11. // ChartInfo 图库主表
  12. type ChartInfo struct {
  13. ChartInfoId int `orm:"column(chart_info_id);pk"`
  14. ChartName string `description:"来源名称"`
  15. ChartNameEn string `description:"英文图表名称"`
  16. ChartClassifyId int `description:"图表分类id"`
  17. SysUserId int `description:"创建人ID"`
  18. SysUserRealName string `description:"创建人姓名"`
  19. UniqueCode string `description:"图表唯一编码"`
  20. DateType int `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:21年至今,5:自定义时间,6:起始日期至今,7:18年至今,8:19年至今,9:20年至今,11:22年至今,20:最近N年"`
  21. StartDate string `description:"自定义开始日期"`
  22. EndDate string `description:"自定义结束日期"`
  23. IsSetName int `description:"设置名称"`
  24. EdbInfoIds string `description:"指标id"`
  25. ChartType int `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
  26. Calendar string `description:"公历/农历"`
  27. SeasonStartDate string `description:"季节性图开始日期"`
  28. SeasonEndDate string `description:"季节性图结束日期"`
  29. ChartImage string `description:"图表图片"`
  30. Sort int `description:"排序字段,数字越小越排前面"`
  31. LeftMin string `description:"图表左侧最小值"`
  32. LeftMax string `description:"图表左侧最大值"`
  33. RightMin string `description:"图表右侧最小值"`
  34. RightMax string `description:"图表右侧最大值"`
  35. Disabled int `description:"是否禁用,0:启用,1:禁用,默认:0"`
  36. BarConfig string `description:"柱方图的配置,json数据"`
  37. Source int `description:"1:ETA图库;2:商品价格曲线"`
  38. ExtraConfig string `description:"图表额外配置,json数据"`
  39. SeasonExtraConfig string `description:"季节性图表中的配置,json数据"`
  40. StartYear int `description:"当选择的日期类型为最近N年类型时,即date_type=20, 用start_year表示N"`
  41. CreateTime time.Time `json:"-"description:"创建时间"`
  42. ModifyTime time.Time `json:"-"description:"更新时间"`
  43. }
  44. func (m *ChartInfo) GetItemsByCondition(cond string, pars []interface{}, fieldArr []string, orderRule string) (items []*ChartInfo, err error) {
  45. //o := orm.NewOrmUsingDB("data")
  46. fields := strings.Join(fieldArr, ",")
  47. if len(fieldArr) == 0 {
  48. fields = `*`
  49. }
  50. order := `ORDER BY create_time DESC`
  51. if orderRule != "" {
  52. order = ` ORDER BY ` + orderRule
  53. }
  54. sql := fmt.Sprintf(`SELECT %s FROM chart_info WHERE 1=1 %s %s`, fields, cond, order)
  55. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
  56. return
  57. }
  58. func (m *ChartInfo) GetItemTotal(cond string, pars []interface{}) (total int, err error) {
  59. //o := orm.NewOrmUsingDB("data")
  60. var totalNull sql2.NullInt64
  61. sql := fmt.Sprintf(`SELECT COUNT(*) FROM chart_info WHERE 1=1 %s`, cond)
  62. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&totalNull).Error
  63. if err != nil {
  64. return
  65. }
  66. total = int(totalNull.Int64)
  67. return
  68. }
  69. func (m *ChartInfo) GetItemsPageByCondition(cond string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ChartInfo, err error) {
  70. //o := orm.NewOrmUsingDB("data")
  71. fields := strings.Join(fieldArr, ",")
  72. if len(fieldArr) == 0 {
  73. fields = `*`
  74. }
  75. order := `ORDER BY create_time DESC`
  76. if orderRule != "" {
  77. order = ` ORDER BY ` + orderRule
  78. }
  79. sql := fmt.Sprintf(`SELECT %s FROM chart_info WHERE 1=1 %s %s`, fields, cond, order)
  80. sql += fmt.Sprintf(` LIMIT %d,%d`, startSize, pageSize)
  81. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
  82. return
  83. }
  84. func (m *ChartInfo) GetItemByCode(code string) (item *ChartInfo, err error) {
  85. //o := orm.NewOrmUsingDB("data")
  86. sql := fmt.Sprintf(`SELECT * FROM chart_info WHERE unique_code = ? LIMIT 1`)
  87. err = global.DbMap[utils.DbNameIndex].Raw(sql, code).First(&item).Error
  88. return
  89. }
  90. // ChartInfoItem 图表信息
  91. type ChartInfoItem struct {
  92. ChartInfoId int `description:"图表ID"`
  93. ChartName string `description:"来源名称"`
  94. ChartNameEn string `description:"英文图表名称"`
  95. ChartClassifyId int `description:"图表分类id"`
  96. UniqueCode string `description:"图表唯一编码"`
  97. DateType int `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间" json:"-"`
  98. StartDate string `description:"自定义开始日期"`
  99. EndDate string `description:"自定义结束日期"`
  100. ChartType int `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
  101. Calendar string `description:"公历/农历"`
  102. SeasonStartDate string `description:"季节性图开始日期" json:"-"`
  103. SeasonEndDate string `description:"季节性图开始日期" json:"-"`
  104. ChartImage string `description:"图表图片"`
  105. Sort int `description:"排序字段,数字越小越排前面"`
  106. LeftMin string `description:"图表左侧最小值" json:"-"`
  107. LeftMax string `description:"图表左侧最大值" json:"-"`
  108. RightMin string `description:"图表右侧最小值" json:"-"`
  109. RightMax string `description:"图表右侧最大值" json:"-"`
  110. BarConfig string `description:"柱方图的配置,json数据" json:"-"`
  111. Source int `description:"1:ETA图库;2:商品价格曲线" json:"-"`
  112. ExtraConfig string `description:"图表额外配置,json数据" json:"-"`
  113. SeasonExtraConfig string `description:"季节性图表中的配置,json数据" json:"-"`
  114. StartYear int `description:"当选择的日期类型为最近N年类型时,即date_type=20, 用start_year表示N" json:"-"`
  115. CreateTime string `description:"创建时间"`
  116. ModifyTime string `description:"更新时间"`
  117. }
  118. type ChartInfoItemResp struct {
  119. List []*ChartInfoItem `description:"图表信息"`
  120. Paging *paging.PagingItem `description:"分页信息"`
  121. }
  122. func FormatChartInfo2Item(origin *ChartInfo) (item *ChartInfoItem) {
  123. if origin == nil {
  124. return
  125. }
  126. item = new(ChartInfoItem)
  127. item.ChartInfoId = origin.ChartInfoId
  128. item.ChartName = origin.ChartName
  129. item.ChartNameEn = origin.ChartNameEn
  130. item.ChartClassifyId = origin.ChartClassifyId
  131. item.UniqueCode = origin.UniqueCode
  132. item.DateType = origin.DateType
  133. item.StartDate = origin.StartDate
  134. item.EndDate = origin.EndDate
  135. item.ChartType = origin.ChartType
  136. item.Calendar = origin.Calendar
  137. item.SeasonStartDate = origin.SeasonStartDate
  138. item.SeasonEndDate = origin.SeasonEndDate
  139. item.ChartImage = origin.ChartImage
  140. item.Sort = origin.Sort
  141. item.LeftMin = origin.LeftMin
  142. item.LeftMax = origin.LeftMax
  143. item.RightMin = origin.RightMin
  144. item.RightMax = origin.RightMax
  145. item.BarConfig = origin.BarConfig
  146. item.Source = origin.Source
  147. item.ExtraConfig = origin.ExtraConfig
  148. item.SeasonExtraConfig = origin.SeasonExtraConfig
  149. item.StartYear = origin.StartYear
  150. item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
  151. item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime)
  152. return
  153. }
  154. type ChartInfoDetailResp struct {
  155. ChartInfo *ChartInfo `description:"图表信息"`
  156. Status bool `description:"true:图表存在,false:图表不存在" json:"-"`
  157. EdbInfoList []*ChartEdbInfoMapping `description:"指标信息"`
  158. XEdbIdValue []int `description:"柱方图的x轴数据,指标id"`
  159. YDataList []YData `description:"柱方图的y轴数据"`
  160. XDataList []XData `description:"商品价格曲线的X轴数据"`
  161. BarChartInfo BarChartInfoReq `description:"柱方图的配置"`
  162. CorrelationChartInfo *CorrelationInfo `description:"相关性图表信息"`
  163. DataResp interface{} `description:"图表数据,根据图的类型而定的,没有确定的数据格式"`
  164. }
  165. // XData 商品价格曲线的的x轴数据
  166. type XData struct {
  167. Name string `description:"别名"`
  168. NameEn string `description:"英文别名"`
  169. }
  170. // YData 柱方图的y轴数据
  171. type YData struct {
  172. Date string `description:"数据日期"`
  173. ConfigDate time.Time `description:"配置的日期" json:"-"`
  174. Color string `description:"数据颜色"`
  175. Name string `description:"别名"`
  176. NameEn string `description:"英文别名"`
  177. Value []float64 `description:"每个指标的值"`
  178. NoDataEdbList []int `description:"没有数据的指标列表"`
  179. XEdbInfoIdList []int `description:"对应X轴的指标id列表"`
  180. NameList []string `description:"每个值对应的名称"`
  181. EnNameList []string `description:"每个值对应的英文名称"`
  182. EdbValMap map[int]float64 `description:"指标与值的对应" json:"-"`
  183. M []int `description:"对应开始日期的间隔值" json:"-"`
  184. Unit string `description:"中文单位名称"`
  185. UnitEn string `description:"英文单位名称"`
  186. }
  187. // BarChartInfoReq 柱方图预览请求数据
  188. type BarChartInfoReq struct {
  189. EdbInfoIdList []BarChartInfoEdbItemReq `description:"指标信息"`
  190. DateList []BarChartInfoDateReq `description:"日期配置"`
  191. Sort BarChartInfoSortReq `description:"排序"`
  192. XEdbList []BarChartInfoEdbItemReq `description:"X轴选择的指标列表"`
  193. YEdbList []BarChartInfoEdbItemReq `description:"Y轴选择的指标列表"`
  194. Unit string `description:"中文单位"`
  195. UnitEn string `description:"英文单位"`
  196. }
  197. // BarChartInfoEdbItemReq 柱方图预览请求数据(指标相关)
  198. type BarChartInfoEdbItemReq struct {
  199. EdbInfoId int `description:"指标ID"`
  200. Name string `description:"别名"`
  201. NameEn string `description:"英文别名"`
  202. Source int `description:"1:ETA图库;2:商品价格"`
  203. }
  204. // BarChartInfoDateReq 柱方图预览请求数据(日期相关)
  205. type BarChartInfoDateReq struct {
  206. Type int `description:"配置类型"`
  207. Date string `description:"固定日期"`
  208. Value int `description:"N天的值"`
  209. Color string `description:"颜色"`
  210. Name string `description:"别名"`
  211. }
  212. // BarChartInfoSortReq 柱方图预览请求数据(排序相关)
  213. type BarChartInfoSortReq struct {
  214. Sort int `description:"排序类型,0:默认,1:升序,2:降序"`
  215. DateIndex int `description:"日期数据的下标,从0开始"`
  216. }
  217. type CorrelationInfo struct {
  218. LeadValue int `description:"领先值"`
  219. LeadUnit string `description:"领先单位"`
  220. CalculateValue int `description:"计算窗口"`
  221. CalculateUnit string `description:"计算频度"`
  222. StartDate string `description:"开始日期"`
  223. EndDate string `description:"结束日期"`
  224. EdbInfoIdFirst int `description:"A指标ID"`
  225. EdbInfoIdSecond int `description:"B指标ID"`
  226. PeriodData string `description:"X轴-期数数据"`
  227. CorrelationData string `description:"Y轴-相关性系数"`
  228. }
  229. type ChartInfoView struct {
  230. ChartInfoId int `orm:"column(chart_info_id);pk"`
  231. ChartName string `description:"来源名称"`
  232. ChartNameEn string `description:"英文图表名称"`
  233. Unit string `description:"中文单位名称"`
  234. UnitEn string `description:"英文单位名称"`
  235. ChartClassifyId int `description:"图表分类id"`
  236. ChartClassifyName string `description:"图表名称"`
  237. SysUserId int
  238. SysUserRealName string
  239. UniqueCode string `description:"图表唯一编码"`
  240. CreateTime time.Time
  241. ModifyTime time.Time
  242. DateType int `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
  243. StartDate string `description:"自定义开始日期"`
  244. EndDate string `description:"自定义结束日期"`
  245. IsSetName int `description:"设置名称"`
  246. EdbInfoIds string `description:"指标id"`
  247. ChartType int `description:"生成样式:1:曲线图,2:季节性图"`
  248. Calendar string `description:"公历/农历"`
  249. SeasonStartDate string `description:"季节性图开始日期"`
  250. SeasonEndDate string `description:"季节性图开始日期"`
  251. ChartImage string `description:"图表图片"`
  252. Sort int `description:"排序字段,数字越小越排前面"`
  253. IsAdd bool `description:"true:已加入我的图库,false:未加入我的图库"`
  254. MyChartId int
  255. MyChartClassifyId string `description:"我的图表分类,多个用逗号隔开"`
  256. ChartClassify []*ChartClassifyView
  257. EdbEndDate string `description:"指标最新更新日期"`
  258. LeftMin string `description:"图表左侧最小值"`
  259. LeftMax string `description:"图表左侧最大值"`
  260. RightMin string `description:"图表右侧最小值"`
  261. RightMax string `description:"图表右侧最大值"`
  262. IsEdit bool `description:"是否有编辑权限"`
  263. IsEnChart bool `description:"是否展示英文标识"`
  264. WarnMsg string `description:"错误信息"`
  265. Disabled int `description:"是否禁用,0:启用,1:禁用,默认:0"`
  266. BarConfig string `description:"柱方图的配置,json数据" json:"-"`
  267. Source int `description:"1:ETA图库;2:商品价格曲线;3:相关性图表"`
  268. //CorrelationLeadUnit string `description:"相关性图表-领先单位"`
  269. ExtraConfig string `description:"图表额外配置,json数据"`
  270. Button ChartViewButton `description:"操作按钮" json:"-"`
  271. SeasonExtraConfig string `description:"季节性图表中的配置,json数据"`
  272. StartYear int `description:"当选择的日期类型为最近N年类型时,即date_type=20, 用start_year表示N"`
  273. }
  274. type ChartViewButton struct {
  275. IsEdit bool `description:"是否有编辑权限"`
  276. IsEnChart bool `description:"是否展示英文标识"`
  277. IsAdd bool `description:"true:已加入我的图库,false:未加入我的图库"`
  278. IsCopy bool `description:"是否有另存为按钮"`
  279. IsSetName int `description:"设置名称"`
  280. }
  281. // SectionScatterReq 截面散点请求
  282. //type SectionScatterReq struct {
  283. // XName string `description:"x轴名称"`
  284. // XNameEn string `description:"x轴名称(英文)"`
  285. // XUnitName string `description:"x轴单位名称"`
  286. // XUnitNameEn string `description:"x轴单位名称(英文)"`
  287. // YName string `description:"y轴名称"`
  288. // YNameEn string `description:"y轴名称(英文)"`
  289. // YUnitName string `description:"y轴单位名称"`
  290. // YUnitNameEn string `description:"y轴单位名称(英文)"`
  291. // XMinValue string `description:"X轴的最小值"`
  292. // XMaxValue string `description:"X轴的最大值"`
  293. // YMinValue string `description:"Y轴的最小值"`
  294. // YMaxValue string `description:"Y轴的最大值"`
  295. // //EdbList []SectionScatterEdbItemReq `description:"指标数据"`
  296. // SeriesList []SectionScatterSeriesItemReq `description:"系列数据"`
  297. //}
  298. // SectionScatterSeriesItemReq 系列的请求
  299. //type SectionScatterSeriesItemReq struct {
  300. // Name string `description:"系列名"`
  301. // NameEn string `description:"系列名(英文名)"`
  302. // IsNameDefault bool `description:"是否使用默认的系列名 false修改过 true默认 影响自动更新"`
  303. // Color string `description:"颜色"`
  304. // EdbInfoList []SectionScatterEdbItemReq
  305. // ShowTrendLine bool `description:"是否展示趋势线"`
  306. // ShowFitEquation bool `description:"是否展示方程式"`
  307. // ShowRSquare bool `description:"是否展示R平方"`
  308. //}
  309. // SectionScatterEdbItemReq 截面散点请求的指标
  310. //type SectionScatterEdbItemReq struct {
  311. // XEdbInfoId int `description:"X轴的指标ID"`
  312. // YEdbInfoId int `description:"Y轴的指标ID"`
  313. // Name string `description:"别名"`
  314. // NameEn string `description:"英文别名"`
  315. // XDateType int `description:"X轴的日期配置类型"`
  316. // XDate string `description:"X轴的日期固定日期"`
  317. // XDateValue int `description:"X轴的日期N天的值"`
  318. // YDateType int `description:"Y轴的日期配置类型"`
  319. // YDate string `description:"Y轴的日期固定日期"`
  320. // YDateValue int `description:"Y轴的日期N天的值"`
  321. // IsShow bool `description:"是否展示"`
  322. //}
  323. // SectionScatterInfoResp 截面散点图数据
  324. //type SectionScatterInfoResp struct {
  325. // XName string `description:"x轴名称"`
  326. // XNameEn string `description:"x轴名称(英文)"`
  327. // XUnitName string `description:"x轴单位名称"`
  328. // XUnitNameEn string `description:"x轴单位名称(英文)"`
  329. // YName string `description:"y轴名称"`
  330. // YNameEn string `description:"y轴名称(英文)"`
  331. // YUnitName string `description:"y轴单位名称"`
  332. // YUnitNameEn string `description:"y轴单位名称(英文)"`
  333. // XMinValue string `description:"X轴的最小值"`
  334. // XMaxValue string `description:"X轴的最大值"`
  335. // YMinValue string `description:"Y轴的最小值"`
  336. // YMaxValue string `description:"Y轴的最大值"`
  337. // DataList []SectionScatterSeriesItemResp `description:"数据列"`
  338. //}
  339. // SectionScatterSeriesItemResp 系列的返回
  340. //type SectionScatterSeriesItemResp struct {
  341. // Name string `description:"系列名"`
  342. // NameEn string `description:"系列名(英文)"`
  343. // IsNameDefault bool `description:"是否使用默认的系列名 false修改过 true默认 影响自动更新"`
  344. // Color string `description:"颜色"`
  345. // EdbInfoList []SectionScatterEdbItemResp
  346. // ShowTrendLine bool `description:"是否展示趋势线"`
  347. // ShowFitEquation bool `description:"是否展示方程式"`
  348. // ShowRSquare bool `description:"是否展示R平方"`
  349. // TrendLine string `description:"方程式"`
  350. // RSquare string `description:"R平方的值(决定系数R2)"`
  351. // TrendLimitData []CoordinatePoint `description:"趋势线的前后坐标点"`
  352. //}
  353. // SectionScatterEdbItemResp 截面散点的返回参数
  354. //type SectionScatterEdbItemResp struct {
  355. // XEdbInfoId int `description:"X轴指标id"`
  356. // XDate string `description:"X轴指标实际日期"`
  357. // XName string `description:"X轴指标名称"`
  358. // XNameEn string `description:"X轴指标英文名称"`
  359. // XValue float64 `description:"X轴实际值"`
  360. // YEdbInfoId int `description:"Y轴指标id"`
  361. // YDate string `description:"Y轴指标实际日期"`
  362. // YName string `description:"Y轴指标名称"`
  363. // YNameEn string `description:"Y轴指标英文名称"`
  364. // YValue float64 `description:"Y轴实际值"`
  365. // IsShow bool `description:"是否展示"`
  366. // Name string `description:"标签名称"`
  367. // NameEn string `description:"英文标签名称"`
  368. //}
  369. // CoordinatePoint 坐标点
  370. //type CoordinatePoint struct {
  371. // X float64
  372. // Y float64
  373. //}
  374. // RollingCorrelationChartDataResp 滚动相关性图
  375. //type RollingCorrelationChartDataResp struct {
  376. // XDateTimeValue []string `description:"滚动相关性图的x轴数据,日期数据"`
  377. // YDataList []YData `description:"滚动相关性图的y轴数据"`
  378. //}
  379. //type EdbDataList struct {
  380. // EdbDataId int `description:" 指标数据ID"`
  381. // EdbInfoId int `description:"指标ID"`
  382. // DataTime string //`json:"-" description:"数据日期"`
  383. // DataTimestamp int64 `description:"数据日期"`
  384. // Value float64 `description:"数据值"`
  385. //}
  386. // EditChartInfoExtraConfig 修改 ETA图库 的 图表额外配置
  387. //func EditChartInfoExtraConfig(chartId int, extraConfig string) (err error) {
  388. // o := orm.NewOrmUsingDB("data")
  389. // var pars []interface{}
  390. // pars = append(pars, extraConfig)
  391. //
  392. // sql := ` UPDATE chart_info
  393. // SET
  394. // modify_time = NOW(),
  395. // extra_config = ?
  396. // `
  397. // sql += `WHERE chart_info_id = ?`
  398. //
  399. // pars = append(pars, chartId)
  400. // _, err = o.Raw(sql, pars).Exec()
  401. // if err != nil {
  402. // fmt.Println("UPDATE chart_info Err:", err.Error())
  403. // return err
  404. // }
  405. //
  406. // return
  407. //}
  408. //type SeasonExtraItem struct {
  409. // ChartLegend []SeasonChartLegend `description:"自定义的图例名称"`
  410. // XStartDate string `description:"横坐标显示的起始日"`
  411. // XEndDate string `description:"横坐标显示的截止日"`
  412. // JumpYear int `description:"横坐标日期是否跨年,1跨年,0不跨年"`
  413. //}
  414. //type SeasonChartLegend struct {
  415. // Name string
  416. // Value string
  417. //}
  418. type QuarterData struct {
  419. Year int
  420. DataList []*EdbDataList
  421. CuttingDataTimestamp int64 `description:"切割的时间戳"`
  422. ChartLegend string
  423. Years string
  424. }
  425. type QuarterXDateItem struct {
  426. StartDate time.Time
  427. EndDate time.Time
  428. ShowName string
  429. ChartLegend string
  430. CuttingDataTimestamp int64 `description:"切割的时间戳"`
  431. }
  432. type QuarterDataList []*QuarterData
  433. func (m QuarterDataList) Len() int {
  434. return len(m)
  435. }
  436. func (m QuarterDataList) Less(i, j int) bool {
  437. return m[i].Years < m[j].Years
  438. }
  439. func (m QuarterDataList) Swap(i, j int) {
  440. m[i], m[j] = m[j], m[i]
  441. }
  442. // ChartDetailApiResponse 图表详情接口响应体
  443. type ChartDetailApiResponse struct {
  444. Ret int
  445. Msg string
  446. ErrMsg string
  447. Data *ChartInfoDetailResp
  448. }
  449. func GetChartInfoByUniqueCode(uniqueCode string) (chartInfo *ChartInfo, err error) {
  450. //o := orm.NewOrmUsingDB("data")
  451. sql := `
  452. SELECT * FROM chart_info WHERE unique_code = ?
  453. `
  454. err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&chartInfo).Error
  455. if err != nil {
  456. return nil, err
  457. }
  458. return chartInfo, nil
  459. }