140 lines
3.1 KiB
Go
140 lines
3.1 KiB
Go
|
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)
|
||
|
}
|