`

go 操作数据库

    博客分类:
  • go
 
阅读更多
import (
	"github.com/astaxie/beego/orm"
	"time"
)

type (
	BlacklistInfo struct {
		Ip       string `json:"ip"`        //ip
		InfoType int32  `json:"info_type"` //黑名单0:正常,1:拉黑
		BasicModel
	}
)

const (
	TypeBlack = 1
	TypeWhite = 0
)

func RegisterBlacklistModels() {
	orm.RegisterModel(new(BlacklistInfo))
}

//添加黑名单
func AddBlacklist(ip string) (int64, error) {
	o := orm.NewOrm()
	blacklistInfo := &BlacklistInfo{
		Ip:       ip,
		InfoType: TypeBlack,
	}
	return o.Insert(&blacklistInfo)
}

//更新黑名单信息
func UpdateBlacklist(ip string, t int32) (err error) {
	o := orm.NewOrm()
	var info BlacklistInfo
	err = o.QueryTable(new(BlacklistInfo)).Filter("ip", ip).Filter("Deleted", false).One(&info)
	if err != nil {
		return
	}
	info.InfoType = t
	info.Updated = time.Now()
	_, err = o.Update(&info, "InfoType", "Updated")
	return err
}

//查询黑名单信息
func GetBlackList() (ret []*BlacklistInfo, err error) {
	o := orm.NewOrm()
	_, err = o.QueryTable(new(BlacklistInfo)).
		Filter("Deleted", false).
		All(&ret)
	return ret, err
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics