OrderSortController.php 7.2 KB
<?php
/**
 * Created by PhpStorm.
 * User: 29925
 * Date: 2018/8/7
 * Time: 15:58
 */

namespace app\admin\controller;

use app\admin\model\OrderSortModel;
use cmf\controller\AdminBaseController;
use think\Db;

class OrderSortController extends AdminBaseController
{

    protected $table;
    protected $order_sort_model;
    protected $option_table;
    public function _initialize()
    {
        $this->table = 'OrderSort';
        $this->order_sort_model = new OrderSortModel();
        $this->option_table = 'OrderOption';
    }

    /**
     * 表单类型列表
     * @adminMenu(
     *     'name'   => '表单类型列表',
     *     'parent' => 'admin/OrderOption/default',
     *     'display'=> true,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '表单类型列表',
     *     'param'  => ''
     * )
     */
    public function index() {
        $param = $this->request->param();
        $where = [
            'delete_time'=>0
        ];
        if(isset($param['keyword'])) {
            $where['name'] = ['like','%'.$param['keyword'].'%'];
        }
        $list = $this->singleData($this->table,$where,2,['create_time'=>'DESC']);
        $list->appends($param);
        $this->assign('list',$list->items());
        $this->assign('page',$list->render());
        $this->assign('keyword',isset($param['keyword']) ? $param['keyword'] : '');
        return $this->fetch();
    }

    /**
     * 添加表单类型
     * @adminMenu(
     *     'name'   => '添加表单类型',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 1,
     *     'icon'   => '',
     *     'remark' => '添加表单类型',
     *     'param'  => ''
     * )
     */
    public function add() {
        $option_list = $this->singleData($this->option_table,['delete_time'=>0],1);
        $this->assign('optionList',$option_list);
        return $this->fetch();
    }

    /**
     * 添加表单类型提交
     * @adminMenu(
     *     'name'   => '添加表单类型提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 2,
     *     'icon'   => '',
     *     'remark' => '添加表单类型提交',
     *     'param'  => ''
     * )
     */
    public function addPost() {
        if($this->request->isAjax()) {
            $insert = [];
            $post = $this->request->param('param/a');
            $name = $insert['name'] = $this->request->param('name');
            $insert['icon'] = $this->request->param('icon');
            foreach ($post as $k=>$v) {
                $where = ['id'=>$v['id']];
                $info = Db::name('OrderOption')->where($where)->find();
                $v['values'] = $info['values'];
                $post[$k] = $v;
            }
            $insert['options'] = json_encode($post);
            $validate = $this->validate($insert, $this->table);
            if ($validate !== true) {
                $this->error($validate);
            }
            $result = $this->order_sort_model->addSort($insert);
            if (!$result) {
                $this->error('添加失败');
            }
            $this->success('添加成功',url('OrderSort/index'));
        }
    }

    /**
     * 编辑表单类型
     * @adminMenu(
     *     'name'   => '编辑表单类型',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 3,
     *     'icon'   => '',
     *     'remark' => '编辑表单类型',
     *     'param'  => ''
     * )
     */
    public function edit() {
        $id = $this->request->param('id',0,'intval');
        if(!$id) {
            $this->error('参数错误');
        }
        $info = $this->singleData($this->table,['id'=>$id,'delete_time'=>0]);
        $this->assign($info);
        $option_list = $this->singleData($this->option_table,['delete_time'=>0],1);
        $this->assign('optionList',$option_list);
        return $this->fetch();
    }

    /**
     * 编辑表单类型提交
     * @adminMenu(
     *     'name'   => '编辑表单类型提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 4,
     *     'icon'   => '',
     *     'remark' => '编辑表单类型提交',
     *     'param'  => ''
     * )
     */
    public function editPost() {
        if($this->request->isPost()) {
            $id = $this->request->param('id', 0, 'intval');
            if (!$id) {
                $this->error('参数错误');
            }
            $post = $this->request->param();
            $validate = $this->validate($post, $this->table);
            if ($validate !== true) {
                $this->error($validate);
            }
            $result = $this->order_sort_model->editSort($post);
            if (!$result) {
                $this->error('修改失败');
            }
            $this->success('修改成功');
        }
    }

    /**
     * 删除表单类型
     * @adminMenu(
     *     'name'   => '删除表单类型',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 5,
     *     'icon'   => '',
     *     'remark' => '删除表单类型',
     *     'param'  => ''
     * )
     */
    public function delete() {
        $id = $this->request->param('id',0,'intval');
        $ids = $this->request->param('ids/a');
        if(isset($id)) {
            $result = $this->order_sort_model->where(['id'=>$id])->update(['delete_time'=>time()]);
        }
        if(isset($ids)) {
            $result = $this->order_sort_model->where(['id'=>['in',$ids]])->update(['delete_time'=>time()]);
        }
        if(!$result) {
            $this->error('删除失败');
        }
        $this->success('删除成功');
    }

    /**
     * 修改类型收集状态
     * @adminMenu(
     *     'name'   => '修改类型收集状态',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 6,
     *     'icon'   => '',
     *     'remark' => '修改类型收集状态',
     *     'param'  => ''
     * )
     */
    public function stop()
    {
        $param           = $this->request->param();
        $msg = '';

        if (isset($param['ids']) && isset($param["is_stop"])) {
            $stop = $param["is_stop"];
            $ids = $this->request->param('ids/a');

            $this->order_sort_model->where(['id' => ['in', $ids]])->update(['is_stop' => $stop, 'update_time' => time()]);

            if($stop == 0) {
                $msg = "开启收集成功!";
            }
            if($stop == 1) {
                $msg = "停止收集成功!";
            }
            $this->success($msg, '');

        }
        if (isset($param['id']) && isset($param["is_stop"])) {
            $stop = $param["is_stop"];
            $id = $this->request->param('id');

            $this->order_sort_model->where(['id' => $id])->update(['is_stop' => $stop, 'update_time' => time()]);

            if($stop == 0) {
                $msg = "开启收集成功!";
            }
            if($stop == 1) {
                $msg = "停止收集成功!";
            }
            $this->success($msg,'');

        }
    }
}