1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package model
- import (
- "trading-go/common"
- "trading-go/response"
- "trading-go/util"
- )
- type Relation struct {
- Id uint `db:"id"`
- Owner uint `db:"owner"`
- Target uint `db:"target"`
- GoodsId uint `db:"goods_id"`
- Type int `db:"type"`
- }
- type RelationJson struct {
- Owner uint `json:"owner,string" db:"owner"`
- Target uint `json:"target,string" db:"target"`
- GoodsId uint `json:"goodsId" db:"goods_id"`
- Type int `json:"type" db:"type"`
- }
- func (r RelationJson) Change() Relation {
- return Relation{
- Owner: r.Owner,
- Target: r.Target,
- Type: r.Type,
- GoodsId: r.GoodsId,
- }
- }
- func (r Relation) Creat() error {
- db := common.DB
- sqlStr := "INSERT INTO relations(owner, target, type, goods_id) VALUES (:owner, :target, :type, :goods_id)"
- 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) ([]RelationJson, error) {
- var friends []RelationJson
- db := common.DB
- sqlStr := "SELECT owner, target, type, goods_id 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
- }
- func (r Relation) GetPaged(page, pageSize int) (rsp response.PageResponse, err error) {
- var relations []Relation
- db := common.DB
- sqlStr := "SELECT * FROM relations LIMIT ?,?"
- rsp.Page = page
- rsp.PageSize = pageSize
- err = db.Select(&relations, sqlStr, (page-1)*pageSize, pageSize)
- rsp.Data = relations
- return
- }
- func (r Relation) GetCnt() (cnt int, err error) {
- db := common.DB
- sqlStr := "SELECT COUNT(1) FROM relations"
- err = db.Get(&cnt, sqlStr)
- return
- }
|