Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
aon-tg-messenger
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
aon-tg-messenger
Commits
dfd50055
Commit
dfd50055
authored
Oct 09, 2024
by
贾浩@五瓣科技
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update dbmodel
parent
8937e78e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
29 deletions
+39
-29
db.go
dao/db.go
+7
-7
messenger.go
messenger/messenger.go
+25
-17
db.go
model/db/db.go
+7
-5
No files found.
dao/db.go
View file @
dfd50055
...
...
@@ -45,19 +45,19 @@ func (d *Dao) GetUserActiveMsgCount(userId, chatId, unixDay int) (count int, err
return
a
.
MsgCount
,
err
}
func
(
d
*
Dao
)
UserExist
(
userId
,
chatId
int
)
(
exist
bool
,
username
string
,
err
error
)
{
a
:=
dbModel
.
User
{}
func
(
d
*
Dao
)
UserExist
(
userId
,
chatId
int
)
(
dbUser
*
dbModel
.
User
,
err
error
)
{
dbUser
=
&
dbModel
.
User
{}
err
=
d
.
db
.
Model
(
&
dbModel
.
User
{})
.
Select
(
"username"
)
.
Select
(
[]
string
{
"username"
,
"first_name"
,
"last_name"
}
)
.
Where
(
"user_id = ? AND chat_id = ? AND left_at IS NULL"
,
userId
,
chatId
)
.
First
(
&
a
)
.
Error
First
(
&
dbUser
)
.
Error
if
err
==
gorm
.
ErrRecordNotFound
{
return
false
,
""
,
nil
return
nil
,
nil
}
return
err
==
nil
,
a
.
Username
,
err
return
dbUser
,
err
}
func
(
d
*
Dao
)
UpdateUserName
(
userId
,
chatId
int
,
username
string
)
(
err
error
)
{
func
(
d
*
Dao
)
UpdateUserName
(
userId
,
chatId
int
,
username
,
firstName
,
lastName
string
)
(
err
error
)
{
return
d
.
db
.
Model
(
&
dbModel
.
User
{})
.
Where
(
"user_id = ? AND chat_id = ? AND left_at IS NULL"
,
userId
,
chatId
)
.
Update
(
"username"
,
username
)
.
Error
...
...
messenger/messenger.go
View file @
dfd50055
...
...
@@ -44,7 +44,6 @@ func (m *Messenger) Start() {
log
.
WithField
(
"chat_id"
,
update
.
Message
.
Chat
.
ID
)
.
Debug
(
"not supported chat"
)
continue
}
var
caught
bool
caught
=
m
.
handleUserLeft
(
update
.
Message
)
if
caught
{
...
...
@@ -105,9 +104,11 @@ func (m *Messenger) handleNewUser(msg *tgbotapi.Message) (caught bool) {
}
user
:=
&
dbModel
.
User
{
UserId
:
int
(
user
.
ID
),
ChatId
:
int
(
msg
.
Chat
.
ID
),
Username
:
user
.
UserName
,
UserId
:
int
(
user
.
ID
),
ChatId
:
int
(
msg
.
Chat
.
ID
),
Username
:
user
.
UserName
,
FirstName
:
user
.
FirstName
,
LastName
:
user
.
LastName
,
}
if
err
:=
m
.
d
.
CreateUser
(
user
);
err
!=
nil
{
log
.
WithError
(
err
)
.
Error
(
"create user error"
)
...
...
@@ -148,8 +149,8 @@ func (m *Messenger) handleUserLeft(msg *tgbotapi.Message) (caught bool) {
func
(
m
*
Messenger
)
handleActive
(
msg
*
tgbotapi
.
Message
)
{
text
:=
msg
.
Text
if
len
(
text
)
>
2
0
{
text
=
text
[
:
2
0
]
+
"..."
if
len
(
text
)
>
3
0
{
text
=
text
[
:
3
0
]
+
"..."
}
log
.
WithFields
(
log
.
Fields
{
"user_id"
:
msg
.
From
.
ID
,
...
...
@@ -166,33 +167,40 @@ func (m *Messenger) handleActive(msg *tgbotapi.Message) {
return
}
exist
,
username
,
err
:=
m
.
d
.
UserExist
(
int
(
msg
.
From
.
ID
),
int
(
msg
.
Chat
.
ID
))
dbUser
,
err
:=
m
.
d
.
UserExist
(
int
(
msg
.
From
.
ID
),
int
(
msg
.
Chat
.
ID
))
if
err
!=
nil
{
log
.
WithError
(
err
)
.
Error
(
"exist user error"
)
return
}
if
err
==
nil
&&
!
exist
{
if
err
==
nil
&&
dbUser
==
nil
{
err
=
m
.
d
.
CreateUser
(
&
dbModel
.
User
{
UserId
:
int
(
msg
.
From
.
ID
),
ChatId
:
int
(
msg
.
Chat
.
ID
),
Username
:
msg
.
From
.
UserName
,
UserId
:
int
(
msg
.
From
.
ID
),
ChatId
:
int
(
msg
.
Chat
.
ID
),
Username
:
msg
.
From
.
UserName
,
FirstName
:
msg
.
From
.
FirstName
,
LastName
:
msg
.
From
.
LastName
,
})
if
err
!=
nil
{
log
.
WithError
(
err
)
.
Error
(
"create user 2 error"
)
return
}
}
if
msg
.
From
.
UserName
!=
username
&&
msg
.
From
.
UserName
!=
""
&&
exist
{
err
=
m
.
d
.
UpdateUserName
(
int
(
msg
.
From
.
ID
),
int
(
msg
.
Chat
.
ID
),
msg
.
From
.
UserName
)
if
dbUser
!=
nil
&&
(
dbUser
.
Username
!=
msg
.
From
.
UserName
||
dbUser
.
FirstName
!=
msg
.
From
.
FirstName
||
dbUser
.
LastName
!=
msg
.
From
.
LastName
)
{
err
=
m
.
d
.
UpdateUserName
(
int
(
msg
.
From
.
ID
),
int
(
msg
.
Chat
.
ID
),
msg
.
From
.
UserName
,
msg
.
From
.
FirstName
,
msg
.
From
.
LastName
)
if
err
!=
nil
{
log
.
WithError
(
err
)
.
Error
(
"update user name error"
)
return
}
log
.
WithFields
(
log
.
Fields
{
"user_id"
:
msg
.
From
.
ID
,
"chat_id"
:
msg
.
Chat
.
ID
,
"old_name"
:
username
,
"new_name"
:
msg
.
From
.
UserName
,
"user_id"
:
msg
.
From
.
ID
,
"chat_id"
:
msg
.
Chat
.
ID
,
"old_username"
:
dbUser
.
Username
,
"old_firstname"
:
dbUser
.
FirstName
,
"old_lastname"
:
dbUser
.
LastName
,
"new_username"
:
msg
.
From
.
UserName
,
"new_firstname"
:
msg
.
From
.
FirstName
,
"new_lastname"
:
msg
.
From
.
LastName
,
})
.
Debug
(
"update user name"
)
}
...
...
model/db/db.go
View file @
dfd50055
...
...
@@ -7,11 +7,13 @@ import (
)
type
User
struct
{
Id
int
`gorm:"primaryKey;autoIncrement"`
UserId
int
`gorm:"type:int;uniqueIndex:uidx_uid_cid;not null;comment:telegram用户id"`
Username
string
`gorm:"type:text;not null;comment:telegram用户名"`
ChatId
int
`gorm:"type:int;uniqueIndex:uidx_uid_cid;not null;comment:telegram群id"`
LeftAt
sql
.
NullTime
`gorm:"index;comment:退出时间"`
Id
int
`gorm:"primaryKey;autoIncrement"`
UserId
int
`gorm:"type:int;uniqueIndex:uidx_uid_cid;not null;comment:telegram用户id"`
Username
string
`gorm:"type:text;not null;comment:telegram用户名"`
FirstName
string
`gorm:"type:text;not null;comment:telegram名字"`
LastName
string
`gorm:"type:text;not null;comment:telegram姓氏"`
ChatId
int
`gorm:"type:int;uniqueIndex:uidx_uid_cid;not null;comment:telegram群id"`
LeftAt
sql
.
NullTime
`gorm:"index;comment:退出时间"`
gorm
.
Model
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment