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

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
}
func isVendorStoresStatusNotOk(storeMapList []*model.StoreMap) bool {
func isVendorStoresStatusNotOk(storeMapList []*model.VendorStoreSnapshot) bool {
statusMap := make(map[int]int)
maxStatus := model.StoreStatusClosed
for _, v := range storeMapList {
@@ -1335,20 +1335,19 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
}
curSnapshotMap := make(map[string]*model.VendorStoreSnapshot)
curSnapshotGroupMap := make(map[int][]*model.VendorStoreSnapshot)
for _, v := range curSnapshotList {
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)
userMap := make(map[string]map[int]int)
db := dao.GetDB()
for _, v := range prevSnapshotList {
curSnapshot := curSnapshotMap[v.GenMapKey()]
if (curSnapshot == nil) || ((v.Status == model.StoreStatusOpened && curSnapshot.Status != model.StoreStatusOpened) ||
curSnapshot.CompareOperationTime(v) < 0) {
if alarmMap[v.StoreID] == nil {
alarmMap[v.StoreID] = make(map[int]*model.VendorStoreSnapshot)
alarmMapHandler := func(alarmMap map[int]map[int]*model.VendorStoreSnapshot, v *model.VendorStoreSnapshot) {
if alarmMap[v.StoreID] == nil {
alarmMap[v.StoreID] = make(map[int]*model.VendorStoreSnapshot)
if storeDetailMap[v.StoreID] == nil {
storeDetail, _ := dao.GetStoreDetail(db, v.StoreID, v.VendorID)
if storeDetail != nil {
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
for mobile := range userMap {
if mobile != "" && !shouldSkipMobile4SendStoreStatusInfo(mobile) {
@@ -1381,7 +1398,8 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p
captionList := []string{"京西门店ID", "门店名", "城市"}
isFirstRow := true
for storeID := range userMap[mobile] {
prevSnapshotMap := alarmMap[storeID]
prevAlarmMap := alarmMap[storeID]
curAlarmMap := alarmMap4StatusNotSame[storeID]
data := map[string]interface{}{
"京西门店ID": storeID,
"门店名": 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]+"当前营业时间")
}
data[model.VendorChineseNames[vendorID]+"当前状态"] = ""
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = ""
prevSnapshot := prevSnapshotMap[vendorID]
if prevSnapshot != nil {
data[model.VendorChineseNames[vendorID]+"ID"] = prevSnapshot.VendorStoreID
data[model.VendorChineseNames[vendorID]+"之前状态"] = model.StoreStatusName[prevSnapshot.Status]
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = jxutils.OperationTimeStr4VendorStore(prevSnapshot)
if snapshot := curSnapshotMap[prevSnapshot.GenMapKey()]; snapshot != nil {
data[model.VendorChineseNames[vendorID]+"当前状态"] = model.StoreStatusName[snapshot.Status]
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = jxutils.OperationTimeStr4VendorStore(snapshot)
if prevAlarmMap != nil {
data[model.VendorChineseNames[vendorID]+"当前状态"] = ""
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = ""
if prevSnapshot := prevAlarmMap[vendorID]; prevSnapshot != nil {
data[model.VendorChineseNames[vendorID]+"ID"] = prevSnapshot.VendorStoreID
data[model.VendorChineseNames[vendorID]+"之前状态"] = model.StoreStatusName[prevSnapshot.Status]
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = jxutils.OperationTimeStr4VendorStore(prevSnapshot)
if snapshot := curSnapshotMap[prevSnapshot.GenMapKey()]; snapshot != nil {
data[model.VendorChineseNames[vendorID]+"当前状态"] = model.StoreStatusName[snapshot.Status]
data[model.VendorChineseNames[vendorID]+"当前营业时间"] = jxutils.OperationTimeStr4VendorStore(snapshot)
}
} else {
data[model.VendorChineseNames[vendorID]+"ID"] = ""
data[model.VendorChineseNames[vendorID]+"之前状态"] = ""
data[model.VendorChineseNames[vendorID]+"之前营业时间"] = ""
}
} else {
data[model.VendorChineseNames[vendorID]+"ID"] = ""
} else if curAlarmMap != nil {
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)