Ai
4 Star 1 Fork 0

Gitee 极速下载/tipask

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/sdfsky/tipask
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
UserData.php 3.76 KB
一键复制 编辑 原始数据 按行查看 历史
sdfsky 提交于 2019-10-16 10:50 +08:00 . delete fileds
<?php
namespace App\Models;
use App\Models\Relations\BelongsToUserTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
class UserData extends Model
{
use BelongsToUserTrait;
protected $table = 'user_data';
public $timestamps = false;
protected $primaryKey = 'user_id';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'user_id',
'coins',
'credits',
'authentication_status',
'last_login_ip',
'registered_at',
'mobile_status',
'last_visit'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [];
/*文章活跃用户*/
public static function activeInArticles($size = 8)
{
$list = Cache::remember('active_in_articles', 10, function () use ($size) {
return self::leftJoin('users', 'users.id', '=', 'user_data.user_id')
->where('users.status', '>', 0)->where('user_data.articles', '>', 0)
->orderBy('user_data.articles', 'DESC')
->orderBy('users.created_at', 'DESC')
->select('users.id', 'users.name', 'users.title', 'user_data.coins', 'user_data.credits',
'user_data.followers', 'user_data.supports', 'user_data.answers', 'user_data.articles',
'user_data.authentication_status')
->take($size)->get();
});
return $list;
}
/*活跃用户*/
public static function activities($size)
{
return self::leftJoin('users', 'users.id', '=', 'user_data.user_id')
->where('users.status', '>', 0)
->orderBy('user_data.answers', 'DESC')
->orderBy('user_data.articles', 'DESC')
->orderBy('users.updated_at', 'DESC')
->select('users.id', 'users.name', 'users.title', 'user_data.coins', 'user_data.credits',
'user_data.followers', 'user_data.supports', 'user_data.answers', 'user_data.articles',
'user_data.authentication_status')
->take($size)->get();
}
/*财富榜*/
public static function topCoins($size)
{
return self::leftJoin('users', 'users.id', '=', 'user_data.user_id')
->where('users.status', '>', 0)->where('user_data.articles', '>', 0)
->orderBy('user_data.coins', 'DESC')
->select('users.id', 'users.name', 'users.title', 'user_data.coins', 'user_data.credits',
'user_data.followers', 'user_data.supports', 'user_data.answers', 'user_data.articles',
'user_data.authentication_status')
->take($size)->get();
}
/*排行榜*/
public static function top($type, $size)
{
return self::leftJoin('users', 'users.id', '=', 'user_data.user_id')
->where('users.status', '>', 0)
->orderBy('user_data.' . $type, 'DESC')
->orderBy('user_data.last_visit', 'DESC')
->select('users.id', 'users.name', 'users.title', 'user_data.coins', 'user_data.credits',
'user_data.followers', 'user_data.supports', 'user_data.answers', 'user_data.articles',
'user_data.authentication_status')
->take($size)->get();
}
/*用户采纳率*/
public function adoptPercent()
{
return round($this->adoptions / $this->answers, 2) * 100;
}
public static function hottest($size = 20)
{
return self::where("status", ">", 0)->leftJoin("users", function ($join) {
$join->on("users.id", '=', "user_data.user_id")
->where("users.status", ">", 0);
})->orderBy('answers', 'desc')->orderBy('credits', 'desc')->take($size)->get();
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/mirrors/tipask.git
git@gitee.com:mirrors/tipask.git
mirrors
tipask
tipask
master

搜索帮助