OrderGood.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Repositories\Models\Dwbs;
  3. use App\Repositories\Enums\ModelStatusEnum;
  4. use App\Repositories\Models\Base\Menu;
  5. use App\Repositories\Models\Base\User;
  6. use App\Repositories\Models\Model;
  7. use Carbon\Carbon;
  8. use Illuminate\Support\Facades\Cache;
  9. use Illuminate\Support\Facades\DB;
  10. class OrderGood extends Model
  11. {
  12. /**
  13. * @var string
  14. */
  15. protected $table = 'dwbs_order_goods';
  16. protected $guarded = [];
  17. /**
  18. * The attributes excluded from the model's JSON form.
  19. *
  20. * @var array
  21. */
  22. protected $hidden = [];
  23. protected $casts = [];
  24. public function user()
  25. {
  26. return $this->belongsTo(User::class);
  27. }
  28. public function good()
  29. {
  30. return $this->belongsTo(Good::class)->select(['id', 'name', 'cover']);
  31. }
  32. public static function byDayGetUserGoodNums($day, $user_id, $good_id)
  33. {
  34. if ($day == date('Y-m-d')) {
  35. $model = self::query()->whereDate('order_time', $day)->where('good_id', $good_id)->where('user_id', $user_id)->where('status', ModelStatusEnum::OK)->select(DB::raw("good_id,sum(nums) as nums,sum(xuefen) as xuefen"))->first();
  36. return $model->toArray();
  37. }
  38. return Cache::remember("model:orderGood:byDayGetUserGoodNums:{$day}:{$user_id}:{$good_id}", Carbon::now()->addDay(), function () use ($day, $user_id, $good_id) {
  39. $model = self::query()->whereDate('order_time', $day)->where('good_id', $good_id)->where('user_id', $user_id)->where('status', ModelStatusEnum::OK)->select(DB::raw("good_id,sum(nums) as nums,sum(xuefen) as xuefen"))->first();
  40. return $model->toArray();
  41. });
  42. }
  43. public static function adminBbyDayGetGoodNums($day, $good_id)
  44. {
  45. $model = self::query();
  46. if (Menu::checkUserIsBtn(151)) {
  47. //全部数据
  48. } elseif (Menu::checkUserIsBtn(150)) {
  49. $admin = login_admin();
  50. $model = $model->whereHas('user', function ($q) use ($admin) {
  51. return $q->where('kefu_tag', $admin['user_tag']);
  52. });
  53. } else {
  54. $model = $model->where('id', 0);
  55. }
  56. if ($day == date('Y-m-d')) {
  57. $model = $model->clone()->whereDate('order_time', $day)->where('good_id', $good_id)->where('status', ModelStatusEnum::OK)->select(DB::raw("good_id,sum(nums) as nums,sum(xuefen) as xuefen"))->first();
  58. return $model->toArray();
  59. }
  60. Cache::forget("model:orderGood:byDayGetUserGoodNums:{$day}:{$good_id}");
  61. return Cache::remember("model:orderGood:byDayGetUserGoodNums:{$day}:{$good_id}", Carbon::now()->addDay(), function () use ($day, $good_id, $model) {
  62. $model = $model->clone()->whereDate('order_time', $day)->where('good_id', $good_id)->where('status', ModelStatusEnum::OK)->select(DB::raw("good_id,sum(nums) as nums,sum(xuefen) as xuefen"))->first();
  63. return $model->toArray();
  64. });
  65. }
  66. }