Files
open-im-server/pkg/common/db/mysql/friend_model.go
T

84 lines
2.6 KiB
Go
Raw Normal View History

2023-01-16 20:14:26 +08:00
package mysql
2021-05-26 19:32:30 +08:00
import (
2022-09-02 02:01:42 +08:00
"fmt"
2021-05-26 19:32:30 +08:00
"time"
)
2023-01-04 17:22:55 +08:00
func InsertToFriend(toInsertFollow *Friend) error {
2021-12-26 18:47:11 +08:00
toInsertFollow.CreateTime = time.Now()
2023-01-11 16:23:16 +08:00
err := FriendDB.Table("friends").Create(toInsertFollow).Error
2021-05-26 19:32:30 +08:00
if err != nil {
return err
}
return nil
}
2023-01-04 17:22:55 +08:00
func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, error) {
var friend Friend
2023-01-11 16:23:16 +08:00
err := FriendDB.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Take(&friend).Error
2021-05-26 19:32:30 +08:00
if err != nil {
return nil, err
}
return &friend, err
}
2023-01-04 17:22:55 +08:00
func GetFriendListByUserID(OwnerUserID string) ([]Friend, error) {
var friends []Friend
var x Friend
2022-01-04 12:56:10 +08:00
x.OwnerUserID = OwnerUserID
2023-01-11 16:23:16 +08:00
err := FriendDB.Table("friends").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error
2021-05-26 19:32:30 +08:00
if err != nil {
return nil, err
}
return friends, nil
}
2022-04-25 20:20:34 +08:00
func GetFriendIDListByUserID(OwnerUserID string) ([]string, error) {
var friendIDList []string
2023-01-11 16:23:16 +08:00
err := FriendDB.Table("friends").Where("owner_user_id=?", OwnerUserID).Pluck("friend_user_id", &friendIDList).Error
2022-04-15 17:43:04 +08:00
if err != nil {
return nil, err
}
return friendIDList, nil
}
2021-12-26 18:47:11 +08:00
func UpdateFriendComment(OwnerUserID, FriendUserID, Remark string) error {
2023-01-11 16:23:16 +08:00
return FriendDB.Exec("update friends set remark=? where owner_user_id=? and friend_user_id=?", Remark, OwnerUserID, FriendUserID).Error
2021-05-26 19:32:30 +08:00
}
2021-12-26 18:47:11 +08:00
func DeleteSingleFriendInfo(OwnerUserID, FriendUserID string) error {
2023-01-11 16:23:16 +08:00
return FriendDB.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(Friend{}).Error
2021-05-26 19:32:30 +08:00
}
2022-09-02 02:01:42 +08:00
type FriendUser struct {
2023-01-04 17:22:55 +08:00
Friend
2022-09-02 02:01:42 +08:00
Nickname string `gorm:"column:name;size:255"`
}
2022-09-02 14:57:08 +08:00
func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumber int32) (friendUserList []*FriendUser, count int64, err error) {
2023-01-11 16:23:16 +08:00
db := FriendDB.Table("friends").
2022-09-02 02:01:42 +08:00
Select("friends.*, users.name").
Where("friends.owner_user_id=?", ownerUserID).Limit(int(showNumber)).
2022-09-02 11:35:20 +08:00
Joins("left join users on friends.friend_user_id = users.user_id").
2022-09-02 02:01:42 +08:00
Offset(int(showNumber * (pageNumber - 1)))
if friendUserName != "" {
db = db.Where("users.name like ?", fmt.Sprintf("%%%s%%", friendUserName))
}
2022-09-02 14:57:08 +08:00
if err = db.Count(&count).Error; err != nil {
return
}
2022-09-02 02:01:42 +08:00
err = db.Find(&friendUserList).Error
return
}
func GetFriendByIDCMS(ownerUserID, friendUserID string) (friendUser *FriendUser, err error) {
friendUser = &FriendUser{}
2023-01-11 16:23:16 +08:00
err = FriendDB.Table("friends").
2022-09-02 02:01:42 +08:00
Select("friends.*, users.name").
Where("friends.owner_user_id=? and friends.friend_user_id=?", ownerUserID, friendUserID).
2022-09-02 11:26:25 +08:00
Joins("left join users on friends.friend_user_id = users.user_id").
2022-09-02 02:01:42 +08:00
Take(friendUser).Error
return friendUser, err
}