- handle store.Status.
This commit is contained in:
@@ -217,7 +217,7 @@ func UpdateStore(storeID int, payload map[string]interface{}, userName string) (
|
||||
if num, err = dao.UpdateEntityByKV(db, store, valid, nil); err == nil {
|
||||
globals.SugarLogger.Debug("2")
|
||||
dummy := &model.StoreMap{}
|
||||
_, err2 := dao.UpdateEntityByKV(db, dummy, utils.Params2Map("SyncStatus", 2), utils.Params2Map("StoreID", store.ID))
|
||||
_, err2 := dao.UpdateEntityByKV(db, dummy, utils.Params2Map("SyncStatus", model.SyncFlagModifiedMask), utils.Params2Map("StoreID", store.ID))
|
||||
if err = err2; err == nil {
|
||||
if err = dao.GetEntity(db, store); err == nil {
|
||||
err = SyncStore2Vendor(db, -1, store, false, userName)
|
||||
@@ -239,12 +239,17 @@ func CreateStore(store *model.Store, userName string) (id int, err error) {
|
||||
}
|
||||
|
||||
func SyncStore2Vendor(db *dao.DaoDB, vendorID int, store *model.Store, isForce bool, userName string) (err error) {
|
||||
if db == nil {
|
||||
db = dao.GetDB()
|
||||
}
|
||||
storeMaps, err := GetStoreVendorMaps(db, store.ID, -1)
|
||||
if err == nil {
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(store, false))
|
||||
copiedStore := *store
|
||||
for _, storeMap := range storeMaps {
|
||||
if (vendorID == -1 || storeMap.VendorID == vendorID) && (isForce || storeMap.SyncStatus != 0) {
|
||||
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(storeMap.VendorStoreID, store, userName); err == nil {
|
||||
copiedStore.Status = mergeStoreStatus(store.Status, storeMap.Status)
|
||||
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(storeMap.VendorStoreID, &copiedStore, userName); err == nil {
|
||||
storeMap.SyncStatus = 0
|
||||
dao.UpdateEntity(db, storeMap, "SyncStatus")
|
||||
}
|
||||
@@ -267,6 +272,7 @@ func AddStoreVendorMap(db *dao.DaoDB, storeMap *model.StoreMap, userName string)
|
||||
store, err := GetPurchaseHandler(storeMap.VendorID).ReadStore(storeMap.VendorStoreID)
|
||||
if err == nil {
|
||||
storeMap.DeliveryType = store.DeliveryType
|
||||
storeMap.Status = store.Status
|
||||
outStoreMap = storeMap
|
||||
if err = dao.CreateEntity(db, storeMap); err == nil {
|
||||
|
||||
@@ -281,17 +287,39 @@ func DeleteStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, userName string)
|
||||
}
|
||||
|
||||
func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
||||
if db == nil {
|
||||
db = dao.GetDB()
|
||||
}
|
||||
if vendorStoreID := utils.Interface2String(payload["vendorStoreID"]); vendorStoreID != "" {
|
||||
store, err2 := GetPurchaseHandler(vendorID).ReadStore(vendorStoreID)
|
||||
jdStore, err2 := GetPurchaseHandler(vendorID).ReadStore(vendorStoreID)
|
||||
if err = err2; err == nil {
|
||||
payload["deliveryType"] = store.DeliveryType
|
||||
payload["deliveryType"] = jdStore.DeliveryType
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
dummy := &model.StoreMap{}
|
||||
valid := jxutils.NormalMakeMapByStructObject(payload, dummy, userName)
|
||||
dummyStoreMap := &model.StoreMap{}
|
||||
valid := jxutils.NormalMakeMapByStructObject(payload, dummyStoreMap, userName)
|
||||
if valid["status"] != nil {
|
||||
valid["SyncStatus"] = model.SyncFlagModifiedMask
|
||||
}
|
||||
globals.SugarLogger.Debug(utils.Format4Output(valid, false))
|
||||
num, err = dao.UpdateEntityByKV(db, dummy, valid, utils.Params2Map("StoreID", storeID, "VendorID", vendorID))
|
||||
if num, err = dao.UpdateEntityByKV(db, dummyStoreMap, valid, utils.Params2Map("StoreID", storeID, "VendorID", vendorID)); err == nil {
|
||||
if valid["status"] != nil {
|
||||
store := &model.Store{}
|
||||
store.ID = storeID
|
||||
if err = dao.GetEntity(db, store); err == nil {
|
||||
err = SyncStore2Vendor(db, vendorID, store, true, userName)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
// 合并得到最终的门店状态
|
||||
func mergeStoreStatus(status int, vendorStatus int) int {
|
||||
if status < vendorStatus {
|
||||
return status
|
||||
}
|
||||
return vendorStatus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user