123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- package controller
- import (
- "github.com/gin-gonic/gin"
- "strconv"
- "trading-go/model"
- "trading-go/response"
- )
- //// GetAllGoods
- //// @Tags 商品模块
- //// @Summary 获取所有商品
- //// @Produce application/json
- //// @Success 200 {object} response.Response
- //// @Router /goods [get]
- //func GetAllGoods(c *gin.Context) {
- // var goods []model.GoodsSurface
- // goods = append(goods, model.GoodsSurface{})
- // goods = append(goods, model.GoodsSurface{})
- // response.Success(c.Writer, "success", goods)
- //}
- // CreatGoods
- // @Tags 商品模块
- // @Summary 创建商品
- // @Accept application/json
- // @Produce application/json
- // @Param json body model.GoodsJson true "商品信息"
- // @Success 200 {object} response.Response
- // @Router /goods/create [post]
- func CreatGoods(c *gin.Context) {
- var goodsJson model.GoodsJson
- var category model.CategoryOfGoods
- err := c.ShouldBindJSON(&goodsJson)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- goods := goodsJson.Change()
- id, err := goods.Create()
- err = category.Save(id, goodsJson.Categories)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- response.Success(c.Writer, "success", nil)
- }
- // DGoods
- // @Tags 商品模块
- // @Summary 删除商品
- // @Produce application/json
- // @Param id path int64 true "商品id"
- // @Success 200 {object} response.Response
- // @Router /goods/delete/{id} [delete]
- func DGoods(c *gin.Context) {
- var goods model.Goods
- ids := c.Param("id")
- id, err := strconv.Atoi(ids)
- if err != nil {
- response.Fail(c.Writer, err.Error(), 500)
- return
- }
- goods.Id = uint(id)
- err = goods.Delete()
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- response.Success(c.Writer, "success", nil)
- }
- // GetGoodsPage
- // @Tags 商品模块
- // @Summary 获取所有商品
- // @Produce application/json
- // @Param page path int true "页数"
- // @Param pageSize path int true "一页的大小"
- // @Success 200 {object} response.Response
- // @Router /goods/{page}/{pageSize} [get]
- func GetGoodsPage(c *gin.Context) {
- var goods model.GoodsSurface
- p := c.Param("page")
- pS := c.Param("pageSize")
- page, err := strconv.Atoi(p)
- pageSize, err := strconv.Atoi(pS)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- rsp, err := goods.GetPaged(page, pageSize)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- cnt, err := goods.GetCnt()
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- if cnt > page*pageSize {
- rsp.HNext = true
- }
- response.Success(c.Writer, "success", rsp)
- }
- // GetRecommend
- // @Tags 商品模块
- // @Summary 分页获取推荐商品
- // @Produce application/json
- // @Param id query int64 true "用户id"
- // @Param page path int true "页数"
- // @Param pageSize path int true "一页的大小"
- // @Success 200 {object} response.Response
- // @Router /goods/recommend/{page}/{pageSize} [get]
- func GetRecommend(c *gin.Context) {
- var goods []model.GoodsSurface
- var rsp response.PageResponse
- goods = append(goods, model.GoodsSurface{})
- goods = append(goods, model.GoodsSurface{})
- //rsp.Data = goods
- response.Success(c.Writer, "success", rsp)
- }
- // ReviseGoods
- // @Tags 商品模块
- // @Summary 修改商品信息
- // @Produce application/json
- // @Param json body model.Goods true "商品信息"
- // @Success 200 {object} response.Response
- // @Router /goods/revise [post]
- func ReviseGoods(c *gin.Context) {
- var goods model.Goods
- err := c.ShouldBindJSON(&goods)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- err = goods.Revise()
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- response.Success(c.Writer, "success", nil)
- }
- // GetGoodDetail
- // @Tags 商品模块
- // @Summary 获取商品详细信息
- // @Produce application/json
- // @Param id path int64 true "商品id"
- // @Success 200 {object} response.Response
- // @Router /goods/detail/{id} [get]
- func GetGoodDetail(c *gin.Context) {
- var goods model.Goods
- ids := c.Param("id")
- id, err := strconv.Atoi(ids)
- if err != nil {
- response.Fail(c.Writer, err.Error(), 500)
- return
- }
- goods.Id = uint(id)
- err = goods.GetDetail()
- if err != nil {
- response.Fail(c.Writer, err.Error(), 500)
- return
- }
- response.Success(c.Writer, "success", model.Goods{})
- }
- // GetUserGoods
- // @Tags 商品模块
- // @Summary 获取某个用户的所有商品
- // @Produce application/json
- // @Param id path int64 true "用户id"
- // @Success 200 {object} response.Response
- // @Router /goods/user/{id} [get]
- func GetUserGoods(c *gin.Context) {
- var goods model.Goods
- ids := c.Param("id")
- id, err := strconv.Atoi(ids)
- if err != nil {
- response.Fail(c.Writer, err.Error(), 500)
- return
- }
- goods.OwnerId = uint(id)
- data, err := goods.GetUserGoods()
- if err != nil {
- response.Fail(c.Writer, err.Error(), 500)
- return
- }
- response.Success(c.Writer, "success", data)
- }
- // SearchGoods
- // @Tags 商品模块
- // @Summary 搜索商品并分页显示
- // @Produce application/json
- // @Param page path int true "页数"
- // @Param pageSize path int true "一页的大小"
- // @Param keyword query string true "搜素关键词"
- // @Success 200 {object} response.Response
- // @Router /goods/search/{page}/{pageSize} [get]
- func SearchGoods(c *gin.Context) {
- var goods []model.GoodsSurface
- var rsp response.PageResponse
- goods = append(goods, model.GoodsSurface{})
- goods = append(goods, model.GoodsSurface{})
- //rsp.Data = goods
- response.Success(c.Writer, "success", rsp)
- }
- // GetGoodsCategory
- // @Tags 商品模块
- // @Summary 按分类查找商品并分页显示
- // @Produce application/json
- // @Param page path int true "页数"
- // @Param pageSize path int true "一页的大小"
- // @Param category query uint true "商品分类id"
- // @Success 200 {object} response.Response
- // @Router /goods/category/{page}/{pageSize} [get]
- func GetGoodsCategory(c *gin.Context) {
- var goods model.GoodsSurface
- p := c.Param("page")
- pS := c.Param("pageSize")
- ca := c.Query("category")
- category, err := strconv.Atoi(ca)
- page, err := strconv.Atoi(p)
- pageSize, err := strconv.Atoi(pS)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- rsp, err := goods.GetCategoryPaged(page, pageSize, uint(category))
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- cnt, err := goods.GetCategoryCnt(uint(category))
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- if cnt > page*pageSize {
- rsp.HNext = true
- }
- response.Success(c.Writer, "success", rsp)
- }
|