package admin import ( "ulink-admin/frame" "ulink-admin/modules/stock/models/model" "ulink-admin/modules/stock/models/req" "ulink-admin/modules/stock/service" "ulink-admin/pkg/excels" "ulink-admin/pkg/file" "ulink-admin/pkg/page" ) type StockApi struct { stockService service.StockService stockDetailService service.StockDetailService } // List 查询大盘走势分页数据 // @Summary 分页查询大盘走势数据接口 // @Description 分页查询大盘走势数据接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param object query req.StockQuery false "查询参数" // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=page.Page{list=model.Stock},msg=string} "分页获取大盘走势列表,返回包括列表,总数,页码,每页数量" // @Router /stock/page [get] func (this StockApi) Page(c *frame.Context) { query := &req.StockQuery{} c.ValidteError(c.ShouldBind(query), query) find, i := this.stockService.Page(query) for _, stock := range find { details := make([]*model.StockDetail, 0) this.stockDetailService.List(&req.StockDetailQuery{StockId: stock.Id}, &details) stock.Details = details } c.Ok(page.Page{List: find, Total: i, Size: query.PageSize}) } // List 查询大盘走势所有数据 // @Summary 查询全部数据大盘走势数据接口 // @Description 查询全部数据大盘走势数据接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param object query req.StockQuery false "查询参数" // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=model.Stock,msg=string} "分页获取大盘走势列表,返回包括列表,总数,页码,每页数量" // @Router /stock/list [get] func (this StockApi) List(c *frame.Context) { query := &req.StockQuery{} list := make([]*model.Stock, 0) c.ValidteError(c.ShouldBind(query), query) this.stockService.List(query, &list) for _, stock := range list { details := make([]*model.StockDetail, 0) this.stockDetailService.List(&req.StockDetailQuery{StockId: stock.Id}, &details) stock.Details = details } c.Ok(list) } // Get 根据大盘走势Id获取详细信息 // @Summary 大盘走势详情查询接口 // @Description 大盘走势详情查询接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param id query int true "id" id // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=model.Stock,msg=string} "返回大盘走势详情查询" // @Router /stock [get] func (this StockApi) Get(c *frame.Context) { var req struct { Id int64 `form:"id" binding:"required" msg:"id不存在" ` //id } c.ValidteError(c.ShouldBind(&req), &req) c.Ok(this.stockService.Get(req.Id)) } // Add 新增大盘走势 // @Summary 新增大盘走势接口 // @Description 新增大盘走势接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param data body model.Stock true "大盘走势实体对象" // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /stock/add [post] func (this StockApi) Add(c *frame.Context) { stock := &model.Stock{} c.ValidteError(c.ShouldBind(stock), stock) this.stockService.Insert(stock) } // Edit 修改大盘走势数据接口 // @Summary 修改大盘走势接口 // @Description 新增大盘走势接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param data body model.Stock true "大盘走势实体对象" // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /stock/edit [put] func (this StockApi) Edit(c *frame.Context) { stock := &model.Stock{} c.ValidteError(c.ShouldBind(stock), stock) this.stockService.Edit(stock, c.Cols()) } // Delete 删除大盘走势数据 // @Summary 删除大盘走势接口 // @Description 删除大盘走势接口 // @Tags 大盘走势相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param id path int true "id" id // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /stock [delete] func (a StockApi) Delete(c *frame.Context) { var req struct { Ids []int64 `form:"ids" binding:"required" msg:"ids不存在"` //ids } c.ValidteError(c.ShouldBind(&req), &req) a.stockService.Delete(req.Ids) } // Export 导出excel func (this StockApi) Export(c *frame.Context) { query := &req.StockQuery{} list := make([]model.Stock, 0) c.ValidteError(c.ShouldBind(query), query) this.stockService.List(query, list) excelList := make([]interface{}, 0) for _, stock := range list { excelList = append(excelList, stock) } _, files := excels.ExportExcel(excelList, "大盘走势数据表") file.DownloadExcel(c, files) }