<?php

namespace app\admin\controller;

class Admin extends BaseAuthorized
{
    public function init()
    {
        $roleList = \app\common\model\Role::field("id,name,valid,remark")->order("name asc ,id desc")->select();
        $result = [
            "roleList" => $roleList,
        ];
        return $this->success($result);
    }

    public function list()
    {
        //第1段:校验输入
        $param = request()->param();
        $rules = [];
        $this->autoValid($rules, $param);
        $listRow = input("pageSize", 20);
        $keyword = input("keyword", "");
        //第2段:执行业务
        $res = \app\common\model\Admin::getList($keyword, $listRow);
        //第3段:格式化输出
        if ($res["code"] != 0) {
            $this->error($res['msg'], $res["code"]);
        }
        return $this->success($res["data"]);
    }


    public function add()
    {
        //第1段:校验输入
        $param = request()->param();
        $rules = [
            'name|账号' => 'require',
            'password|密码' => 'require',
            'phone|手机号' => 'require',
            'role_id|角色' => 'require',
            'valid|状态' => 'require',
        ];
        $this->autoValid($rules, $param);
        //第2段:执行业务
        $res = \app\common\model\Admin::add($param["name"], $param["password"], $param["phone"], $param["role_id"], $param["valid"]);
        //第3段:格式化输出
        if ($res["code"] != 0) {
            $this->error($res['msg'], $res["code"]);
        }
        return $this->success($res["data"], "新增成功");
    }

    public function edit()
    {
        //第1段:校验输入
        $param = request()->param();
        $rules = [
            'id|id' => 'require',
            'name|账号' => 'require',
            'phone|手机号' => 'require',
            'role_id|角色' => 'require',
            'valid|状态' => 'require',
        ];
        $this->autoValid($rules, $param);
        //第2段:执行业务
        $res = \app\common\model\Admin::edit($param["id"], $param["phone"], $param["role_id"], $param["valid"]);
        //第3段:格式化输出
        if ($res["code"] != 0) {
            $this->error($res['msg'], $res["code"]);
        }
        return $this->success($res["data"], "更新成功");
    }

    /**
     * 删除
     */
    public function delete()
    {
        $param = request()->param();
        $rules = [
            'ids|删除项' => 'require',
        ];
        $this->autoValid($rules, $param);
        $res = \app\common\model\Admin::del($param["ids"]);
        if ($res["code"] != 0) {
            $this->error($res['msg'], $res["code"]);
        }
        return $this->success($res["data"]);
    }

    public function detail()
    {
        $param = request()->param();
        $rules = [
            'id|id' => 'require',
        ];
        $this->autoValid($rules, $param);
        $admin = \app\common\model\Admin::with(['role'])->find($param["id"]);
        if (!$admin) {
            $this->error("记录未找到");
        }
        return $this->success($admin);
    }

    public function resetPwd()
    {
        $param = request()->param();
        $rules = [
            'id|id' => 'require',
            'password|密码' => 'require',
        ];
        $this->autoValid($rules, $param);
        $res = \app\common\model\Admin::resetPwd($param["id"], $param["password"]);
        if ($res["code"] != 0) {
            $this->error($res['msg'], $res["code"]);
        }
        return $this->success($res["data"], "重置成功");
    }

}