invite_list.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package models
  2. import (
  3. "errors"
  4. "fmt"
  5. "reflect"
  6. "strings"
  7. "github.com/beego/beego/v2/client/orm"
  8. )
  9. // 安置图谱列表
  10. type InviteList struct {
  11. InviteListDirId int `orm:"column(invite_list_dir_id);auto" description:"安置图谱"`
  12. ParentId string `orm:"column(parent_id);size(11);null" description:"上级id"`
  13. UserId string `orm:"column(user_id);size(0);null"`
  14. Username string `orm:"column(username);size(255);null"`
  15. PromoteName string `orm:"column(promote_name);size(255);null" description:"级别"`
  16. Sales string `orm:"column(sales);size(255);null" description:"入仓金额"`
  17. TeamSales string `orm:"column(team_sales);size(255);null" description:"社区业绩"`
  18. TodayTeamSales string `orm:"column(today_team_sales);size(255);null" description:"今天业绩"`
  19. UserBv string `orm:"column(user_bv);size(255);null"`
  20. SubStatus string `orm:"column(sub_status);size(255);null"`
  21. CTime int64 `orm:"column(c_time);null"`
  22. IsYes int `orm:"column(is_yes);null" description:"默认0:待抓取"`
  23. }
  24. func (t *InviteList) TableName() string {
  25. return "invite_list"
  26. }
  27. func init() {
  28. orm.RegisterModel(new(InviteList))
  29. }
  30. // AddInviteList insert a new InviteList into database and returns
  31. // last inserted Id on success.
  32. func AddInviteList(m *InviteList) (id int64, err error) {
  33. o := orm.NewOrm()
  34. id, err = o.Insert(m)
  35. return
  36. }
  37. // GetInviteListById retrieves InviteList by Id. Returns error if
  38. // Id doesn't exist
  39. func GetInviteListById(id int) (v *InviteList, err error) {
  40. o := orm.NewOrm()
  41. v = &InviteList{InviteListDirId: id}
  42. if err = o.Read(v); err == nil {
  43. return v, nil
  44. }
  45. return nil, err
  46. }
  47. // GetAllInviteList retrieves all InviteList matches certain condition. Returns empty list if
  48. // no records exist
  49. func GetAllInviteList(query map[string]string, fields []string, sortby []string, order []string,
  50. offset int64, limit int64) (ml []interface{}, err error) {
  51. o := orm.NewOrm()
  52. qs := o.QueryTable(new(InviteList))
  53. // query k=v
  54. for k, v := range query {
  55. // rewrite dot-notation to Object__Attribute
  56. k = strings.Replace(k, ".", "__", -1)
  57. if strings.Contains(k, "isnull") {
  58. qs = qs.Filter(k, (v == "true" || v == "1"))
  59. } else {
  60. qs = qs.Filter(k, v)
  61. }
  62. }
  63. // order by:
  64. var sortFields []string
  65. if len(sortby) != 0 {
  66. if len(sortby) == len(order) {
  67. // 1) for each sort field, there is an associated order
  68. for i, v := range sortby {
  69. orderby := ""
  70. if order[i] == "desc" {
  71. orderby = "-" + v
  72. } else if order[i] == "asc" {
  73. orderby = v
  74. } else {
  75. return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
  76. }
  77. sortFields = append(sortFields, orderby)
  78. }
  79. qs = qs.OrderBy(sortFields...)
  80. } else if len(sortby) != len(order) && len(order) == 1 {
  81. // 2) there is exactly one order, all the sorted fields will be sorted by this order
  82. for _, v := range sortby {
  83. orderby := ""
  84. if order[0] == "desc" {
  85. orderby = "-" + v
  86. } else if order[0] == "asc" {
  87. orderby = v
  88. } else {
  89. return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
  90. }
  91. sortFields = append(sortFields, orderby)
  92. }
  93. } else if len(sortby) != len(order) && len(order) != 1 {
  94. return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
  95. }
  96. } else {
  97. if len(order) != 0 {
  98. return nil, errors.New("Error: unused 'order' fields")
  99. }
  100. }
  101. var l []InviteList
  102. qs = qs.OrderBy(sortFields...)
  103. if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
  104. if len(fields) == 0 {
  105. for _, v := range l {
  106. ml = append(ml, v)
  107. }
  108. } else {
  109. // trim unused fields
  110. for _, v := range l {
  111. m := make(map[string]interface{})
  112. val := reflect.ValueOf(v)
  113. for _, fname := range fields {
  114. m[fname] = val.FieldByName(fname).Interface()
  115. }
  116. ml = append(ml, m)
  117. }
  118. }
  119. return ml, nil
  120. }
  121. return nil, err
  122. }
  123. // UpdateInviteList updates InviteList by Id and returns error if
  124. // the record to be updated doesn't exist
  125. func UpdateInviteListById(m *InviteList) (err error) {
  126. o := orm.NewOrm()
  127. v := InviteList{InviteListDirId: m.InviteListDirId}
  128. // ascertain id exists in the database
  129. if err = o.Read(&v); err == nil {
  130. var num int64
  131. if num, err = o.Update(m); err == nil {
  132. fmt.Println("Number of records updated in database:", num)
  133. }
  134. }
  135. return
  136. }
  137. // DeleteInviteList deletes InviteList by Id and returns error if
  138. // the record to be deleted doesn't exist
  139. func DeleteInviteList(id int) (err error) {
  140. o := orm.NewOrm()
  141. v := InviteList{InviteListDirId: id}
  142. // ascertain id exists in the database
  143. if err = o.Read(&v); err == nil {
  144. var num int64
  145. if num, err = o.Delete(&InviteList{InviteListDirId: id}); err == nil {
  146. fmt.Println("Number of records deleted in database:", num)
  147. }
  148. }
  149. return
  150. }