package model import ( "trading-go/common" "trading-go/util" ) type Relation struct { Id uint `db:"id"` Owner uint `db:"owner"` Target uint `db:"target"` Type int `db:"type"` } type RelationJson struct { Owner uint `json:"owner"` Target uint `json:"target"` Type int `json:"type"` } func (r RelationJson) Change() Relation { return Relation{ Owner: r.Owner, Target: r.Target, Type: r.Type, } } func (r Relation) Creat() error { db := common.DB sqlStr := "INSERT INTO relations(owner, target, type) VALUES (:owner, :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 owner = ? 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 owner = ? 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 }