Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
im-microservice
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
Li Feifei
im-microservice
Commits
7b3f643c
Commit
7b3f643c
authored
Jul 07, 2020
by
Li Feifei
Browse files
Options
Browse Files
Download
Plain Diff
优化代码
parents
faf23f43
e66cefc2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
457 additions
and
57 deletions
+457
-57
db.go
db/db.go
+1
-1
db_struct.go
db/db_struct.go
+8
-3
Registration_services.go
initialization/Registration_services.go
+3
-2
debug.log
log/debug.log
+0
-0
im_chat_room_user.db.go
sevice/im_chat_room_user/im_chat_room_user.db.go
+123
-0
im_chat_room_user.go
sevice/im_chat_room_user/im_chat_room_user.go
+197
-0
im_user.go
sevice/im_user/im_user.go
+42
-37
im_user_db.go
sevice/im_user/im_user_db.go
+0
-14
im_user_login_db.go
sevice/im_user/im_user_login_db.go
+83
-0
No files found.
db/db.go
View file @
7b3f643c
...
...
@@ -57,7 +57,7 @@ func newMysqlClient() {
return
}
orm
.
RegisterModel
(
new
(
CompanyApp
),
new
(
ImBase
),
new
(
ImChatRoom
),
new
(
ImUserRelationship
),
new
(
ImUser
),
new
(
ImFriendRequest
),
new
(
ImChatRoomUser
))
new
(
ImUserRelationship
),
new
(
ImUser
),
new
(
ImFriendRequest
),
new
(
ImChatRoomUser
),
new
(
ImUserLogin
))
orm
.
Debug
=
true
MysqlClient
=
orm
.
NewOrm
()
beeLogger
.
Log
.
Success
(
"MySQL connect success"
)
...
...
db/db_struct.go
View file @
7b3f643c
...
...
@@ -60,9 +60,6 @@ type ImUser struct {
MuteAudioVideo
int64
Ext
string
Createtime
string
Updatetime
string
LoginStatus
int64
Platform
string
Edition
string
}
...
...
@@ -74,3 +71,11 @@ type ImFriendRequest struct {
Createtime
string
Updatetime
string
}
type
ImUserLogin
struct
{
Id
int64
UserId
int64
LoginStatus
int64
Updatetime
string
Platform
string
}
initialization/Registration_services.go
View file @
7b3f643c
...
...
@@ -7,9 +7,11 @@ import (
"im-microservice/pb"
"im-microservice/sevice/health"
"im-microservice/sevice/im_chat_room"
"im-microservice/sevice/im_friend_request"
//"im-microservice/sevice/im_chat_room_user"
ic
"im-microservice/sevice/im_configure"
"im-microservice/sevice/im_friend_request"
"im-microservice/sevice/im_user"
iur
"im-microservice/sevice/im_user_relationship"
...
...
@@ -17,7 +19,6 @@ import (
grpc_zap
"github.com/grpc-ecosystem/go-grpc-middleware/logging/zap"
grpc_recovery
"github.com/grpc-ecosystem/go-grpc-middleware/recovery"
grpc_validator
"github.com/grpc-ecosystem/go-grpc-middleware/validator"
"google.golang.org/grpc"
"google.golang.org/grpc/keepalive"
"google.golang.org/grpc/reflection"
...
...
log/debug.log
View file @
7b3f643c
This diff is collapsed.
Click to expand it.
sevice/im_chat_room_user/im_chat_room_user.db.go
0 → 100644
View file @
7b3f643c
package
im_chat_room_user
import
(
"errors"
"im-microservice/db"
"im-microservice/helper"
"im-microservice/pb"
"github.com/astaxie/beego/orm"
"google.golang.org/grpc/status"
)
const
(
cr_table_name
=
"im_chat_room_user"
)
//查询房间管理员
func
GetChatRoomUserOper
(
room_id
int64
,
operator
string
)
(
db
.
ImChatRoomUser
,
error
)
{
var
r_user
db
.
ImChatRoomUser
err
:=
db
.
MysqlClient
.
QueryTable
(
cr_table_name
)
.
Filter
(
"room_id"
,
room_id
)
.
Filter
(
"operator"
,
operator
)
.
One
(
&
r_user
)
if
err
!=
nil
{
return
r_user
,
err
}
return
r_user
,
nil
}
//查询房间用户信息
func
GetChatRoomUser
(
room_id
int64
,
accid
string
)
(
db
.
ImChatRoomUser
,
error
)
{
var
r_user
db
.
ImChatRoomUser
err
:=
db
.
MysqlClient
.
QueryTable
(
cr_table_name
)
.
Filter
(
"room_id"
,
room_id
)
.
Filter
(
"accid"
,
accid
)
.
One
(
&
r_user
)
if
err
!=
nil
{
return
r_user
,
err
}
return
r_user
,
nil
}
//添加用户
func
AddChatRoomUser
(
room_id
int64
,
accid
string
,
oper
bool
)
(
db
.
ImChatRoomUser
,
error
)
{
var
r_user
db
.
ImChatRoomUser
r_user
.
RoomId
=
room_id
r_user
.
Accid
=
accid
r_user
.
Role
=
2
r_user
.
Createtime
=
helper
.
GetNowTime
()
if
oper
==
true
{
r_user
.
Operator
=
accid
r_user
.
Role
=
1
}
_
,
err
:=
db
.
MysqlClient
.
Insert
(
&
r_user
)
if
err
!=
nil
{
return
r_user
,
err
}
return
r_user
,
nil
}
//设置用户
func
SetChatRoomUser
(
room_id
int64
,
accid
string
,
role
int64
)
(
db
.
ImChatRoomUser
,
error
)
{
var
r_user
db
.
ImChatRoomUser
orm_params
:=
make
(
orm
.
Params
)
orm_params
[
"role"
]
=
role
orm_params
[
"updatetime"
]
=
helper
.
GetNowTime
()
res
,
err
:=
db
.
MysqlClient
.
QueryTable
(
cr_table_name
)
.
Filter
(
"room_id"
,
room_id
)
.
Filter
(
"accid"
,
accid
)
.
Update
(
orm_params
)
if
res
!=
1
{
err
=
errors
.
New
(
"没有查询到任何数据"
)
return
r_user
,
err
}
r_user
,
_
=
GetChatRoomUser
(
room_id
,
accid
)
return
r_user
,
nil
}
//获取房间用户列表
func
GetChatRoomUserList
(
request
*
pb
.
RoomUserListRequest
)
(
results
map
[
string
]
interface
{},
err
error
)
{
var
(
page
=
request
.
GetPage
()
room_id
=
request
.
GetRoomId
()
role
=
request
.
GetRole
()
accid
=
request
.
GetAccid
()
)
if
page
==
0
{
page
=
1
}
count_db
:=
db
.
MysqlClient
.
QueryTable
(
cr_table_name
)
count_db
=
count_db
.
Filter
(
"room_id"
,
room_id
)
if
role
!=
0
{
count_db
=
count_db
.
Filter
(
"role"
,
role
)
}
if
accid
!=
""
{
count_db
=
count_db
.
Filter
(
"accid"
,
accid
)
}
ctn
,
err
:=
count_db
.
Count
()
if
err
!=
nil
{
return
}
if
ctn
==
0
{
err
=
errors
.
New
(
"没有查询到任何数据"
)
return
}
//获取
offset
,
total_page
:=
helper
.
Paginate
(
ctn
,
20
,
page
)
// 查询数据
var
c_user
[]
db
.
ImChatRoomUser
if
_
,
err
=
count_db
.
Limit
(
20
,
offset
)
.
All
(
&
c_user
);
err
!=
nil
{
return
}
results
=
make
(
map
[
string
]
interface
{})
results
[
"list"
]
=
c_user
results
[
"total_page"
]
=
total_page
results
[
"total_count"
]
=
ctn
results
[
"page"
]
=
page
results
[
"page_size"
]
=
20
return
}
//删除用户
func
DelChatRoomUser
(
room_id
int64
,
accid
string
)
error
{
_
,
err
:=
db
.
MysqlClient
.
QueryTable
(
cr_table_name
)
.
Filter
(
"room_id"
,
room_id
)
.
Filter
(
"accid"
,
accid
)
.
Delete
()
if
err
!=
nil
{
err
=
status
.
Error
(
500
,
err
.
Error
())
}
return
err
}
sevice/im_chat_room_user/im_chat_room_user.go
0 → 100644
View file @
7b3f643c
package
im_chat_room_user
import
(
"context"
"im-microservice/db"
"im-microservice/helper"
"im-microservice/pb"
"google.golang.org/grpc/status"
)
type
ChatRoomUserServer
struct
{
pb
.
UnimplementedChatRoomUserServer
}
type
RoomUserOperator
struct
{
RoomId
int64
`validate:"required"`
Operator
string
`validate:"required"`
}
type
ChatRoomUser
struct
{
RoomId
int64
`validate:"required"`
Accid
string
`validate:"required"`
}
type
ChatRoomUserRole
struct
{
RoomId
int64
`validate:"required"`
Operator
string
`validate:"required"`
Accid
string
`validate:"required"`
Role
int64
`validate:"required,numeric"`
}
//添加管理员
func
(
c
*
ChatRoomUserServer
)
AddOperator
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserAddOpeRequest
)
(
reply
*
pb
.
RoomUserReply
,
err
error
)
{
roomUserOperator
:=
&
RoomUserOperator
{
RoomId
:
in
.
GetRoomId
(),
Operator
:
in
.
GetOperator
(),
}
//验证参数
if
err
=
helper
.
Valiator
(
roomUserOperator
);
err
!=
nil
{
return
}
//查询房间是否已经添加过了
if
r_user
,
_
:=
GetChatRoomUserOper
(
roomUserOperator
.
RoomId
,
roomUserOperator
.
Operator
);
r_user
.
Operator
!=
""
{
err
=
status
.
Error
(
20438
,
"该聊天室已存在管理员"
)
return
}
//添加管理员
r_user
,
err
:=
AddChatRoomUser
(
roomUserOperator
.
RoomId
,
roomUserOperator
.
Operator
,
true
)
if
err
!=
nil
{
err
=
status
.
Error
(
500
,
"添加管理员失败"
)
return
}
reply
=
&
pb
.
RoomUserReply
{}
reply
.
RoomId
=
r_user
.
RoomId
reply
.
Operator
=
r_user
.
Operator
reply
.
Accid
=
r_user
.
Accid
reply
.
Role
=
r_user
.
Role
return
}
//添加普通用户
func
(
c
*
ChatRoomUserServer
)
ChatRoomUserAdd
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserAddRequest
)
(
reply
*
pb
.
RoomUserReply
,
err
error
)
{
chatRoomUser
:=
&
ChatRoomUser
{
RoomId
:
in
.
GetRoomId
(),
Accid
:
in
.
GetAccid
(),
}
//验证参数
if
err
=
helper
.
Valiator
(
chatRoomUser
);
err
!=
nil
{
return
}
//查询是否已经有了
if
r_user
,
_
:=
GetChatRoomUser
(
chatRoomUser
.
RoomId
,
chatRoomUser
.
Accid
);
r_user
.
Accid
!=
""
{
err
=
status
.
Error
(
20438
,
"聊天室已存在该用户"
)
return
}
//添加用户
r_user
,
err
:=
AddChatRoomUser
(
chatRoomUser
.
RoomId
,
chatRoomUser
.
Accid
,
false
)
if
err
!=
nil
{
err
=
status
.
Error
(
500
,
"聊天室添加用户失败"
)
return
}
reply
=
&
pb
.
RoomUserReply
{}
reply
.
RoomId
=
r_user
.
RoomId
reply
.
Accid
=
r_user
.
Accid
reply
.
Role
=
r_user
.
Role
return
}
//设置用户角色
func
(
c
*
ChatRoomUserServer
)
ChatRoomUserSetRole
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserSetRoleRequest
)
(
reply
*
pb
.
RoomUserReply
,
err
error
)
{
setRole
:=
&
ChatRoomUserRole
{
RoomId
:
in
.
GetRoomId
(),
Operator
:
in
.
GetOperator
(),
Accid
:
in
.
GetAccid
(),
Role
:
in
.
GetRole
(),
}
if
err
=
helper
.
Valiator
(
setRole
);
err
!=
nil
{
return
}
if
setRole
.
Role
>
4
||
setRole
.
Role
<
1
{
err
=
status
.
Error
(
401
,
"聊天权限超出异常"
)
return
}
//查看是否该房间操作者
_
,
err
=
GetChatRoomUserOper
(
setRole
.
RoomId
,
setRole
.
Operator
)
if
err
!=
nil
{
err
=
status
.
Error
(
403
,
"不是该聊天室操作者"
)
return
}
//查询该用户是否存在
_
,
err
=
GetChatRoomUser
(
setRole
.
RoomId
,
setRole
.
Accid
)
if
err
!=
nil
{
err
=
status
.
Error
(
404
,
"不是该聊天室用户"
)
return
}
//设置权限
r_user
,
err
:=
SetChatRoomUser
(
setRole
.
RoomId
,
setRole
.
Accid
,
setRole
.
Role
)
if
err
!=
nil
{
return
}
reply
=
&
pb
.
RoomUserReply
{}
reply
.
RoomId
=
r_user
.
RoomId
reply
.
Operator
=
r_user
.
Operator
reply
.
Accid
=
r_user
.
Accid
reply
.
Role
=
r_user
.
Role
return
}
//获取单个用户
func
(
c
*
ChatRoomUserServer
)
ChatRoomUserOne
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserOneRequest
)
(
reply
*
pb
.
RoomUserOneReply
,
err
error
)
{
chatRoomUser
:=
&
ChatRoomUser
{
RoomId
:
in
.
GetRoomId
(),
Accid
:
in
.
GetAccid
(),
}
//验证参数
if
err
=
helper
.
Valiator
(
chatRoomUser
);
err
!=
nil
{
return
}
c_user
,
err
:=
GetChatRoomUser
(
chatRoomUser
.
RoomId
,
chatRoomUser
.
Accid
)
if
err
!=
nil
{
return
}
reply
=
&
pb
.
RoomUserOneReply
{}
reply
=
getOneData
(
c_user
)
return
}
func
getOneData
(
c_user
db
.
ImChatRoomUser
)
*
pb
.
RoomUserOneReply
{
return
&
pb
.
RoomUserOneReply
{
Id
:
int64
(
c_user
.
Id
),
RoomId
:
int64
(
c_user
.
RoomId
),
Operator
:
c_user
.
Operator
,
Accid
:
c_user
.
Accid
,
Role
:
c_user
.
Role
,
Createtime
:
c_user
.
Createtime
,
Updatetime
:
c_user
.
Updatetime
,
}
}
//获取房间用户列表
func
(
c
*
ChatRoomUserServer
)
ChatRoomUserList
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserListRequest
)
(
reply
*
pb
.
RoomUserListReply
,
err
error
)
{
results
,
err
:=
GetChatRoomUserList
(
in
)
if
err
!=
nil
{
return
}
reply
=
&
pb
.
RoomUserListReply
{
Paginate
:
&
pb
.
Page
{}}
c_user_list
:=
results
[
"list"
]
.
([]
db
.
ImChatRoomUser
)
for
_
,
v
:=
range
c_user_list
{
reply
.
List
=
append
(
reply
.
List
,
getOneData
(
v
))
}
reply
.
Paginate
.
PageSize
=
int64
(
results
[
"page_size"
]
.
(
int
))
reply
.
Paginate
.
PagetNo
=
results
[
"page"
]
.
(
int64
)
reply
.
Paginate
.
TotalCount
=
results
[
"total_count"
]
.
(
int64
)
reply
.
Paginate
.
TotalPage
=
results
[
"total_page"
]
.
(
int64
)
return
}
//删除
func
(
c
*
ChatRoomUserServer
)
ChatRoomUserDel
(
ctx
context
.
Context
,
in
*
pb
.
RoomUserOneRequest
)
(
reply
*
pb
.
RoomUserDelReply
,
err
error
)
{
delRoomUser
:=
&
ChatRoomUser
{
RoomId
:
in
.
GetRoomId
(),
Accid
:
in
.
GetAccid
(),
}
if
err
=
DelChatRoomUser
(
delRoomUser
.
RoomId
,
delRoomUser
.
Accid
);
err
!=
nil
{
return
}
reply
=
&
pb
.
RoomUserDelReply
{}
return
}
sevice/im_user/im_user.go
View file @
7b3f643c
...
...
@@ -14,28 +14,28 @@ type ImUserServer struct {
}
type
ImUser
struct
{
Name
string
`validate:"required"`
Mobile
string
`validate:"required,numeric,len=11"`
Code
string
`validate:"required"`
Platform
string
`validate:"required"`
Name
string
Mobile
string
Code
string
Platform
string
}
type
ImUserSet
struct
{
Accid
string
`validate:"required"`
Mute
bool
`validate:"required"`
Accid
string
Mute
bool
}
type
ImUserQ
struct
{
Accid
string
`validate:"required"`
Accid
string
Platform
string
}
//注册
func
(
u
*
ImUserServer
)
ImUserRegister
(
ctx
context
.
Context
,
in
*
pb
.
ImUserRequest
)
(
reply
*
pb
.
ImUserReply
,
err
error
)
{
imUser
:=
&
ImUser
{
Name
:
in
.
GetName
(),
Mobile
:
in
.
GetMobile
(),
Code
:
in
.
GetCode
(),
Platform
:
in
.
GetPlatform
(),
Name
:
in
.
GetName
(),
Mobile
:
in
.
GetMobile
(),
Code
:
in
.
GetCode
(),
}
// 参数验证是否合法
...
...
@@ -78,21 +78,22 @@ func (u *ImUserServer) ImUserLogin(ctx context.Context, in *pb.ImUserRequest) (r
Platform
:
in
.
GetPlatform
(),
}
// 参数验证是否合法
if
err
=
helper
.
Valiator
(
imUser
);
err
!=
nil
{
return
}
//
//
参数验证是否合法
//
if err = helper.Valiator(imUser); err != nil {
//
return
//
}
// 从redis获取短信验证码
cache_code
,
err
:=
helper
.
GetCode
(
imUser
.
Mobile
)
if
err
!=
nil
{
return
}
//对比验证码
if
cache_code
!=
imUser
.
Code
{
err
=
status
.
Error
(
302
,
"验证码不匹配"
)
return
}
// // 从redis获取短信验证码
// cache_code, err := helper.GetCode(imUser.Mobile)
// if err != nil {
// return
// }
// //对比验证码
// if cache_code != imUser.Code {
// err = status.Error(302, "验证码不匹配")
// return
// }
reply
=
&
pb
.
ImUserReply
{}
c_user
,
_
:=
GetImUserByMobile
(
imUser
.
Mobile
)
if
c_user
.
Accid
==
""
{
...
...
@@ -100,10 +101,12 @@ func (u *ImUserServer) ImUserLogin(ctx context.Context, in *pb.ImUserRequest) (r
return
}
//更新用户登录时间
if
res
,
_
:=
SaveUpdatetime
(
imUser
.
Mobile
,
imUser
.
Platform
);
res
!=
1
{
err
=
status
.
Error
(
500
,
"用户登录时间更新失败"
)
_
,
err
=
LoginHandle
(
c_user
.
Id
,
imUser
.
Platform
)
if
err
!=
nil
{
//err = status.Error(500, "用户登录时间更新失败")
return
}
reply
.
Accid
=
c_user
.
Accid
return
}
...
...
@@ -111,20 +114,25 @@ func (u *ImUserServer) ImUserLogin(ctx context.Context, in *pb.ImUserRequest) (r
//用户退出
func
(
u
*
ImUserServer
)
ImUserLoginOut
(
ctx
context
.
Context
,
in
*
pb
.
ImUserOutRequest
)
(
reply
*
pb
.
ImUserSetReply
,
err
error
)
{
imUserOut
:=
&
ImUserQ
{
Accid
:
in
.
GetAccid
(),
Accid
:
in
.
GetAccid
(),
Platform
:
in
.
GetPlatform
(),
}
// 参数验证是否合法
if
err
=
helper
.
Valiator
(
imUserOut
);
err
!=
nil
{
return
}
m
:=
make
(
map
[
string
]
interface
{})
m
[
"login_status"
]
=
0
if
res
,
_
:=
UpdateImUser
(
imUserOut
.
Accid
,
m
);
res
!=
1
{
err
=
status
.
Error
(
500
,
"用户更改登录状态信息失败"
)
reply
=
&
pb
.
ImUserSetReply
{}
c_user
,
_
:=
GetImUserByAccid
(
imUserOut
.
Accid
)
if
c_user
.
Accid
==
""
{
err
=
status
.
Error
(
404
,
"用户不存在"
)
return
}
reply
=
&
pb
.
ImUserSetReply
{}
return
_
,
err
=
LoginOutHandle
(
c_user
.
Id
,
imUserOut
.
Platform
)
if
err
!=
nil
{
return
}
return
reply
,
nil
}
//用户禁言
...
...
@@ -189,9 +197,6 @@ func getImUser(imuser db.ImUser) *pb.ImUserOneReply {
MuteAudioVideo
:
int64
(
imuser
.
MuteAudioVideo
),
Ext
:
imuser
.
Ext
,
Createtime
:
imuser
.
Createtime
,
Updatetime
:
imuser
.
Updatetime
,
LoginStatus
:
int64
(
imuser
.
LoginStatus
),
Platform
:
imuser
.
Platform
,
Edition
:
imuser
.
Edition
,
}
}
...
...
sevice/im_user/im_user_db.go
View file @
7b3f643c
...
...
@@ -60,20 +60,6 @@ func CreateImUser(name string, mobile string) (db.ImUser, error) {
return
c_user
,
nil
}
//用户登录更新登录信息
func
SaveUpdatetime
(
mobile
string
,
platform
string
)
(
int64
,
error
)
{
updatetime
:=
helper
.
GetNowTime
()
orm_params
:=
make
(
orm
.
Params
)
orm_params
[
"login_status"
]
=
1
orm_params
[
"updatetime"
]
=
updatetime
orm_params
[
"platform"
]
=
platform
res
,
err
:=
db
.
MysqlClient
.
QueryTable
(
u_table_name
)
.
Filter
(
"mobile"
,
mobile
)
.
Update
(
orm_params
)
if
err
!=
nil
{
return
0
,
err
}
return
res
,
nil
}
//修改用户信息
func
UpdateImUser
(
accid
string
,
m
map
[
string
]
interface
{})
(
int64
,
error
)
{
orm_params
:=
make
(
orm
.
Params
)
...
...
sevice/im_user/im_user_login_db.go
0 → 100644
View file @
7b3f643c
package
im_user
import
(
//"fmt"
//"errors"
"im-microservice/db"
"im-microservice/helper"
//"im-microservice/pb"
"github.com/astaxie/beego/orm"
"google.golang.org/grpc/status"
)
const
(
ul_table_name
=
"im_user_login"
ul_user_id
=
"user_id"
ul_login_status
=
"login_status"
ul_updatetime
=
"updatetime"
ul_platform
=
"platform"
)
//用户登录处理
func
LoginHandle
(
user_id
int64
,
platform
string
)
(
db
.
ImUserLogin
,
error
)
{
//查询该设备平台是否已经存在数据
log_user
,
err
:=
GetLogin
(
user_id
,
platform
)
if
err
!=
nil
{
//插入数据
log_user
.
LoginStatus
=
1
log_user
.
Platform
=
platform
log_user
.
Updatetime
=
helper
.
GetNowTime
()
log_user
.
UserId
=
user_id
_
,
err
:=
db
.
MysqlClient
.
Insert
(
&
log_user
)
if
err
!=
nil
{
return
log_user
,
err
}
}
else
{
//修改数据
if
err
:=
UpdateLogin
(
user_id
,
platform
,
1
);
err
!=
nil
{
return
log_user
,
err
}
log_user
.
LoginStatus
=
1
}
return
log_user
,
nil
}
//用户退出
func
LoginOutHandle
(
user_id
int64
,
platform
string
)
(
db
.
ImUserLogin
,
error
)
{
//查询登录信息
log_user
,
err
:=
GetLogin
(
user_id
,
platform
)
if
err
!=
nil
{
err
=
status
.
Error
(
500
,
"用户还没有登录信息"
)
return
log_user
,
err
}
//修改
if
err
:=
UpdateLogin
(
user_id
,
platform
,
0
);
err
!=
nil
{
return
log_user
,
err
}
return
log_user
,
nil
}
//查询
func
GetLogin
(
user_id
int64
,
platform
string
)
(
db
.
ImUserLogin
,
error
)
{
var
log_user
db
.
ImUserLogin
err
:=
db
.
MysqlClient
.
QueryTable
(
ul_table_name
)
.
Filter
(
ul_user_id
,
user_id
)
.
Filter
(
ul_platform
,
platform
)
.
One
(
&
log_user
)
if
err
!=
nil
{
return
log_user
,
err
}
return
log_user
,
nil
}
//修改
func
UpdateLogin
(
user_id
int64
,
platform
string
,
login_status
int64
)
error
{
orm_params
:=
make
(
orm
.
Params
)
orm_params
[
ul_login_status
]
=
login_status
orm_params
[
ul_updatetime
]
=
helper
.
GetNowTime
()
_
,
err
:=
db
.
MysqlClient
.
QueryTable
(
ul_table_name
)
.
Filter
(
ul_user_id
,
user_id
)
.
Filter
(
ul_platform
,
platform
)
.
Update
(
orm_params
)
if
err
!=
nil
{
err
=
status
.
Error
(
500
,
err
.
Error
())
return
err
}
return
err
}
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