- record order ok.
This commit is contained in:
@@ -2,8 +2,10 @@ package elm
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/elmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -15,10 +17,6 @@ type OrderController struct {
|
||||
controller.OrderController
|
||||
}
|
||||
|
||||
var (
|
||||
api *elmapi.API
|
||||
)
|
||||
|
||||
func (c *OrderController) OnOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) {
|
||||
controller.RoutinePool.CallFun(func() {
|
||||
retVal = c.onOrderStatusMsg(msg)
|
||||
@@ -94,37 +92,41 @@ func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) getOrderInfo(msg *elmapi.CallbackOrderStatusMsg) (order *model.Order, orderSkus []*model.OrderSku, err error) {
|
||||
result, err := api.GetOrder(msg.OrderID)
|
||||
func (c *OrderController) getOrderInfo(msg *elmapi.CallbackOrderStatusMsg) (order *model.GoodsOrder, orderSkus []*model.OrderSku, err error) {
|
||||
result, err := api.ElmAPI.GetOrder(msg.OrderID)
|
||||
if err == nil {
|
||||
phoneList := result["phoneList"].([]interface{})
|
||||
consigneeMobile := ""
|
||||
if len(phoneList) > 0 {
|
||||
consigneeMobile = phoneList[0].(string)
|
||||
}
|
||||
order = &model.Order{
|
||||
// globals.SugarLogger.Debug(result)
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: msg.OrderID,
|
||||
VendorID: controller.VendorIDELM,
|
||||
VendorStoreID: result["shopId"].(string),
|
||||
StoreID: int(utils.Str2Int64(result["openId"].(string))),
|
||||
VendorStoreID: utils.Int64ToStr(utils.MustInterface2Int64(result["shopId"])),
|
||||
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["openId"]), 0)),
|
||||
StoreName: result["shopName"].(string),
|
||||
ConsigneeName: result["consignee"].(string),
|
||||
ConsigneeMobile: consigneeMobile,
|
||||
VendorStatus: msg.State,
|
||||
OrderCreatedAt: utils.Str2Time(result["createdAt"].(string)),
|
||||
OriginalData: string(utils.MustMarshal(result)),
|
||||
}
|
||||
|
||||
orderSkus = []*model.OrderSku{}
|
||||
for _, group := range result["groups"].([]map[string]interface{}) {
|
||||
for _, product := range group["items"].([]map[string]interface{}) {
|
||||
for _, group2 := range result["groups"].([]interface{}) {
|
||||
group := group2.(map[string]interface{})
|
||||
for _, product2 := range group["items"].([]interface{}) {
|
||||
product := product2.(map[string]interface{})
|
||||
sku := &model.OrderSku{
|
||||
VendorOrderID: msg.OrderID,
|
||||
VendorID: controller.VendorIDJD,
|
||||
Count: int(utils.MustInterface2Int64(product["quantity"])),
|
||||
SkuID: int(utils.Str2Int64(product["extendCode"].(string))),
|
||||
VendorSkuID: product["skuId"].(string),
|
||||
SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product["extendCode"]), 0)),
|
||||
VendorSkuID: utils.Int64ToStr(utils.MustInterface2Int64(product["skuId"])),
|
||||
SkuName: product["name"].(string),
|
||||
SalePrice: utils.MustInterface2Int64(product["userPrice"]),
|
||||
SalePrice: int64(math.Round(utils.MustInterface2Float64(product["userPrice"]) * 100)),
|
||||
OrderCreatedAt: order.OrderCreatedAt,
|
||||
}
|
||||
orderSkus = append(orderSkus, sku)
|
||||
@@ -202,10 +204,10 @@ func (c *OrderController) onOrderOtherCancelRefundStatus(msg *elmapi.CallbackOrd
|
||||
}
|
||||
|
||||
// PurchasePlatformHandler
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool) {
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) {
|
||||
if isAcceptIt {
|
||||
api.ConfirmOrder(order.VendorOrderID)
|
||||
api.ElmAPI.ConfirmOrder(order.VendorOrderID)
|
||||
} else {
|
||||
api.CancelOrder(order.VendorOrderID, elmapi.CancelOrderTypeOthers, "")
|
||||
api.ElmAPI.CancelOrder(order.VendorOrderID, elmapi.CancelOrderTypeOthers, "")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,16 +5,14 @@ import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/controller"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
type OrderController struct {
|
||||
controller.OrderController
|
||||
}
|
||||
|
||||
var (
|
||||
api *jdapi.API
|
||||
)
|
||||
|
||||
func (c *OrderController) OnOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
||||
controller.RoutinePool.CallFun(func() {
|
||||
retVal = c.onOrderMsg(msg)
|
||||
@@ -57,29 +55,32 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *model.Order, orderSkus []*model.OrderSku, err error) {
|
||||
result, err := api.QuerySingleOrder(msg.BillID)
|
||||
func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *model.GoodsOrder, orderSkus []*model.OrderSku, err error) {
|
||||
result, err := api.JdAPI.QuerySingleOrder(msg.BillID)
|
||||
// globals.SugarLogger.Info(result)
|
||||
if err == nil {
|
||||
order = &model.Order{
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: msg.BillID,
|
||||
VendorID: controller.VendorIDJD,
|
||||
VendorStoreID: result["produceStationNo"].(string),
|
||||
StoreID: int(utils.MustInterface2Int64(result["produceStationNoIsv"])),
|
||||
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["produceStationNoIsv"]), 0)),
|
||||
StoreName: result["produceStationName"].(string),
|
||||
ConsigneeName: result["buyerFullName"].(string),
|
||||
ConsigneeMobile: result["buyerMobile"].(string),
|
||||
VendorStatus: msg.StatusID,
|
||||
OrderCreatedAt: utils.Str2Time(result["orderPurchaseTime"].(string)),
|
||||
OriginalData: string(utils.MustMarshal(result)),
|
||||
}
|
||||
// discounts := result["discount"].(map[string]interface{})
|
||||
orderSkus = []*model.OrderSku{}
|
||||
for _, product := range result["product"].([]map[string]interface{}) {
|
||||
for _, product2 := range result["product"].([]interface{}) {
|
||||
product := product2.(map[string]interface{})
|
||||
sku := &model.OrderSku{
|
||||
VendorOrderID: msg.BillID,
|
||||
VendorID: controller.VendorIDJD,
|
||||
Count: int(utils.MustInterface2Int64(product["skuCount"])),
|
||||
SkuID: int(utils.Str2Int64(product["skuIdIsv"].(string))),
|
||||
VendorSkuID: product["skuId"].(string),
|
||||
SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product["skuIdIsv"]), 0)),
|
||||
VendorSkuID: utils.Int64ToStr(utils.MustInterface2Int64(product["skuId"])),
|
||||
SkuName: product["skuName"].(string),
|
||||
SalePrice: utils.MustInterface2Int64(product["skuJdPrice"]),
|
||||
OrderCreatedAt: order.OrderCreatedAt,
|
||||
@@ -98,6 +99,8 @@ func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
|
||||
order, orderSkus, err := c.getOrderInfo(msg)
|
||||
if err == nil {
|
||||
err = c.OnOrderNew(c, order, orderSkus)
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("get order error:%v", err)
|
||||
}
|
||||
return jdapi.Err2CallbackResponse(err, "jd onOrderNew")
|
||||
}
|
||||
@@ -139,6 +142,6 @@ func (c *OrderController) onOrderOtherStatus(msg *jdapi.CallbackOrderMsg) *jdapi
|
||||
}
|
||||
|
||||
// PurchasePlatformHandler
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool) {
|
||||
api.OrderAcceptOperate(order.VendorOrderID, isAcceptIt)
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) {
|
||||
api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt)
|
||||
}
|
||||
|
||||
@@ -19,15 +19,29 @@ func (c *WaybillController) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *WaybillController) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
controller.RoutinePool.CallFun(func() {
|
||||
status := &model.OrderStatus{
|
||||
VendorOrderID: msg.MtPeisongID,
|
||||
VendorID: controller.VendorIDMTPS,
|
||||
OrderType: controller.OrderTypeWaybill,
|
||||
VendorStatus: utils.Int2Str(msg.ExceptionCode),
|
||||
StatusTime: utils.Timestamp2Time(int64(msg.Timestamp)),
|
||||
}
|
||||
retVal = mtpsapi.Err2CallbackResponse(c.OnWaybillFailed(status), "mtps OnWaybillExcept")
|
||||
}, msg.MtPeisongID)
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *WaybillController) callbackMsg2Status(msg *mtpsapi.CallbackOrderMsg) *model.OrderStatus {
|
||||
orderStatus := &model.OrderStatus{
|
||||
status := &model.OrderStatus{
|
||||
VendorOrderID: msg.MtPeisongID,
|
||||
VendorID: controller.VendorIDMTPS,
|
||||
OrderType: controller.OrderTypeWaybill,
|
||||
VendorStatus: utils.Int2Str(msg.Status),
|
||||
StatusTime: utils.Timestamp2Time(int64(msg.Timestamp)),
|
||||
}
|
||||
return orderStatus
|
||||
return status
|
||||
}
|
||||
|
||||
func (c *WaybillController) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
|
||||
@@ -32,7 +32,7 @@ const (
|
||||
)
|
||||
|
||||
type PurchasePlatformHandler interface {
|
||||
AcceptOrRefuseOrder(order *model.Order, isAcceptIt bool)
|
||||
AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool)
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -46,7 +46,7 @@ func init() {
|
||||
type OrderController struct {
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, order *model.Order, orderSkus []*model.OrderSku) (err error) {
|
||||
func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) {
|
||||
db := orm.NewOrm()
|
||||
c.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, order.ConsigneeMobile, order.StoreID, db, func(isAccept bool) {
|
||||
// purchasePlatform.AcceptOrRefuseOrder(order, isAccept)
|
||||
@@ -62,6 +62,7 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o
|
||||
err = c.updateOrderSkuOtherInfo(orderSkus, db)
|
||||
if err == nil {
|
||||
db.Begin()
|
||||
// globals.SugarLogger.Debugf("new order:%v", order)
|
||||
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
||||
err = err2
|
||||
if err == nil {
|
||||
@@ -71,17 +72,18 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o
|
||||
params := []interface{}{}
|
||||
for _, sku := range orderSkus {
|
||||
if sql == "" {
|
||||
sql = "INSERT INTO order_sku(vendor_order_id, vendor_id, count, sku_id, vendor_sku_id, sku_name, shop_price, sale_price) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
sql = "INSERT INTO order_sku(vendor_order_id, vendor_id, count, sku_id, vendor_sku_id, sku_name, shop_price, sale_price, order_created_at) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
|
||||
} else {
|
||||
sql += ",(?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
sql += ",(?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
}
|
||||
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.SkuID, sku.VendorSkuID, sku.SkuName, sku.ShopPrice, sku.SalePrice)
|
||||
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.SkuID, sku.VendorSkuID, sku.SkuName, sku.ShopPrice, sku.SalePrice, order.OrderCreatedAt)
|
||||
}
|
||||
sql += ";"
|
||||
_, err = db.Raw(sql, params...).Exec()
|
||||
if err != nil {
|
||||
db.Rollback()
|
||||
baseapi.SugarLogger.Infof("insert order_sku error:%v", err)
|
||||
} else {
|
||||
db.Commit()
|
||||
}
|
||||
@@ -91,26 +93,28 @@ func (c *OrderController) OnOrderNew(purchasePlatform PurchasePlatformHandler, o
|
||||
}
|
||||
} else {
|
||||
db.Rollback()
|
||||
globals.SugarLogger.Warnf("create order:%v, error:%v", order, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderAdjust(purchasePlatform PurchasePlatformHandler, order *model.Order, orderSkus []*model.OrderSku) (err error) {
|
||||
func (c *OrderController) OnOrderAdjust(purchasePlatform PurchasePlatformHandler, order *model.GoodsOrder, orderSkus []*model.OrderSku) (err error) {
|
||||
db := orm.NewOrm()
|
||||
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Raw("DELETE FROM order_sku WHERE vendor_order_id=? AND vendor_id=?", order.VendorOrderID, order.VendorID).Exec()
|
||||
_, err := db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order_sku")
|
||||
}, "OnAdjustOrder delete order")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Raw("DELETE FROM order WHERE vendor_order_id=? AND vendor_id=?", order.VendorOrderID, order.VendorID).Exec()
|
||||
_, err := db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order")
|
||||
}, "OnAdjustOrder delete order_sku")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -175,7 +179,7 @@ func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, d
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *OrderController) updateOrderOtherInfo(order *model.Order, db orm.Ormer) (err error) {
|
||||
func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -214,14 +218,14 @@ func (c *OrderController) handleAutoAcceptOrder(orderID string, vendorID int, us
|
||||
}
|
||||
|
||||
func (c *OrderController) addOrderStatus(msg *model.OrderStatus) (err error) {
|
||||
order := &model.Order{
|
||||
order := &model.GoodsOrder{
|
||||
VendorOrderID: msg.VendorOrderID,
|
||||
VendorID: msg.VendorID,
|
||||
}
|
||||
db := orm.NewOrm()
|
||||
value, ok := OrderMap.Load(ComposeUniversalOrderID(msg.VendorOrderID, msg.VendorID))
|
||||
if !ok {
|
||||
globals.SugarLogger.Warnf("can not get order:%v, from cache", order)
|
||||
// globals.SugarLogger.Infof("can not get order:%v, from cache", order)
|
||||
err = db.Read(order, "VendorOrderID", "VendorID")
|
||||
} else {
|
||||
order.ID = value.(int64)
|
||||
|
||||
@@ -21,6 +21,7 @@ const (
|
||||
)
|
||||
|
||||
type WaybillController struct {
|
||||
OrderController
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -36,6 +37,8 @@ func (w *WaybillController) OnWaybillNew(bill *model.Waybill) (err error) {
|
||||
if !created {
|
||||
baseapi.SugarLogger.Warnf("duplicated waybill:%v msg received", bill)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Warnf("create bill:%v, error:%v", bill, err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -83,7 +86,7 @@ func (w *WaybillController) addWaybillStatus(msg *model.OrderStatus) (err error)
|
||||
db := orm.NewOrm()
|
||||
value, ok := OrderMap.Load(ComposeUniversalOrderID(msg.VendorOrderID, msg.VendorID))
|
||||
if !ok {
|
||||
globals.SugarLogger.Warnf("can not get order:%v, from cache", order)
|
||||
// globals.SugarLogger.Infof("can not get order:%v, from cache", order)
|
||||
err = db.Read(order, "VendorWaybillID", "WaybillVendorID")
|
||||
} else {
|
||||
order.ID = value.(int64)
|
||||
|
||||
@@ -7,7 +7,7 @@ type ModelTimeInfo struct {
|
||||
UpdatedAt time.Time `orm:"auto_now;type(datetime)"`
|
||||
}
|
||||
|
||||
type Order struct {
|
||||
type GoodsOrder struct {
|
||||
ID int64 `orm:"column(id)"`
|
||||
VendorOrderID string `orm:"column(vendor_order_id);size(48)"`
|
||||
VendorID int `orm:"column(vendor_id)"`
|
||||
@@ -26,14 +26,14 @@ type Order struct {
|
||||
VendorStatus string `orm:"size(16)"`
|
||||
LockStatus int
|
||||
CancelApplyReason string `orm:"size(255);null;default(null)"` // null表示没有申请,不为null表示用户正在取消申请
|
||||
WaybillVendorID int `orm:"column(waybill_vendor_id)"`
|
||||
WaybillVendorID int `orm:"column(waybill_vendor_id);default(-1)"`
|
||||
OriginalData string `orm:"type(text)"`
|
||||
OrderCreatedAt time.Time `orm:"type(datetime);index"`
|
||||
OrderFinishedAt time.Time `orm:"type(datetime)"`
|
||||
OrderFinishedAt time.Time `orm:"type(datetime);null;default(null)"`
|
||||
ModelTimeInfo
|
||||
}
|
||||
|
||||
func (o *Order) TableUnique() [][]string {
|
||||
func (o *GoodsOrder) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"VendorOrderID", "VendorID"},
|
||||
}
|
||||
@@ -44,7 +44,7 @@ type OrderSku struct {
|
||||
VendorOrderID string `orm:"column(vendor_order_id);size(48)"`
|
||||
VendorID int `orm:"column(vendor_id)"`
|
||||
Count int
|
||||
VendorSkuID string `orm:"column(vendor_sku_id),size(48)"`
|
||||
VendorSkuID string `orm:"column(vendor_sku_id);size(48)"`
|
||||
SkuID int `orm:"column(sku_id)"` // 外部系统里记录的 jxskuid
|
||||
JxSkuID int `orm:"column(jx_sku_id)"` // 根据VendorSkuID在本地系统里查询出来的 jxskuid
|
||||
SkuName string `orm:"size(255)"`
|
||||
@@ -53,7 +53,9 @@ type OrderSku struct {
|
||||
OrderCreatedAt time.Time `orm:"type(datetime);index"`
|
||||
}
|
||||
|
||||
func (o *OrderSku) TableUnique() [][]string {
|
||||
// 同样商品在一个定单中可能重复出现(比如搞活动时,相同商品价格不一样,第一个有优惠)
|
||||
// 所以这里不能用唯一索引
|
||||
func (o *OrderSku) TableIndex() [][]string {
|
||||
return [][]string{
|
||||
[]string{"VendorOrderID", "SkuID", "VendorID"},
|
||||
}
|
||||
@@ -72,7 +74,7 @@ type Waybill struct {
|
||||
VendorStatus string `orm:"size(16)"`
|
||||
ActualFee int64
|
||||
WaybillCreatedAt time.Time `orm:"type(datetime);index"`
|
||||
WaybillFinishedAt time.Time `orm:"type(datetime)"`
|
||||
WaybillFinishedAt time.Time `orm:"type(datetime);null;default(null)"`
|
||||
ModelTimeInfo
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,11 @@ func (c *DadaOrderController) OrderStatusChanged() {
|
||||
if callbackResponse == nil {
|
||||
cc := &controller.OrderController{}
|
||||
callbackResponse = cc.OrderStatusChanged(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &dada.WaybillController{}
|
||||
// cc2.OnWaybillMsg(obj)
|
||||
// })
|
||||
}
|
||||
if callbackResponse.Code != 200 {
|
||||
c.CustomAbort(callbackResponse.Code, string(utils.MustMarshal(callbackResponse)))
|
||||
|
||||
@@ -27,6 +27,11 @@ func (c *ELMOrderController) MsgPost() {
|
||||
if callbackResponse == nil {
|
||||
cc := &controller.OrderController{}
|
||||
callbackResponse = cc.OrderMessage(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &elm.Controller{}
|
||||
// cc2.OnCallbackMsg(obj)
|
||||
// })
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"git.rosy.net.cn/jx-callback/legacy/jd/controller"
|
||||
"github.com/astaxie/beego"
|
||||
@@ -23,11 +24,23 @@ func (c *JDOrderController) URLMapping() {
|
||||
c.Mapping("PushDeliveryStatus", c.PushDeliveryStatus)
|
||||
}
|
||||
|
||||
func (c *JDOrderController) orderStatus() {
|
||||
obj, callbackResponse := api.Jdapi.GetOrderCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
func (c *JDOrderController) orderStatus(isCancelOrder bool) {
|
||||
var obj *jdapi.CallbackOrderMsg
|
||||
var callbackResponse *jdapi.CallbackResponse
|
||||
|
||||
if isCancelOrder {
|
||||
obj, callbackResponse = api.JdAPI.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
} else {
|
||||
obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
}
|
||||
if callbackResponse == nil {
|
||||
cc := controller.OrderController{}
|
||||
callbackResponse = cc.OrderStatus(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &jd.OrderController{}
|
||||
// cc2.OnOrderMsg(obj)
|
||||
// })
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
@@ -40,7 +53,7 @@ func (c *JDOrderController) orderStatus() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /newOrder [post]
|
||||
func (c *JDOrderController) NewOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title AdjustOrder
|
||||
@@ -50,7 +63,7 @@ func (c *JDOrderController) NewOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /orderAdjust [post]
|
||||
func (c *JDOrderController) OrderAdjust() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title orderWaitOutStore
|
||||
@@ -60,7 +73,7 @@ func (c *JDOrderController) OrderAdjust() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /orderWaitOutStore [post]
|
||||
func (c *JDOrderController) OrderWaitOutStore() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title pickFinishOrder
|
||||
@@ -70,7 +83,7 @@ func (c *JDOrderController) OrderWaitOutStore() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /pickFinishOrder [post]
|
||||
func (c *JDOrderController) PickFinishOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title deliveryOrder
|
||||
@@ -80,7 +93,7 @@ func (c *JDOrderController) PickFinishOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /deliveryOrder [post]
|
||||
func (c *JDOrderController) DeliveryOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title finishOrder
|
||||
@@ -90,7 +103,7 @@ func (c *JDOrderController) DeliveryOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /finishOrder [post]
|
||||
func (c *JDOrderController) FinishOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title lockOrder
|
||||
@@ -100,7 +113,7 @@ func (c *JDOrderController) FinishOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /lockOrder [post]
|
||||
func (c *JDOrderController) LockOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title userCancelOrder
|
||||
@@ -110,7 +123,7 @@ func (c *JDOrderController) LockOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /userCancelOrder [post]
|
||||
func (c *JDOrderController) UserCancelOrder() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
// @Title applyCancelOrder
|
||||
@@ -120,13 +133,7 @@ func (c *JDOrderController) UserCancelOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /applyCancelOrder [post]
|
||||
func (c *JDOrderController) ApplyCancelOrder() {
|
||||
obj, callbackResponse := api.Jdapi.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
if callbackResponse == nil {
|
||||
cc := controller.OrderController{}
|
||||
callbackResponse = cc.OrderStatus(obj)
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
c.orderStatus(true)
|
||||
}
|
||||
|
||||
// @Title pushDeliveryStatus
|
||||
@@ -136,10 +143,15 @@ func (c *JDOrderController) ApplyCancelOrder() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /pushDeliveryStatus [post]
|
||||
func (c *JDOrderController) PushDeliveryStatus() {
|
||||
obj, callbackResponse := api.Jdapi.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody)
|
||||
if callbackResponse == nil {
|
||||
cc := controller.OrderController{}
|
||||
callbackResponse = cc.OrderDeliveryStatus(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &jd.WaybillController{}
|
||||
// cc2.OnWaybillMsg(obj)
|
||||
// })
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
@@ -152,5 +164,5 @@ func (c *JDOrderController) PushDeliveryStatus() {
|
||||
// @Failure 403 body is empty
|
||||
// @router /orderCommentPush [post]
|
||||
func (c *JDOrderController) OrderComment() {
|
||||
c.orderStatus()
|
||||
c.orderStatus(false)
|
||||
}
|
||||
|
||||
@@ -26,6 +26,11 @@ func (c *MTPSOrderController) Status() {
|
||||
if callbackResponse == nil {
|
||||
cc := &controller.OrderController{}
|
||||
callbackResponse = cc.OrderStatusChanged(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &mtps.WaybillController{}
|
||||
// cc2.OnWaybillMsg(obj)
|
||||
// })
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
@@ -41,6 +46,11 @@ func (c *MTPSOrderController) Except() {
|
||||
if callbackResponse == nil {
|
||||
cc := &controller.OrderController{}
|
||||
callbackResponse = cc.OrderException(obj)
|
||||
|
||||
// utils.CallFuncAsync(func() {
|
||||
// cc2 := &mtps.WaybillController{}
|
||||
// cc2.OnWaybillExcept(obj)
|
||||
// })
|
||||
}
|
||||
c.Data["json"] = callbackResponse
|
||||
c.ServeJSON()
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
Jdapi *jdapi.API
|
||||
JdAPI *jdapi.API
|
||||
ElmAPI *elmapi.API
|
||||
MtpsAPI *mtpsapi.API
|
||||
DadaAPI *dadaapi.API
|
||||
@@ -22,7 +22,7 @@ var (
|
||||
)
|
||||
|
||||
func init() {
|
||||
Jdapi = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret"))
|
||||
JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret"))
|
||||
initElm()
|
||||
MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret"))
|
||||
DadaAPI = dadaapi.New(beego.AppConfig.String("dadaAppKey"), beego.AppConfig.String("dadaAppSecret"), beego.AppConfig.String("dadaSourceID"), beego.AppConfig.String("dadaCallbackURL"), beego.AppConfig.DefaultBool("dadaIsProd", false))
|
||||
|
||||
@@ -2,6 +2,7 @@ package globals
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/legacy/models"
|
||||
"github.com/astaxie/beego"
|
||||
"github.com/astaxie/beego/logs"
|
||||
@@ -32,10 +33,10 @@ func initDB() {
|
||||
// set default database
|
||||
orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), 30)
|
||||
models.RegisterModels()
|
||||
// orm.RegisterModel(new(model.Order))
|
||||
// orm.RegisterModel(new(model.OrderSku))
|
||||
// orm.RegisterModel(new(model.Waybill))
|
||||
// orm.RegisterModel(new(model.OrderStatus))
|
||||
orm.RegisterModel(new(model.GoodsOrder))
|
||||
orm.RegisterModel(new(model.OrderSku))
|
||||
orm.RegisterModel(new(model.Waybill))
|
||||
orm.RegisterModel(new(model.OrderStatus))
|
||||
// create table
|
||||
orm.RunSyncdb("default", false, true)
|
||||
}
|
||||
|
||||
@@ -144,12 +144,12 @@ func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.Ca
|
||||
func OnNewOrder(msg *jdapi.CallbackOrderMsg, userMobile string, db orm.Ormer) {
|
||||
controllers.OnNewOrder(msg.BillID, controllers.JD_VENDORID, userMobile, 0, db, func(acceptIt bool) {
|
||||
globals.SugarLogger.Infof("OrderAcceptOperate billid:%v, acceptIt:%v", msg.BillID, acceptIt)
|
||||
api.Jdapi.OrderAcceptOperate(msg.BillID, acceptIt)
|
||||
api.JdAPI.OrderAcceptOperate(msg.BillID, acceptIt)
|
||||
})
|
||||
}
|
||||
|
||||
func newOrder(msg *jdapi.CallbackOrderMsg) error {
|
||||
result, err := api.Jdapi.LegacyQuerySingleOrder(msg.BillID)
|
||||
result, err := api.JdAPI.LegacyQuerySingleOrder(msg.BillID)
|
||||
userMobile := ""
|
||||
var db orm.Ormer
|
||||
if err == nil {
|
||||
|
||||
5
main.go
5
main.go
@@ -14,11 +14,10 @@ import (
|
||||
func main() {
|
||||
if beego.BConfig.RunMode == "prod" {
|
||||
controller.InitOrder()
|
||||
tasks.RefreshWeixinToken()
|
||||
tasks.RefreshElmToken()
|
||||
}
|
||||
|
||||
tasks.RefreshWeixinToken()
|
||||
tasks.RefreshElmToken()
|
||||
|
||||
if beego.BConfig.RunMode == "dev" {
|
||||
beego.BConfig.WebConfig.DirectoryIndex = true
|
||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
||||
|
||||
Reference in New Issue
Block a user