relation.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package model
  2. import (
  3. "trading-go/common"
  4. "trading-go/util"
  5. )
  6. type Relation struct {
  7. Id uint `db:"id"`
  8. Owner uint `db:"owner"`
  9. Target uint `db:"target"`
  10. Type int `db:"type"`
  11. }
  12. type RelationJson struct {
  13. Owner uint `json:"owner"`
  14. Target uint `json:"target"`
  15. Type int `json:"type"`
  16. }
  17. func (r RelationJson) Change() Relation {
  18. return Relation{
  19. Owner: r.Owner,
  20. Target: r.Target,
  21. Type: r.Type,
  22. }
  23. }
  24. func (r Relation) Creat() error {
  25. db := common.DB
  26. sqlStr := "INSERT INTO relations(owner, target, type) VALUES (:owner, :target, :type)"
  27. rows, err := db.NamedExec(sqlStr, r)
  28. if err != nil {
  29. return err
  30. }
  31. affected, err := rows.RowsAffected()
  32. if affected != 1 {
  33. return util.InsertFailError
  34. }
  35. return err
  36. }
  37. func (r Relation) Friend(uid int) ([]int64, error) {
  38. var friends []int64
  39. db := common.DB
  40. sqlStr := "SELECT target From relations WHERE owner = ? AND type = 1"
  41. err := db.Select(&friends, sqlStr, uid)
  42. return friends, err
  43. }
  44. func (r Relation) BadRelation(uid int) ([]int64, error) {
  45. var badRelation []int64
  46. db := common.DB
  47. sqlStr := "SELECT target From relations WHERE owner = ? AND type = 2"
  48. err := db.Select(&badRelation, sqlStr, uid)
  49. return badRelation, err
  50. }
  51. func (r Relation) DRelation() error {
  52. db := common.DB
  53. sqlStr := "DELETE FROM relations WHERE id = ?"
  54. _, err := db.Exec(sqlStr, r.Id)
  55. return err
  56. }