forked from all_user/stat_center
Initial commit
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
package applicationser
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"stat/common/enum/consts"
|
||||
"stat/common/utils"
|
||||
"stat/models/applicationLocMod"
|
||||
"stat/models/applicationmod"
|
||||
"stat/statg"
|
||||
"time"
|
||||
)
|
||||
|
||||
func CheckChange(ctx context.Context, oldDoc, newDoc *applicationmod.Application, account string) {
|
||||
msg := ""
|
||||
changed := false
|
||||
// 检测更新
|
||||
if oldDoc != nil && newDoc != nil {
|
||||
warnChar := "🔴"
|
||||
msg += fmt.Sprintf("检测到应用变更:\n应用ID:【%s】\n应用名称:【%s】\n", oldDoc.Id.Hex(), oldDoc.Name)
|
||||
if oldDoc.DownloadUrl != newDoc.DownloadUrl {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("下载链接变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.DownloadUrl, newDoc.DownloadUrl)
|
||||
}
|
||||
if oldDoc.AndroidUrl != newDoc.AndroidUrl {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("安卓链接变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.AndroidUrl, newDoc.AndroidUrl)
|
||||
}
|
||||
if oldDoc.IosUrl != newDoc.IosUrl {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("IOS链接变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.IosUrl, newDoc.IosUrl)
|
||||
}
|
||||
if oldDoc.ParentAppId != newDoc.ParentAppId {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("所属appId变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.ParentAppId, newDoc.ParentAppId)
|
||||
} else {
|
||||
oSet := utils.NewSet(oldDoc.LocIds)
|
||||
nSet := utils.NewSet(newDoc.LocIds)
|
||||
if !oSet.Equal(nSet) { // 两个集合不相等
|
||||
changed = true
|
||||
dict := applicationLocMod.FindApplicationLocationDict(ctx, oldDoc.ParentAppId)
|
||||
oldLocations := ""
|
||||
for _, id := range oldDoc.LocIds {
|
||||
oldLocations += fmt.Sprintf("%s,", dict[id].Name)
|
||||
}
|
||||
nowLocations := ""
|
||||
for _, id := range newDoc.LocIds {
|
||||
nowLocations += fmt.Sprintf("%s,", dict[id].Name)
|
||||
}
|
||||
msg += fmt.Sprintf("应用中心位置变更:\n┏旧值【%s】\n┗新值【%s】\n", oldLocations, nowLocations)
|
||||
}
|
||||
}
|
||||
if oldDoc.Status != newDoc.Status {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("激活变更:\n┏旧值【%v】【%v】\n┗新值【%v】【%v】\n", oldDoc.Status, consts.StatusDesc[oldDoc.Status],
|
||||
newDoc.Status, consts.StatusDesc[newDoc.Status])
|
||||
}
|
||||
if oldDoc.Internal != newDoc.Internal {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("是否内部应用展示,状态变更:\n┏旧值【%v】【%v】\n┗新值【%v】【%v】\n", oldDoc.Internal, consts.IsShowDesc[oldDoc.Internal],
|
||||
newDoc.Internal, consts.IsShowDesc[newDoc.Internal])
|
||||
}
|
||||
if oldDoc.NineShow != newDoc.NineShow {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("是否九宫格展示,状态变更:\n┏旧值【%v】【%v】\n┗新值【%v】【%v】\n", oldDoc.NineShow, consts.IsShowDesc[oldDoc.NineShow],
|
||||
newDoc.NineShow, consts.IsShowDesc[newDoc.NineShow])
|
||||
}
|
||||
if oldDoc.RecreationShow != newDoc.RecreationShow {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("是否娱乐中心展示,状态变更:\n┏旧值【%v】【%v】\n┗新值【%v】【%v】\n", oldDoc.RecreationShow, consts.IsShowDesc[oldDoc.RecreationShow],
|
||||
newDoc.RecreationShow, consts.IsShowDesc[newDoc.RecreationShow])
|
||||
}
|
||||
if oldDoc.HomeShow != newDoc.HomeShow {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("是否首页展示,状态变更:\n┏旧值【%v】【%v】\n┗新值【%v】【%v】\n", oldDoc.HomeShow, consts.IsShowDesc[oldDoc.HomeShow],
|
||||
newDoc.HomeShow, consts.IsShowDesc[newDoc.HomeShow])
|
||||
}
|
||||
if !oldDoc.StartTime.Equal(newDoc.StartTime) {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("开始时间变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.StartTime, newDoc.StartTime)
|
||||
}
|
||||
if !oldDoc.EndTime.Equal(newDoc.EndTime) {
|
||||
changed = true
|
||||
msg += fmt.Sprintf("结束时间变更:\n┏旧值【%v】\n┗新值【%v】\n", oldDoc.EndTime, newDoc.EndTime)
|
||||
}
|
||||
msg = warnChar + msg
|
||||
} else if oldDoc == nil && newDoc != nil {
|
||||
changed = true
|
||||
warnChar := "🟣"
|
||||
msg += fmt.Sprintf("检测到应用新增:\n应用ID:【%s】\n名称:【%s】\n", newDoc.Id.Hex(), newDoc.Name)
|
||||
msg += fmt.Sprintf("下载链接:【%v】\n", newDoc.DownloadUrl)
|
||||
msg += fmt.Sprintf("安卓链接:【%v】\n", newDoc.AndroidUrl)
|
||||
msg += fmt.Sprintf("IOS链接:【%v】\n", newDoc.IosUrl)
|
||||
msg += fmt.Sprintf("激活状态:\n┏【%v】【%s】\n", newDoc.Status, consts.StatusDesc[newDoc.Status])
|
||||
msg = warnChar + msg
|
||||
} else if oldDoc != nil && newDoc == nil {
|
||||
changed = true
|
||||
warnChar := "🟠"
|
||||
msg += fmt.Sprintf("检测到应用删除:\n应用ID:【%s】\n名称:【%s】\n", oldDoc.Id.Hex(), oldDoc.Name)
|
||||
msg += fmt.Sprintf("下载链接:【%v】\n", oldDoc.DownloadUrl)
|
||||
msg += fmt.Sprintf("安卓链接:【%v】\n", oldDoc.AndroidUrl)
|
||||
msg += fmt.Sprintf("IOS链接:【%v】\n", oldDoc.IosUrl)
|
||||
msg = warnChar + msg
|
||||
}
|
||||
if changed {
|
||||
if newDoc != nil {
|
||||
dict := applicationLocMod.FindApplicationLocationDict(ctx, newDoc.ParentAppId)
|
||||
msg += fmt.Sprintf("所属APP:【%s】\n", statg.GlobalEndpoints.GetAppShortNameById(int32(newDoc.ParentAppId)))
|
||||
nowLocations := ""
|
||||
for _, id := range newDoc.LocIds {
|
||||
nowLocations += fmt.Sprintf("%s,", dict[id].Name)
|
||||
}
|
||||
msg += fmt.Sprintf("应用位置:【%s】\n", nowLocations)
|
||||
msg += fmt.Sprintf("激活状态:【%s】\n", consts.StatusDesc[newDoc.Status])
|
||||
}
|
||||
msg += fmt.Sprintf("操作人员账号:【%s】\n", account)
|
||||
msg += fmt.Sprintf("操作发生时间:【%s】\n", time.Now().Format("2006-01-02T15:04:05"))
|
||||
msg += fmt.Sprintf("请确认是否异常: %s \n", statg.Tgbotsend)
|
||||
statg.Bot.SendAdvertiseMessage(msg)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user