60 lines
2.1 KiB
Go
60 lines
2.1 KiB
Go
package cms
|
|
|
|
import (
|
|
"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"
|
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
|
"git.rosy.net.cn/jx-callback/business/partner"
|
|
)
|
|
|
|
// 如果京西门为打开,打开状态为非营业的平台门店
|
|
func OpenRemoteStoreByJxStatus(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
db := dao.GetDB()
|
|
status := model.StoreStatusAll
|
|
if !isForce {
|
|
status = model.StoreStatusClosed
|
|
}
|
|
storeMapList, err := dao.GetStoresMapList(db, vendorIDs, storeIDs, nil, status, model.StoreIsSyncYes, "")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
vendorIDMap := make(map[int]int)
|
|
if len(vendorIDs) == 0 {
|
|
for k := range partner.PurchasePlatformHandlers {
|
|
vendorIDMap[k] = 1
|
|
}
|
|
} else {
|
|
for _, v := range vendorIDs {
|
|
vendorIDMap[v] = 1
|
|
}
|
|
}
|
|
task := tasksch.NewParallelTask("OpenRemoteStoreByJxStatus", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
storeMap := batchItemList[0].(*model.StoreMap)
|
|
if handler, _ := partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.IStoreHandler); handler != nil {
|
|
storeDetail, err := dao.GetStoreDetail(db, storeMap.StoreID, storeMap.VendorID)
|
|
if err == nil && storeDetail.Status == model.StoreStatusOpened {
|
|
if err = handler.UpdateStoreStatus(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, model.StoreStatusOpened); err == nil {
|
|
storeMap.Status = model.StoreStatusOpened
|
|
dao.UpdateEntity(db, storeMap, model.FieldStatus)
|
|
retVal = []int{1}
|
|
}
|
|
}
|
|
}
|
|
return retVal, err
|
|
}, storeMapList)
|
|
tasksch.HandleTask(task, nil, true).Run()
|
|
|
|
if isAsync {
|
|
hint = task.GetID()
|
|
} else {
|
|
resultList, err2 := task.GetResult(0)
|
|
if err = err2; err == nil {
|
|
hint = utils.Int2Str(len(resultList))
|
|
}
|
|
}
|
|
return hint, err
|
|
}
|