'定时刷新商店库存和营业时间(暂饿百和美团)'

This commit is contained in:
Rosy-zhudan
2019-07-29 10:58:19 +08:00
parent 07d72b538c
commit e7f618859d
4 changed files with 58 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
package misc package misc
import ( import (
"fmt" //"fmt"
"time" "time"
"encoding/json" "encoding/json"
"strconv" "strconv"
@@ -12,6 +12,8 @@ import (
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner" "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/business/partner/putils"
"git.rosy.net.cn/baseapi"
) )
const ( const (
@@ -41,11 +43,11 @@ func SetStoreOptime(startTime, endTime int16) {
if startTime == 0 || endTime == 0 { if startTime == 0 || endTime == 0 {
startOpStoreTime = startOpStoreTimeDefault startOpStoreTime = startOpStoreTimeDefault
endOpStoreTime = endOpStoreTimeDefault endOpStoreTime = endOpStoreTimeDefault
fmt.Println("The store time can't be 0") baseapi.SugarLogger.Debugf("The store time can't be 0")
} else { } else {
startOpStoreTime = startTime startOpStoreTime = startTime
endOpStoreTime = endTime endOpStoreTime = endTime
fmt.Println("SetStoreOptime:", startTime, endTime) baseapi.SugarLogger.Debugf("SetStoreOptime:%d do:%d", startTime, endTime)
} }
} }
@@ -88,7 +90,7 @@ func StartOrEndOpStore(startOrEnd bool) {
storeInfo, err := cms.GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0) storeInfo, err := cms.GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0)
if err != nil { if err != nil {
fmt.Println(err) baseapi.SugarLogger.Errorf("storeInfo error:%v", err)
} else { } else {
for _, storeListValue := range storeInfo.Stores { for _, storeListValue := range storeInfo.Stores {
storeID := storeListValue.ID storeID := storeListValue.ID
@@ -96,11 +98,11 @@ func StartOrEndOpStore(startOrEnd bool) {
for _, vendorListValue := range storeListValue.StoreMaps { for _, vendorListValue := range storeListValue.StoreMaps {
vendorID, _ := strconv.Atoi(vendorListValue["vendorID"].(json.Number).String()) vendorID, _ := strconv.Atoi(vendorListValue["vendorID"].(json.Number).String())
vendorStoreID := vendorListValue["vendorStoreID"].(string) vendorStoreID := vendorListValue["vendorStoreID"].(string)
fmt.Println(storeID, vendorID, vendorStoreID, "----", vendorListValue) baseapi.SugarLogger.Debugf("storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue)
storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler) storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
storeSkuList, err := storeSkuHandler.GetStoreSkusBareInfo(ctx, nil, storeID, vendorStoreID, nil) storeSkuList, err := storeSkuHandler.GetStoreSkusBareInfo(ctx, nil, storeID, vendorStoreID, nil)
if err != nil { if err != nil {
fmt.Println(err) baseapi.SugarLogger.Errorf("storeSkuList error:%v", err)
} else { } else {
if _, ok := vendorList[vendorID]; ok { if _, ok := vendorList[vendorID]; ok {
if len(storeSkuList) > 0 { if len(storeSkuList) > 0 {
@@ -108,21 +110,30 @@ func StartOrEndOpStore(startOrEnd bool) {
AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, false) AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, false)
} }
skuNameMap := GetSkuNameMap(vendorID, storeID, vendorStoreID) skuNameMap := GetSkuNameMap(vendorID, storeID, vendorStoreID)
for _, skuValue := range storeSkuList { isContinueWhenError := true
skuNameInfo := skuNameMap[skuValue.SkuID] _, err = putils.FreeBatchStoreSkuInfo(func(batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, err error) {
needCheckName := skuNameInfo != nil var filterBatchedStoreSkuList []*partner.StoreSkuInfo
skuName := "" for _, skuValue := range batchedStoreSkuList {
if skuNameInfo != nil { skuNameInfo := skuNameMap[skuValue.SkuID]
skuName = skuNameInfo.Name needCheckName := skuNameInfo != nil
} skuName := ""
if (needCheckName && skuName != specialSkuName) || !needCheckName { if skuNameInfo != nil {
skuValue.Stock = GetStockValue(startOrEnd) skuName = skuNameInfo.Name
var storeSkuList = []*partner.StoreSkuInfo{skuValue} }
if successList, err := storeSkuHandler.UpdateStoreSkusStock(ctx, storeID, vendorStoreID, storeSkuList); err == nil { if (needCheckName && skuName != specialSkuName) || !needCheckName {
fmt.Println(successList, err) skuValue.Stock = GetStockValue(startOrEnd)
filterBatchedStoreSkuList = append(filterBatchedStoreSkuList, skuValue)
} }
} }
}
var successList []*partner.StoreSkuInfo
if successList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeID, vendorStoreID, filterBatchedStoreSkuList); err == nil {
successList = batchedStoreSkuList
baseapi.SugarLogger.Debugf("successList:%v error:%v", successList, err)
}
return nil, err
}, ctx, nil, storeSkuList, storeSkuHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), isContinueWhenError)
if startOrEnd { if startOrEnd {
AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, true) AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, true)
} }

View File

@@ -10,6 +10,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego" "github.com/astaxie/beego"
"git.rosy.net.cn/jx-callback/business/jxstore/misc"
) )
type TempOpController struct { type TempOpController struct {
@@ -271,3 +272,20 @@ func (c *TempOpController) TestIt() {
return retVal, "", err return retVal, "", err
}) })
} }
// @Title 开启或结束所有平台商店的额外时间
// @Description 开启或结束所有平台商店的额外时间并且修改所有商品库存为0或99999(开启0 结束99999)
// @Param token header string true "认证token"
// @Param startOrEndStore query bool true "开启或结束"
// @Param startTime query int false "开始营业时间(格式930代表早上9点30分)"
// @Param endTime query int false "结束营业时间"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /TestStartOrEndOpStore [get]
func (c *TempOpController) TestStartOrEndOpStore() {
c.callTestStartOrEndOpStore(func(params *tTempopTestStartOrEndOpStoreParams) (retVal interface{}, errCode string, err error) {
misc.SetStoreOptime(int16(params.StartTime), int16(params.EndTime))
misc.StartOrEndOpStore(params.StartOrEndStore)
return retVal, "", err
})
}

View File

@@ -57,6 +57,7 @@ func Init() {
if globals.IsProductEnv() { if globals.IsProductEnv() {
ebai.CurPurchaseHandler.StartRefreshComment() ebai.CurPurchaseHandler.StartRefreshComment()
misc.Init() misc.Init()
misc.InitEx()
} }
} }

View File

@@ -1690,6 +1690,15 @@ func init() {
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
beego.ControllerComments{
Method: "TestStartOrEndOpStore",
Router: `/TestStartOrEndOpStore`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"], beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "UpdateAllWeiXinRemark", Method: "UpdateAllWeiXinRemark",