- 平台门店状态报警对于同一京西门店,不同平台状态不一致也会报警
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user