| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | <?phpnamespace app\admin\controller\unishop;use app\admin\model\unishop\DeliveryRule;use app\common\controller\Backend;use app\admin\model\unishop\Area;/** * 运费模板 * * @icon fa fa-circle-o */class Delivery extends Backend{    /**     * Multi方法可批量修改的字段     */    protected $multiFields = 'switch';    /**     * Delivery模型对象     * @var \app\admin\model\unishop\Delivery     */    protected $model = null;    public function _initialize()    {        parent::_initialize();        $this->model = new \app\admin\model\unishop\Delivery;        $this->view->assign("typeList", $this->model->getTypeList());        $areaData = json_encode(Area::getCacheTree());        $this->view->assign('areaData',$areaData);    }    /**     * 添加     */    public function add()    {        if ($this->request->isPost())        {            $params = $this->request->post("row/a");            if ($params)            {                if(empty($params['area'])){                    $this->error('请添加可配送区域和运费');                }                if ($this->dataLimit && $this->dataLimitFieldAutoFill)                {                    $params[$this->dataLimitField] = $this->auth->id;                }                try                {                    //是否采用模型验证                    if ($this->modelValidate)                    {                        $name = basename(str_replace('\\', '/', get_class($this->model)));                        $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : true) : $this->modelValidate;                        $this->model->validate($validate);                    }                    $result = $this->model::saveDelivery($params);                    if ($result !== false)                    {                        $this->success();                    }                    else                    {                        $this->error($this->model->getError());                    }                }                catch (\think\exception\PDOException $e)                {                    $this->error($e->getMessage());                }            }            $this->error(__('Parameter %s can not be empty', ''));        }        return $this->view->fetch();    }    /**     * 删除     */    public function del($ids = "")    {        if ($ids)        {            $pk = $this->model->getPk();            $adminIds = $this->getDataLimitAdminIds();            if (is_array($adminIds))            {                $count = $this->model->where($this->dataLimitField, 'in', $adminIds);            }            $list = $this->model->where($pk, 'in', $ids)->select();            $count = 0;            foreach ($list as $k => $v)            {                (new DeliveryRule)->where('delivery_id',$v['id'])->delete();                $count += $v->delete();            }            if ($count)            {                $this->success();            }            else            {                $this->error(__('No rows were deleted'));            }        }        $this->error(__('Parameter %s can not be empty', 'ids'));    }    /**     * 编辑     */    public function edit($ids = NULL)    {        $row = $this->model->detail($ids);        if (!$row)            $this->error(__('No Results were found'));        $adminIds = $this->getDataLimitAdminIds();        if (is_array($adminIds))        {            if (!in_array($row[$this->dataLimitField], $adminIds))            {                $this->error(__('You have no permission'));            }        }        if ($this->request->isPost())        {            $params = $this->request->post("row/a");            if ($params)            {                if(empty($params['area'])){                    $this->error('请添加可配送区域和运费');                }                try                {                    //是否采用模型验证                    if ($this->modelValidate)                    {                        $name = basename(str_replace('\\', '/', get_class($this->model)));                        $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : true) : $this->modelValidate;                        $row->validate($validate);                    }                    $result = $this->model::editDelivery($params,$ids);                    if ($result !== false)                    {                        $this->success();                    }                    else                    {                        $this->error($row->getError());                    }                }                catch (\think\exception\PDOException $e)                {                    $this->error($e->getMessage());                }            }            $this->error(__('Parameter %s can not be empty', ''));        }        $this->view->assign("row", $row);        // 模板详情        return $this->view->fetch();    }}
 |