You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
3.1 KiB
139 lines
3.1 KiB
package http |
|
|
|
import ( |
|
"fmt" |
|
"net/http" |
|
"time" |
|
|
|
"go-common/app/admin/main/growup/model" |
|
|
|
"go-common/library/log" |
|
"go-common/library/net/http/blademaster" |
|
"go-common/library/net/http/blademaster/render" |
|
) |
|
|
|
func goodsSync(c *blademaster.Context) { |
|
var arg = new(struct { |
|
GoodsType int `form:"goods_type" validate:"required"` |
|
}) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
eff, err := svr.SyncGoods(c, arg.GoodsType) |
|
if err != nil { |
|
log.Error("svr.SyncGoods err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(eff, nil) |
|
} |
|
|
|
func goodsUpdate(c *blademaster.Context) { |
|
var arg = new(struct { |
|
ID int64 `form:"id" validate:"required"` |
|
Discount int `form:"discount" validate:"min=1,max=100"` |
|
}) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
eff, err := svr.UpdateGoodsInfo(c, arg.Discount, arg.ID) |
|
if err != nil { |
|
log.Error("svr.UpdateGoodsInfo err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(eff, nil) |
|
} |
|
|
|
func goodsDisplay(c *blademaster.Context) { |
|
arg := new(struct { |
|
IDs []int64 `form:"ids,split" validate:"required"` |
|
Display int `form:"display" validate:"required"` |
|
}) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
eff, err := svr.UpdateGoodsDisplay(c, model.DisplayStatus(arg.Display), arg.IDs) |
|
if err != nil { |
|
log.Error("svr.UpdateGoodsDisplay err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(eff, nil) |
|
} |
|
|
|
func goodsList(c *blademaster.Context) { |
|
arg := new(struct { |
|
From int `form:"from" validate:"min=0" default:"0"` |
|
Limit int `form:"limit" validate:"min=1" default:"20"` |
|
}) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
total, list, err := svr.GoodsList(c, arg.From, arg.Limit) |
|
if err != nil { |
|
log.Error("svr.GoodsList err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
renderPagRes(list, total, arg.Limit)(c) |
|
} |
|
|
|
func orderList(c *blademaster.Context) { |
|
arg := new(model.OrderQueryArg) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
total, list, err := svr.OrderList(c, arg, arg.From, arg.Limit) |
|
if err != nil { |
|
log.Error("svr.OrderList err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
renderPagRes(list, total, arg.Limit)(c) |
|
} |
|
|
|
func renderPagRes(list interface{}, total int64, ps int) func(c *blademaster.Context) { |
|
return func(c *blademaster.Context) { |
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{ |
|
"code": 0, |
|
"message": "0", |
|
"data": list, |
|
"paging": map[string]interface{}{ |
|
"page_size": ps, |
|
"total": total, |
|
}, |
|
})) |
|
} |
|
} |
|
|
|
func orderExport(c *blademaster.Context) { |
|
arg := new(model.OrderQueryArg) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
content, err := svr.OrderExport(c, arg, arg.From, arg.Limit) |
|
if err != nil { |
|
log.Error("svr.OrderExport err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.Render(http.StatusOK, CSV{ |
|
Content: content, |
|
Title: fmt.Sprintf("%s-%s", time.Now().Format("2006-01-02"), "creative_order"), |
|
}) |
|
} |
|
|
|
func orderStatistics(c *blademaster.Context) { |
|
arg := new(model.OrderQueryArg) |
|
if err := c.Bind(arg); err != nil { |
|
return |
|
} |
|
res, err := svr.OrderStatistics(c, arg) |
|
if err != nil { |
|
log.Error("svr.OrderStatistics err(%v)", err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(res, nil) |
|
}
|
|
|