relation.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package model
  2. import (
  3. "trading-go/common"
  4. "trading-go/response"
  5. "trading-go/util"
  6. )
  7. type Relation struct {
  8. Id uint `db:"id"`
  9. Owner uint `db:"owner"`
  10. Target uint `db:"target"`
  11. GoodsId uint `db:"goods_id"`
  12. Type int `db:"type"`
  13. }
  14. type RelationJson struct {
  15. Owner uint `json:"owner,string" db:"owner"`
  16. Target uint `json:"target,string" db:"target"`
  17. GoodsId uint `json:"goodsId" db:"goods_id"`
  18. Type int `json:"type" db:"type"`
  19. }
  20. func (r RelationJson) Change() Relation {
  21. return Relation{
  22. Owner: r.Owner,
  23. Target: r.Target,
  24. Type: r.Type,
  25. GoodsId: r.GoodsId,
  26. }
  27. }
  28. func (r Relation) Creat() error {
  29. db := common.DB
  30. sqlStr := "INSERT INTO relations(owner, target, type, goods_id) VALUES (:owner, :target, :type, :goods_id)"
  31. rows, err := db.NamedExec(sqlStr, r)
  32. if err != nil {
  33. return err
  34. }
  35. affected, err := rows.RowsAffected()
  36. if affected != 1 {
  37. return util.InsertFailError
  38. }
  39. return err
  40. }
  41. func (r Relation) Friend(uid int) ([]RelationJson, error) {
  42. var friends []RelationJson
  43. db := common.DB
  44. sqlStr := "SELECT owner, target, type, goods_id From relations WHERE owner = ? AND type = 1"
  45. err := db.Select(&friends, sqlStr, uid)
  46. return friends, err
  47. }
  48. func (r Relation) BadRelation(uid int) ([]int64, error) {
  49. var badRelation []int64
  50. db := common.DB
  51. sqlStr := "SELECT target From relations WHERE owner = ? AND type = 2"
  52. err := db.Select(&badRelation, sqlStr, uid)
  53. return badRelation, err
  54. }
  55. func (r Relation) DRelation() error {
  56. db := common.DB
  57. sqlStr := "DELETE FROM relations WHERE id = ?"
  58. _, err := db.Exec(sqlStr, r.Id)
  59. return err
  60. }
  61. func (r Relation) GetPaged(page, pageSize int) (rsp response.PageResponse, err error) {
  62. var relations []Relation
  63. db := common.DB
  64. sqlStr := "SELECT * FROM relations LIMIT ?,?"
  65. rsp.Page = page
  66. rsp.PageSize = pageSize
  67. err = db.Select(&relations, sqlStr, (page-1)*pageSize, pageSize)
  68. rsp.Data = relations
  69. return
  70. }
  71. func (r Relation) GetCnt() (cnt int, err error) {
  72. db := common.DB
  73. sqlStr := "SELECT COUNT(1) FROM relations"
  74. err = db.Get(&cnt, sqlStr)
  75. return
  76. }