ShoppingShareCouponLog.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/3/20
  6. * Time: 10:50
  7. */
  8. namespace app\common\models\coupon;
  9. use app\common\models\BaseModel;
  10. use app\common\models\Coupon;
  11. use app\common\models\Member;
  12. use app\framework\Database\Eloquent\Builder;
  13. class ShoppingShareCouponLog extends BaseModel
  14. {
  15. public $table = 'yz_shopping_share_coupon_log';
  16. protected $guarded = ['id'];
  17. public static function getList($search)
  18. {
  19. $model = self::uniacid();
  20. if ($search['coupon_name']) {
  21. $model->where('coupon_name', $search['coupon_name']);
  22. }
  23. if ($search['share_uid']) {
  24. $model->shareUid($search['share_uid']);
  25. }
  26. if ($search['receive_uid']) {
  27. $model->receiveUid($search['receive_uid']);
  28. }
  29. if ($search['share_name']) {
  30. $model->whereHas('shareMember', function ($member) use ($search) {
  31. $member = $member->select('uid', 'nickname', 'realname', 'mobile', 'avatar')
  32. ->where('realname', 'like', '%' . $search['share_name'] . '%')
  33. ->orWhere('mobile', 'like', '%' . $search['share_name'] . '%')
  34. ->orWhere('nickname', 'like', '%' . $search['share_name'] . '%');
  35. return $member;
  36. });
  37. }
  38. if ($search['receive_name']) {
  39. $model->whereHas('receiveMember', function ($member) use ($search) {
  40. $member = $member->select('uid', 'nickname', 'realname', 'mobile', 'avatar')
  41. ->where('realname', 'like', '%' . $search['receive_name'] . '%')
  42. ->orWhere('mobile', 'like', '%' . $search['receive_name'] . '%')
  43. ->orWhere('nickname', 'like', '%' . $search['receive_name'] . '%');
  44. return $member;
  45. });
  46. }
  47. if ($search['time_search']) {
  48. $range = [$search['time']['start'], $search['time']['end']];
  49. $model->whereBetween('created_at', $range);
  50. }
  51. $model->with('shareMember', 'receiveMember');
  52. return $model;
  53. }
  54. //以领取记录
  55. public static function yiLog($order_ids)
  56. {
  57. return self::uniacid()->with('receiveMember')->whereIn('order_id', $order_ids);
  58. }
  59. //分享者
  60. public function scopeShareUid(Builder $query, $uid)
  61. {
  62. return $query->where('share_uid', $uid);
  63. }
  64. //领取者
  65. public function scopeReceiveUid(Builder $query, $uid)
  66. {
  67. return $query->where('receive_uid', $uid);
  68. }
  69. //分析记录
  70. public function scopeShareCouponId(Builder $query, $share_coupon_id)
  71. {
  72. return $query->where('share_coupon_id', $share_coupon_id);
  73. }
  74. public function shareMember()
  75. {
  76. return $this->belongsTo(Member::class, 'share_uid', 'uid');
  77. }
  78. public function receiveMember()
  79. {
  80. return $this->belongsTo(Member::class, 'receive_uid', 'uid');
  81. }
  82. public function hasOneCoupon()
  83. {
  84. return $this->belongsTo(Coupon::class, 'coupon_id', 'id');
  85. }
  86. }