stock_api.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package admin
  2. import (
  3. "ulink-admin/frame"
  4. "ulink-admin/modules/stock/models/model"
  5. "ulink-admin/modules/stock/models/req"
  6. "ulink-admin/modules/stock/service"
  7. "ulink-admin/pkg/excels"
  8. "ulink-admin/pkg/file"
  9. "ulink-admin/pkg/page"
  10. )
  11. type StockApi struct {
  12. stockService service.StockService
  13. stockDetailService service.StockDetailService
  14. }
  15. // List 查询大盘走势分页数据
  16. // @Summary 分页查询大盘走势数据接口
  17. // @Description 分页查询大盘走势数据接口
  18. // @Tags 大盘走势相关接口
  19. // @Accept application/json
  20. // @Produce application/json
  21. // @Param Authorization header string false "Bearer 令牌"
  22. // @Param object query req.StockQuery false "查询参数"
  23. // @Security ApiKeyAuth
  24. // @Success 200 {object} resp.Response{data=page.Page{list=model.Stock},msg=string} "分页获取大盘走势列表,返回包括列表,总数,页码,每页数量"
  25. // @Router /stock/page [get]
  26. func (this StockApi) Page(c *frame.Context) {
  27. query := &req.StockQuery{}
  28. c.ValidteError(c.ShouldBind(query), query)
  29. find, i := this.stockService.Page(query)
  30. for _, stock := range find {
  31. details := make([]*model.StockDetail, 0)
  32. this.stockDetailService.List(&req.StockDetailQuery{StockId: stock.Id}, &details)
  33. stock.Details = details
  34. }
  35. c.Ok(page.Page{List: find, Total: i, Size: query.PageSize})
  36. }
  37. // List 查询大盘走势所有数据
  38. // @Summary 查询全部数据大盘走势数据接口
  39. // @Description 查询全部数据大盘走势数据接口
  40. // @Tags 大盘走势相关接口
  41. // @Accept application/json
  42. // @Produce application/json
  43. // @Param Authorization header string false "Bearer 令牌"
  44. // @Param object query req.StockQuery false "查询参数"
  45. // @Security ApiKeyAuth
  46. // @Success 200 {object} resp.Response{data=model.Stock,msg=string} "分页获取大盘走势列表,返回包括列表,总数,页码,每页数量"
  47. // @Router /stock/list [get]
  48. func (this StockApi) List(c *frame.Context) {
  49. query := &req.StockQuery{}
  50. list := make([]*model.Stock, 0)
  51. c.ValidteError(c.ShouldBind(query), query)
  52. this.stockService.List(query, &list)
  53. for _, stock := range list {
  54. details := make([]*model.StockDetail, 0)
  55. this.stockDetailService.List(&req.StockDetailQuery{StockId: stock.Id}, &details)
  56. stock.Details = details
  57. }
  58. c.Ok(list)
  59. }
  60. // Get 根据大盘走势Id获取详细信息
  61. // @Summary 大盘走势详情查询接口
  62. // @Description 大盘走势详情查询接口
  63. // @Tags 大盘走势相关接口
  64. // @Accept application/json
  65. // @Produce application/json
  66. // @Param Authorization header string false "Bearer 令牌"
  67. // @Param id query int true "id" id
  68. // @Security ApiKeyAuth
  69. // @Success 200 {object} resp.Response{data=model.Stock,msg=string} "返回大盘走势详情查询"
  70. // @Router /stock [get]
  71. func (this StockApi) Get(c *frame.Context) {
  72. var req struct {
  73. Id int64 `form:"id" binding:"required" msg:"id不存在" ` //id
  74. }
  75. c.ValidteError(c.ShouldBind(&req), &req)
  76. c.Ok(this.stockService.Get(req.Id))
  77. }
  78. // Add 新增大盘走势
  79. // @Summary 新增大盘走势接口
  80. // @Description 新增大盘走势接口
  81. // @Tags 大盘走势相关接口
  82. // @Accept application/json
  83. // @Produce application/json
  84. // @Param Authorization header string false "Bearer 令牌"
  85. // @Param data body model.Stock true "大盘走势实体对象"
  86. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  87. // @Router /stock/add [post]
  88. func (this StockApi) Add(c *frame.Context) {
  89. stock := &model.Stock{}
  90. c.ValidteError(c.ShouldBind(stock), stock)
  91. this.stockService.Insert(stock)
  92. }
  93. // Edit 修改大盘走势数据接口
  94. // @Summary 修改大盘走势接口
  95. // @Description 新增大盘走势接口
  96. // @Tags 大盘走势相关接口
  97. // @Accept application/json
  98. // @Produce application/json
  99. // @Param Authorization header string false "Bearer 令牌"
  100. // @Param data body model.Stock true "大盘走势实体对象"
  101. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  102. // @Router /stock/edit [put]
  103. func (this StockApi) Edit(c *frame.Context) {
  104. stock := &model.Stock{}
  105. c.ValidteError(c.ShouldBind(stock), stock)
  106. this.stockService.Edit(stock, c.Cols())
  107. }
  108. // Delete 删除大盘走势数据
  109. // @Summary 删除大盘走势接口
  110. // @Description 删除大盘走势接口
  111. // @Tags 大盘走势相关接口
  112. // @Accept application/json
  113. // @Produce application/json
  114. // @Param Authorization header string false "Bearer 令牌"
  115. // @Param id path int true "id" id
  116. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  117. // @Router /stock [delete]
  118. func (a StockApi) Delete(c *frame.Context) {
  119. var req struct {
  120. Ids []int64 `form:"ids" binding:"required" msg:"ids不存在"` //ids
  121. }
  122. c.ValidteError(c.ShouldBind(&req), &req)
  123. a.stockService.Delete(req.Ids)
  124. }
  125. // Export 导出excel
  126. func (this StockApi) Export(c *frame.Context) {
  127. query := &req.StockQuery{}
  128. list := make([]model.Stock, 0)
  129. c.ValidteError(c.ShouldBind(query), query)
  130. this.stockService.List(query, list)
  131. excelList := make([]interface{}, 0)
  132. for _, stock := range list {
  133. excelList = append(excelList, stock)
  134. }
  135. _, files := excels.ExportExcel(excelList, "大盘走势数据表")
  136. file.DownloadExcel(c, files)
  137. }