This commit is contained in:
wangchuxiao
2022-01-25 19:18:04 +08:00
parent 82c8ace8df
commit cdc2428aca
30 changed files with 3731 additions and 1613 deletions
+1
View File
@@ -10,6 +10,7 @@ type ErrInfo struct {
var (
OK = ErrInfo{0, ""}
ErrServer = ErrInfo{500, "server error"}
// ErrMysql = ErrInfo{100, ""}
// ErrMongo = ErrInfo{110, ""}
+7 -1
View File
@@ -135,7 +135,7 @@ type GroupRequest struct {
//int64 CreateTime = 9;
//int32 AppMangerLevel = 10;
//open_im_sdk.User == imdb.User
type User struct {
type Users struct {
UserID string `gorm:"column:user_id;primary_key;size:64"`
Nickname string `gorm:"column:name;size:255"`
FaceURL string `gorm:"column:face_url;size:255"`
@@ -184,3 +184,9 @@ type ChatLog struct {
CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"`
}
type BlackList struct {
UserId string `gorm:"column:uid"`
BeginDisableTime time.Time `gorm:"column:begin_disable_time"`
EndDisableTime time.Time `gorm:"column:end_disable_time"`
}
+1 -1
View File
@@ -57,7 +57,7 @@ func initMysqlDB() {
&Group{},
&GroupMember{},
&GroupRequest{},
&User{},
&Users{},
&Black{}, &ChatLog{})
db.Set("gorm:table_options", "CHARSET=utf8")
@@ -56,3 +56,27 @@ func SetGroupInfo(groupInfo db.Group) error {
err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error
return err
}
func GetGroupByName(groupName string) (db.Group, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var group db.Group
if err != nil {
return group, err
}
dbConn.LogMode(true)
err = dbConn.Table("groups").Where("group_id=?", groupName).Find(&group).Error
return group, err
}
func GetGroups(pageNumber, showNumber int) ([]db.Group, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var groups []db.Group
if err != nil {
return groups, err
}
dbConn.LogMode(true)
err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error
if err != nil {
return groups, err
}
}
@@ -20,7 +20,7 @@ func init() {
} else {
continue
}
var appMgr db.User
var appMgr db.Users
appMgr.UserID = v
appMgr.Nickname = "AppManager" + utils.IntToString(k+1)
appMgr.AppMangerLevel = constant.AppAdmin
@@ -32,7 +32,7 @@ func init() {
}
}
func UserRegister(user db.User) error {
func UserRegister(user db.Users) error {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
@@ -68,16 +68,16 @@ func DeleteUser(userID string) (i int64) {
if err != nil {
return 0
}
i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.User{}).RowsAffected
i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.Users{}).RowsAffected
return i
}
func GetUserByUserID(userID string) (*db.User, error) {
func GetUserByUserID(userID string) (*db.Users, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return nil, err
}
var user db.User
var user db.Users
err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error
if err != nil {
return nil, err
@@ -85,7 +85,7 @@ func GetUserByUserID(userID string) (*db.User, error) {
return &user, nil
}
func UpdateUserInfo(user db.User) error {
func UpdateUserInfo(user db.Users) error {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
@@ -123,16 +123,138 @@ func SelectSomeUserID(userIDList []string) ([]string, error) {
return resultArr, nil
}
func GetUsers(showNumber, pageNumber int32) ([]User, error) {
func GetUsers(showNumber, pageNumber int32) ([]db.Users, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var users []db.Users
if err != nil {
return users, err
}
dbConn.LogMode(true)
var users []User
err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&users).Error
if err != nil {
return users, err
}
err = dbConn.Limit(showNumber).Offset(pageNumber).Find(&users).Error
if err != nil {
return users, err
}
return users, nil
return users, err
}
func GetUsersNumCount() (int, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return 0, err
}
dbConn.LogMode(true)
var count int
if err := dbConn.Model(&db.Users{}).Count(&count).Error; err != nil {
return 0, err
}
return count, nil
}
func AddUser(userId, phoneNumber, name string) error {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
}
user := db.Users{
PhoneNumber:phoneNumber,
Birth:time.Now(),
CreateTime:time.Now(),
UserID: userId,
Nickname:name,
}
result := dbConn.Create(&user)
return result.Error
}
func UserIsBlock(userId string) (bool, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return false, err
}
var user db.BlackList
rows := dbConn.Table("black_list").Where("uid=?", userId).First(&user).RowsAffected
if rows >= 1 {
return true, nil
}
return false, nil
}
func BlockUser(userId, endDisableTime string) error {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
}
end, err := time.Parse("2006-01-02 15:04:05", endDisableTime)
if err != nil {
return err
}
if end.Before(time.Now()) {
return constant.ErrDB
}
var user db.BlackList
dbConn.Table("black_list").Where("uid=?", userId).First(&user)
if user.UserId != "" {
dbConn.Model(&user).Where("uid=?", user.UserId).Update("end_disable_time", end)
return nil
}
user = db.BlackList{
UserId: userId,
BeginDisableTime: time.Now(),
EndDisableTime: end,
}
result := dbConn.Create(&user)
return result.Error
}
func UnBlockUser(userId string) error {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
}
dbConn.LogMode(true)
fmt.Println(userId)
result := dbConn.Where("uid=?", userId).Delete(&db.BlackList{})
return result.Error
}
func GetBlockUsersID(showNumber, pageNumber int32) ([]string, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var blockUsers []db.BlackList
var blockUserIds []string
if err != nil {
return blockUserIds, err
}
dbConn.LogMode(true)
err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error
if err != nil {
return blockUserIds, err
}
for _, v := range blockUsers {
blockUserIds = append(blockUserIds, v.UserId)
}
return blockUserIds, err
}
func GetBlockUsers(userIds []string) ([]db.Users, error){
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var blockUsers []db.Users
if err != nil {
return blockUsers, err
}
dbConn.LogMode(true)
dbConn.Find(&blockUsers,userIds)
return blockUsers, err
}
func GetBlockUsersNumCount() (int, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return 0, err
}
dbConn.LogMode(true)
var count int
if err := dbConn.Model(&db.BlackList{}).Count(&count).Error; err != nil {
return 0, err
}
return count, nil
}
+15 -5
View File
@@ -2,6 +2,7 @@ package http
import (
"Open_IM/pkg/common/constant"
//"Open_IM/pkg/cms_api_struct"
"net/http"
"github.com/gin-gonic/gin"
@@ -13,11 +14,20 @@ type BaseResp struct {
Data interface{} `json:"data"`
}
func RespHttp200(ctx *gin.Context, err constant.ErrInfo, data interface{}) {
resp := BaseResp{
Code: err.Code(),
ErrMsg: err.Error(),
Data: data,
func RespHttp200(ctx *gin.Context, err error, data interface{}) {
var resp BaseResp
if v, ok := err.(constant.ErrInfo); ok {
resp.Code = v.Code()
resp.ErrMsg = v.Error()
} else {
resp.Code = constant.ErrServer.Code()
resp.ErrMsg = constant.ErrServer.Error()
}
resp.Data=data
ctx.JSON(http.StatusOK, resp)
}
//func CheckErr(pb interface{}) constant.ErrInfo{
//
//}
+3 -3
View File
@@ -128,19 +128,19 @@ func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupReques
dst.HandleTime = uint32(src.HandledTime.Unix())
}
func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) {
func UserOpenIMCopyDB(dst *db.Users, src *open_im_sdk.UserInfo) {
utils.CopyStructFields(dst, src)
dst.Birth = utils.UnixSecondToTime(int64(src.Birth))
dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime))
}
func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) {
func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.Users) {
utils.CopyStructFields(dst, src)
dst.CreateTime = uint32(src.CreateTime.Unix())
dst.Birth = uint32(src.Birth.Unix())
}
func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.User) {
func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.Users) {
utils.CopyStructFields(dst, src)
}