invite_apply.go 2.69 KB
Newer Older
chenweijian's avatar
chenweijian committed
1 2
package invite_m

chenweijian's avatar
chenweijian committed
3 4
import (
	"git.hilo.cn/hilo-common/domain"
chenweijian's avatar
chenweijian committed
5 6
	"git.hilo.cn/hilo-common/resource/mysql"
	"gorm.io/gorm"
chenweijian's avatar
chenweijian committed
7 8
	"time"
)
chenweijian's avatar
chenweijian committed
9 10

type InviteApply struct {
chenweijian's avatar
chenweijian committed
11 12 13 14
	Id           uint64    `json:"id"`
	UserId       uint64    `json:"user_id"`
	NewUserId    uint64    `json:"new_user_id"`
	Platform     string    `json:"platform"`
chenweijian's avatar
chenweijian committed
15
	PlatformId   string    `json:"platform_id"`
chenweijian's avatar
chenweijian committed
16 17 18 19 20
	RechargeInfo string    `json:"recharge_info"`
	Status       uint8     `json:"status"` // 状态0.未审核1.已通过2.已拒绝
	VideoUrl     string    `json:"video_url"`
	Level        string    `json:"level"`
	CreatedTime  time.Time `json:"created_time"`
chenweijian's avatar
chenweijian committed
21 22
}

chenweijian's avatar
chenweijian committed
23
func CreateInviteApply(model *domain.Model, userId, newUserId uint64, platform, platformId, recharge, videoUrl string) error {
chenweijian's avatar
chenweijian committed
24
	err := model.DB().Create(&InviteApply{
chenweijian's avatar
chenweijian committed
25
		UserId: userId, NewUserId: newUserId, Platform: platform, PlatformId: platformId, RechargeInfo: recharge, VideoUrl: videoUrl,
chenweijian's avatar
chenweijian committed
26
		CreatedTime: time.Now()}).Error
chenweijian's avatar
chenweijian committed
27 28 29 30 31 32
	if err != nil {
		model.Log.Errorf("CreateInviteApply err:%v", err)
		return err
	}
	return nil
}
chenweijian's avatar
chenweijian committed
33

chenweijian's avatar
chenweijian committed
34 35
func GetApplyList(model *domain.Model, userIds []uint64, pageIndex, pageSize, gType int, beginTime, endTime time.Time) ([]*InviteApply, int64, error) {
	db := model.DB().Model(InviteApply{}).Where("user_id in (?)", userIds).Where("created_time >= ? and created_time <= ?", beginTime, endTime)
chenweijian's avatar
chenweijian committed
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
	switch gType { // 1.已申请2.待审核3.已通过4.已拒绝
	case 2:
		db = db.Where("`status` = ?", 0)
	case 3:
		db = db.Where("`status` = ?", 1)
	case 4:
		db = db.Where("`status` = ?", 2)
	}
	res := make([]*InviteApply, 0)
	var count int64
	err := db.Order("id desc").Offset((pageIndex - 1) * pageSize).Find(&res).Limit(-1).Offset(-1).Count(&count).Error
	if err != nil {
		model.Log.Errorf("GetApplyList err:%v", err)
		return nil, 0, err
	}
	return res, count, nil
}
chenweijian's avatar
chenweijian committed
53 54 55 56 57 58 59 60 61 62 63 64 65

// 检查被邀请人是否存在
func IsInInviteApply(model *domain.Model, userId mysql.ID) (bool, error) {
	var apply InviteApply
	if err := model.Db.Model(InviteApply{}).Where("new_user_id = ?", userId).First(&apply).Error; err != nil {
		if err != gorm.ErrRecordNotFound {
			return false, err
		}
		return false, nil
	}
	// err == nil, record exists
	return true, nil
}
chenweijian's avatar
chenweijian committed
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

// 检查被邀请人是否存在
func GetInviteApplyNumByType(model *domain.Model, gType int, beginTime, endTime time.Time) (int, error) {
	var count int64
	db := model.Db.Model(InviteApply{}).Where("created_time >= ? and created_time <= ?", beginTime, endTime)
	switch gType { // 1.已申请2.待审核3.已通过4.已拒绝
	case 2:
		db = db.Where("`status` = ?", 0)
	case 3:
		db = db.Where("`status` = ?", 1)
	case 4:
		db = db.Where("`status` = ?", 2)
	}
	if err := db.Count(&count).Error; err != nil {
		return 0, err
	}
	return int(count), nil
}