Skip to content

Commit c3e1acc

Browse files
committed
feat: modify send api
1 parent 074232b commit c3e1acc

File tree

6 files changed

+114
-11
lines changed

6 files changed

+114
-11
lines changed

handler/v1/im/send.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"github.com/1024casts/fastim/internal/idl"
55
"github.com/gin-gonic/gin"
66

7-
"github.com/1024casts/snake/pkg/errno"
7+
"github.com/1024casts/fastim/pkg/errno"
88
"github.com/1024casts/snake/pkg/log"
99

1010
"github.com/1024casts/fastim/handler"
@@ -56,7 +56,7 @@ func Send(c *gin.Context) {
5656
YUserId := req.UserId
5757
YUser, err := userSrv.GetUserById(YUserId)
5858
if err != nil {
59-
log.Warnf("[send] get user info err: %+v, yuser_id:%d", err, YUserId)
59+
log.Warnf("[send] get user info err: %+v, yuser_id: %d", err, YUserId)
6060
handler.SendResponse(c, errno.InternalServerError, nil)
6161
return
6262
}

internal/idl/chat.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import (
44
"fmt"
55
"time"
66

7-
"github.com/1024casts/banhui/model"
7+
"github.com/1024casts/fastim/internal/model"
88
)
99

10+
// TransChatInput trans chat input data
1011
type TransChatInput struct {
11-
CurUser *model.UserModel
12-
User *model.UserModel // 对方用户信息
12+
CurUser *model.UserBaseModel
13+
User *model.UserBaseModel // 对方用户信息
1314
Msg *model.MsgModel
1415
NewMsgNum int
1516
}
1617

17-
// 组装数据并输出
18+
// TransChat 组装数据并输出
1819
// 对外暴露的user结构,都应该经过此结构进行转换
1920
func TransChat(input *TransChatInput) (*model.ChatInfo, error) {
2021
transUserInput := &TransUserInput{

internal/model/chat.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ func (c *ChatModel) TableName() string {
2020
}
2121

2222
type ChatInfo struct {
23-
//User *UserInfo `json:"user"`
24-
Msg *MsgInfo `json:"msg"`
25-
ShowTime string `json:"show_time"`
26-
NewMsgNum int `json:"new_msg_num"`
23+
User *UserInfo `json:"user"`
24+
Msg *MsgInfo `json:"msg"`
25+
ShowTime string `json:"show_time"`
26+
NewMsgNum int `json:"new_msg_num"`
2727
}
2828

2929
type UserChatList struct {

internal/model/user_base.go

+31-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package model
22

3-
import "time"
3+
import (
4+
"sync"
5+
"time"
6+
)
47

58
type UserBaseModel struct {
69
BaseModel
@@ -26,3 +29,30 @@ type UserBaseModel struct {
2629
func (u *UserBaseModel) TableName() string {
2730
return "user_base"
2831
}
32+
33+
type UserInfo struct {
34+
Id uint64 `json:"id"`
35+
Phone int `json:"phone"`
36+
Username string `json:"username"`
37+
Avatar string `json:"avatar"`
38+
Sex int `json:"sex"`
39+
PostCount int `json:"post_count"`
40+
CommentCount int `json:"comment_count"`
41+
ReplyCount int `json:"reply_count"`
42+
FeedCount int `json:"feed_count"`
43+
FollowingCount int `json:"following_count"`
44+
FollowerCount int `json:"follower_count"`
45+
ClassCount int `json:"class_count"` // 总班级数
46+
LikeCount int `json:"like_count"` // 总的喜欢数
47+
PointCount int `json:"point_count"` // 总的斑点数
48+
ActivityCount int `json:"activity_count"` // 活动数
49+
IsFollow int `json:"is_follow"` // 是否关注用户
50+
IsFollowed int `json:"is_followed"` // 是否被粉丝关注
51+
InviteStatus int `json:"invite_status"` // 邀请状态(在班级中邀请的))
52+
CreatedAt string `json:"created_at"`
53+
}
54+
55+
type UserList struct {
56+
Lock *sync.Mutex
57+
IdMap map[uint64]*UserInfo
58+
}

pkg/errno/code.go

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package errno
2+
3+
//nolint: golint
4+
var (
5+
// Common errors
6+
OK = &Errno{Code: 0, Message: "OK"}
7+
InternalServerError = &Errno{Code: 10001, Message: "Internal server error"}
8+
ErrBind = &Errno{Code: 10002, Message: "Error occurred while binding the request body to the struct."}
9+
ErrParam = &Errno{Code: 10003, Message: "参数有误"}
10+
ErrSignParam = &Errno{Code: 10004, Message: "签名参数有误"}
11+
12+
ErrValidation = &Errno{Code: 20001, Message: "Validation failed."}
13+
ErrDatabase = &Errno{Code: 20002, Message: "Database error."}
14+
ErrToken = &Errno{Code: 20003, Message: "Error occurred while signing the JSON web token."}
15+
ErrInvalidTransaction = &Errno{Code: 20004, Message: "invalid transaction."}
16+
17+
// user errors
18+
ErrEncrypt = &Errno{Code: 20101, Message: "Error occurred while encrypting the user password."}
19+
ErrUserNotFound = &Errno{Code: 20102, Message: "The user was not found."}
20+
ErrTokenInvalid = &Errno{Code: 20103, Message: "The token was invalid."}
21+
ErrPasswordIncorrect = &Errno{Code: 20104, Message: "The password was incorrect."}
22+
ErrAreaCodeEmpty = &Errno{Code: 20105, Message: "手机区号不能为空"}
23+
ErrPhoneEmpty = &Errno{Code: 20106, Message: "手机号不能为空"}
24+
ErrGenVCode = &Errno{Code: 20107, Message: "生成验证码错误"}
25+
ErrSendSMS = &Errno{Code: 20108, Message: "发送短信错误"}
26+
ErrSendSMSTooMany = &Errno{Code: 20109, Message: "已超出当日限制,请明天再试"}
27+
ErrVerifyCode = &Errno{Code: 20110, Message: "验证码错误"}
28+
ErrEmailOrPassword = &Errno{Code: 20111, Message: "邮箱或密码错误"}
29+
ErrTwicePasswordNotMatch = &Errno{Code: 20112, Message: "两次密码输入不一致"}
30+
ErrRegisterFailed = &Errno{Code: 20113, Message: "注册失败"}
31+
)

pkg/errno/errno.go

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package errno
2+
3+
import "fmt"
4+
5+
// Errno 返回错误码和消息的结构体
6+
type Errno struct {
7+
Code int
8+
Message string
9+
}
10+
11+
func (err Errno) Error() string {
12+
return err.Message
13+
}
14+
15+
// Err represents an error
16+
type Err struct {
17+
Code int
18+
Message string
19+
Err error
20+
}
21+
22+
func (err *Err) Error() string {
23+
return fmt.Sprintf("Err - code: %d, message: %s, error: %s", err.Code, err.Message, err.Err)
24+
}
25+
26+
// DecodeErr 对错误进行解码,返回错误code和错误提示
27+
func DecodeErr(err error) (int, string) {
28+
if err == nil {
29+
return OK.Code, OK.Message
30+
}
31+
32+
switch typed := err.(type) {
33+
case *Err:
34+
return typed.Code, typed.Message
35+
case *Errno:
36+
return typed.Code, typed.Message
37+
default:
38+
}
39+
40+
return InternalServerError.Code, err.Error()
41+
}

0 commit comments

Comments
 (0)