IndexController.php 2.9 KB
<?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);
    }

}