- CreateOrderFromOriginal
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"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/jxcontext"
|
||||||
@@ -15,8 +16,10 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/legacymodel2"
|
"git.rosy.net.cn/jx-callback/business/model/legacymodel2"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
"github.com/astaxie/beego/orm"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
@@ -569,3 +572,76 @@ func DeleteWrongSpu(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (
|
|||||||
}
|
}
|
||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GoodsOrderOriginalEx struct {
|
||||||
|
model.GoodsOrderOriginal
|
||||||
|
OrderStatus int
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateOrderFromOriginal(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
|
sqlBatchCount := 10000
|
||||||
|
rootTask := tasksch.NewSeqTask("CreateOrderFromOriginal", ctx.GetUserName(), func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT t1.*, t3.order_status
|
||||||
|
FROM goods_order_original t1
|
||||||
|
LEFT JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id
|
||||||
|
LEFT JOIN jxorder t3 ON t3.order_id = t1.vendor_order_id
|
||||||
|
WHERE t2.id IS NULL
|
||||||
|
LIMIT ?;
|
||||||
|
`
|
||||||
|
rawDB := orm.NewOrm()
|
||||||
|
db := dao.WrapDB(rawDB)
|
||||||
|
var orderList []*GoodsOrderOriginalEx
|
||||||
|
if err = dao.GetRows(db, &orderList, sql, sqlBatchCount); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if len(orderList) > 0 {
|
||||||
|
task := tasksch.NewParallelTask("TransferLegacyJdOrder2", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(1), ctx.GetUserName(), func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
orderOriginal := batchItemList[0].(*GoodsOrderOriginalEx)
|
||||||
|
if handler := partner.GetPurchasePlatformFromVendorID(orderOriginal.VendorID); handler != nil {
|
||||||
|
var detail map[string]interface{}
|
||||||
|
if err = utils.UnmarshalUseNumber([]byte(strings.Replace(strings.Replace(orderOriginal.OriginalData, "\n", "", -1), "\r", "", -1)), &detail); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
order := handler.Map2Order(detail)
|
||||||
|
if order.Status < model.OrderStatusEndBegin {
|
||||||
|
if orderOriginal.OrderStatus == 3 {
|
||||||
|
order.Status = model.OrderStatusFinished
|
||||||
|
} else if orderOriginal.OrderStatus == 7 {
|
||||||
|
order.Status = model.OrderStatusCanceled
|
||||||
|
} else {
|
||||||
|
order2, err2 := handler.GetOrder(order.VendorOrderID)
|
||||||
|
if err = err2; err == nil {
|
||||||
|
order.Status = order2.Status
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if true { // ignore error, err == nil {
|
||||||
|
if _, err = orderman.FixedOrderManager.SaveOrder(order, false, rawDB); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s", orderOriginal.VendorOrderID)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, orderList)
|
||||||
|
// rootTask.AddChild(task).Run()
|
||||||
|
task.Run()
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
} else {
|
||||||
|
rootTask.Cancel()
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, math.MaxInt32)
|
||||||
|
tasksch.ManageTask(rootTask).Run()
|
||||||
|
if !isAsync {
|
||||||
|
_, err = rootTask.GetResult(0)
|
||||||
|
} else {
|
||||||
|
hint = rootTask.ID
|
||||||
|
}
|
||||||
|
return hint, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -56,17 +56,17 @@ func (c *InitDataController) TransferLegacyJdOrder() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 将遗留ELM订单合并
|
// @Title 将goods_order中缺失的订单从goods_order_original中恢复
|
||||||
// @Description 将遗留ELM订单合并
|
// @Description 将goods_order中缺失的订单从goods_order_original中恢复
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param isAsync formData bool false "是否异步操作"
|
// @Param isAsync formData bool false "是否异步操作"
|
||||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /TransferLegacyElmOrder [post]
|
// @router /CreateOrderFromOriginal [post]
|
||||||
func (c *InitDataController) TransferLegacyElmOrder() {
|
func (c *InitDataController) CreateOrderFromOriginal() {
|
||||||
c.callTransferLegacyElmOrder(func(params *tInitdataTransferLegacyElmOrderParams) (retVal interface{}, errCode string, err error) {
|
c.callCreateOrderFromOriginal(func(params *tInitdataCreateOrderFromOriginalParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = tempop.TransferLegacyElmOrder(params.Ctx, params.IsAsync, params.IsContinueWhenError)
|
retVal, err = tempop.CreateOrderFromOriginal(params.Ctx, params.IsAsync, params.IsContinueWhenError)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,6 +199,14 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "CreateOrderFromOriginal",
|
||||||
|
Router: `/CreateOrderFromOriginal`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "DeleteWrongSpu",
|
Method: "DeleteWrongSpu",
|
||||||
@@ -239,14 +247,6 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
|
||||||
beego.ControllerComments{
|
|
||||||
Method: "TransferLegacyElmOrder",
|
|
||||||
Router: `/TransferLegacyElmOrder`,
|
|
||||||
AllowHTTPMethods: []string{"post"},
|
|
||||||
MethodParams: param.Make(),
|
|
||||||
Params: nil})
|
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "TransferLegacyJdOrder",
|
Method: "TransferLegacyJdOrder",
|
||||||
|
|||||||
Reference in New Issue
Block a user