重构警告等级
This commit is contained in:
@@ -3,7 +3,6 @@ package misc
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"reflect"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi"
|
"git.rosy.net.cn/baseapi"
|
||||||
@@ -14,6 +13,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/refutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -36,11 +36,16 @@ const (
|
|||||||
ColorYellow = "yellow"
|
ColorYellow = "yellow"
|
||||||
ColorUnknown = "Unknown"
|
ColorUnknown = "Unknown"
|
||||||
|
|
||||||
|
AlertLevelExtraRed = 1
|
||||||
|
AlertLevelRed = 2
|
||||||
|
AlertLevelYellow = 3
|
||||||
|
|
||||||
OneDayName = "单日"
|
OneDayName = "单日"
|
||||||
OneWeekDayName = "七日"
|
OneWeekDayName = "七日"
|
||||||
OneMonthDayName = "三十日"
|
OneMonthDayName = "三十日"
|
||||||
YellowAlertInfo = "您的店铺京西菜市-%s,由于%s%s%s%d%%,可能会被系统下线,请及时补救。"
|
YellowAlertInfo = "您的店铺京西菜市-%s,由于%s%s%s%d%%,可能会被系统下线,请及时补救。"
|
||||||
RedAlertInfo = "您的店铺京西菜市-%s,由于%s%s%s%d%%,会被系统下线,需要马上补救。"
|
RedAlertInfo = "您的店铺京西菜市-%s,由于%s%s%s%d%%,会被系统下线,需要马上补救。"
|
||||||
|
ExtraRedAlertInfo = "您的店铺京西菜市-%s,由于%s%s%s%d%%,会被系统下线,需要马上补救。"
|
||||||
NoOrderAlertInfo = "您的店铺京西菜市-%s,由于近%s无订单,会被系统下线,需要马上补救。"
|
NoOrderAlertInfo = "您的店铺京西菜市-%s,由于近%s无订单,会被系统下线,需要马上补救。"
|
||||||
RiskOrderAlertInfo = "您的店铺京西菜市-%s,可能有虚假定单,定单号为:%s,可能会被罚款,请及时与运营联系!"
|
RiskOrderAlertInfo = "您的店铺京西菜市-%s,可能有虚假定单,定单号为:%s,可能会被罚款,请及时与运营联系!"
|
||||||
)
|
)
|
||||||
@@ -58,6 +63,12 @@ var (
|
|||||||
AlertTypeStandardPickUpTimeOrderDaDa: "10分钟取货完成率(达达)",
|
AlertTypeStandardPickUpTimeOrderDaDa: "10分钟取货完成率(达达)",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AlertTypeExtraNameMap = map[int]string{
|
||||||
|
AlertTypePickTimeOrderDaDa: "拣货超时订单(达达)",
|
||||||
|
AlertTypeBadCommentOrder: "差评订单",
|
||||||
|
AlertTypeAbsentGoodsOrder: "缺货订单",
|
||||||
|
}
|
||||||
|
|
||||||
storeAlertDataWrapper StoreAlertDataWrapper
|
storeAlertDataWrapper StoreAlertDataWrapper
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -73,6 +84,10 @@ func (s *StoreAlertDataWrapper) ClearData() {
|
|||||||
s.storeAlertList = nil
|
s.storeAlertList = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *StoreAlertDataWrapper) IsStatusField(valueName string) bool {
|
||||||
|
return valueName == model.FieldYellowStatus || valueName == model.FieldRedStatus || valueName == model.FieldExtraRedStatus
|
||||||
|
}
|
||||||
|
|
||||||
func (s *StoreAlertDataWrapper) SetData(storeID int, valueName string, value int) {
|
func (s *StoreAlertDataWrapper) SetData(storeID int, valueName string, value int) {
|
||||||
data := s.storeAlertList[storeID]
|
data := s.storeAlertList[storeID]
|
||||||
if data == nil {
|
if data == nil {
|
||||||
@@ -81,8 +96,13 @@ func (s *StoreAlertDataWrapper) SetData(storeID int, valueName string, value int
|
|||||||
data.AlertDate = utils.GetCurDate()
|
data.AlertDate = utils.GetCurDate()
|
||||||
s.storeAlertList[storeID] = data
|
s.storeAlertList[storeID] = data
|
||||||
}
|
}
|
||||||
valueInfo := reflect.ValueOf(data).Elem()
|
// valueInfo := reflect.ValueOf(data).Elem()
|
||||||
valueInfo.FieldByName(valueName).SetInt(int64(value))
|
// valueInfo.FieldByName(valueName).SetInt(int64(value))
|
||||||
|
if s.IsStatusField(valueName) {
|
||||||
|
srcFieldValue := refutil.GetObjFieldByName(data, valueName).(int)
|
||||||
|
value |= srcFieldValue
|
||||||
|
}
|
||||||
|
refutil.SetObjFieldByName(data, valueName, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s StoreAlertDataWrapper) InsertStoreAlertList() {
|
func (s StoreAlertDataWrapper) InsertStoreAlertList() {
|
||||||
@@ -112,18 +132,22 @@ func ConvertListToMapEx(listData []*model.StoreOrder) (mapData map[int][]string)
|
|||||||
return mapData
|
return mapData
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAlertInfo(dayNum int, isRedAlert bool, storeName string, alertType int, logicCondition string, ratio int) (info string) {
|
func GetAlertInfo(dayNum, alertLevel int, storeName string, alertType int, logicCondition string, value int) (info string) {
|
||||||
if dayNum == CheckStoreAlertOneDayNum {
|
if dayNum == CheckStoreAlertOneDayNum {
|
||||||
if isRedAlert {
|
if alertLevel == AlertLevelExtraRed {
|
||||||
info = fmt.Sprintf(RedAlertInfo, storeName, OneDayName, AlertTypeNameMap[alertType], logicCondition, ratio)
|
info = fmt.Sprintf(ExtraRedAlertInfo, storeName, OneDayName, AlertTypeExtraNameMap[alertType], logicCondition, value)
|
||||||
} else {
|
} else if alertLevel == AlertLevelRed {
|
||||||
info = fmt.Sprintf(YellowAlertInfo, storeName, OneDayName, AlertTypeNameMap[alertType], logicCondition, ratio)
|
info = fmt.Sprintf(RedAlertInfo, storeName, OneDayName, AlertTypeNameMap[alertType], logicCondition, value)
|
||||||
|
} else if alertLevel == AlertLevelYellow {
|
||||||
|
info = fmt.Sprintf(YellowAlertInfo, storeName, OneDayName, AlertTypeNameMap[alertType], logicCondition, value)
|
||||||
}
|
}
|
||||||
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
||||||
if isRedAlert {
|
if alertLevel == AlertLevelExtraRed {
|
||||||
info = fmt.Sprintf(RedAlertInfo, storeName, OneWeekDayName, AlertTypeNameMap[alertType], logicCondition, ratio)
|
info = fmt.Sprintf(ExtraRedAlertInfo, storeName, OneWeekDayName, AlertTypeExtraNameMap[alertType], logicCondition, value)
|
||||||
} else {
|
} else if alertLevel == AlertLevelRed {
|
||||||
info = fmt.Sprintf(YellowAlertInfo, storeName, OneWeekDayName, AlertTypeNameMap[alertType], logicCondition, ratio)
|
info = fmt.Sprintf(RedAlertInfo, storeName, OneWeekDayName, AlertTypeNameMap[alertType], logicCondition, value)
|
||||||
|
} else if alertLevel == AlertLevelYellow {
|
||||||
|
info = fmt.Sprintf(YellowAlertInfo, storeName, OneWeekDayName, AlertTypeNameMap[alertType], logicCondition, value)
|
||||||
}
|
}
|
||||||
} else if dayNum == CheckStoreAlertOneMonthDayNum {
|
} else if dayNum == CheckStoreAlertOneMonthDayNum {
|
||||||
info = fmt.Sprintf(NoOrderAlertInfo, storeName, OneMonthDayName)
|
info = fmt.Sprintf(NoOrderAlertInfo, storeName, OneMonthDayName)
|
||||||
@@ -132,7 +156,7 @@ func GetAlertInfo(dayNum int, isRedAlert bool, storeName string, alertType int,
|
|||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckAlert(alertType int, dayNum int, ratio int, count int) (isYellowAlert, isRedAlert bool, logicCondtion string, outRatio int) {
|
func CheckAlert(alertType int, dayNum int, ratio int, count int) (alertLevel int, logicCondtion string, outValue int) {
|
||||||
yellowRatio := -1
|
yellowRatio := -1
|
||||||
redRatio := -1
|
redRatio := -1
|
||||||
extraCount := -1
|
extraCount := -1
|
||||||
@@ -179,28 +203,30 @@ func CheckAlert(alertType int, dayNum int, ratio int, count int) (isYellowAlert,
|
|||||||
if conditionLessEqual {
|
if conditionLessEqual {
|
||||||
logicCondtion = "<="
|
logicCondtion = "<="
|
||||||
if extraCount != -1 && count >= extraCount {
|
if extraCount != -1 && count >= extraCount {
|
||||||
isRedAlert = true
|
alertLevel = AlertLevelExtraRed
|
||||||
|
outValue = extraCount
|
||||||
} else if redRatio != -1 && ratio <= redRatio {
|
} else if redRatio != -1 && ratio <= redRatio {
|
||||||
isRedAlert = true
|
alertLevel = AlertLevelRed
|
||||||
outRatio = redRatio
|
outValue = redRatio
|
||||||
} else if yellowRatio != -1 && ratio <= yellowRatio {
|
} else if yellowRatio != -1 && ratio <= yellowRatio {
|
||||||
isYellowAlert = true
|
alertLevel = AlertLevelYellow
|
||||||
outRatio = yellowRatio
|
outValue = yellowRatio
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logicCondtion = ">="
|
logicCondtion = ">="
|
||||||
if extraCount != -1 && count >= extraCount {
|
if extraCount != -1 && count >= extraCount {
|
||||||
isRedAlert = true
|
alertLevel = AlertLevelExtraRed
|
||||||
|
outValue = extraCount
|
||||||
} else if redRatio != -1 && ratio >= redRatio {
|
} else if redRatio != -1 && ratio >= redRatio {
|
||||||
isRedAlert = true
|
alertLevel = AlertLevelRed
|
||||||
outRatio = redRatio
|
outValue = redRatio
|
||||||
} else if yellowRatio != -1 && ratio >= yellowRatio {
|
} else if yellowRatio != -1 && ratio >= yellowRatio {
|
||||||
isYellowAlert = true
|
alertLevel = AlertLevelYellow
|
||||||
outRatio = yellowRatio
|
outValue = yellowRatio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return isYellowAlert, isRedAlert, logicCondtion, outRatio
|
return alertLevel, logicCondtion, outValue
|
||||||
}
|
}
|
||||||
|
|
||||||
func SendAlertInfo(storeID int, storeName, alertInfo string) {
|
func SendAlertInfo(storeID int, storeName, alertInfo string) {
|
||||||
@@ -210,47 +236,60 @@ func SendAlertInfo(storeID int, storeName, alertInfo string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetFieldNameByAlertType(alertType, dayNum int) (fieldName string) {
|
func GetFieldNameByAlertType(alertType, dayNum int) (fieldName string, fieldFlag int) {
|
||||||
switch alertType {
|
switch alertType {
|
||||||
case AlertTypePickTimeOrderDaDa:
|
case AlertTypePickTimeOrderDaDa:
|
||||||
if dayNum == CheckStoreAlertOneDayNum {
|
if dayNum == CheckStoreAlertOneDayNum {
|
||||||
fieldName = model.FieldPickTimeDaDa
|
fieldName = model.FieldPickTimeDaDa
|
||||||
|
fieldFlag = model.FlagPickTimeDaDa
|
||||||
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
||||||
fieldName = model.FieldPickTimeDaDaOneWeek
|
fieldName = model.FieldPickTimeDaDaOneWeek
|
||||||
|
fieldFlag = model.FlagPickTimeDaDaOneWeek
|
||||||
}
|
}
|
||||||
case AlertTypeBadCommentOrder:
|
case AlertTypeBadCommentOrder:
|
||||||
if dayNum == CheckStoreAlertOneDayNum {
|
if dayNum == CheckStoreAlertOneDayNum {
|
||||||
fieldName = model.FieldBadComment
|
fieldName = model.FieldBadComment
|
||||||
|
fieldFlag = model.FlagBadComment
|
||||||
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
||||||
fieldName = model.FieldBadCommentOneWeek
|
fieldName = model.FieldBadCommentOneWeek
|
||||||
|
fieldFlag = model.FlagBadCommentOneWeek
|
||||||
}
|
}
|
||||||
case AlertTypeAbsentGoodsOrder:
|
case AlertTypeAbsentGoodsOrder:
|
||||||
if dayNum == CheckStoreAlertOneDayNum {
|
if dayNum == CheckStoreAlertOneDayNum {
|
||||||
fieldName = model.FieldAbsentGoods
|
fieldName = model.FieldAbsentGoods
|
||||||
|
fieldFlag = model.FlagAbsentGoods
|
||||||
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
} else if dayNum == CheckStoreAlertOneWeekDayNum {
|
||||||
fieldName = model.FieldAbsentGoodsOneWeek
|
fieldName = model.FieldAbsentGoodsOneWeek
|
||||||
|
fieldFlag = model.FlagAbsentGoodsOneWeek
|
||||||
}
|
}
|
||||||
case AlertTypeStandardFinishTimeOrderSelfDelivery:
|
case AlertTypeStandardFinishTimeOrderSelfDelivery:
|
||||||
fieldName = model.FieldStandardFinishTimeSelfDelivery
|
fieldName = model.FieldStandardFinishTimeSelfDelivery
|
||||||
|
fieldFlag = model.FlagStandardFinishTimeSelfDelivery
|
||||||
case AlertTypeStandardPickUpTimeOrderDaDa:
|
case AlertTypeStandardPickUpTimeOrderDaDa:
|
||||||
fieldName = model.FieldStandardPickUpTimeDaDa
|
fieldName = model.FieldStandardPickUpTimeDaDa
|
||||||
|
fieldFlag = model.FlagStandardPickUpTimeDaDa
|
||||||
}
|
}
|
||||||
|
|
||||||
return fieldName
|
return fieldName, fieldFlag
|
||||||
}
|
}
|
||||||
|
|
||||||
func SendAlertInfoWrapper(storeID int, storeName string, dayNum, alertType, count, totalCount int) {
|
func SendAlertInfoWrapper(storeID int, storeName string, dayNum, alertType, count, totalCount int) {
|
||||||
if totalCount > 0 {
|
if totalCount > 0 {
|
||||||
ratio := int(math.Round(float64(count) * 100 / float64(totalCount)))
|
ratio := int(math.Round(float64(count) * 100 / float64(totalCount)))
|
||||||
yellowAlert, redAlert, logicCondtion, outRatio := CheckAlert(alertType, dayNum, ratio, count)
|
alertLevel, logicCondtion, outValue := CheckAlert(alertType, dayNum, ratio, count)
|
||||||
isAlert := false
|
if alertLevel != 0 {
|
||||||
isRedAlert := redAlert
|
alertInfo := GetAlertInfo(dayNum, alertLevel, storeName, alertType, logicCondtion, outValue)
|
||||||
isAlert = yellowAlert || redAlert
|
|
||||||
if isAlert {
|
|
||||||
alertInfo := GetAlertInfo(dayNum, isRedAlert, storeName, alertType, logicCondtion, outRatio)
|
|
||||||
SendAlertInfo(storeID, storeName, alertInfo)
|
SendAlertInfo(storeID, storeName, alertInfo)
|
||||||
fieldName := GetFieldNameByAlertType(alertType, dayNum)
|
fieldName, fieldFlag := GetFieldNameByAlertType(alertType, dayNum)
|
||||||
storeAlertDataWrapper.SetData(storeID, fieldName, ratio)
|
storeAlertDataWrapper.SetData(storeID, fieldName, ratio)
|
||||||
|
|
||||||
|
if alertLevel == AlertLevelExtraRed {
|
||||||
|
storeAlertDataWrapper.SetData(storeID, model.FieldExtraRedStatus, fieldFlag)
|
||||||
|
} else if alertLevel == AlertLevelRed {
|
||||||
|
storeAlertDataWrapper.SetData(storeID, model.FieldRedStatus, fieldFlag)
|
||||||
|
} else if alertLevel == AlertLevelYellow {
|
||||||
|
storeAlertDataWrapper.SetData(storeID, model.FieldYellowStatus, fieldFlag)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -335,9 +374,10 @@ func CheckStoreMonthAlert(storeList []*cms.StoreExt) {
|
|||||||
storeID := storeInfo.ID
|
storeID := storeInfo.ID
|
||||||
storeName := storeInfo.Name
|
storeName := storeInfo.Name
|
||||||
if _, ok := storeCountMapData[storeID]; !ok {
|
if _, ok := storeCountMapData[storeID]; !ok {
|
||||||
alertInfo := GetAlertInfo(CheckStoreAlertOneMonthDayNum, true, storeName, -1, "", -1)
|
alertInfo := GetAlertInfo(CheckStoreAlertOneMonthDayNum, AlertLevelRed, storeName, -1, "", -1)
|
||||||
SendAlertInfo(storeID, storeName, alertInfo)
|
SendAlertInfo(storeID, storeName, alertInfo)
|
||||||
storeAlertDataWrapper.SetData(storeID, model.FieldNoOrderInMonth, 1)
|
storeAlertDataWrapper.SetData(storeID, model.FieldNoOrderInMonth, 1)
|
||||||
|
storeAlertDataWrapper.SetData(storeID, model.FieldRedStatus, model.FlagNoOrderInMonth)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -362,6 +402,7 @@ func CheckStoreRiskOrderAlert(storeList []*cms.StoreExt, dayNum int) {
|
|||||||
alertInfo := fmt.Sprintf(RiskOrderAlertInfo, storeName, vendorOrderIDStr)
|
alertInfo := fmt.Sprintf(RiskOrderAlertInfo, storeName, vendorOrderIDStr)
|
||||||
SendAlertInfo(storeID, storeName, alertInfo)
|
SendAlertInfo(storeID, storeName, alertInfo)
|
||||||
storeAlertDataWrapper.SetData(storeID, model.FieldRiskOrderCount, len(vendorOrderIDList))
|
storeAlertDataWrapper.SetData(storeID, model.FieldRiskOrderCount, len(vendorOrderIDList))
|
||||||
|
storeAlertDataWrapper.SetData(storeID, model.FieldRedStatus, model.FlagRiskOrderCount)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -393,12 +434,11 @@ func ScheduleCheckStoreAlert() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetValueColor(alertType, dayNum, ratio, count int) (color string) {
|
func GetValueColorByStatus(extraRedStatus, redStatus, yellowStatus, flag int) (color string) {
|
||||||
yellowAlert, redAlert, _, _ := CheckAlert(alertType, dayNum, ratio, count)
|
if (extraRedStatus&flag != 0) || (redStatus&flag != 0) {
|
||||||
if yellowAlert {
|
|
||||||
color = ColorYellow
|
|
||||||
} else if redAlert {
|
|
||||||
color = ColorRed
|
color = ColorRed
|
||||||
|
} else if yellowStatus&flag != 0 {
|
||||||
|
color = ColorYellow
|
||||||
} else {
|
} else {
|
||||||
color = ColorUnknown
|
color = ColorUnknown
|
||||||
}
|
}
|
||||||
@@ -428,46 +468,38 @@ func GetStoreAlertList(storeIDList []int, cityCode int, keyWord string, dateTime
|
|||||||
storeAlertAdvanced.CityName = value.CityName
|
storeAlertAdvanced.CityName = value.CityName
|
||||||
|
|
||||||
storeAlertAdvanced.PickTimeDaDa.Value = fmt.Sprintf("%d%%", value.PickTimeDaDa)
|
storeAlertAdvanced.PickTimeDaDa.Value = fmt.Sprintf("%d%%", value.PickTimeDaDa)
|
||||||
storeAlertAdvanced.PickTimeDaDa.Color = GetValueColor(AlertTypePickTimeOrderDaDa, CheckStoreAlertOneDayNum, value.PickTimeDaDa, -1)
|
storeAlertAdvanced.PickTimeDaDa.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagPickTimeDaDa)
|
||||||
|
|
||||||
storeAlertAdvanced.BadComment.Value = fmt.Sprintf("%d%%", value.BadComment)
|
storeAlertAdvanced.BadComment.Value = fmt.Sprintf("%d%%", value.BadComment)
|
||||||
storeAlertAdvanced.BadComment.Color = GetValueColor(AlertTypeBadCommentOrder, CheckStoreAlertOneDayNum, value.BadComment, -1)
|
storeAlertAdvanced.BadComment.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagBadComment)
|
||||||
|
|
||||||
storeAlertAdvanced.AbsentGoods.Value = fmt.Sprintf("%d%%", value.AbsentGoods)
|
storeAlertAdvanced.AbsentGoods.Value = fmt.Sprintf("%d%%", value.AbsentGoods)
|
||||||
storeAlertAdvanced.AbsentGoods.Color = GetValueColor(AlertTypeAbsentGoodsOrder, CheckStoreAlertOneDayNum, value.AbsentGoods, -1)
|
storeAlertAdvanced.AbsentGoods.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagAbsentGoods)
|
||||||
|
|
||||||
storeAlertAdvanced.PickTimeDaDaOneWeek.Value = fmt.Sprintf("%d%%", value.PickTimeDaDaOneWeek)
|
storeAlertAdvanced.PickTimeDaDaOneWeek.Value = fmt.Sprintf("%d%%", value.PickTimeDaDaOneWeek)
|
||||||
storeAlertAdvanced.PickTimeDaDaOneWeek.Color = GetValueColor(AlertTypePickTimeOrderDaDa, CheckStoreAlertOneWeekDayNum, value.PickTimeDaDaOneWeek, -1)
|
storeAlertAdvanced.PickTimeDaDaOneWeek.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagPickTimeDaDaOneWeek)
|
||||||
|
|
||||||
storeAlertAdvanced.BadCommentOneWeek.Value = fmt.Sprintf("%d%%", value.BadCommentOneWeek)
|
storeAlertAdvanced.BadCommentOneWeek.Value = fmt.Sprintf("%d%%", value.BadCommentOneWeek)
|
||||||
storeAlertAdvanced.BadCommentOneWeek.Color = GetValueColor(AlertTypeBadCommentOrder, CheckStoreAlertOneWeekDayNum, value.BadCommentOneWeek, -1)
|
storeAlertAdvanced.BadCommentOneWeek.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagBadCommentOneWeek)
|
||||||
|
|
||||||
storeAlertAdvanced.AbsentGoodsOneWeek.Value = fmt.Sprintf("%d%%", value.AbsentGoodsOneWeek)
|
storeAlertAdvanced.AbsentGoodsOneWeek.Value = fmt.Sprintf("%d%%", value.AbsentGoodsOneWeek)
|
||||||
storeAlertAdvanced.AbsentGoodsOneWeek.Color = GetValueColor(AlertTypeAbsentGoodsOrder, CheckStoreAlertOneWeekDayNum, value.AbsentGoodsOneWeek, -1)
|
storeAlertAdvanced.AbsentGoodsOneWeek.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagAbsentGoodsOneWeek)
|
||||||
|
|
||||||
storeAlertAdvanced.StandardFinishTimeSelfDelivery.Value = fmt.Sprintf("%d%%", value.StandardFinishTimeSelfDelivery)
|
storeAlertAdvanced.StandardFinishTimeSelfDelivery.Value = fmt.Sprintf("%d%%", value.StandardFinishTimeSelfDelivery)
|
||||||
storeAlertAdvanced.StandardFinishTimeSelfDelivery.Color = GetValueColor(AlertTypeStandardFinishTimeOrderSelfDelivery, CheckStoreAlertOneWeekDayNum, value.StandardFinishTimeSelfDelivery, -1)
|
storeAlertAdvanced.StandardFinishTimeSelfDelivery.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagStandardFinishTimeSelfDelivery)
|
||||||
|
|
||||||
storeAlertAdvanced.StandardPickUpTimeDaDa.Value = fmt.Sprintf("%d%%", value.StandardPickUpTimeDaDa)
|
storeAlertAdvanced.StandardPickUpTimeDaDa.Value = fmt.Sprintf("%d%%", value.StandardPickUpTimeDaDa)
|
||||||
storeAlertAdvanced.StandardPickUpTimeDaDa.Color = GetValueColor(AlertTypeStandardPickUpTimeOrderDaDa, CheckStoreAlertOneWeekDayNum, value.StandardPickUpTimeDaDa, -1)
|
storeAlertAdvanced.StandardPickUpTimeDaDa.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagStandardPickUpTimeDaDa)
|
||||||
|
|
||||||
storeAlertAdvanced.StandardPickUpTimeDaDa.Value = fmt.Sprintf("%d%%", value.StandardPickUpTimeDaDa)
|
|
||||||
storeAlertAdvanced.StandardPickUpTimeDaDa.Color = GetValueColor(AlertTypeStandardPickUpTimeOrderDaDa, CheckStoreAlertOneWeekDayNum, value.StandardPickUpTimeDaDa, -1)
|
|
||||||
|
|
||||||
if value.NoOrderInMonth == 1 {
|
if value.NoOrderInMonth == 1 {
|
||||||
storeAlertAdvanced.NoOrderInMonth.Value = "是"
|
storeAlertAdvanced.NoOrderInMonth.Value = "是"
|
||||||
storeAlertAdvanced.NoOrderInMonth.Color = ColorRed
|
|
||||||
} else {
|
} else {
|
||||||
storeAlertAdvanced.NoOrderInMonth.Value = "否"
|
storeAlertAdvanced.NoOrderInMonth.Value = "否"
|
||||||
storeAlertAdvanced.NoOrderInMonth.Color = ColorUnknown
|
|
||||||
}
|
}
|
||||||
|
storeAlertAdvanced.NoOrderInMonth.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagNoOrderInMonth)
|
||||||
|
|
||||||
storeAlertAdvanced.RiskOrderCount.Value = utils.Int2Str(value.RiskOrderCount)
|
storeAlertAdvanced.RiskOrderCount.Value = utils.Int2Str(value.RiskOrderCount)
|
||||||
if value.RiskOrderCount > 0 {
|
storeAlertAdvanced.RiskOrderCount.Color = GetValueColorByStatus(value.ExtraRedStatus, value.RedStatus, value.YellowStatus, model.FlagRiskOrderCount)
|
||||||
storeAlertAdvanced.RiskOrderCount.Color = ColorRed
|
|
||||||
} else {
|
|
||||||
storeAlertAdvanced.RiskOrderCount.Color = ColorUnknown
|
|
||||||
}
|
|
||||||
|
|
||||||
storeAlertAdvancedList = append(storeAlertAdvancedList, storeAlertAdvanced)
|
storeAlertAdvancedList = append(storeAlertAdvancedList, storeAlertAdvanced)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,26 @@ const (
|
|||||||
FieldAbsentGoodsOneWeek = "AbsentGoodsOneWeek"
|
FieldAbsentGoodsOneWeek = "AbsentGoodsOneWeek"
|
||||||
FieldStandardFinishTimeSelfDelivery = "StandardFinishTimeSelfDelivery"
|
FieldStandardFinishTimeSelfDelivery = "StandardFinishTimeSelfDelivery"
|
||||||
FieldStandardPickUpTimeDaDa = "StandardPickUpTimeDaDa"
|
FieldStandardPickUpTimeDaDa = "StandardPickUpTimeDaDa"
|
||||||
FieldNoOrderInMonth = "NoOrderInMonth"
|
|
||||||
FieldRiskOrderCount = "RiskOrderCount"
|
FieldNoOrderInMonth = "NoOrderInMonth"
|
||||||
|
FieldRiskOrderCount = "RiskOrderCount"
|
||||||
|
|
||||||
|
FieldYellowStatus = "YellowStatus"
|
||||||
|
FieldRedStatus = "RedStatus"
|
||||||
|
FieldExtraRedStatus = "ExtraRedStatus"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
FlagPickTimeDaDa = 1
|
||||||
|
FlagBadComment = 2
|
||||||
|
FlagAbsentGoods = 4
|
||||||
|
FlagPickTimeDaDaOneWeek = 8
|
||||||
|
FlagBadCommentOneWeek = 16
|
||||||
|
FlagAbsentGoodsOneWeek = 32
|
||||||
|
FlagStandardFinishTimeSelfDelivery = 64
|
||||||
|
FlagStandardPickUpTimeDaDa = 128
|
||||||
|
FlagNoOrderInMonth = 256
|
||||||
|
FlagRiskOrderCount = 512
|
||||||
)
|
)
|
||||||
|
|
||||||
type StoreAlert struct {
|
type StoreAlert struct {
|
||||||
@@ -32,6 +50,10 @@ type StoreAlert struct {
|
|||||||
|
|
||||||
NoOrderInMonth int `json:"noOrderInMonth"`
|
NoOrderInMonth int `json:"noOrderInMonth"`
|
||||||
RiskOrderCount int `json:"riskOrderCount"`
|
RiskOrderCount int `json:"riskOrderCount"`
|
||||||
|
|
||||||
|
YellowStatus int
|
||||||
|
RedStatus int
|
||||||
|
ExtraRedStatus int
|
||||||
}
|
}
|
||||||
|
|
||||||
type StoreAlertEx struct {
|
type StoreAlertEx struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user