73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
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))
|
|
}
|
|
}
|