IndexController.php
2.9 KB
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
<?php
namespace api\home\controller;
use cmf\controller\RestBaseController;
use think\Db;
/**
* @title 达人广场
* @description 达人广场相关接口
*/
class IndexController extends RestBaseController
{
/**
* @title 首页
* @description 达人广场首页
* @author panhaowen
* @url /home/index/index
* @method POST
* @param name:search type:varchar require:0 desc:搜索条件
* @param name:category_id type:int require:0 desc:技能筛选
* @return banner:banner图
* @return skill:技能
* @return data:发布列表
*/
public function index()
{
$param=$this->request->param();
$config=Db::name('config')->where('id',1)->find();
$banner=[json_decode($config['banner1'],true),json_decode($config['banner2'],true),json_decode($config['banner3'],true),json_decode($config['banner4'],true),json_decode($config['banner5'],true)];
$skill=Db::name('category')->select()->toArray();
$keywordComplex = [];
if (!empty($param['keyword'])) {
$keywordComplex['p.mobile|u.user_nickname']= ['like', "%".$param['keyword']."%"];
}
$data=Db::name('post')
->alias('p')
->join('user u','p.user_id=u.id')
->whereOr($keywordComplex)
->order('p.create_time','desc')
->field('p.*,u.user_nickname,u.avatar')
->select()->each(function ($item) {
$item['skill']=Db::name('skill')->alias('s')->join('category c','s.category_id=c.id')->where('s.id',explode(',',$item['skill_id'])[0])->field('c.name,s.price')->find();
return $item;
});
if (!empty($param['category_id'])) {
foreach ($data as $k=>$v){
$re=Db::name('skill')->where(['id'=>['in',explode(',',$data[$k]['skill_id'])],'category_id'=>$param['category_id']])->find();
if (!$re){
unset($data[$k]);
}
}
}
$this->success("获取数据成功", ['banner'=>$banner,'skill'=>$skill,'data'=>$data]);
}
/**
* @title 用户详情
* @description 用户详情
* @author panhaowen
* @url /home/index/post
* @method POST
* @param name:id type:int require:1 desc:用户发布id
* @return data:用户发布详情
*/
public function post()
{
$param=$this->request->param();
$data=Db::name('post')
->alias('p')
->join('user u','p.user_id=u.id')
->where('p.id',$param['id'])
->field('p.*,u.user_nickname')
->find();
$data['skill_id']=explode(',',$data['skill_id']);
$data['skill']=Db::name('skill')->alias('s')->join('category c','s.category_id=c.id')->where('s.id','in',$data['skill_id'])->field('c.name,s.price')->select();
$this->success('获取数据成功',$data);
}
}