- 去除无用代码,主要是promotion相关的
This commit is contained in:
@@ -73,8 +73,6 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) {
|
||||
"vendorName": model.VendorChineseNames,
|
||||
"orderStatus": model.OrderStatusName,
|
||||
"waybillStatus": model.WaybillStatusName,
|
||||
// "bankName": model.BankName,
|
||||
"promotionStatusName": model.PromotionStatusName,
|
||||
"orderTypeName": model.OrderTypeName,
|
||||
"taskStatusName": tasksch.TaskStatusName,
|
||||
"opRequestTypeName": model.RequestTypeName,
|
||||
|
||||
@@ -433,11 +433,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
||||
storeIDs, skuIDs = GetStoreAndSkuIDsFromInfo(skuNamesInfo)
|
||||
}
|
||||
beginTime := time.Now()
|
||||
if globals.EnableNewAct {
|
||||
err = updateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo)
|
||||
} else {
|
||||
// err = updateActPrice4StoreSkuName(db, storeIDs, skuIDs, skuNamesInfo)
|
||||
}
|
||||
err = updateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo)
|
||||
globals.SugarLogger.Debugf("GetStoresSkusNew updateActPrice4StoreSkuName:%v", time.Now().Sub(beginTime))
|
||||
if !isFocus {
|
||||
err = updateUnitPrice4StoreSkuNameNew(db, skuNamesInfo)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
||||
package promotion
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||
)
|
||||
|
||||
func init() {
|
||||
testinit.Init()
|
||||
}
|
||||
|
||||
func TestCreateLocalPromotionFromRemote(t *testing.T) {
|
||||
t.Log(createLocalPromotionFromRemote(14510904))
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
package promotion
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/KenmyZhang/aliyun-communicate"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"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/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
)
|
||||
|
||||
const (
|
||||
DefGoodsOrderDays = 60
|
||||
MaxBatchSize = 500
|
||||
)
|
||||
|
||||
type tMobileInfo struct {
|
||||
Mobile string
|
||||
}
|
||||
|
||||
func SendAdvertingByGoodsOrder(ctx *jxcontext.Context, advertising string, days int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debugf("SendAdvertingByGoodsOrder advertising:%s, days:%d, isAsync:%t, userName:%s", advertising, days, isAsync, userName)
|
||||
|
||||
if days == 0 {
|
||||
days = DefGoodsOrderDays
|
||||
}
|
||||
sqlParams := []interface{}{}
|
||||
sql1 := `
|
||||
SELECT IF(t1.consignee_mobile2 <> '', t1.consignee_mobile2, t1.consignee_mobile) mobile
|
||||
FROM goods_order t1
|
||||
LEFT JOIN black_client t2 ON IF(t1.consignee_mobile2 <> '', t1.consignee_mobile2, t1.consignee_mobile) = t2.mobile
|
||||
WHERE IF(t1.consignee_mobile2 <> '', t1.consignee_mobile2, t1.consignee_mobile) <> '' AND t2.id IS NULL AND LENGTH(IF(t1.consignee_mobile2 <> '', t1.consignee_mobile2, t1.consignee_mobile)) = 11 AND LEFT(IF(t1.consignee_mobile2 <> '', t1.consignee_mobile2, t1.consignee_mobile), 1) = '1'
|
||||
`
|
||||
sql2 := `
|
||||
SELECT buyer_mobile mobile
|
||||
FROM jxorder t1
|
||||
LEFT JOIN black_client t2 ON t1.buyer_mobile = t2.mobile
|
||||
WHERE buyer_mobile IS NOT NULL AND buyer_mobile <> '' AND t2.id IS NULL AND LENGTH(buyer_mobile) = 11 AND LEFT(buyer_mobile, 1) = '1'
|
||||
`
|
||||
if days > 0 {
|
||||
sql1 += " AND order_created_at > ?"
|
||||
sql2 += " AND order_start_time > ?"
|
||||
daysTime := time.Now().Add(-time.Duration(days) * 24 * time.Hour)
|
||||
sqlParams = append(sqlParams, daysTime, daysTime)
|
||||
}
|
||||
|
||||
var mobiles []*tMobileInfo
|
||||
db := dao.GetDB()
|
||||
if err = dao.GetRows(db, &mobiles, sql1+" UNION DISTINCT "+sql2, sqlParams...); err != nil {
|
||||
return "", err
|
||||
}
|
||||
index := 0
|
||||
mobileNumbers := make([]string, len(mobiles))
|
||||
for _, v := range mobiles {
|
||||
if v.Mobile[:1] == "1" && strings.Index(v.Mobile, ",") == -1 {
|
||||
mobileNumbers[index] = v.Mobile
|
||||
index++
|
||||
}
|
||||
}
|
||||
mobileNumbers = mobileNumbers[:index]
|
||||
mobileNumbers = append(mobileNumbers, "18180948107")
|
||||
|
||||
smsClient := aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/")
|
||||
task := tasksch.NewParallelTask("SendAdvertingByGoodsOrder", tasksch.NewParallelConfig().SetBatchSize(MaxBatchSize), ctx,
|
||||
func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
numbers := make([]string, len(batchItemList))
|
||||
for k, v := range batchItemList {
|
||||
numbers[k] = v.(string)
|
||||
}
|
||||
numberStr := strings.Join(numbers, ",")
|
||||
_, err = smsClient.Execute(globals.AliKey, globals.AliSecret, numberStr, "京西菜市", "SMS_109345355", string(utils.MustMarshal(map[string]interface{}{
|
||||
"code": "code",
|
||||
})))
|
||||
if err != nil {
|
||||
globals.SugarLogger.Infof("SendAdvertingByGoodsOrder numbers:%s failed with error:%v", numberStr, err)
|
||||
}
|
||||
return nil, err
|
||||
}, mobileNumbers)
|
||||
tasksch.HandleTask(task, nil, true).Run()
|
||||
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
}
|
||||
return task.ID, err
|
||||
}
|
||||
@@ -2,9 +2,7 @@ package tempop
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"regexp"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -13,7 +11,6 @@ import (
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||
"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/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
@@ -21,7 +18,6 @@ import (
|
||||
"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/legacymodel"
|
||||
"git.rosy.net.cn/jx-callback/business/model/legacymodel2"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
@@ -284,79 +280,79 @@ func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, step int, isAsyn
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func TransferLegacyJdOrder(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
sqlBatchCount := 1000
|
||||
rootTask := tasksch.NewSeqTask("TransferLegacyJdOrder", ctx,
|
||||
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM jdorder t1
|
||||
LEFT JOIN goods_order_original t2 ON t2.vendor_order_id = t1.vendor_order_id
|
||||
WHERE t2.id IS NULL AND LENGTH(t1.data) > 10 AND t1.cityname = 'all'
|
||||
ORDER BY t1.orderstatustime
|
||||
LIMIT ?
|
||||
`
|
||||
db := dao.GetDB()
|
||||
var jdOrderList []*legacymodel2.Jdorder
|
||||
if err = dao.GetRows(db, &jdOrderList, sql, sqlBatchCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(jdOrderList) > 0 {
|
||||
task := tasksch.NewParallelTask("TransferLegacyJdOrder2", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetBatchSize(40), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
var orderDetailList []*model.GoodsOrderOriginal
|
||||
for _, v := range batchItemList {
|
||||
jdOrder := v.(*legacymodel2.Jdorder)
|
||||
var detail map[string]interface{}
|
||||
if err = utils.UnmarshalUseNumber([]byte(strings.Replace(strings.Replace(jdOrder.Data, "\n", "", -1), "\r", "", -1)), &detail); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
resultList := detail["result"].(map[string]interface{})["resultList"].([]interface{})
|
||||
if len(resultList) > 0 {
|
||||
originalData := resultList[0].(map[string]interface{})
|
||||
orgCode := originalData["orgCode"].(string)
|
||||
if orgCode == "320406" {
|
||||
orderPurchaseTime := utils.Interface2String(originalData["orderPurchaseTime"])
|
||||
if orderPurchaseTime == "" {
|
||||
globals.SugarLogger.Debugf("TransferLegacyJdOrder abnormal order:%s", jdOrder.VendorOrderID)
|
||||
orderPurchaseTime = utils.Interface2String(originalData["orderStartTime"])
|
||||
}
|
||||
if orderPurchaseTime != "" {
|
||||
orderDetail := &model.GoodsOrderOriginal{
|
||||
VendorOrderID: jdOrder.VendorOrderID,
|
||||
VendorID: model.VendorIDJD,
|
||||
AccountNo: orgCode,
|
||||
OrderCreatedAt: utils.Str2Time(orderPurchaseTime),
|
||||
OriginalData: string(utils.MustMarshal(originalData)),
|
||||
}
|
||||
orderDetailList = append(orderDetailList, orderDetail)
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("TransferLegacyJdOrder abnormal2 order:%s", jdOrder.VendorOrderID)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(orderDetailList) > 0 {
|
||||
err = dao.CreateMultiEntities(db, orderDetailList)
|
||||
}
|
||||
return nil, err
|
||||
}, jdOrderList)
|
||||
// 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
|
||||
}
|
||||
// func TransferLegacyJdOrder(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
// sqlBatchCount := 1000
|
||||
// rootTask := tasksch.NewSeqTask("TransferLegacyJdOrder", ctx,
|
||||
// func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||
// sql := `
|
||||
// SELECT t1.*
|
||||
// FROM jdorder t1
|
||||
// LEFT JOIN goods_order_original t2 ON t2.vendor_order_id = t1.vendor_order_id
|
||||
// WHERE t2.id IS NULL AND LENGTH(t1.data) > 10 AND t1.cityname = 'all'
|
||||
// ORDER BY t1.orderstatustime
|
||||
// LIMIT ?
|
||||
// `
|
||||
// db := dao.GetDB()
|
||||
// var jdOrderList []*legacymodel2.Jdorder
|
||||
// if err = dao.GetRows(db, &jdOrderList, sql, sqlBatchCount); err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// if len(jdOrderList) > 0 {
|
||||
// task := tasksch.NewParallelTask("TransferLegacyJdOrder2", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetBatchSize(40), ctx,
|
||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
// var orderDetailList []*model.GoodsOrderOriginal
|
||||
// for _, v := range batchItemList {
|
||||
// jdOrder := v.(*legacymodel2.Jdorder)
|
||||
// var detail map[string]interface{}
|
||||
// if err = utils.UnmarshalUseNumber([]byte(strings.Replace(strings.Replace(jdOrder.Data, "\n", "", -1), "\r", "", -1)), &detail); err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// resultList := detail["result"].(map[string]interface{})["resultList"].([]interface{})
|
||||
// if len(resultList) > 0 {
|
||||
// originalData := resultList[0].(map[string]interface{})
|
||||
// orgCode := originalData["orgCode"].(string)
|
||||
// if orgCode == "320406" {
|
||||
// orderPurchaseTime := utils.Interface2String(originalData["orderPurchaseTime"])
|
||||
// if orderPurchaseTime == "" {
|
||||
// globals.SugarLogger.Debugf("TransferLegacyJdOrder abnormal order:%s", jdOrder.VendorOrderID)
|
||||
// orderPurchaseTime = utils.Interface2String(originalData["orderStartTime"])
|
||||
// }
|
||||
// if orderPurchaseTime != "" {
|
||||
// orderDetail := &model.GoodsOrderOriginal{
|
||||
// VendorOrderID: jdOrder.VendorOrderID,
|
||||
// VendorID: model.VendorIDJD,
|
||||
// AccountNo: orgCode,
|
||||
// OrderCreatedAt: utils.Str2Time(orderPurchaseTime),
|
||||
// OriginalData: string(utils.MustMarshal(originalData)),
|
||||
// }
|
||||
// orderDetailList = append(orderDetailList, orderDetail)
|
||||
// } else {
|
||||
// globals.SugarLogger.Debugf("TransferLegacyJdOrder abnormal2 order:%s", jdOrder.VendorOrderID)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if len(orderDetailList) > 0 {
|
||||
// err = dao.CreateMultiEntities(db, orderDetailList)
|
||||
// }
|
||||
// return nil, err
|
||||
// }, jdOrderList)
|
||||
// // 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
|
||||
// }
|
||||
|
||||
func TransferLegacyElmOrder(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
// sqlBatchCount := 1000
|
||||
@@ -595,77 +591,77 @@ type GoodsOrderOriginalEx struct {
|
||||
OrderStatus int
|
||||
}
|
||||
|
||||
func CreateOrderFromOriginal(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
sqlBatchCount := 5000
|
||||
rootTask := tasksch.NewSeqTask("CreateOrderFromOriginal", ctx,
|
||||
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 ?;
|
||||
`
|
||||
db := dao.GetDB()
|
||||
var orderList []*GoodsOrderOriginalEx
|
||||
if err = dao.GetRows(db, &orderList, sql, sqlBatchCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(orderList) > 0 {
|
||||
task := tasksch.NewParallelTask("CreateOrderFromOriginal", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(1), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
orderOriginal := batchItemList[0].(*GoodsOrderOriginalEx)
|
||||
globals.SugarLogger.Debugf("CreateOrderFromOriginal processing orderID:%s", orderOriginal.VendorOrderID)
|
||||
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
|
||||
} else {
|
||||
err = nil // ignore get status error
|
||||
}
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
if _, err = orderman.FixedOrderManager.SaveOrder(order, false, dao.GetDB()); 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
|
||||
}
|
||||
// func CreateOrderFromOriginal(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
// sqlBatchCount := 5000
|
||||
// rootTask := tasksch.NewSeqTask("CreateOrderFromOriginal", ctx,
|
||||
// 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 ?;
|
||||
// `
|
||||
// db := dao.GetDB()
|
||||
// var orderList []*GoodsOrderOriginalEx
|
||||
// if err = dao.GetRows(db, &orderList, sql, sqlBatchCount); err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// if len(orderList) > 0 {
|
||||
// task := tasksch.NewParallelTask("CreateOrderFromOriginal", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(1), ctx,
|
||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
// orderOriginal := batchItemList[0].(*GoodsOrderOriginalEx)
|
||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal processing orderID:%s", orderOriginal.VendorOrderID)
|
||||
// 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
|
||||
// } else {
|
||||
// err = nil // ignore get status error
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if err == nil {
|
||||
// if _, err = orderman.FixedOrderManager.SaveOrder(order, false, dao.GetDB()); 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
|
||||
// }
|
||||
|
||||
func TransformJdSpu2Sku(ctx *jxcontext.Context, skuNameIDs []int, count int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
sql := `
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
)
|
||||
|
||||
type PromotionStoreSku struct {
|
||||
model.PromotionSku
|
||||
StoreID int `orm:"column(store_id)" json:"storeID"`
|
||||
}
|
||||
|
||||
func GenSkuPriceMapKey(storeID, skuID int) (key int64) {
|
||||
return int64(storeID)*1000000 + int64(skuID)
|
||||
}
|
||||
|
||||
func GetPromotionSkuPriceMap(db *DaoDB, vendorID int, storeIDs, skuIDs []int, fromTime, toTime time.Time) (skuPriceMap map[int64]*PromotionStoreSku, err error) {
|
||||
sql := `
|
||||
SELECT t2.store_id, t3.*
|
||||
FROM promotion t1
|
||||
JOIN promotion_store t2 ON t2.promotion_id = t1.id
|
||||
JOIN promotion_sku t3 ON t3.promotion_id = t1.id
|
||||
WHERE t1.deleted_at = ? AND t1.vendor_id = ? AND NOT (t1.begin_at > ? OR t1.end_at < ?) AND (t1.status = ? OR t1.status = ?)`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
vendorID,
|
||||
toTime,
|
||||
fromTime,
|
||||
model.PromotionStatusRemoteCreated,
|
||||
}
|
||||
if vendorID == model.VendorIDJX {
|
||||
sqlParams = append(sqlParams, model.PromotionStatusLocalCreated)
|
||||
} else {
|
||||
sqlParams = append(sqlParams, model.PromotionStatusRemoteCreated)
|
||||
}
|
||||
if len(storeIDs) > 0 {
|
||||
sql += " AND t2.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||
sqlParams = append(sqlParams, storeIDs)
|
||||
}
|
||||
if len(skuIDs) > 0 {
|
||||
sql += " AND t3.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
}
|
||||
sql += " ORDER BY t2.store_id, t3.sku_id, t3.price"
|
||||
var skuPriceList []*PromotionStoreSku
|
||||
if err = GetRows(db, &skuPriceList, sql, sqlParams...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
skuPriceMap = make(map[int64]*PromotionStoreSku)
|
||||
for _, v := range skuPriceList {
|
||||
index := GenSkuPriceMapKey(v.StoreID, v.SkuID)
|
||||
if true /*skuPriceMap[index] == nil || v.EarningPrice < skuPriceMap[index].EarningPrice*/ {
|
||||
skuPriceMap[index] = v
|
||||
}
|
||||
}
|
||||
return skuPriceMap, err
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package legacymodel2
|
||||
|
||||
type Jdorder struct {
|
||||
Id int `orm:"column(id);auto"`
|
||||
Code string `orm:"column(code);size(2);null"`
|
||||
Msg string `orm:"column(msg);size(100);null"`
|
||||
Data string `orm:"column(data);null"`
|
||||
Success int8 `orm:"column(success);null"`
|
||||
Jdorderid int64 `orm:"column(jdorderid);null;unique"`
|
||||
VendorOrderID string `orm:"column(vendor_order_id);size(48);unique" json:"vendorOrderID"`
|
||||
Cityname string `orm:"column(cityname);size(20);null"`
|
||||
Orderstatus int `orm:"column(orderstatus);null"`
|
||||
Orderstatustime string `orm:"column(orderstatustime);size(50);null;index"`
|
||||
}
|
||||
|
||||
func (t *Jdorder) TableName() string {
|
||||
return "jdorder"
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
PromotionStatusLocalCreated = 0 // 本地成功创建,
|
||||
PromotionStatusRemoteFailed = 1 // 远程创建失败,
|
||||
PromotionStatusRemoteCreated = 2 // 远程成功创建,
|
||||
PromotionStatusCanceled = 3 // 被显示取消
|
||||
PromotionStatusEnded = 4 // 已经超过活动时间,且被显示置为结束
|
||||
)
|
||||
|
||||
const (
|
||||
PromotionCreateTypeByJX = 0
|
||||
PromotionCreateTypeByVendor = 1
|
||||
)
|
||||
|
||||
var (
|
||||
PromotionStatusName = map[int]string{
|
||||
PromotionStatusLocalCreated: "未确认",
|
||||
PromotionStatusRemoteFailed: "失败",
|
||||
PromotionStatusRemoteCreated: "正常",
|
||||
PromotionStatusCanceled: "取消",
|
||||
PromotionStatusEnded: "结束",
|
||||
}
|
||||
)
|
||||
|
||||
type Promotion struct {
|
||||
ModelIDCULD
|
||||
|
||||
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
|
||||
Name string `orm:"size(64)" json:"name"`
|
||||
Advertising string `orm:"size(255)" json:"advertising"`
|
||||
Type int `json:"type"`
|
||||
Status int `json:"status"`
|
||||
LimitDevice int8 `json:"limitDevice"`
|
||||
LimitPin int8 `json:"limitPin"`
|
||||
LimitDaily int8 `json:"limitDaily"`
|
||||
LimitCount int `json:"limitCount"`
|
||||
Source string `orm:"size(255)" json:"source"`
|
||||
CreateType int8 `json:"createType"`
|
||||
VendorPromotionID string `orm:"size(64);column(vendor_promotion_id);index" json:"vendorPromotionID"`
|
||||
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"`
|
||||
EndAt time.Time `orm:"type(datetime);index" json:"endAt"`
|
||||
Remark string `orm:"type(text)" json:"-"`
|
||||
}
|
||||
|
||||
func (*Promotion) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"Name", "VendorID", "Type", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
type PromotionStore struct {
|
||||
ModelIDCULD
|
||||
|
||||
PromotionID int `orm:"column(promotion_id)" json:"promotionID"`
|
||||
StoreID int `orm:"column(store_id)" json:"storeID"`
|
||||
}
|
||||
|
||||
func (*PromotionStore) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"PromotionID", "StoreID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
type PromotionSku struct {
|
||||
ModelIDCULD
|
||||
|
||||
PromotionID int `orm:"column(promotion_id)" json:"promotionID"`
|
||||
SkuID int `orm:"column(sku_id)" json:"skuID"`
|
||||
PriceType int `json:"priceType"`
|
||||
Price int `json:"price"` // 分,活动价,这个不是单价
|
||||
LimitSkuCount int `json:"limitSkuCount"`
|
||||
IsLock int8 `json:"isLock"` // 是否锁定门店商品信息
|
||||
|
||||
EarningPrice int `json:"earningPrice"` // 活动商品设置,结算给门店老板的钱
|
||||
}
|
||||
|
||||
func (*PromotionSku) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"PromotionID", "SkuID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user