quanwei
2 days ago 73b874c72ad55eb9eef21c36160ac0de58f0189e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?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;
    }  
 
}