change add user
This commit is contained in:
parent
3691cfe8b2
commit
eeb46924fb
@ -3,20 +3,22 @@ package sqs
|
||||
import (
|
||||
"bygdata/global"
|
||||
"bygdata/model/awssqs"
|
||||
"bygdata/service/account"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/sqs"
|
||||
"go.uber.org/zap"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"sync"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/sqs"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func ProcessSqsMessage() {
|
||||
@ -189,7 +191,7 @@ func processMessage(svc *sqs.SQS, queueURL string, msg *sqs.Message) {
|
||||
|
||||
// 如果处理时间可能较长,延长可见性超时
|
||||
// 这里可以根据实际处理逻辑动态调整
|
||||
extendVisibilityTimeout(svc, queueURL, msg, 600) // 延长到 10 分钟
|
||||
//extendVisibilityTimeout(svc, queueURL, msg, 600) // 延长到 10 分钟
|
||||
|
||||
// 在这里处理接收到的消息
|
||||
var sqsMessage awssqs.SqsMessage
|
||||
@ -212,12 +214,44 @@ func processMessage(svc *sqs.SQS, queueURL string, msg *sqs.Message) {
|
||||
global.GVA_LOG.Info("Processing create user action", zap.String("msgId", msgId),
|
||||
zap.Int32("msg_action", int32(sqsMessage.Action)), zap.String("msg_content", sqsMessage.Content))
|
||||
|
||||
|
||||
if sqsMessage.Action == awssqs.SqsActionCreateUser {
|
||||
// TODO: 实现创建用户的逻辑
|
||||
global.GVA_LOG.Info("Processing create user action", zap.String("msgId", msgId))
|
||||
// 这里应该调用实际的处理逻辑
|
||||
// processErr = handleCreateUser(sqsMessage)
|
||||
global.GVA_LOG.Info("Processing SqsActionCreateUser", zap.String("msgId", msgId))
|
||||
account.CreateUser(sqsMessage.Content)
|
||||
} else if sqsMessage.Action == awssqs.SqsActionIncreaseBetTotal {
|
||||
global.GVA_LOG.Info("Processing SqsActionIncreaseBetTotal", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionDecreaseBetTotal {
|
||||
global.GVA_LOG.Info("Processing SqsActionDecreaseBetTotal", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionDeductWithdrawLimitAfterTransfer {
|
||||
// 处理"回收后才结算"的情况:创建账变记录扣除稽核流水(余额不变)
|
||||
global.GVA_LOG.Info("Processing SqsActionDeductWithdrawLimitAfterTransfer", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionInviteCratesCheck {
|
||||
global.GVA_LOG.Info("Processing SqsActionInviteCratesCheck", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionInviteBonusCheck {
|
||||
global.GVA_LOG.Info("Processing SqsActionInviteBonusCheck", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionLoginIpCheck {
|
||||
global.GVA_LOG.Info("Processing SqsActionLoginIpCheck", zap.String("msgId", msgId))
|
||||
account.CreateUserCheck(sqsMessage.Content)
|
||||
} else if sqsMessage.Action == awssqs.SqsActionExportData {
|
||||
global.GVA_LOG.Info("Processing SqsActionExportData", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionSendEmailVerifyCode {
|
||||
global.GVA_LOG.Info("Processing SqsActionSendEmailVerifyCode", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionDailyQuestProcess {
|
||||
global.GVA_LOG.Info("Processing SqsActionDailyQuestProcess", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionDepositSuccess {
|
||||
var req awssqs.SqsActionDepositSuccessContent
|
||||
err = json.Unmarshal([]byte(sqsMessage.Content), &req)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Fprintf(os.Stderr, "[SQS处理] 解析充值成功消息成功: userno=%s, orderno=%s, depositTimes=%d, depositAmount=%s\n",
|
||||
req.Userno, req.Orderno, req.DepositTimes, req.DepositAmount.String())
|
||||
} else if sqsMessage.Action == awssqs.SqsActionVisit {
|
||||
global.GVA_LOG.Info("Processing SqsActionVisit", zap.String("msgId", msgId))
|
||||
account.UpdateUser(sqsMessage.Content)
|
||||
} else if sqsMessage.Action == awssqs.SqsActionSaveBonus {
|
||||
global.GVA_LOG.Info("Processing SqsActionSaveBonus", zap.String("msgId", msgId))
|
||||
} else if sqsMessage.Action == awssqs.SqsActionGenDepositDailyClaim {
|
||||
global.GVA_LOG.Info("Processing SqsActionGenDepositDailyClaim", zap.String("msgId", msgId))
|
||||
} else {
|
||||
global.GVA_LOG.Warn("Unknown action",
|
||||
zap.String("action", string(sqsMessage.Action)),
|
||||
|
||||
16
config.yaml
16
config.yaml
@ -74,16 +74,16 @@ captcha:
|
||||
# mysql connect configuration
|
||||
# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master)
|
||||
mysql:
|
||||
path: "goder2.cpccmm68qb1d.ap-southeast-1.rds.amazonaws.com"
|
||||
path: "xpink-prod-mysql.cjkmm024cf76.ap-east-1.rds.amazonaws.com"
|
||||
port: "3306"
|
||||
config: "charset=utf8mb4&parseTime=True&loc=Local"
|
||||
db-name: "byg_data"
|
||||
username: "admin"
|
||||
password: "vH2GkUxz2398GmDTy"
|
||||
password: "keN2<n!Cj<GC|#T_wwwscqNz(o?U"
|
||||
max-idle-conns: 10
|
||||
max-open-conns: 100
|
||||
log-mode: ""
|
||||
log-zap: false
|
||||
log-mode: "info"
|
||||
log-zap: true
|
||||
|
||||
# pgsql connect configuration
|
||||
# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master)
|
||||
@ -102,16 +102,16 @@ db-list:
|
||||
- disable: false # 是否禁用
|
||||
type: "mysql" # 数据库的类型,目前支持mysql、pgsql、mssql、oracle
|
||||
alias-name: "byg_data" # 数据库的名称,注意: alias-name 需要在db-list中唯一
|
||||
path: "goder2.cpccmm68qb1d.ap-southeast-1.rds.amazonaws.com"
|
||||
path: "xpink-prod-mysql.cjkmm024cf76.ap-east-1.rds.amazonaws.com"
|
||||
port: "3306"
|
||||
config: "charset=utf8mb4&parseTime=True&loc=Local"
|
||||
db-name: "byg_data"
|
||||
username: "admin"
|
||||
password: "vH2GkUxz2398GmDTy"
|
||||
password: "keN2<n!Cj<GC|#T_wwwscqNz(o?U"
|
||||
max-idle-conns: 10
|
||||
max-open-conns: 100
|
||||
log-mode: "debug"
|
||||
log-zap: false
|
||||
log-mode: "info"
|
||||
log-zap: true
|
||||
|
||||
# local configuration
|
||||
local:
|
||||
|
||||
@ -12,3 +12,9 @@ type GVA_MODEL struct {
|
||||
UpdatedAt time.Time // 更新时间
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` // 删除时间
|
||||
}
|
||||
|
||||
type GVA_MODEL2 struct {
|
||||
ID uint `gorm:"primarykey" json:"ID"` // 主键ID
|
||||
CreatedAt time.Time // 创建时间
|
||||
UpdatedAt time.Time // 更新时间
|
||||
}
|
||||
|
||||
8
go.mod
8
go.mod
@ -31,6 +31,7 @@ require (
|
||||
github.com/redis/go-redis/v9 v9.7.0
|
||||
github.com/robfig/cron/v3 v3.0.1
|
||||
github.com/shirou/gopsutil/v3 v3.24.5
|
||||
github.com/shopspring/decimal v1.4.0
|
||||
github.com/songzhibin97/gkit v1.2.13
|
||||
github.com/spf13/viper v1.19.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
@ -68,12 +69,13 @@ require (
|
||||
github.com/bodgit/sevenzip v1.6.0 // indirect
|
||||
github.com/bodgit/windows v1.0.1 // indirect
|
||||
github.com/buger/jsonparser v1.1.1 // indirect
|
||||
github.com/bytedance/sonic v1.12.7 // indirect
|
||||
github.com/bytedance/sonic/loader v0.2.3 // indirect
|
||||
github.com/bytedance/gopkg v0.1.3 // indirect
|
||||
github.com/bytedance/sonic v1.15.0 // indirect
|
||||
github.com/bytedance/sonic/loader v0.5.0 // indirect
|
||||
github.com/casbin/govaluate v1.3.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/clbanning/mxj v1.8.4 // indirect
|
||||
github.com/cloudwego/base64x v0.1.5 // indirect
|
||||
github.com/cloudwego/base64x v0.1.6 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
|
||||
|
||||
21
go.sum
21
go.sum
@ -73,11 +73,12 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
|
||||
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
|
||||
github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
|
||||
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
|
||||
github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q=
|
||||
github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I=
|
||||
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
|
||||
github.com/bytedance/sonic/loader v0.2.3 h1:yctD0Q3v2NOGfSWPLPvG2ggA2kV6TS6s4wioyEqssH0=
|
||||
github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
|
||||
github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M=
|
||||
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
|
||||
github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE=
|
||||
github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k=
|
||||
github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE=
|
||||
github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
|
||||
github.com/casbin/casbin/v2 v2.103.0 h1:dHElatNXNrr8XcseUov0ZSiWjauwmZZE6YMV3eU1yic=
|
||||
github.com/casbin/casbin/v2 v2.103.0/go.mod h1:Ee33aqGrmES+GNL17L0h9X28wXuo829wnNUnS0edAco=
|
||||
github.com/casbin/gorm-adapter/v3 v3.32.0 h1:Au+IOILBIE9clox5BJhI2nA3p9t7Ep1ePlupdGbGfus=
|
||||
@ -93,9 +94,8 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
||||
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
|
||||
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
|
||||
github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
|
||||
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
|
||||
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
|
||||
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/dave/jennifer v1.6.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@ -292,12 +292,10 @@ github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zt
|
||||
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
|
||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY=
|
||||
github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8=
|
||||
github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
|
||||
github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||
@ -419,6 +417,8 @@ github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFt
|
||||
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
|
||||
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
|
||||
github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
|
||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
||||
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
|
||||
github.com/sijms/go-ora/v2 v2.7.17 h1:M/pYIqjaMUeBxyzOWp2oj4ntF6fHSBloJWGNH9vbmsU=
|
||||
github.com/sijms/go-ora/v2 v2.7.17/go.mod h1:EHxlY6x7y9HAsdfumurRfTd+v8NrEOTR3Xl4FWlH6xk=
|
||||
github.com/songzhibin97/gkit v1.2.13 h1:paY0XJkdRuy9/8k9nTnbdrzo8pC22jIIFldUkOQv5nU=
|
||||
@ -841,7 +841,6 @@ modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
|
||||
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
|
||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
|
||||
18
model/account/account.go
Normal file
18
model/account/account.go
Normal file
@ -0,0 +1,18 @@
|
||||
package account
|
||||
|
||||
import (
|
||||
"bygdata/global"
|
||||
"time"
|
||||
)
|
||||
|
||||
type UserInfo struct {
|
||||
global.GVA_MODEL2
|
||||
Userno string `json:"userno" gorm:"column:userno"`
|
||||
ClientIp string `json:"clientIp" gorm:"column:client_ip"`
|
||||
RegisterTime time.Time `json:"registerTime" gorm:"column:register_time"`
|
||||
LatestTime time.Time `json:"latestTime" gorm:"column:latest_time"`
|
||||
}
|
||||
|
||||
func (UserInfo) TableName() string {
|
||||
return "byl_data.user_info"
|
||||
}
|
||||
@ -1,5 +1,11 @@
|
||||
package awssqs
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type SqsMessage struct {
|
||||
Action SqsAction `json:"action"`
|
||||
Content string `json:"content"`
|
||||
@ -51,3 +57,68 @@ var SqsActionMap = map[SqsAction]struct {
|
||||
SqsActionGenDepositDailyClaim: {Id: 120, Name: "SqsActionGenDepositDailyClaim"},
|
||||
SqsActionDeductWithdrawLimitAfterTransfer: {Id: 130, Name: "SqsActionDeductWithdrawLimitAfterTransfer"},
|
||||
}
|
||||
|
||||
type SqsActionRegisterContent struct {
|
||||
Userno string `json:"userno"`
|
||||
ClientIp string `json:"clientIp"`
|
||||
}
|
||||
type LoginIpCheck struct {
|
||||
Userno string `json:"userno"`
|
||||
Ip string `json:"ip"`
|
||||
}
|
||||
|
||||
type SqsActionSendEmailVerifyCodeContent struct {
|
||||
Email string `json:"email"`
|
||||
Lang string `json:"lang"`
|
||||
}
|
||||
|
||||
type SqsActionDailyQuestProcessContent struct {
|
||||
Userno string `json:"userno"`
|
||||
QuestType string `json:"questType"`
|
||||
IncreaseProcess string `json:"increaseProcess"`
|
||||
}
|
||||
|
||||
type SqsActionDepositSuccessContent struct {
|
||||
Orderno string `json:"orderno"`
|
||||
Userno string `json:"userno"`
|
||||
DepositAmount decimal.Decimal `json:"depositAmount"`
|
||||
SuccessTime int64 `json:"successTime"`
|
||||
DepositTimes int32 `json:"depositTimes"`
|
||||
BonusId string `json:"bonusId"`
|
||||
}
|
||||
|
||||
type SqsActionWebSocketInitContent struct {
|
||||
Userno string `json:"userno"`
|
||||
ConnectId string `json:"userno"`
|
||||
}
|
||||
|
||||
type SqsActionSaveBonusContent struct {
|
||||
Userno string `json:"userno"`
|
||||
BonusCategory int32 `json:"bonusCategory"`
|
||||
BonusType int32 `json:"bonusType"`
|
||||
BonusDetail string `json:"bonusDetail"`
|
||||
SourceId string `json:"sourceId"`
|
||||
DoneValue string `json:"doneValue"`
|
||||
BonusAmount string `json:"bonusAmount"`
|
||||
ClaimTime int64 `json:"claimTime"`
|
||||
}
|
||||
|
||||
type SqsActionGenDepositDailyClaimContent struct {
|
||||
UserPromotionId uint64 `json:"userPromotionId"`
|
||||
}
|
||||
|
||||
type SqsActionDeductWithdrawLimitAfterTransferContent struct {
|
||||
Userno string `json:"userno"`
|
||||
BetOrderno string `json:"betOrderno"`
|
||||
ValidBetAmount decimal.Decimal `json:"validBetAmount"`
|
||||
ProviderId int32 `json:"providerId"`
|
||||
SourceType int32 `json:"sourceType"` // WalletRecordSourceType
|
||||
}
|
||||
|
||||
func (m SqsMessage) Json() (string, error) {
|
||||
marshal, err := json.Marshal(m)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(marshal), nil
|
||||
}
|
||||
|
||||
72
service/account/account.go
Normal file
72
service/account/account.go
Normal file
@ -0,0 +1,72 @@
|
||||
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))
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user