diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 5055de6f5..b768ee17d 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1215,6 +1215,36 @@ func getCurrentSnapshotAt(now time.Time) (snapshotAt time.Time) { return jxutils.GetLastTimeFromList(now, WatchVendorStoreTimeList) } +func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.VendorStoreSnapshot) (err error) { + storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll) + if err != nil { + return err + } + snapshotMap := make(map[int64]*model.VendorStoreSnapshot) + for _, v := range curSnapshotList { + snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)] = v + } + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() + for _, v := range storeMapList { + if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil && v.Status != snapshot.Status { + v.Status = snapshot.Status + if _, err = dao.UpdateEntity(db, v, model.FieldStatus); err != nil { + return err + } + } + } + dao.Commit(db) + return err +} + func SaveStoresVendorSnapshot(db *dao.DaoDB, snapshotAt time.Time, curSnapshotList []*model.VendorStoreSnapshot) (err error) { dao.Begin(db) defer func() { @@ -1369,6 +1399,8 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs curSnapshotList, err = GetStoresVendorSnapshot(ctx, task, vendorIDs, storeIDs) if len(curSnapshotList) == 0 { task.Cancel() + } else { + updateVendorStoreStatusBySnapshot(db, curSnapshotList) } case 1: err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList) diff --git a/business/partner/purchase/ebai/ebai.go b/business/partner/purchase/ebai/ebai.go index 4990e962c..6dabb5db1 100644 --- a/business/partner/purchase/ebai/ebai.go +++ b/business/partner/purchase/ebai/ebai.go @@ -27,7 +27,7 @@ func init() { func EbaiBusStatus2JxStatus(ebaiStatus int) int { if ebaiStatus == ebaiapi.ShopBusStatusHaveRest || ebaiStatus == ebaiapi.ShopBusStatusSuspended { - return model.StoreStatusHaveRest + return model.StoreStatusClosed } return model.StoreStatusOpened } diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index d00406139..c3d8c9171 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -215,11 +215,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } func isStoreStatusSame(status1, status2 int) bool { - if status1 == model.StoreStatusClosed { - status1 = model.StoreStatusHaveRest + if status1 == model.StoreStatusHaveRest { + status1 = model.StoreStatusClosed } - if status2 == model.StoreStatusClosed { - status2 = model.StoreStatusHaveRest + if status2 == model.StoreStatusHaveRest { + status2 = model.StoreStatusClosed } return status1 == status2 } @@ -425,7 +425,7 @@ func (c *PurchaseHandler) onShopMsgPush(msg *ebaiapi.CallbackMsg) (response *eba if int(utils.ForceInterface2Int64(msg.Body["business_ele"])) == 1 { storeStatus = model.StoreStatusOpened } else { - storeStatus = model.StoreStatusHaveRest + storeStatus = model.StoreStatusClosed } } if err == nil { diff --git a/business/partner/purchase/jd/jd.go b/business/partner/purchase/jd/jd.go index be462ff12..72a16035d 100644 --- a/business/partner/purchase/jd/jd.go +++ b/business/partner/purchase/jd/jd.go @@ -42,7 +42,7 @@ func JdStoreStatus2JxStatus(yn, closeStatus interface{}) int { if yn2 == 1 { return model.StoreStatusDisabled } else if closeStatus2 == 1 { - return model.StoreStatusHaveRest + return model.StoreStatusClosed } return model.StoreStatusOpened } diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index 14a80b4d7..dacf6c7a4 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -129,7 +129,7 @@ func bizStatusMtwm2JX(openLevel, online int) int { return model.StoreStatusDisabled } else { if openLevel == mtwmapi.PoiOpenLevelHaveRest { - return model.StoreStatusHaveRest + return model.StoreStatusClosed } } return model.StoreStatusOpened