- 平台门店状态报警对于同一京西门店,不同平台状态不一致也会报警

This commit is contained in:
gazebo
2019-07-02 15:15:16 +08:00
parent 235d4533de
commit 3d1290a87c

View File

@@ -1317,7 +1317,7 @@ func SaveStoresVendorSnapshot(db *dao.DaoDB, snapshotAt time.Time, curSnapshotLi
return err return err
} }
func isVendorStoresStatusNotOk(storeMapList []*model.StoreMap) bool { func isVendorStoresStatusNotOk(storeMapList []*model.VendorStoreSnapshot) bool {
statusMap := make(map[int]int) statusMap := make(map[int]int)
maxStatus := model.StoreStatusClosed maxStatus := model.StoreStatusClosed
for _, v := range storeMapList { for _, v := range storeMapList {
@@ -1335,20 +1335,19 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
} }
curSnapshotMap := make(map[string]*model.VendorStoreSnapshot) curSnapshotMap := make(map[string]*model.VendorStoreSnapshot)
curSnapshotGroupMap := make(map[int][]*model.VendorStoreSnapshot)
for _, v := range curSnapshotList { for _, v := range curSnapshotList {
curSnapshotMap[v.GenMapKey()] = v curSnapshotMap[v.GenMapKey()] = v
curSnapshotGroupMap[v.StoreID] = append(curSnapshotGroupMap[v.StoreID], v)
} }
alarmMap := make(map[int]map[int]*model.VendorStoreSnapshot)
storeDetailMap := make(map[int]*dao.StoreDetail) storeDetailMap := make(map[int]*dao.StoreDetail)
userMap := make(map[string]map[int]int) userMap := make(map[string]map[int]int)
db := dao.GetDB() db := dao.GetDB()
for _, v := range prevSnapshotList { alarmMapHandler := func(alarmMap map[int]map[int]*model.VendorStoreSnapshot, v *model.VendorStoreSnapshot) {
curSnapshot := curSnapshotMap[v.GenMapKey()] if alarmMap[v.StoreID] == nil {
if (curSnapshot == nil) || ((v.Status == model.StoreStatusOpened && curSnapshot.Status != model.StoreStatusOpened) || alarmMap[v.StoreID] = make(map[int]*model.VendorStoreSnapshot)
curSnapshot.CompareOperationTime(v) < 0) { if storeDetailMap[v.StoreID] == nil {
if alarmMap[v.StoreID] == nil {
alarmMap[v.StoreID] = make(map[int]*model.VendorStoreSnapshot)
storeDetail, _ := dao.GetStoreDetail(db, v.StoreID, v.VendorID) storeDetail, _ := dao.GetStoreDetail(db, v.StoreID, v.VendorID)
if storeDetail != nil { if storeDetail != nil {
storeDetailMap[v.StoreID] = storeDetail storeDetailMap[v.StoreID] = storeDetail
@@ -1362,9 +1361,27 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
} }
} }
} }
alarmMap[v.StoreID][v.VendorID] = v }
alarmMap[v.StoreID][v.VendorID] = v
}
alarmMap := make(map[int]map[int]*model.VendorStoreSnapshot)
for _, v := range prevSnapshotList {
curSnapshot := curSnapshotMap[v.GenMapKey()]
if (curSnapshot == nil) || ((v.Status == model.StoreStatusOpened && curSnapshot.Status != model.StoreStatusOpened) ||
curSnapshot.CompareOperationTime(v) < 0) {
alarmMapHandler(alarmMap, v)
} }
} }
alarmMap4StatusNotSame := make(map[int]map[int]*model.VendorStoreSnapshot)
for _, list := range curSnapshotGroupMap {
if isVendorStoresStatusNotOk(list) {
for _, v := range list {
alarmMapHandler(alarmMap4StatusNotSame, v)
}
}
}
var mobileList []string var mobileList []string
for mobile := range userMap { for mobile := range userMap {
if mobile != "" && !shouldSkipMobile4SendStoreStatusInfo(mobile) { if mobile != "" && !shouldSkipMobile4SendStoreStatusInfo(mobile) {
@@ -1381,7 +1398,8 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
captionList := []string{"京西门店ID", "门店名", "城市"} captionList := []string{"京西门店ID", "门店名", "城市"}
isFirstRow := true isFirstRow := true
for storeID := range userMap[mobile] { for storeID := range userMap[mobile] {
prevSnapshotMap := alarmMap[storeID] prevAlarmMap := alarmMap[storeID]
curAlarmMap := alarmMap4StatusNotSame[storeID]
data := map[string]interface{}{ data := map[string]interface{}{
"京西门店ID": storeID, "京西门店ID": storeID,
"门店名": storeDetailMap[storeID].Store.Name, "门店名": storeDetailMap[storeID].Store.Name,
@@ -1393,21 +1411,34 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
model.VendorChineseNames[vendorID]+"之前状态", model.VendorChineseNames[vendorID]+"当前状态", model.VendorChineseNames[vendorID]+"之前状态", model.VendorChineseNames[vendorID]+"当前状态",
model.VendorChineseNames[vendorID]+"之前营业时间", model.VendorChineseNames[vendorID]+"当前营业时间") model.VendorChineseNames[vendorID]+"之前营业时间", model.VendorChineseNames[vendorID]+"当前营业时间")
} }
data[model.VendorChineseNames[vendorID]+"当前状态"] = "" if prevAlarmMap != nil {
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = "" data[model.VendorChineseNames[vendorID]+"当前状态"] = ""
prevSnapshot := prevSnapshotMap[vendorID] data[model.VendorChineseNames[vendorID]+"当前营业时间"] = ""
if prevSnapshot != nil { if prevSnapshot := prevAlarmMap[vendorID]; prevSnapshot != nil {
data[model.VendorChineseNames[vendorID]+"ID"] = prevSnapshot.VendorStoreID data[model.VendorChineseNames[vendorID]+"ID"] = prevSnapshot.VendorStoreID
data[model.VendorChineseNames[vendorID]+"之前状态"] = model.StoreStatusName[prevSnapshot.Status] data[model.VendorChineseNames[vendorID]+"之前状态"] = model.StoreStatusName[prevSnapshot.Status]
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = jxutils.OperationTimeStr4VendorStore(prevSnapshot) data[model.VendorChineseNames[vendorID]+"之前营业时间"] = jxutils.OperationTimeStr4VendorStore(prevSnapshot)
if snapshot := curSnapshotMap[prevSnapshot.GenMapKey()]; snapshot != nil { if snapshot := curSnapshotMap[prevSnapshot.GenMapKey()]; snapshot != nil {
data[model.VendorChineseNames[vendorID]+"当前状态"] = model.StoreStatusName[snapshot.Status] data[model.VendorChineseNames[vendorID]+"当前状态"] = model.StoreStatusName[snapshot.Status]
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = jxutils.OperationTimeStr4VendorStore(snapshot) data[model.VendorChineseNames[vendorID]+"当前营业时间"] = jxutils.OperationTimeStr4VendorStore(snapshot)
}
} else {
data[model.VendorChineseNames[vendorID]+"ID"] = ""
data[model.VendorChineseNames[vendorID]+"之前状态"] = ""
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = ""
} }
} else { } else if curAlarmMap != nil {
data[model.VendorChineseNames[vendorID]+"ID"] = ""
data[model.VendorChineseNames[vendorID]+"之前状态"] = "" data[model.VendorChineseNames[vendorID]+"之前状态"] = ""
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = "" data[model.VendorChineseNames[vendorID]+"之前营业时间"] = ""
if curSnapshot := curAlarmMap[vendorID]; curSnapshot != nil {
data[model.VendorChineseNames[vendorID]+"ID"] = curSnapshot.VendorStoreID
data[model.VendorChineseNames[vendorID]+"当前状态"] = model.StoreStatusName[curSnapshot.Status]
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = jxutils.OperationTimeStr4VendorStore(curSnapshot)
} else {
data[model.VendorChineseNames[vendorID]+"ID"] = ""
data[model.VendorChineseNames[vendorID]+"当前状态"] = ""
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = ""
}
} }
} }
dataList = append(dataList, data) dataList = append(dataList, data)