|
@@ -941,10 +941,21 @@ func (s *LogicalLog) AddDeviceLog(request request.AddLogRequest) {
|
|
|
logSC.PcCode = request.PcCode
|
|
logSC.PcCode = request.PcCode
|
|
|
logSC.SimulatorIpCity = request.SimulatorIpCity
|
|
logSC.SimulatorIpCity = request.SimulatorIpCity
|
|
|
ctx := context.Background()
|
|
ctx := context.Background()
|
|
|
|
|
+ if s.CheckDeviceLogIsSave(logSC) {
|
|
|
|
|
+ logSC.IsErr = 1
|
|
|
|
|
+ logSC.ErrStatus = 4
|
|
|
|
|
+ logSC.CreateDate = time.Now().Format("2006-01-02")
|
|
|
|
|
+ err := global.GVA_DB.Omit("create_time").Create(&logSC).Error
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("create LogScanningCode fail", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ var deviceLogs []log.DeviceErr
|
|
|
if request.TaskType == 1 {
|
|
if request.TaskType == 1 {
|
|
|
- var deviceLog = log.DeviceLog{}
|
|
|
|
|
- if !errors.Is(global.GVA_DB.Where("account = ?", request.Account).Where("game_id = ?", request.GameId).Order("id desc").First(&deviceLog).Error, gorm.ErrRecordNotFound) {
|
|
|
|
|
- if deviceLog.AccountHex != logSC.AccountHex {
|
|
|
|
|
|
|
+ global.GVA_DB.Table("game_account").Where("account = ?", request.Account).Where("game_id = ?", request.GameId).Order("id desc").Limit(1).Find(&deviceLogs)
|
|
|
|
|
+ if len(deviceLogs) != 0 {
|
|
|
|
|
+ if deviceLogs[0].AccountHex != "" && deviceLogs[0].AccountHex != logSC.AccountHex {
|
|
|
logSC.IsErr = 1
|
|
logSC.IsErr = 1
|
|
|
logSC.ErrStatus = 3
|
|
logSC.ErrStatus = 3
|
|
|
gameDeviceErrKey := fmt.Sprintf(GameDeviceErrKey, logSC.CreateDate, request.GameId)
|
|
gameDeviceErrKey := fmt.Sprintf(GameDeviceErrKey, logSC.CreateDate, request.GameId)
|
|
@@ -952,13 +963,8 @@ func (s *LogicalLog) AddDeviceLog(request request.AddLogRequest) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- var deviceLogs []log.DeviceLog
|
|
|
|
|
- if !errors.Is(global.GVA_DB.Where("create_date = ?", logSC.CreateDate).Where("game_id = ?", request.GameId).Where("device_hex = ?", logSC.DeviceHex).Order("id desc").Limit(10).Find(&deviceLogs).Error, gorm.ErrRecordNotFound) {
|
|
|
|
|
- mps := make(map[string]int, 10)
|
|
|
|
|
- for _, dl := range deviceLogs {
|
|
|
|
|
- mps[dl.Account] = 1
|
|
|
|
|
- }
|
|
|
|
|
- if len(mps) > 2 {
|
|
|
|
|
|
|
+ if !errors.Is(global.GVA_DB.Table("game_account").Where("game_id = ?", request.GameId).Where("account != ?", request.Account).Where("device_hex = ?", logSC.DeviceHex).Order("id desc").Limit(10).Find(&deviceLogs).Error, gorm.ErrRecordNotFound) {
|
|
|
|
|
+ if len(deviceLogs) > 2 {
|
|
|
logSC.IsErr = 1
|
|
logSC.IsErr = 1
|
|
|
logSC.ErrStatus = 2
|
|
logSC.ErrStatus = 2
|
|
|
gameDeviceAccountErrKey := fmt.Sprintf(GameDeviceAccountErrKey, logSC.CreateDate, request.GameId)
|
|
gameDeviceAccountErrKey := fmt.Sprintf(GameDeviceAccountErrKey, logSC.CreateDate, request.GameId)
|
|
@@ -971,6 +977,39 @@ func (s *LogicalLog) AddDeviceLog(request request.AddLogRequest) {
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
global.GVA_LOG.Error("create LogScanningCode fail", zap.Error(err))
|
|
global.GVA_LOG.Error("create LogScanningCode fail", zap.Error(err))
|
|
|
}
|
|
}
|
|
|
|
|
+ if logSC.ErrStatus == 3 || logSC.ErrStatus == 2 {
|
|
|
|
|
+ s.AddDeviceErr(logSC, deviceLogs)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *LogicalLog) AddDeviceErr(deviceLog *log.DeviceLog, deviceErrs []log.DeviceErr) {
|
|
|
|
|
+ var deviceErr = log.DeviceErr{}
|
|
|
|
|
+ deviceErr.GameId = deviceLog.GameId
|
|
|
|
|
+ deviceErr.ScriptDeviceId = deviceLog.ScriptDeviceId
|
|
|
|
|
+ deviceErr.Account = deviceLog.Account
|
|
|
|
|
+ deviceErr.DeviceId = deviceLog.DeviceId
|
|
|
|
|
+ deviceErr.DeviceImei = deviceLog.DeviceImei
|
|
|
|
|
+ deviceErr.DeviceMac = deviceLog.DeviceMac
|
|
|
|
|
+ deviceErr.DeviceManufacturer = deviceLog.DeviceManufacturer
|
|
|
|
|
+ deviceErr.DeviceModel = deviceLog.DeviceModel
|
|
|
|
|
+ deviceErr.DeviceSdk = deviceLog.DeviceSdk
|
|
|
|
|
+ deviceErr.DeviceNumber = deviceLog.DeviceNumber
|
|
|
|
|
+ deviceErr.AccountHex = deviceLog.AccountHex
|
|
|
|
|
+ deviceErr.DeviceHex = deviceLog.DeviceHex
|
|
|
|
|
+ deviceErr.CreateTime = time.Now()
|
|
|
|
|
+ deviceErrs = append(deviceErrs, deviceErr)
|
|
|
|
|
+ for k, _ := range deviceErrs {
|
|
|
|
|
+ deviceErrs[k].DeviceLogId = deviceLog.Id
|
|
|
|
|
+ deviceErrs[k].CreateDate = time.Now()
|
|
|
|
|
+ }
|
|
|
|
|
+ err := global.GVA_DB.Table("device_err").Omit("id").Create(&deviceErrs).Error
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("create AddAccount fail", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *LogicalLog) CheckDeviceLogIsSave(deviceLog *log.DeviceLog) bool {
|
|
|
|
|
+ return deviceLog.DeviceManufacturer == "" || deviceLog.DeviceModel == "" || deviceLog.DeviceImei == "" || deviceLog.DeviceSdk == "" || deviceLog.DeviceMac == "" || deviceLog.DeviceNumber == "" || deviceLog.DeviceId == ""
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s *LogicalLog) DeviceHexLog(request request.AddLogRequest) string {
|
|
func (s *LogicalLog) DeviceHexLog(request request.AddLogRequest) string {
|
|
@@ -1018,13 +1057,23 @@ func (s *LogicalLog) UpdateDeviceLogScriptId(logUuid string, scriptDeviceId stri
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (s *LogicalLog) AddAccount(request request.AddLogRequest) {
|
|
|
|
|
-
|
|
|
|
|
|
|
+func (s *LogicalLog) AddAccount(request request.AddLogRequest, deviceLog log.DeviceLog) {
|
|
|
gameAccount := new(log.GameAccount)
|
|
gameAccount := new(log.GameAccount)
|
|
|
gameAccount.GameId = request.GameId
|
|
gameAccount.GameId = request.GameId
|
|
|
gameAccount.ScriptDeviceId = request.ScriptDeviceId
|
|
gameAccount.ScriptDeviceId = request.ScriptDeviceId
|
|
|
gameAccount.Account = request.Account
|
|
gameAccount.Account = request.Account
|
|
|
- err := global.GVA_DB.Omit("create_time").Create(&gameAccount).Error
|
|
|
|
|
|
|
+ if deviceLog.ErrStatus != 4 {
|
|
|
|
|
+ gameAccount.DeviceId = deviceLog.DeviceId
|
|
|
|
|
+ gameAccount.DeviceImei = deviceLog.DeviceImei
|
|
|
|
|
+ gameAccount.DeviceMac = deviceLog.DeviceMac
|
|
|
|
|
+ gameAccount.DeviceManufacturer = deviceLog.DeviceManufacturer
|
|
|
|
|
+ gameAccount.DeviceModel = deviceLog.DeviceModel
|
|
|
|
|
+ gameAccount.DeviceSdk = deviceLog.DeviceSdk
|
|
|
|
|
+ gameAccount.DeviceNumber = deviceLog.DeviceNumber
|
|
|
|
|
+ gameAccount.AccountHex = deviceLog.AccountHex
|
|
|
|
|
+ gameAccount.DeviceHex = deviceLog.DeviceHex
|
|
|
|
|
+ }
|
|
|
|
|
+ err := global.GVA_DB.Omit("create_time", "update_time", "use_num").Create(&gameAccount).Error
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
global.GVA_LOG.Error("create AddAccount fail", zap.Error(err))
|
|
global.GVA_LOG.Error("create AddAccount fail", zap.Error(err))
|
|
|
}
|
|
}
|
|
@@ -1054,7 +1103,10 @@ func (s *LogicalLog) CheckDeviceId(request request.AddLogRequest) {
|
|
|
global.GVA_LOG.Error("get CheckDeviceId fail", zap.Error(errors.New("没有获取到设备id")))
|
|
global.GVA_LOG.Error("get CheckDeviceId fail", zap.Error(errors.New("没有获取到设备id")))
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- s.UpdateDeviceLogScriptId(request.LogUuid, request.ScriptDeviceId, time.Now().Format("2006-01-02"))
|
|
|
|
|
|
|
+ date := time.Now().Format("2006-01-02")
|
|
|
|
|
+ s.UpdateDeviceLogScriptId(request.LogUuid, request.ScriptDeviceId, date)
|
|
|
|
|
+ var device log.DeviceLog
|
|
|
|
|
+ global.GVA_DB.Table("device_log").Where("create_date = ?", date).Where("log_uuid = ?", request.LogUuid).First(&device)
|
|
|
global.GVA_LOG.Warn("进入 CheckDeviceId")
|
|
global.GVA_LOG.Warn("进入 CheckDeviceId")
|
|
|
if request.TaskType == 0 {
|
|
if request.TaskType == 0 {
|
|
|
b, deviceLog := s.CheckDeviceIdErr(request.ScriptDeviceId, request.LogUuid, request.GameId)
|
|
b, deviceLog := s.CheckDeviceIdErr(request.ScriptDeviceId, request.LogUuid, request.GameId)
|
|
@@ -1064,7 +1116,7 @@ func (s *LogicalLog) CheckDeviceId(request request.AddLogRequest) {
|
|
|
//ct := fmt.Sprintf("<font color=\"warning\">%s:%d, 相同设备id</font>", request.PcCode, request.GameId)
|
|
//ct := fmt.Sprintf("<font color=\"warning\">%s:%d, 相同设备id</font>", request.PcCode, request.GameId)
|
|
|
//s.SendDeviceMsg(ct, request.Operator)
|
|
//s.SendDeviceMsg(ct, request.Operator)
|
|
|
}
|
|
}
|
|
|
- s.AddAccount(request)
|
|
|
|
|
|
|
+ s.AddAccount(request, device)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
var gameAccount log.GameAccount
|
|
var gameAccount log.GameAccount
|
|
@@ -1072,7 +1124,7 @@ func (s *LogicalLog) CheckDeviceId(request request.AddLogRequest) {
|
|
|
if result.Error != nil {
|
|
if result.Error != nil {
|
|
|
if result.Error == gorm.ErrRecordNotFound {
|
|
if result.Error == gorm.ErrRecordNotFound {
|
|
|
// 数据不存在,执行创建操作
|
|
// 数据不存在,执行创建操作
|
|
|
- s.AddAccount(request)
|
|
|
|
|
|
|
+ s.AddAccount(request, device)
|
|
|
return
|
|
return
|
|
|
} else {
|
|
} else {
|
|
|
// 其他错误
|
|
// 其他错误
|
|
@@ -1080,13 +1132,25 @@ func (s *LogicalLog) CheckDeviceId(request request.AddLogRequest) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if gameAccount.ScriptDeviceId != request.ScriptDeviceId {
|
|
|
|
|
|
|
+ if gameAccount.ScriptDeviceId != request.ScriptDeviceId || device.ErrStatus == 3 || gameAccount.DeviceHex == "" {
|
|
|
s.AddScriptDeviceErr(request.GameId, request.Account, gameAccount.ScriptDeviceId, request.ScriptDeviceId, gameAccount.Account, gameAccount.GameId, 1, request.PcCode, request.Operator)
|
|
s.AddScriptDeviceErr(request.GameId, request.Account, gameAccount.ScriptDeviceId, request.ScriptDeviceId, gameAccount.Account, gameAccount.GameId, 1, request.PcCode, request.Operator)
|
|
|
//ct := fmt.Sprintf("<font color=\"warning\">%s:%d, 设备id出现不同</font>", request.PcCode, request.GameId)
|
|
//ct := fmt.Sprintf("<font color=\"warning\">%s:%d, 设备id出现不同</font>", request.PcCode, request.GameId)
|
|
|
//s.SendDeviceMsg(ct, request.Operator)
|
|
//s.SendDeviceMsg(ct, request.Operator)
|
|
|
gameAccount.ScriptDeviceId = request.ScriptDeviceId
|
|
gameAccount.ScriptDeviceId = request.ScriptDeviceId
|
|
|
- global.GVA_DB.Save(&gameAccount)
|
|
|
|
|
|
|
+ if gameAccount.DeviceHex != device.DeviceHex {
|
|
|
|
|
+ gameAccount.DeviceId = device.DeviceId
|
|
|
|
|
+ gameAccount.DeviceImei = device.DeviceImei
|
|
|
|
|
+ gameAccount.DeviceMac = device.DeviceMac
|
|
|
|
|
+ gameAccount.DeviceManufacturer = device.DeviceManufacturer
|
|
|
|
|
+ gameAccount.DeviceModel = device.DeviceModel
|
|
|
|
|
+ gameAccount.DeviceSdk = device.DeviceSdk
|
|
|
|
|
+ gameAccount.DeviceNumber = device.DeviceNumber
|
|
|
|
|
+ gameAccount.AccountHex = device.AccountHex
|
|
|
|
|
+ gameAccount.DeviceHex = device.DeviceHex
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ gameAccount.UseNum += 1
|
|
|
|
|
+ global.GVA_DB.Save(&gameAccount)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s *LogicalLog) SendDeviceMsg(content string, operator string) {
|
|
func (s *LogicalLog) SendDeviceMsg(content string, operator string) {
|