CaculateSkuEarningPrice中调用ConstrainPayPercentage

+RefreshOrdersPriceInfo
This commit is contained in:
gazebo
2020-01-03 15:56:02 +08:00
parent d7aa244528
commit e89af0849e
5 changed files with 83 additions and 1 deletions

View File

@@ -751,3 +751,55 @@ func RefreshOrdersWithoutJxStoreID(ctx *jxcontext.Context, fromDate, toDate stri
}
return hint, err
}
func RefreshOrdersPriceInfo(ctx *jxcontext.Context, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) {
if utils.IsTimeZero(fromTime) {
return "", fmt.Errorf("必须指定起始时间")
}
if utils.IsTimeZero(toTime) {
toTime = fromTime
}
db := dao.GetDB()
orderList, err := dao.QueryOrders(db, "", 0, nil, 0, fromTime, toTime)
if err == nil && len(orderList) > 0 {
task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
curOrder := batchItemList[0].(*model.GoodsOrder)
newOrder, err := FixedOrderManager.LoadOrder(curOrder.VendorOrderID, curOrder.VendorID)
if err == nil {
db := dao.GetDB()
if err = FixedOrderManager.updateOrderOtherInfo(newOrder, db); err == nil {
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if _, err = dao.UpdateEntity(db, newOrder); err != nil {
dao.Rollback(db)
return nil, err
}
for _, sku := range newOrder.Skus {
if _, err = dao.UpdateEntity(db, sku); err != nil {
dao.Rollback(db)
return nil, err
}
}
dao.Commit(db)
}
}
return retVal, err
}, orderList)
tasksch.HandleTask(task, nil, true).Run()
if isAsync {
hint = task.GetID()
} else {
_, err = task.GetResult(0)
hint = "1"
}
}
return hint, err
}

View File

@@ -487,6 +487,7 @@ func CaculateSkuEarningPrice(shopPrice, salePrice int64, storePayPercentage int)
if salePrice == 0 || shopPrice > 0 && shopPrice < earningPrice {
earningPrice = shopPrice
}
storePayPercentage = ConstrainPayPercentage(storePayPercentage)
if storePayPercentage <= 0 {
storePayPercentage = model.DefaultEarningPricePercentage
}

View File

@@ -105,7 +105,7 @@ func QueryOrders(db *DaoDB, vendorOrderID string, actID int, vendorIDs []int, st
sqlParams = append(sqlParams, storeID)
}
if !utils.IsTimeZero(fromDate) && !utils.IsTimeZero(toDate) {
sql += " AND a.order_created_at BETWEEN ? and ?"
sql += " AND a.order_created_at BETWEEN ? AND ?"
sqlParams = append(sqlParams, fromDate, toDate)
}
err = GetRows(db, &orderNewList, sql, sqlParams...)