264 lines
9.2 KiB
Go
264 lines
9.2 KiB
Go
package controllers
|
||
|
||
import (
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"github.com/astaxie/beego"
|
||
)
|
||
|
||
type OrderController struct {
|
||
beego.Controller
|
||
}
|
||
|
||
func GetUserNameFromToken(token string) string {
|
||
userName := token
|
||
if len(userName) > 10 {
|
||
userName = userName[:10]
|
||
}
|
||
return userName
|
||
}
|
||
|
||
func (c *OrderController) URLMapping() {
|
||
c.Mapping("GetStoreOrderInfo", c.GetStoreOrderInfo)
|
||
c.Mapping("GetOrderSkuInfo", c.GetOrderSkuInfo)
|
||
|
||
c.Mapping("FinishedPickup", c.FinishedPickup)
|
||
c.Mapping("SelfDelivering", c.SelfDelivering)
|
||
c.Mapping("CreateWaybillOnProviders", c.CreateWaybillOnProviders)
|
||
c.Mapping("SelfDelivered", c.SelfDelivered)
|
||
}
|
||
|
||
func (c *OrderController) orderOperate(handler func(vendorOrderID string, vendorID int, userName string) (interface{}, error)) {
|
||
var (
|
||
vendorOrderID, token string
|
||
vendorID int
|
||
err error
|
||
)
|
||
token = c.Ctx.Input.Header("token")
|
||
vendorOrderID = c.GetString("vendorOrderID")
|
||
vendorID, err1 := c.GetInt("vendorID", 0)
|
||
if vendorOrderID != "" && token != "" && err1 == nil {
|
||
result, err2 := handler(vendorOrderID, vendorID, GetUserNameFromToken(token))
|
||
if err = err2; err == nil {
|
||
retObj := &model.CallResult{
|
||
Code: "0",
|
||
}
|
||
if result != nil {
|
||
retObj.Data = string(utils.MustMarshal(result))
|
||
}
|
||
c.Data["json"] = retObj
|
||
}
|
||
}
|
||
errMsg := jxutils.Errs2Str("", err1, err)
|
||
if vendorOrderID == "" {
|
||
errMsg += "vendorOrderID is empty\n"
|
||
}
|
||
if token == "" {
|
||
errMsg += "token is empty\n"
|
||
}
|
||
if errMsg != "" {
|
||
c.Data["json"] = &model.CallResult{
|
||
Code: "-1",
|
||
Desc: errMsg,
|
||
}
|
||
}
|
||
c.ServeJSON()
|
||
}
|
||
|
||
// @Title 完成拣货
|
||
// @Description 完成拣货
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID formData string true "订单ID"
|
||
// @Param vendorID formData int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /FinishedPickup [post]
|
||
func (c *OrderController) FinishedPickup() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
return nil, defsch.FixedScheduler.PickupGoodsAndUpdateStatus(vendorOrderID, vendorID, userName)
|
||
})
|
||
}
|
||
|
||
// @Title 转自送
|
||
// @Description 转自送,对于配送类型为纯自送的,就是表示自送开始
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID formData string true "订单ID"
|
||
// @Param vendorID formData int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /SelfDelivering [post]
|
||
func (c *OrderController) SelfDelivering() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
return nil, defsch.FixedScheduler.SelfDeliveringAndUpdateStatusExt(vendorOrderID, vendorID, userName)
|
||
})
|
||
}
|
||
|
||
// @Title 自送送达
|
||
// @Description 自送送达
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID formData string true "订单ID"
|
||
// @Param vendorID formData int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /SelfDelivered [post]
|
||
func (c *OrderController) SelfDelivered() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
return nil, defsch.FixedScheduler.SelfDeliveredAndUpdateStatus(vendorOrderID, vendorID, userName)
|
||
})
|
||
}
|
||
|
||
// @Title 创建三方运单
|
||
// @Description 创建三方运单
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID formData string true "订单ID"
|
||
// @Param vendorID formData int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /CreateWaybillOnProviders [post]
|
||
func (c *OrderController) CreateWaybillOnProviders() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
return defsch.FixedScheduler.CreateWaybillOnProviders(vendorOrderID, vendorID, userName)
|
||
})
|
||
}
|
||
|
||
// @Title 得到门店订单信息
|
||
// @Description 得到门店订单信息
|
||
// @Param token header string true "认证toke"
|
||
// @Param storeID query string true "京西门店ID"
|
||
// @Param lastHours query int false "最近多少小时的信息(缺省为两天)"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /GetStoreOrderCountInfo [get]
|
||
func (c *OrderController) GetStoreOrderCountInfo() {
|
||
var (
|
||
storeID, token string
|
||
lastHours int
|
||
err error
|
||
)
|
||
token = c.Ctx.Input.Header("token")
|
||
storeID = c.GetString("storeID")
|
||
lastHours, err1 := c.GetInt("lastHours", 0)
|
||
if token != "" && storeID != "" && err1 == nil {
|
||
result, err2 := orderman.FixedOrderManager.GetStoreOrderCountInfo(storeID, lastHours)
|
||
if err = err2; err == nil {
|
||
c.Data["json"] = &model.CallResult{
|
||
Code: "0",
|
||
Data: string(utils.MustMarshal(result)),
|
||
}
|
||
}
|
||
}
|
||
errMsg := jxutils.Errs2Str("", err1, err)
|
||
if token == "" {
|
||
errMsg += "token is empty\n"
|
||
}
|
||
if storeID == "" {
|
||
errMsg += "storeID is empty\n"
|
||
}
|
||
if errMsg != "" {
|
||
c.Data["json"] = &model.CallResult{
|
||
Code: "-1",
|
||
Desc: errMsg,
|
||
}
|
||
}
|
||
c.ServeJSON()
|
||
}
|
||
|
||
// @Title 得到门店订单状态信息
|
||
// @Description 得到门店订单状态信息
|
||
// @Param token header string true "认证toke"
|
||
// @Param storeID query string true "京西门店ID"
|
||
// @Param lastHours query int false "最近多少小时的信息(缺省为两天)"
|
||
// @Param fromStatus query int true "起始状态(包括)"
|
||
// @Param toStatus query int false "结束状态(包括)"
|
||
// @Param offset query int false "订单列表起始序号(以0开始,缺省为0)"
|
||
// @Param pageSize query int false "订单列表页大小(缺省为50)"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /GetStoreOrderInfo [get]
|
||
func (c *OrderController) GetStoreOrderInfo() {
|
||
var (
|
||
storeID, token string
|
||
lastHours, fromStatus, toStatus, offset, pageSize int
|
||
err error
|
||
)
|
||
token = c.Ctx.Input.Header("token")
|
||
storeID = c.GetString("storeID")
|
||
lastHours, err1 := c.GetInt("lastHours", 0)
|
||
fromStatus, err2 := c.GetInt("fromStatus", 0)
|
||
toStatus, err3 := c.GetInt("toStatus", 0)
|
||
offset, err4 := c.GetInt("offset", 0)
|
||
pageSize, err5 := c.GetInt("pageSize", 0)
|
||
|
||
if token != "" && storeID != "" && err1 == nil && err2 == nil && err3 == nil && err4 == nil && err5 == nil {
|
||
result, err2 := orderman.FixedOrderManager.GetStoreOrderInfo(storeID, lastHours, fromStatus, toStatus, offset, pageSize)
|
||
if err = err2; err == nil {
|
||
c.Data["json"] = &model.CallResult{
|
||
Code: "0",
|
||
Data: string(utils.MustMarshal(result)),
|
||
}
|
||
}
|
||
}
|
||
errMsg := jxutils.Errs2Str("", err1, err2, err3, err)
|
||
if token == "" {
|
||
errMsg += "token is empty\n"
|
||
}
|
||
if storeID == "" {
|
||
errMsg += "storeID is empty\n"
|
||
}
|
||
if errMsg != "" {
|
||
c.Data["json"] = &model.CallResult{
|
||
Code: "-1",
|
||
Desc: errMsg,
|
||
}
|
||
}
|
||
c.ServeJSON()
|
||
}
|
||
|
||
// @Title 得到订单SKU信息
|
||
// @Description 得到订单SKU信息
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID query string true "订单ID"
|
||
// @Param vendorID query int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /GetOrderSkuInfo [get]
|
||
func (c *OrderController) GetOrderSkuInfo() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
// globals.SugarLogger.Debugf("userName:%s", userName)
|
||
return orderman.FixedOrderManager.GetOrderSkuInfo(vendorOrderID, vendorID)
|
||
})
|
||
}
|
||
|
||
// @Title 得到订单详情
|
||
// @Description 得到订单详情
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID query string true "订单ID"
|
||
// @Param vendorID query int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /GetOrderInfo [get]
|
||
func (c *OrderController) GetOrderInfo() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
// globals.SugarLogger.Debugf("userName:%s", userName)
|
||
return orderman.FixedOrderManager.GetOrderInfo(vendorOrderID, vendorID)
|
||
})
|
||
}
|
||
|
||
// @Title 得到订单运单信息
|
||
// @Description 得到订单运单信息
|
||
// @Param token header string true "认证toke"
|
||
// @Param vendorOrderID query string true "订单ID"
|
||
// @Param vendorID query int true "订单所属的厂商ID"
|
||
// @Success 200 {object} business.model.CallResult
|
||
// @Failure 200 {object} business.model.CallResult
|
||
// @router /GetOrderWaybillInfo [get]
|
||
func (c *OrderController) GetOrderWaybillInfo() {
|
||
c.orderOperate(func(vendorOrderID string, vendorID int, userName string) (interface{}, error) {
|
||
// globals.SugarLogger.Debugf("userName:%s", userName)
|
||
return orderman.FixedOrderManager.GetOrderWaybillInfo(vendorOrderID, vendorID)
|
||
})
|
||
}
|