- 调整dao.GetVendorStoreSnapshot的实现

- updateVendorStoreStatusBySnapshot中更新本地平台门店信息
This commit is contained in:
gazebo
2019-07-30 09:27:14 +08:00
parent 5b10960232
commit 3c7ddddcba
3 changed files with 15 additions and 11 deletions

View File

@@ -1391,10 +1391,12 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V
} }
}() }()
for _, v := range storeMapList { 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.Status = snapshot.Status
v.DeliveryType = snapshot.DeliveryType 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 return err
} }
} }
@@ -1649,6 +1651,7 @@ func sendStoreStatusInfo2Mobile(mobile, title, txtAlarm string) {
func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync bool) (err error) { func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync bool) (err error) {
curSnapshotAt := getCurrentSnapshotAt(time.Now()) curSnapshotAt := getCurrentSnapshotAt(time.Now())
prevSnapshotAt := getCurrentSnapshotAt(curSnapshotAt.Add(-1 * time.Second))
db := dao.GetDB() db := dao.GetDB()
var curSnapshotList, prevSnapshotList []*model.VendorStoreSnapshot var curSnapshotList, prevSnapshotList []*model.VendorStoreSnapshot
task := tasksch.NewSeqTask("SaveAndSendAlarmVendorSnapshot", ctx, task := tasksch.NewSeqTask("SaveAndSendAlarmVendorSnapshot", ctx,
@@ -1664,7 +1667,7 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs
case 1: case 1:
err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList) err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList)
case 2: case 2:
prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, curSnapshotAt) prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, prevSnapshotAt)
case 3: case 3:
err = SendAlarmVendorSnapshot(ctx, task, prevSnapshotList, curSnapshotList) err = SendAlarmVendorSnapshot(ctx, task, prevSnapshotList, curSnapshotList)
} }

View File

@@ -27,3 +27,9 @@ func TestSendAlarmVendorSnapshot(t *testing.T) {
t.Fatal(err) 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)
}

View File

@@ -285,17 +285,12 @@ func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) {
return err 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 := ` sql := `
SELECT * SELECT *
FROM vendor_store_snapshot t1 FROM vendor_store_snapshot t1
WHERE t1.snapshot_at = ( WHERE t1.snapshot_at = ?`
SELECT MAX(snapshot_at) snapshot_at err = GetRows(db, &snapshotList, sql, snapshotAt)
FROM vendor_store_snapshot
WHERE snapshot_at > ? AND snapshot_at <> ?
)
`
err = GetRows(db, &snapshotList, sql, time.Now().Add(-48*time.Hour), excludeSnapshotAt)
return snapshotList, err return snapshotList, err
} }