| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | package mysqlBzimport (	orm "duoduo/database"	"duoduo/tools"	"math/rand"	"time")type BiZhi struct {	ID         int    `gorm:"column:id;type:bigint(20);primary_key" json:"id"`     // 壁纸id	Url        string `gorm:"column:url;type:varchar(255)" json:"url"`             // 壁纸链接	Label      string `gorm:"column:label;type:varchar(255)" json:"label"`         // 标签	CreateTime string `gorm:"column:create_time;type:datetime" json:"create_time"` // 插入时间	UpdateTime string `gorm:"column:update_time;type:datetime" json:"update_time"` // 更新时间}type BiZhiCollection struct {	ID         int    `gorm:"column:id;type:bigint(20);primary_key" json:"id"`     // 壁纸id	Url        string `gorm:"column:url;type:varchar(255)" json:"url"`             // 壁纸链接	Label      string `gorm:"column:label;type:varchar(255)" json:"label"`         // 标签	CreateTime string `gorm:"column:create_time;type:datetime" json:"create_time"` // 插入时间	UpdateTime string `gorm:"column:update_time;type:datetime" json:"update_time"` // 更新时间	BiZhiId    int    `gorm:"column:bizhi_id;type:bigint(20)" json:"biZhiId"`	UrlSize    string `json:"urlSize"` //缩略图}func (m *BiZhi) TableName() string {	return "bizhi"}//list 接口使用func (o *BiZhi) GetRoundBiZhi() ([]BiZhi, error) {	var doc []BiZhi	var idList []int	var count int	var status int	err := orm.BzMysql.Table("bizhi").Count(&count).Error	if err != nil {		return nil, err	}	rand.Seed(time.Now().UnixNano())	for {		status = 0		//fmt.Println(idList)		if len(idList) > 8 {			break		}		num := rand.Intn(count-1+1) + 1 //[n-m]		for ii := 0; ii < len(idList); ii++ {			if idList[ii] == num {				status = 1				break			}		}		if status == 0 {			idList = append(idList, num)		}	}	table := orm.BzMysql.Table("bizhi ")	table = table.Where("id in (?) ", idList)	if err = table.Select("*").Order("id desc").Limit(8).Find(&doc).Error; err != nil {		return nil, err	}	return doc, nil}func (o *BiZhi) GetBiZhiLabel(label string) (BiZhi, error) {	var doc BiZhi	table := orm.BzMysql.Table("bizhi ")	if label == "" {		table = table.Where("label = '' or label is null")	} else {		table = table.Where(" label like '%?%'", label)	}	if err := table.Select("*").Order("id desc").Limit(1).Find(&doc).Error; err != nil {		return doc, err	}	return doc, nil}func (o *BiZhi) BiZhiLabelUpdate(label string) error {	if err := orm.BzMysql.Table(o.TableName()).Model(&o).Where("id = ? ", o.ID).Updates(		map[string]interface{}{			"label":       label,			"update_time": tools.GetCurrntTimeStr()}).Error; err != nil {		return err	}	return nil}func (o *BiZhi) BiZhiGroup(label string, openid string) ([]BiZhiCollection, error) {	var doc []BiZhiCollection	var data []BiZhiCollection	var bizhi BiZhiCollection	err := orm.BzMysql.Table("bizhi b").Where("b.id = ?", o.ID).Select("b.*,(SELECT bizhi_id FROM collection WHERE bizhi_id = b.id and open_id = ?) as bizhi_id", openid).Order("id desc").Find(&bizhi).Error	if err != nil {		return doc, err	}	table := orm.BzMysql.Table("bizhi b ").Where("label = ?", label)	if err := table.Select("b.*,(SELECT bizhi_id FROM collection WHERE bizhi_id = b.id and open_id = ?) as bizhi_id", openid).Order("id desc").Limit(10).Find(&doc).Error; err != nil {		return doc, err	}	//for i := 0; i < len(doc); i++ {	//	if doc[i].ID == o.ID {	//		bizhi.Url = doc[i].Url	//		bizhi.ID = doc[i].ID	//		bizhi.Label = doc[i].Label	//		bizhi.BiZhiId = doc[i].BiZhiId	//		bizhi.UrlSize = bizhi.Url + "?imageView2/2"	//	//	}	//}	bizhi.UrlSize = bizhi.Url + "?imageView2/2"	data = append(data, bizhi)	for i := 0; i < len(doc); i++ {		if doc[i].ID == o.ID {			continue		} else {			doc[i].UrlSize = doc[i].Url + "?imageView2/2"			data = append(data, doc[i])		}	}	return data, nil}func (o *BiZhi) BiZhiDes() (BiZhi, error) {	var doc BiZhi	err := orm.BzMysql.Table("bizhi").Where("id = ?", o.ID).First(&doc).Error	if err != nil {		return doc, err	}	return doc, nil}//list 接口使用func (o *BiZhi) GetLabelList(pageSize int, pageIndex int) ([]BiZhi, int, error) {	var doc []BiZhi	table := orm.BzMysql.Table("bizhi").Where("label like ?", "%"+o.Label+"%")	var count int	if err := table.Select("*").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {		return nil, 0, err	}	table.Count(&count)	return doc, count, nil}
 |