刷新订单历史结算价修改

This commit is contained in:
苏尹岚
2019-11-05 18:17:08 +08:00
parent 53a194a135
commit cf85ed0dd2
3 changed files with 44 additions and 11 deletions

View File

@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"math"
"strconv"
"strings"
"time"
@@ -611,32 +612,43 @@ func (c *OrderManager) UpdateOrderFields(order *model.GoodsOrder, fieldList []st
return err
}
func RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context, fromDate string, toDate string, isAsync, isContinueWhenError bool) (err error) {
func RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context, fromDate string, toDate string, isAsync, isContinueWhenError bool, vendorOrderId string) (err error) {
db := dao.GetDB()
fromDateParm := utils.Str2Time(fromDate)
toDateParm := utils.Str2Time(toDate)
//若时间间隔大于10天则不允许查询
if math.Ceil(toDateParm.Sub(fromDateParm).Hours()/24) > 10 {
return errors.New(fmt.Sprintf("查询间隔时间不允许大于10天: 时间范围:[%v] 至 [%v]", fromDate, toDate))
return errors.New(fmt.Sprintf("查询间隔时间不允许大于10天时间范围[%v] 至 [%v]", fromDate, toDate))
}
orderSkus, _ := dao.GetOrdersByCreateTime(db, fromDateParm, toDateParm, vendorOrderId)
if len(orderSkus) == 0 {
return errors.New(fmt.Sprintf("未查询到订单!时间范围:[%v] 至 [%v]", fromDate, toDate))
}
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{}, []int{}, []int{}, fromDateParm, toDateParm)
task := tasksch.NewSeqTask("按订单刷新历史订单结算价", ctx,
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
task1 := tasksch.NewParallelTask("更新order_sku", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
v := batchItemList[0].(*model.OrderSku)
storeID, _ := strconv.Atoi(utils.Int64ToStr(v.ID))
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{v.VendorID}, []int{storeID}, []int{v.SkuID}, fromDateParm, toDateParm)
if err != nil {
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku promotion info for error:%v", err)
return "", err
}
if actStoreSkuMap := jxutils.NewActStoreSkuMap(actStoreSkuList, false); actStoreSkuMap != nil {
v := batchItemList[0].(*model.ActStoreSku2)
num, err := dao.UpdateOrderSkuEariningPrice(db, v, fromDateParm, toDateParm)
if err != nil && !isContinueWhenError {
return "", err
} else {
globals.SugarLogger.Debug(fmt.Sprintf("更新order_sku , 行数:%d, storeid :%d ,skuid : %d, vendoreid : %d, earningPrice : %v, store_sub_id : %d", num, v.StoreID, v.SkuID, v.VendorID, v.EarningPrice, v.ActID))
for _, value := range actStoreSkuList {
num, err := dao.UpdateOrderSkuEariningPrice(db, value, fromDateParm, toDateParm)
if err != nil && !isContinueWhenError {
return "", err
} else {
globals.SugarLogger.Debug(fmt.Sprintf("更新order_sku , 行数:%d, storeid :%d ,skuid : %d, vendoreid : %d, earningPrice : %v, store_sub_id : %d", num, value.StoreID, value.SkuID, value.VendorID, value.EarningPrice, value.ActID))
}
}
}
return retVal, err
}, actStoreSkuList)
}, orderSkus)
tasksch.HandleTask(task1, task, true).Run()
case 1:
num2, err2 := dao.UpdateGoodOrderEaringPrice(db, fromDateParm, toDateParm)