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