- RefreshRealMobile for ebai

This commit is contained in:
gazebo
2019-02-15 17:53:22 +08:00
parent 7c8a3e7988
commit 9dabd345c9
14 changed files with 134 additions and 5 deletions

View File

@@ -12,9 +12,9 @@ func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse
jxutils.CallMsgHandler(func() {
switch msg.Cmd {
case ebaiapi.CmdOrderCreate, ebaiapi.CmdOrderStatus:
response = curPurchaseHandler.onOrderMsg(msg)
response = CurPurchaseHandler.onOrderMsg(msg)
case ebaiapi.CmdOrderDeliveryStatus:
response = curPurchaseHandler.onWaybillMsg(msg)
response = CurPurchaseHandler.onWaybillMsg(msg)
}
}, jxutils.ComposeUniversalOrderID(orderID, model.VendorIDEBAI))
return response

View File

@@ -7,7 +7,7 @@ import (
)
var (
curPurchaseHandler *PurchaseHandler
CurPurchaseHandler *PurchaseHandler
)
type PurchaseHandler struct {
@@ -15,8 +15,8 @@ type PurchaseHandler struct {
}
func init() {
curPurchaseHandler = new(PurchaseHandler)
partner.RegisterPurchasePlatform(curPurchaseHandler)
CurPurchaseHandler = new(PurchaseHandler)
partner.RegisterPurchasePlatform(CurPurchaseHandler)
}
func EbaiBusStatus2JxStatus(ebaiStatus int) int {

View File

@@ -10,6 +10,8 @@ import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
@@ -300,3 +302,43 @@ func getTimeFromTimestampStr(sendTime string) time.Time {
}
return utils.Timestamp2Time(timeStamp)
}
func (c *PurchaseHandler) RefreshRealMobile(ctx *jxcontext.Context, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) {
sql := `
SELECT *
FROM goods_order
WHERE vendor_id = ? AND consignee_mobile2 = '' AND order_created_at <= ?
`
sqlParams := []interface{}{
model.VendorIDEBAI,
time.Now().Add(-4 * time.Hour),
}
if !utils.IsTimeZero(fromTime) {
sql += " AND order_created_at >= ?"
sqlParams = append(sqlParams, fromTime)
}
if !utils.IsTimeZero(toTime) {
sql += " AND order_created_at <= ?"
sqlParams = append(sqlParams, toTime)
}
var orderList []*model.GoodsOrder
db := dao.GetDB()
if err = dao.GetRows(db, &orderList, sql, sqlParams...); err == nil && len(orderList) > 0 {
task := tasksch.NewParallelTask("ebai RefreshRealMobile", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
order := batchItemList[0].(*model.GoodsOrder)
mobile, err2 := api.EbaiAPI.GetRealMobile4Order(order.VendorOrderID)
if err = err2; err == nil && !jxutils.IsMobileFake(mobile) {
order.ConsigneeMobile2 = mobile
_, err = dao.UpdateEntity(db, order, "ConsigneeMobile2")
}
return nil, err
}, orderList)
ctx.SetTaskOrAddChild(task, nil)
tasksch.ManageTask(task).Run()
hint = task.ID
if !isAsync {
_, err = task.GetResult(0)
}
}
return hint, err
}