bygdata/service/account/account.go
2026-03-10 14:09:43 +00:00

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))
}
}