12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace App\Repositories\Models\Dwbs;
- use App\Repositories\Enums\Dwbs\DayTypeEnum;
- use App\Repositories\Enums\ModelStatusEnum;
- use App\Repositories\Models\Base\User;
- use App\Repositories\Models\Model;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Cache;
- class Ranking extends Model
- {
- /**
- * @var string
- */
- protected $table = 'dwbs_user_statistical';
- protected $guarded = [];
- /**
- * The attributes excluded from the model's JSON form.
- *
- * @var array
- */
- protected $hidden = [];
- protected $casts = [];
- public function user()
- {
- return $this->belongsTo(User::class)->select(['id', 'nickname', 'headimg', 'nickname', 'mobile_code', 'mobile', 'mobile_encryption','group_id']);
- }
- public static function byDayGetUserXuefen($day, $user_id)
- {
- if ($day == date('Y-m-d')) {
- $xuefen = UserXuefen::query()->where('day', $day)->where('user_id', $user_id)->where('status', ModelStatusEnum::OK)->sum('xuefen');
- return [
- 'day_xuefen' => $xuefen,
- 'xuefen' => User::query()->where('id', $user_id)->value('xuefen'),
- ];
- }
- return Cache::remember("model:ranking:byDayGetUserGoodNums:{$day}:{$user_id}", Carbon::now()->addDay(), function () use ($day, $user_id) {
- $model = self::query()->where('day', $day)->where('day_type', DayTypeEnum::day)->where('user_id', $user_id)->where('status', ModelStatusEnum::OK)->select(['day_xuefen', 'xuefen'])->first();
- if ($model) return $model->toArray();
- return [
- 'day_xuefen' => 0,
- 'xuefen' => 0,
- ];
- });
- }
- }
|