Files
jx-callback/controllers/promotion.go
2018-10-14 12:47:17 +08:00

87 lines
3.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package controllers
import (
"errors"
"io"
"github.com/astaxie/beego"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/promotion"
"git.rosy.net.cn/jx-callback/business/model"
)
type PromotionController struct {
beego.Controller
}
// @Title 创建促销
// @Description 创建促销
// @Param token header string true "认证token"
// @Param vendorID formData int true "厂商ID当前只支持京东0 "
// @Param name formData string true "促销名,必须唯一(所以名子上最好带上日期)"
// @Param beginAt formData string true "开始时间"
// @Param endAt formData string true "结束时间"
// @Param type formData int true "促销类型3直降4限时抢购"
// @Param storeIDs formData string true "json数据storeID列表[1,2,3]"
// @Param skuPrices formData string true "json数据价格信息列表"
// @Param isAsync formData bool false "是否异常,缺省否(暂时只支持同步)"
// @Param advertising formData string false "广告语"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CreatePromotion [post]
func (c *PromotionController) CreatePromotion() {
c.callCreatePromotion(func(params *tPromotionCreatePromotionParams) (retVal interface{}, errCode string, err error) {
if params.VendorID != model.VendorIDJD {
return nil, "", errors.New("当前只支持创建京东促销")
}
promotionParams := &promotion.PromotionParams{
Name: params.Name,
BeginAt: utils.Str2Time(params.BeginAt),
EndAt: utils.Str2Time(params.EndAt),
Type: params.Type,
Advertising: params.Advertising,
}
if err = utils.UnmarshalUseNumber([]byte(params.StoreIDs), &promotionParams.StoreIDs); err == nil {
if err = utils.UnmarshalUseNumber([]byte(params.SkuPrices), &promotionParams.SkuPrices); err == nil {
retVal, err = promotion.CreateJdPromotion(false, params.IsAsync, promotionParams, GetUserNameFromToken(params.Token))
}
}
return retVal, "", err
})
}
// @Param token header string true "认证token"
// @Title 发送文件给门店
// @Description 发送文件给门店调用GET方法得到浏览器端参考的上传HTML实现userfiles
// @Param type formData int true "是否异步,缺省是同步"
// @Param isAsync formData bool false "是否异常,缺省否(暂时只支持同步)"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CreatePromotionByExcel [post,get]
func (c *PromotionController) CreatePromotionByExcel() {
if c.Ctx.Input.IsGet() {
w := c.Ctx.ResponseWriter
// 上传页面
w.Header().Add("Content-Type", "text/html")
w.WriteHeader(200)
html := `
<form enctype="multipart/form-data" action="/v2/promotion/CreatePromotionByExcel" method="POST">
Send this file: <input name="userfile" accept="*.xlsx" type="file" />
<input type="text" name="type" />
<input type="text" name="isAsync" />
<input type="submit" value="Send File" />
</form>
`
io.WriteString(w, html)
} else if c.Ctx.Input.IsPost() {
c.callCreatePromotionByExcel(func(params *tPromotionCreatePromotionByExcelParams) (retVal interface{}, errCode string, err error) {
r := c.Ctx.Request
files := r.MultipartForm.File["userfile"]
retVal, err = promotion.CreatePromotionByExcel(params.IsAsync, params.Type, files[0], "userName") //GetUserNameFromToken(params.Token))
return retVal, "", err
})
}
}