group_info.go 2.19 KB
Newer Older
hujiebin's avatar
hujiebin committed
1 2 3 4 5
package groupPower_m

import (
	"git.hilo.cn/hilo-common/domain"
	"git.hilo.cn/hilo-common/resource/mysql"
hujiebin's avatar
hujiebin committed
6
	"git.hilo.cn/hilo-common/utils"
hujiebin's avatar
hujiebin committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
)

type GroupPowerInfo struct {
	mysql.Entity
	GroupUid    string
	Name        string
	Nameplate   string
	Declaration string
	Icon        string
	Status      int
}

func (GroupPowerInfo) TableName() string {
	return "group_power"
}

// 批量获取家族信息
func MGetGroupPowerInfoMap(model *domain.Model, groupPowerIds []mysql.ID) (map[mysql.ID]GroupPowerInfo, error) {
	var rows []GroupPowerInfo
	res := make(map[mysql.ID]GroupPowerInfo)
	if err := model.DB().Model(GroupPowerInfo{}).Where("id in ?", groupPowerIds).Find(&rows).Error; err != nil {
		model.Log.Errorf("MGetGroupPowerInfo fail:%v", err)
		return res, err
	}
hujiebin's avatar
hujiebin committed
31
	for i, v := range rows {
hujiebin's avatar
hujiebin committed
32
		rows[i].Icon = utils.MakeFullUrl(rows[i].Icon) // 拼接url
hujiebin's avatar
hujiebin committed
33 34
		res[v.ID] = rows[i]
	}
hujiebin's avatar
hujiebin committed
35 36
	return res, nil
}
hujiebin's avatar
hujiebin committed
37 38 39 40 41 42 43 44 45 46 47 48 49 50

// 批量获取家族成员
func MGetGroupPowerUsers(model *domain.Model, groupPowerIds []mysql.ID) (map[mysql.ID][]*GroupPowerUser, error) {
	var users []*GroupPowerUser
	res := make(map[mysql.ID][]*GroupPowerUser)
	if err := model.DB().Model(GroupPowerUser{}).Where("group_power_id in ?", groupPowerIds).Find(&users).Error; err != nil {
		model.Log.Errorf("MGetGroupPowerUsers fail:%v", err)
		return res, err
	}
	for i, v := range users {
		res[v.GroupPowerId] = append(res[v.GroupPowerId], users[i])
	}
	return res, nil
}
hujiebin's avatar
hujiebin committed
51 52 53 54 55 56 57 58 59

// 获取家族成员
func GetGroupPowerUser(model *domain.Model, groupPowerId mysql.ID) ([]*GroupPowerUser, error) {
	m, err := MGetGroupPowerUsers(model, []mysql.ID{groupPowerId})
	if err != nil {
		return nil, err
	}
	return m[groupPowerId], nil
}
hujiebin's avatar
hujiebin committed
60

61 62 63
// 分批获取所有家族成员
func BatchGetAllGroupPowerUsers(model *domain.Model, lastId mysql.ID, limit int) ([]mysql.ID, mysql.ID, error) {
	var res []GroupPowerUser
hujiebin's avatar
hujiebin committed
64
	var userIds []mysql.ID
65 66 67 68 69
	var nextLastId mysql.ID
	if err := model.DB().Model(GroupPowerUser{}).
		Where("id > ?", lastId).Order("id asc").Limit(limit).Find(&res).Error; err != nil {
		model.Log.Errorf("BatchGetAllGroupPowerUsers fail:%v", err)
		return userIds, 0, err
hujiebin's avatar
hujiebin committed
70
	}
71 72 73 74 75
	for _, v := range res {
		userIds = append(userIds, v.UserId)
		nextLastId = v.ID
	}
	return userIds, nextLastId, nil
hujiebin's avatar
hujiebin committed
76
}