Ai
4 Star 1 Fork 0

Gitee 极速下载/tipask

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/sdfsky/tipask
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Doing.php 2.05 KB
一键复制 编辑 原始数据 按行查看 历史
sdfsky 提交于 2019-10-15 16:10 +08:00 . add v3.5 featrue
<?php
namespace App\Models;
use App\Models\Relations\BelongsToUserTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Doing extends Model
{
use BelongsToUserTrait;
protected $table = 'doings';
protected $fillable = ['user_id', 'action','source_type','source_id','subject','content','refer_id','refer_user_id','refer_content','created_at'];
public $timestamps = false;
public static function concerned(User $user)
{
$attentions = $user->attentions()->get();
$tags = $questions = $users = [];
foreach($attentions as $attention){
if($attention->source_type == 'App\Models\Tag'){
$tags[] = $attention->source_id;
}elseif($attention->source_type == 'App\Models\User'){
$users[] = $attention->source_id;
}elseif($attention->source_type == 'App\Models\Question'){
$questions[] = $attention->source_id;
}
}
/*追加用户标签*/
foreach( $user->tags()->get() as $tag ){
$tags[] = $tag->id;
}
if($tags){
$taggables = DB::table("taggables")->whereIn("tag_id",$tags)->get();
foreach($taggables as $tagable){
if($tagable->taggable_type == 'App\Models\Question'){
$questions[] = $tagable->taggable_id;
}
}
}
return self::where(function($query) use($users){
$query->whereIn("user_id",$users);
})
->oRwhere(function($query) use($questions){
$query->whereIn("source_id",$questions)->where("source_type","=","App\Models\Question");
})
->where('doings.user_id','<>',$user->id)
//->where('attentions.created_at','<','doings.created_at')
->select('doings.*')
->orderBy('doings.created_at','DESC');
}
public static function newest(){
return self::where("source_type","=","App\Models\Question")->orderBy('created_at','desc');
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/mirrors/tipask.git
git@gitee.com:mirrors/tipask.git
mirrors
tipask
tipask
master

搜索帮助