CooperationController.php 9.9 KB
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 老猫 <thinkcmf@126.com>
// +----------------------------------------------------------------------
namespace app\portal\controller;

use app\admin\model\ThemeModel;
use app\portal\model\CooperationModel;
use app\portal\model\PortalPostModel;
use cmf\controller\AdminBaseController;
use app\portal\model\PortalTagModel;
use app\portal\service\PostService;
use think\Db;
use think\Request;
use think\Loader;

class CooperationController extends AdminBaseController
{
    /**
     * 列表
     * @adminMenu(
     *     'name'   => '文章管理',
     *     'parent' => 'portal/AdminIndex/default',
     *     'display'=> true,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '文章列表',
     *     'param'  => ''
     * )
     */
    public function index(Request $request)
    {
        $where_coo['status'] = 1;
        $arr = array();
        if($request->param()){
            $search = $request->param();
            $startTime = empty($search['start_time']) ? 0 : strtotime($search['start_time']);
            $endTime   = empty($search['end_time']) ? 0 : strtotime($search['end_time']);
            if ($startTime && $endTime) {
                $arr['start_time'] = $search['start_time'];
                $arr['end_time'] = $search['end_time'];
                $where_coo['create_time'] = array('between',"$startTime,$endTime");
                $this->assign('start_time', $search['start_time']);
                $this->assign('end_time', $search['end_time']);
            }else{
                if($startTime){
                    $arr['start_time'] = $search['start_time'];
                    $where_coo['create_time'] = array('egt',$startTime);
                    $this->assign('start_time', $search['start_time']);
                }
                if($endTime){
                    $arr['end_time'] = $search['end_time'];
                    $where_coo['create_time'] = array('elt',$endTime);
                    $this->assign('end_time', $search['end_time']);
                }
            }
            if(!empty($search['keyword'])){
                $arr['keyword'] = $search['keyword'];
                $where_coo['name'] = array('like',"%".$search['keyword']."%");
                $this->assign('keyword',$search['keyword']);
            }
        }
        $coo_list = Db::name('Cooperation')->where($where_coo)->order('score desc , create_time desc')
            ->paginate(10,false,['query'=>$arr]);
        $page = $coo_list->render();
//            ->select()->toArray();
        $this->assign('list',$coo_list);
        $this->assign('page',$page);
        return $this->fetch();
    }


