package model import ( "trading-go/common" "trading-go/util" ) type Relation struct { Id int64 `db:"id"` Owner int64 `db:"owner"` Target int64 `db:"target"` Type int `db:"type"` } type RelationJson struct { Owner int64 `json:"owner"` Target int64 `json:"target"` Type int `json:"type"` } func (r Relation) Creat() error { db := common.DB sqlStr := "INSERT INTO relations(onwer, target, type) VALUES (:onwer, :target, :type)" rows, err := db.NamedExec(sqlStr, r) if err != nil { return err } affected, err := rows.RowsAffected() if affected != 1 { return util.InsertFailError } return err } func (r Relation) Friend(uid int) ([]int64, error) { var friends []int64 db := common.DB sqlStr := "SELECT target From relations WHERE onwer = ? AND type = 1" err := db.Select(&friends, sqlStr, uid) return friends, err } func (r Relation) BadRelation(uid int) ([]int64, error) { var badRelation []int64 db := common.DB sqlStr := "SELECT target From relations WHERE onwer = ? AND type = 2" err := db.Select(&badRelation, sqlStr, uid) return badRelation, err } func (r Relation) DRelation() error { db := common.DB sqlStr := "DELETE FROM relations WHERE id = ?" _, err := db.Exec(sqlStr, r.Id) return err }