listlogic.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "github.com/zeromicro/go-zero/core/logx"
  6. "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXBase/rpc/bxbase"
  7. IC "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXBase/rpc/init"
  8. "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXBase/rpc/internal/svc"
  9. "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXBase/rpc/util"
  10. )
  11. type ListLogic struct {
  12. ctx context.Context
  13. svcCtx *svc.ServiceContext
  14. logx.Logger
  15. }
  16. func NewListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListLogic {
  17. return &ListLogic{
  18. ctx: ctx,
  19. svcCtx: svcCtx,
  20. Logger: logx.WithContext(ctx),
  21. }
  22. }
  23. // 获取收藏列表
  24. func (l *ListLogic) List(in *bxbase.ListReq) (*bxbase.ListRes, error) {
  25. var ldata bxbase.ColList
  26. pagesize_max := 50
  27. isPay, _ := util.Power(in.UserId)
  28. if !isPay {
  29. pagesize_max = 100
  30. }
  31. if in.Pagesize != 0 {
  32. pagesize_max = int(in.Pagesize)
  33. }
  34. sql := util.CollListSql(in, isPay, in.UserId)
  35. logx.Info(sql)
  36. data := IC.MainMysql.SelectBySql(sql)
  37. count := 0
  38. result := []map[string]interface{}{}
  39. if data != nil && len(*data) > 0 {
  40. if in.Pagenum <= 0 {
  41. in.Pagenum = 1
  42. }
  43. start := (int(in.Pagenum) - 1) * pagesize_max
  44. end := int(in.Pagenum) * pagesize_max
  45. if end > len(*data) {
  46. end = len(*data)
  47. }
  48. if start < len(*data) {
  49. result = (*data)[start:end]
  50. }
  51. count = len(*data)
  52. }
  53. haveNextPage := len(result) >= pagesize_max
  54. ldata.Count = int64(count)
  55. ldata.HaveNextPage = haveNextPage
  56. ldata.Pagesize = int64(pagesize_max)
  57. var res []*bxbase.ColData
  58. mres := util.GetInfoById(IC.MgoBidding, "collection", "bidding_back", result)
  59. for _, v := range mres {
  60. var r bxbase.ColData
  61. r.Id = v.Id
  62. r.Title = v.Title
  63. r.Buyerclass = v.Buyerclass
  64. r.Buyer = v.Buyer
  65. r.Type = v.Type
  66. r.Budget = common.InterfaceToStr(v.Budget)
  67. r.Area = v.Area
  68. r.Bidamount = common.InterfaceToStr(v.Bidamount)
  69. r.Bidopentime = v.Bidopentime
  70. r.Publishtime = v.Publishtime
  71. r.SSubscopeclass = v.S_subscopeclass
  72. r.SWinner = v.S_winner
  73. res = append(res, &r)
  74. }
  75. ldata.Res = res
  76. return &bxbase.ListRes{
  77. Ldata: &ldata,
  78. }, nil
  79. }