CouponLog.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace app\backend\modules\coupon\models;
  3. class CouponLog extends \app\common\models\CouponLog
  4. {
  5. //获取该公众号下所有的领取发放记录
  6. public static function getCouponLogs()
  7. {
  8. return static::uniacid()
  9. ->select(['id', 'logno', 'member_id', 'couponid', 'getfrom', 'createtime'])
  10. ->with(['member' => function($query){
  11. return $query->select(['uid', 'nickname']);
  12. }])
  13. ->with(['coupon' => function($query){
  14. return $query->select(['id', 'name']);
  15. }])
  16. ->orderBy('createtime', 'desc')
  17. ->orderBy('id', 'asc')
  18. ->paginate(15);
  19. }
  20. public static function getCouponLogsBuilder()
  21. {
  22. return static::uniacid()
  23. ->select(['id', 'logno', 'member_id', 'couponid', 'getfrom', 'createtime'])
  24. ->with(['member' => function($query){
  25. return $query->select(['uid', 'nickname']);
  26. }])
  27. ->with(['coupon' => function($query){
  28. return $query->select(['id', 'name']);
  29. }])
  30. ->orderBy('createtime', 'desc')
  31. ->orderBy('id', 'asc');
  32. }
  33. //获取搜索的领取发放记录
  34. //array $searchData
  35. public static function searchCouponLog($searchData)
  36. {
  37. $res = static::uniacid()
  38. ->select(['id', 'logno', 'member_id', 'couponid', 'getfrom', 'createtime'])
  39. ->with(['member' => function($query){
  40. return $query->select(['uid', 'nickname']);
  41. }])
  42. ->with(['coupon' => function($query){
  43. return $query->select(['id', 'name']);
  44. }]);
  45. if(isset($searchData['coupon_id'])){
  46. $res = $res->where('couponid', '=', $searchData['coupon_id']);
  47. }
  48. if(isset($searchData['coupon_name'])){
  49. $res = $res->whereHas('coupon', function($query) use ($searchData){
  50. return $query->where('name', 'like', '%'.$searchData['coupon_name'].'%');
  51. });
  52. }
  53. if(isset($searchData['member_keyword'])){
  54. $res = $res->whereHas('member', function($query) use ($searchData){
  55. return $query->where(function ($query1) use ($searchData) {
  56. $query1->where('nickname', 'like', '%'.$searchData['member_keyword'].'%')
  57. ->orWhere('uid', 'like', '%'.$searchData['member_keyword'].'%')
  58. ->orWhere('mobile', 'like', '%'.$searchData['member_keyword'].'%');
  59. })->where('uniacid',\YunShop::app()->uniacid);
  60. });
  61. }
  62. if(isset($searchData['nickname'])){
  63. $res = $res->whereHas('member', function($query) use ($searchData){
  64. return $query->where('nickname', 'like', '%'.$searchData['nickname'].'%')->where('uniacid',\YunShop::app()->uniacid);
  65. });
  66. }
  67. if(isset($searchData['get_from'])){
  68. $res = $res->where('getfrom', '=', $searchData['get_from']);
  69. }
  70. if($searchData['time_search_swtich'] == 1){
  71. $res = $res->whereBetween('createtime', [$searchData['time_start'], $searchData['time_end']]);
  72. }
  73. if(isset($searchData['member_id'])){
  74. $res = $res->where('member_id', '=', $searchData['member_id']);
  75. }
  76. return $res->orderBy('createtime', 'desc')->orderBy('id', 'asc')
  77. ->paginate(15);
  78. }
  79. public static function searchCouponLogBuilder($searchData)
  80. {
  81. $res = static::uniacid()
  82. ->select(['id', 'logno', 'member_id', 'couponid', 'getfrom', 'createtime'])
  83. ->with(['member' => function($query){
  84. return $query->select(['uid', 'nickname']);
  85. }])
  86. ->with(['coupon' => function($query){
  87. return $query->select(['id', 'name']);
  88. }]);
  89. if(isset($searchData['coupon_id'])){
  90. $res = $res->where('couponid', '=', $searchData['coupon_id']);
  91. }
  92. if(isset($searchData['coupon_name'])){
  93. $res = $res->whereHas('coupon', function($query) use ($searchData){
  94. return $query->where('name', 'like', '%'.$searchData['coupon_name'].'%');
  95. });
  96. }
  97. if(isset($searchData['nickname'])){
  98. $res = $res->whereHas('member', function($query) use ($searchData){
  99. return $query->where('nickname', 'like', '%'.$searchData['nickname'].'%');
  100. });
  101. }
  102. if(isset($searchData['get_from'])){
  103. $res = $res->where('getfrom', '=', $searchData['get_from']);
  104. }
  105. if($searchData['time_search_swtich'] == 1){
  106. $res = $res->whereBetween('createtime', [$searchData['time_start'], $searchData['time_end']]);
  107. }
  108. return $res->orderBy('createtime', 'desc')->orderBy('id', 'asc');
  109. }
  110. }