<?php
|
|
namespace app\api\model\plus\release;
|
|
use app\common\model\plus\release\Project as ProjectModel;
|
use app\common\model\plus\release\DemandUser as DemandUserModel;
|
use app\common\model\plus\release\SupplyUser as SupplyUserModel;
|
use app\common\model\plus\release\ReleaseProjectImage as ReleaseProjectImageModel;
|
|
/**
|
* 模型
|
*/
|
class Project extends ProjectModel
|
{
|
/**
|
* 获取列表
|
*/
|
public function getList($user_id, $postdata)
|
{
|
$model = $this;
|
if(!empty($postdata["keyword"])){
|
$model = $model->where('name', 'like', '%'.$postdata["keyword"].'%');
|
}
|
if(!empty($postdata["category_id"])){
|
if($postdata["category_id"] == '-1'){
|
//根据分类匹配
|
$category_ids = (new ProjectModel())->where('user_id','=',$user_id)
|
->where('project_type','=',$postdata["product_type"])
|
->column('category_id');
|
if(!empty($category_ids)){
|
$model = $model->where('category_id', 'in', $category_ids);
|
}
|
}else{
|
$model = $model->where('category_id', '=', $postdata["category_id"]);
|
}
|
|
}
|
|
//添加项目排序查询
|
if(!empty($postdata["order_sort"]) && $postdata["order_sort"] == 1){
|
$order = "actual_views desc,create_time desc";
|
}else{
|
$order = "create_time desc";
|
}
|
$list = $model->with(['category','user'])->where('is_delete', '=', 0)
|
->where('project_type', '=', $postdata["product_type"])
|
->where('status', '=', 1)
|
->where('is_show', '=', 1)
|
->where('user_id', '<>', $user_id)
|
->order($order)
|
->paginate($postdata);
|
|
foreach($list as &$val){
|
if($postdata["product_type"] == 0){
|
$release_user = DemandUserModel::detail($val['user_id'],['grade']);
|
}else{
|
$release_user = SupplyUserModel::detail($val['user_id'],['grade']);
|
}
|
$val['grade'] = empty($release_user['grade']) ? '' : $release_user['grade'];
|
$image_list = ReleaseProjectImageModel::getImage($val["project_id"]);
|
$val['image'] = empty($image_list[0]) ? '/static/default.png' : $image_list[0]['file_path'];
|
}
|
return $list;
|
}
|
|
/**
|
* 详情
|
*/
|
public static function detail($project_id)
|
{
|
if (!$model = parent::detail($project_id)) {
|
throw new BaseException(['msg' => '不存在']);
|
}
|
// 累积阅读数
|
$model->where('project_id', '=', $project_id)->inc('actual_views', 1)->update();
|
return $model;
|
}
|
|
/**
|
* 获取列表
|
*/
|
public function getIndexList($user, $show_num=2)
|
{
|
$model = $this;
|
$user_id = 0;
|
if(!empty($user)){
|
$user_id = $user['user_id'];
|
//根据分类匹配
|
$category_ids = (new ProjectModel())->where('user_id','=',$user['user_id'])
|
->column('category_id');
|
if(!empty($category_ids)){
|
$model = $model->where('category_id', 'in', $category_ids);
|
}
|
}
|
$list = $model->with(['category','user'])->where('is_delete', '=', 0)
|
->where('status', '=', 1)
|
->where('is_show', '=', 1)
|
->order(['create_time' => 'desc'])
|
->paginate($show_num);
|
|
foreach($list as &$val){
|
if($val["product_type"] == 0){
|
$release_user = DemandUserModel::detail($val['user_id'],['grade']);
|
//需求项目获取供应用户
|
$my_user = SupplyUserModel::detail($user_id);
|
}else{
|
$release_user = SupplyUserModel::detail($val['user_id'],['grade']);
|
//供应项目获取需求用户
|
$my_user = DemandUserModel::detail($user_id);
|
}
|
$val['is_check'] = empty($my_user['is_check']) ? 0 : $my_user['is_check'];
|
$val['grade'] = empty($release_user['grade']) ? '' : $release_user['grade'];
|
$image_list = ReleaseProjectImageModel::getImage($val["project_id"]);
|
$val['image'] = empty($image_list[0]) ? '/static/default.png' : $image_list[0]['file_path'];
|
}
|
return $list;
|
}
|
|
}
|