PostController.php 6.7 KB
<?php
namespace api\home\controller;

use cmf\controller\RestBaseController;
use think\Db;
/**
 * @title 发布
 * @description 发布页面相关接口
 */
class PostController extends RestBaseController
{
    /**
     * @title 发布
     * @description 发布页面
     * @author panhaowen
     * @url /home/post/index
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     */
    public function index()
    {
        $userId=$this->getUserId();
        $data=Db::name('post')->where('user_id',$userId)->find();
        if (!$data){
            $this->error(['code'=>40001,'msg'=>'请填写发布信息']);
        }

        if ($data['status']==1){
            $this->error(['code'=>40002,'msg'=>'请等待审核']);
        }elseif ($data['status']==2){
            $this->success('您的申请已经通过');
        }elseif ($data['status']==3){
            $this->error(['code'=>40000,'msg'=>'您的申请未通过'],$data['remark']);
        }
    }

    /**
     * @title 技能选择
     * @description 技能选择页面
     * @author panhaowen
     * @url /home/post/skill
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     */
    public function skill()
    {
        $data=Db::name('category')->select()->each(function ($item) {
            $item['skill'] = Db::name('skill') ->where('category_id',$item['id'])->select();
            return $item;
        });
        $this->success('获取数据成功',$data);
    }


    /**
     * @title 发布提交
     * @description 用户发布提交接口
     * @author panhaowen
     * @url /home/post/postAdd
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:sex type:int require:1  desc:1男,2女
     * @param name:weight type:int require:1  desc:体重
     * @param name:height type:int require:1  desc:身高
     * @param name:skill_id type:int require:1  desc:技能(多个技能用,隔开)
     * @param name:job type:varchar require:1  desc:我的职业
     * @param name:brief type:varchar require:1  desc:个人简介
     * @param name:is_mobile type:int require:1  desc:0不允许通过手机联系,1可以通过手机联系
     * @param name:mobile type:int require:0  desc:手机号
     * @param name:wx type:varchar require:1  desc:微信二维码
     * @param name:is_contact type:int require:1  desc:0不允许非下单以外获取联系方式,1不下单获取联系方式
     * @param name:contact_price type:int require:0  desc:联系价格
     * @param name:thumbnail type:array require:1  desc:相册
     */
    public function postAdd(){
        $userId=$this->getUserId();
        $param=$this->request->param();
        $param['user_id']=$userId;
        $param['create_time']=time();
        $param['birthday']=strtotime($param['birthday']);
        $param['thumbnail']=json_encode(explode(',',$param['thumbnail']));
        Db::name('post')->insert($param);
        if (Db::name('post')->where(['user_id'=>$userId,'status'=>3])->find()){
            Db::name('post')->where(['user_id'=>$userId,'status'=>3])->delete();
        }
        $this->success('用户发布提交成功');
    }

    /**
     * @title 图片上传接口
     * @description
     * @author panhaowen
     * @url /home/post/postImage
     * @method POST
     * @param name:image[] type:array require:1 desc:图片资源文件
     */
    public function postImage()
    {
        $file = Request()->file('image');
        if (!$file) {
            $this->error('上传失败1');
        }
        // 移动到框架应用根目录/public/upload/ 目录下
        $info=[];
        foreach ($file as $v) {
            $a = $v->move(ROOT_PATH . 'public' . DS . 'upload' . DS . 'image');
            $image = cmf_get_image_preview_url('image' . DS . $a->getSaveName()); //返给前台可读取的url路径
            array_push($info,$image);
        }
        if ($info) {    // 成功上传后 获取上传信息
            // 输出 jpg
            // echo $info->getExtension();
            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            // echo $info->getSaveName();
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            //echo $info->getFilename();
//            $image = cmf_get_image_preview_url('image' . DS . $info->getSaveName()); //返给前台可读取的url路径
            $this->success('图片上传成功',$info);
        } else {
            // 上传失败获取错误信息
            $this->error('上传失败2');
        }
    }

    /**
     * @title 上传单个文件
     * @description 上传单个文件
     * @author Tiger Yang
     * @url /home/post/one
     * @method POST
     *
     * @header name:XX-Token require:1 default: desc:登录标识
     * @header name:XX-Device-Type require:0 default:wxapp desc:设备类型
     *
     * @param name:file type:file require:1 other: desc:上传文件
     */
    public function one()
    {
        $file = $this->request->file('file');
        // 移动到框架应用根目录/public/upload/ 目录下
        $info     = $file->validate([
            /*'size' => 15678,*/
            'ext' => 'jpg,png,gif'
        ]);
        $fileMd5  = $info->md5();
        $fileSha1 = $info->sha1();

        $findFile = Db::name("asset")->where('file_md5', $fileMd5)->where('file_sha1', $fileSha1)->find();

        if (!empty($findFile)) {
            $this->success("上传成功!", ['url' => cmf_get_asset_url($findFile['file_path']), 'filename' => $findFile['filename']]);
        }
        $info = $info->move(ROOT_PATH . 'public' . DS . 'upload');
        if ($info) {
            $saveName     = $info->getSaveName();
            $originalName = $info->getInfo('name');//name,type,size
            $fileSize     = $info->getInfo('size');
            $suffix       = $info->getExtension();

            $fileKey = $fileMd5 . md5($fileSha1);

            $userId = $this->getUserId();
            Db::name('asset')->insert([
                'user_id'     => $userId,
                'file_key'    => $fileKey,
                'filename'    => $originalName,
                'file_size'   => $fileSize,
                'file_path'   => cmf_get_asset_url($saveName),
                'file_md5'    => $fileMd5,
                'file_sha1'   => $fileSha1,
                'create_time' => time(),
                'suffix'      => $suffix
            ]);

            $storage = cmf_get_option('storage');

            if (isset($storage['type'])&&$storage['type']=='Qiniu') {
                $this->uploadToQiniu($saveName);
            }

            $this->success("上传成功!", ['url' => cmf_get_asset_url($saveName), 'filename' => $originalName]);
        } else {
            // 上传失败获取错误信息
            $this->error($file->getError());
        }

    }
}