From 3c7ddddcbac1d3fe1aace1f4b75d0e93a9046086 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 30 Jul 2019 09:27:14 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E8=B0=83=E6=95=B4dao.GetVendorStoreSnapsho?= =?UTF-8?q?t=E7=9A=84=E5=AE=9E=E7=8E=B0=20-=20updateVendorStoreStatusBySna?= =?UTF-8?q?pshot=E4=B8=AD=E6=9B=B4=E6=96=B0=E6=9C=AC=E5=9C=B0=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=97=A8=E5=BA=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 9 ++++++--- business/jxstore/cms/store_test.go | 6 ++++++ business/model/dao/store.go | 11 +++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 790c94e6a..1ce48d5da 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1391,10 +1391,12 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V } }() for _, v := range storeMapList { - if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil && v.Status != snapshot.Status { + if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil && + (v.Status != snapshot.Status || v.DeliveryType != snapshot.DeliveryType) { v.Status = snapshot.Status v.DeliveryType = snapshot.DeliveryType - if _, err = dao.UpdateEntity(db, v, model.FieldStatus, "DeliveryType"); err != nil { + v.LastOperator = model.AdminName + if _, err = dao.UpdateEntity(db, v, model.FieldLastOperator, model.FieldUpdatedAt, model.FieldStatus, "DeliveryType"); err != nil { return err } } @@ -1649,6 +1651,7 @@ func sendStoreStatusInfo2Mobile(mobile, title, txtAlarm string) { func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync bool) (err error) { curSnapshotAt := getCurrentSnapshotAt(time.Now()) + prevSnapshotAt := getCurrentSnapshotAt(curSnapshotAt.Add(-1 * time.Second)) db := dao.GetDB() var curSnapshotList, prevSnapshotList []*model.VendorStoreSnapshot task := tasksch.NewSeqTask("SaveAndSendAlarmVendorSnapshot", ctx, @@ -1664,7 +1667,7 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs case 1: err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList) case 2: - prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, curSnapshotAt) + prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, prevSnapshotAt) case 3: err = SendAlarmVendorSnapshot(ctx, task, prevSnapshotList, curSnapshotList) } diff --git a/business/jxstore/cms/store_test.go b/business/jxstore/cms/store_test.go index 89b9b51c3..3c66b1d25 100644 --- a/business/jxstore/cms/store_test.go +++ b/business/jxstore/cms/store_test.go @@ -27,3 +27,9 @@ func TestSendAlarmVendorSnapshot(t *testing.T) { t.Fatal(err) } } + +func TestUpdateVendorStoreStatusBySnapshot(t *testing.T) { + db := dao.GetDB() + curSnapshotList, _ := dao.GetVendorStoreSnapshot(db, utils.Str2Time("2019-07-30 08:00:00")) + updateVendorStoreStatusBySnapshot(db, curSnapshotList) +} diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 008e153bf..bb7b606da 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -285,17 +285,12 @@ func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) { return err } -func GetVendorStoreSnapshot(db *DaoDB, excludeSnapshotAt time.Time) (snapshotList []*model.VendorStoreSnapshot, err error) { +func GetVendorStoreSnapshot(db *DaoDB, snapshotAt time.Time) (snapshotList []*model.VendorStoreSnapshot, err error) { sql := ` SELECT * FROM vendor_store_snapshot t1 - WHERE t1.snapshot_at = ( - SELECT MAX(snapshot_at) snapshot_at - FROM vendor_store_snapshot - WHERE snapshot_at > ? AND snapshot_at <> ? - ) - ` - err = GetRows(db, &snapshotList, sql, time.Now().Add(-48*time.Hour), excludeSnapshotAt) + WHERE t1.snapshot_at = ?` + err = GetRows(db, &snapshotList, sql, snapshotAt) return snapshotList, err }