package account import ( "bygdata/global" "bygdata/model/account" "bygdata/model/awssqs" "encoding/json" "time" "go.uber.org/zap" "gorm.io/gorm/clause" ) func CreateUser(sqsContent string) { var userData awssqs.SqsActionRegisterContent err := json.Unmarshal([]byte(sqsContent), &userData) if err != nil { global.GVA_LOG.Warn("Sqs message unmarshal error, will retry", zap.String("content", sqsContent), zap.Error(err)) return } now := time.Now() err = global.GVA_DB.Clauses(clause.OnConflict{ Columns: []clause.Column{{Name: "userno"}}, DoUpdates: clause.Assignments(map[string]interface{}{ "client_ip": userData.ClientIp, "latest_time": now, }), }).Create(&account.UserInfo{ Userno: userData.Userno, ClientIp: userData.ClientIp, RegisterTime: now, LatestTime: now, }).Error if err != nil { global.GVA_LOG.Warn("Sqs message create error", zap.String("content", sqsContent), zap.Error(err)) } } func CreateUserCheck(sqsContent string) { var userData awssqs.LoginIpCheck err := json.Unmarshal([]byte(sqsContent), &userData) if err != nil { global.GVA_LOG.Warn("Sqs message unmarshal error, will retry", zap.String("content", sqsContent), zap.Error(err)) return } now := time.Now() err = global.GVA_DB.Clauses(clause.OnConflict{ Columns: []clause.Column{{Name: "userno"}}, DoUpdates: clause.Assignments(map[string]interface{}{ "client_ip": userData.Ip, "latest_time": now, }), }).Create(&account.UserInfo{ Userno: userData.Userno, ClientIp: userData.Ip, RegisterTime: now, LatestTime: now, }).Error if err != nil { global.GVA_LOG.Warn("Sqs message create error", zap.String("content", sqsContent), zap.Error(err)) } } func UpdateUser(userno string) { now := time.Now() err := global.GVA_DB.Model(&account.UserInfo{}).Where("userno = ?", userno).Update("latest_time", now).Error if err != nil { global.GVA_LOG.Warn("Sqs message update error", zap.String("userno", userno), zap.Error(err)) } }