    /**
     * 添加、修改
     * @adminMenu(
     *     'name'   => '添加文章',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '添加文章',
     *     'param'  => ''
     * )
     */
    public function add(Request $request)
    {
        if($request->post()){
//            添加数据
            $data = $request->post();
            if($request->Post('id')){
//                修改
                $change_add['title'] = $data['title'];
                $change_add['pic'] = $data['pic'];
                $change_add['score'] = $data['score'];
                $change_add['jump'] = $data['jump'];
                $validate = Loader::validate('Cooperation');
                if(!$validate->scene('edit')->check($change_add)){
                    $mes = $validate->getError();
                    $this->error("$mes");
                }
                $change_add['id'] = $request->Post('id');
                $model = new CooperationModel();
                $final = $model->isUpdate(true)->allowField(true)->save($change_add);
            }else{
//                添加
                $add['title'] = $data['title'];
                $add['pic'] = $data['pic'];
                $add['score'] = $data['score'];
                $add['jump'] = $data['jump'];
                $validate = Loader::validate('Cooperation');
                if(!$validate->scene('add')->check($add)){
                    $mes = $validate->getError();
                    $this->error("$mes");
                }
                $model = new CooperationModel();
                $final = $model->save($add);
            }
            if($final){
                $this->success('成功',url('index'));
            }else{
                $this->error('失败');
            }
        }else{
            $where_find['id'] = $request->param('id');
            $list = Db::name('Cooperation')->where($where_find)->find();
            $this->assign('list',$list);
            return $this->fetch('add');
        }
    }

//  删除
    public function del(Request $request){
        $ids = $this->request->post();
        $id = $request->param('id');
        if($ids){
            $add_del['id'] = array('in',$ids['ids']);
        }else if($id){
            $add_del['id'] = $request->param('id');
        }else{
            $this->error('删除失败');
        }
        $add_del['status'] = 9;
        $model = new CooperationModel();
        $del = $model->isUpdate(true)->allowField(true)->save($add_del);
        if($del){
            $this->success('删除成功',url('index'));
        }else{
            $this->error('删除失败');
        }
    }


//    两分钟视频
    public function video(){
        if ($this->request->isPost()) {
            $data   = $this->request->param();
            if (!empty($data['file_names']) && !empty($data['file_urls'])) {
                $data['post']['more']['files'] = [];
                foreach ($data['file_urls'] as $key => $url) {
                    $fileUrl = cmf_asset_relative_url($url);
                    $first = str_split($fileUrl,4);
                    if($first[0] == 'http'){
                        $add['path'] = $fileUrl;
                    }else{
                        $add['path'] = cmf_get_asset_url($fileUrl);
                    }
                    $add['update_time'] = time();
                    $where_change['id'] = 1;
                    $res = Db::name('Video')->where($where_change)->update($add);
                    if($res){
                        $this->success('修改成功',url('Cooperation/video'));
                    }else{
                        $this->error('添加失败');
                    }
                }
            }else{
                $this->error('视频不能为空');
            }
        }else{
            $where_status['status'] = 1;
            $video = Db::name('Video')->where($where_status)->find();
            $this->assign('video',$video);
            return $this->fetch();
        }

    }


//    网站配置
    public function conf(){
        $data = $this->request->param();
        if($this->request->post()){
            if(empty($data['id'])){
                $add = $data;
                $add['qrshare'] = $this->createQRcode($add['share']);
                $add['create_time'] = time();
                $add['update_time'] = time();
                $res = Db::name('Conf')->insertGetId($add);
            }else{
                $add = $data;
                if(!empty($add['share'])){
                    $add['qrshare'] = $this->createQRcode($add['share']);
                }
                $add['update_time'] = time();
                $where_save['id'] = $data['id'];
                $res = Db::name('Conf')->where($where_save)->update($add);
            }
            if($res){
                $this->success('成功');
            }else{
                $this->error('失败');
            }
        }
        $where_conf['id'] = 1;
        $find_one = Db::name('Conf')->where($where_conf)->find();
        $this->assign('list',$find_one);
        return $this->fetch();
    }


    /**
     * 生成二维码
     * $param url 地址
     */
    public function createQRcode($url) {
        require VENDOR_PATH.'WxpayAPI/example/phpqrcode/phpqrcode.php';
        $QRcode = new \QRcode();
        $errorCorrectionLevel = 'L';    //容错级别
        $matrixPointSize = 5;           //生成图片大小
        //生成二维码图片
        $data = './upload/';
        $flodername =  'qrcode/' . date("Ymd", time());
        $png = uniqid() . '.png';
        $filename = $data.$flodername . '/' . $png;
        if (!file_exists($data.$flodername)) {
            mkdir($data.$flodername, 0777, true);
        }
        $QRcode->png($url, $filename, $errorCorrectionLevel, $matrixPointSize);
        return $flodername . '/' . $png;
    }

    //    推广内容
    public function push(){
        $data = $this->request->param();
        if($this->request->post()){
            $add['title'] = $data['title'];
            $add['content'] = $data['content'];
            $add['update_time'] = time();
            if(empty($data['id'])){
                $add['create_time'] = time();
                $res = Db::name('Push')->insertGetId($add);
            }else{
                $where_id['id'] = $data['id'];
                $res = Db::name('Push')->where($where_id)->update($add);
            }
            if($res){
                $this->success('修改成功');
            }else{
                $this->error('修改失败');
            }


        }else{
            $where_push['status'] = 1;
            $list = Db::name('Push')->where($where_push)->find();
        }
        $this->assign('list',$list);
        return $this->fetch();
    }

}