ManufacturerController.php 7.26 KB
<?php

namespace app\ht\modules\manufacturer\controllers;

use Yii;
use yii\data\Pagination;
use domain\manufacturer\Manufacturer;
use domain\manufacturer\ManufacturerRepository;
use common\models\SysUser       as SysUserModel;
use app\ht\controllers\BaseController;

/**
 * 厂商管理
 * Class ManufacturerController
 * @package app\ht\modules\manufacturer\controllers
 */
class ManufacturerController extends BaseController
{
    /**
     * 厂商管理
     */
    public function actionIndex()
    {
        $params = $this->dataList(1);
        /**
         * 渲染模板
         */
        return $this->render('index', $params);
    }

    /**
     * 查询数据列表
     */
    protected function dataList($type = '')
    {
        $request     = Yii::$app->request;
        $creatTime   = $request->get('creatTime');
        $endTime     = $request->get('endTime');
        $name =  $request->get('name');
        $phone =  $request->get('phone');
        $loginName =  $request->get('loginName');

        $gets = [
            'creatTime'  => $creatTime,
            'endTime'    => $endTime,
            'name'       => $name,
            'phone'      => $phone,
            'loginName'  => $loginName,
        ];

        $where = ['and'];
        if ($name) {
            $where[] = [
                'or',
                ['like', 'name', $name],
                ['like', 'manufacture_no', $name],
            ];
        }
        if ($phone) {
            $where[] = ['like', 'phone', $phone];
        }
        if ($loginName) {
            $where[] = ['like', 'username', $loginName];
        }
        if ($creatTime) {
            $creatTime = strtotime($creatTime);
            $where[] = ['>=', 'm.created_at', $creatTime];
        }
        if ($endTime) {
            $endTime = strtotime($endTime) + 86400;
            $where[] = ['<=', 'm.created_at', $endTime];
        }
        if ($type == 0) {
            $pageList = ManufacturerRepository::getPageList($where, 0 , 0);
            $pages = null;
        } else {
            $pageSize = 20;
            $pages = new Pagination(['totalCount' => ManufacturerRepository::getPageCount($where), 'pageSize' => $pageSize]);
            $pageList = ManufacturerRepository::getPageList($where, $pages->offset, $pages->limit);
        }

        /**
         * 数据整理
         */
        return [
            'listdata'   => $pageList,
            'pages'      => $pages,
            'gets'       => $gets
        ];
    }

    /**
     * 创建厂商
     * @return string
     */
    public function actionCreate()
    {
        return $this->render('create');
    }

    /**
     * 创建厂商
     * @return string
     */
    public function actionDoAdd()
    {
        $request = Yii::$app->request;
        $name = $request->post("name");
        $phone = $request->post("phone");
        if (empty(trim($name))) {
            Yii::$app->session->setFlash('error', '厂商名称不能为空');
            return $this->render('create');
        }
        if (empty($phone)) {
            Yii::$app->session->setFlash('error', '厂商电话不能为空');
            return $this->render('create');
        }
        $result = Manufacturer::create($request->post());
        if ($result) {
            Yii::$app->session->setFlash('success', '添加成功');
        } else {
            Yii::$app->session->setFlash('error', '添加失败');
        }
        $info = ManufacturerRepository::selectInfoById($result, true);

        return $this->render('edit', ["isCreateSuccess" => true, "info" => $info]);
    }

    /**
     * 编辑厂商
     * @return string
     */
    public function actionEdit()
    {
        $manufacturerId = $this->request->get("mid");
        $info = ManufacturerRepository::selectInfoById($manufacturerId, true);
        return $this->render('edit', ["isCreateSuccess" => false, "info" => $info]);
    }

    /**
     * 编辑厂商
     * @return string
     */
    public function actionDoEdit()
    {
        $request = Yii::$app->request;
        $name = $request->post("name");
        $phone = $request->post("phone");
        $username = $request->post("username");
        $password = $request->post("password");
        $mid = $request->post("mid");
        if (empty($mid)) {
            Yii::$app->session->setFlash('error', '厂商编号不能为空');
            $params = $this->dataList(1);
            return $this->render('index', $params);
        }
        $manufacturer = ManufacturerRepository::selectInfoById($mid,true);
        if (empty($manufacturer)) {
            Yii::$app->session->setFlash('error', '该厂商不存在');
            $params = $this->dataList(1);
            return $this->render('index', $params);
        }
        if (empty(trim($name))) {
            Yii::$app->session->setFlash('error', '厂商名称不能为空');
            return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
        }
        if (empty($phone)) {
            Yii::$app->session->setFlash('error', '厂商电话不能为空');
            return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
        }
        if (empty($username)) {
            Yii::$app->session->setFlash('error', '账号不能为空');
            return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
        }
        if (empty($password)) {
            Yii::$app->session->setFlash('error', '密码不能为空');
            return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
        }
        if (isset($manufacturer["name"]) && $name != $manufacturer["name"]) {
            if (ManufacturerRepository::findOne(["name" => $name])) {
                Yii::$app->session->setFlash('error', '修改的用户名已经存在');
                return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
            }
            if (SysUserModel::findOne(["username" => $username])) {
                Yii::$app->session->setFlash('error', '账号已经存在');
                return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
            }
        }
        $result = Manufacturer::update($mid, $request->post());
        if ($result) {
            Yii::$app->session->setFlash('success', '编辑成功');
        } else {
            Yii::$app->session->setFlash('error', '编辑失败');
        }
        $manufacturer = ManufacturerRepository::selectInfoById($mid,true);
        return $this->render('edit', ["isCreateSuccess" => false, "info" => $manufacturer]);
    }

    /**
     * 删除厂商
     * @return string
     * @throws \Exception
     */
    public function actionDoDel()
    {
        $request = Yii::$app->request;
        $itemId = $request->post("data_id");
        $msg = array();

        // 删除对应的厂商
        if (Manufacturer::delete($itemId)) {
            $msg['status'] = 1;
            $msg['msg'] = "操作成功";
        } else {
            $msg['status'] = 0;
            $msg['msg'] = "操作失败";
        }

        return $this->renderJson($msg);
    }

    /**
     * 导出厂商数据
     * @return string
     */
    public function actionExport()
    {
        $params = $this->dataList(0);
        return $this->renderPartial('export', $params);
    }
}