From d87483cff65edcd92c444c7a1192123c91affa2d Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 28 Jun 2019 09:47:14 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=B9=B3=E5=8F=B0=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E4=B8=B4=E6=97=B6=E4=BC=91=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E6=A6=82=E5=BF=B5=EF=BC=8CReadStore=E4=B8=8D=E4=BC=9A=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E4=B8=B4=E6=97=B6=E4=BC=91=E6=81=AF=20-=20=E5=BE=97?= =?UTF-8?q?=E5=88=B0=E5=B9=B3=E5=8F=B0=E9=97=A8=E5=BA=97=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E4=BC=9A=E5=88=B7=E6=96=B0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?storeMap=E4=B8=AD=E7=9A=84=E7=8A=B6=E6=80=81=EF=BC=88=E4=BD=86s?= =?UTF-8?q?tore=E7=9A=84=E7=8A=B6=E6=80=81=E6=9A=82=E6=97=B6=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=9B=B4=E6=96=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 32 +++++++++++++++++++++++++ business/partner/purchase/ebai/ebai.go | 2 +- business/partner/purchase/ebai/store.go | 10 ++++---- business/partner/purchase/jd/jd.go | 2 +- business/partner/purchase/mtwm/mtwm.go | 2 +- 5 files changed, 40 insertions(+), 8 deletions(-) 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