<?php
/**
 * 角色管理控制器
 */
namespace app\modules\shops\v1\controllers;
use app\modules\common\Helper;
use app\modules\common\Verify;
use app\modules\logic\services\UserService;
use app\modules\logic\model\ShopRoleModel;
use app\modules\logic\model\UsersModel;
use Yii;
use yii\web\Controller;

class RoleController extends MiddleController {
	/**
	 * 返回
	 * @param $code
	 * @param string $info
	 * @param string $controller
	 * @param string $total
	 */
	protected function response($code, $info = '', $total = '', $controller = 'role') {
		return parent::response($code, $info, $total, $controller);
	}
	/**
	 * [actionPurview 获取用户权限]
	 * @apiDoc
	 * @api     v1/role/purview
	 * @group   role
	 * @name    权限下拉
	 * @desc    门店APP-角色管理-权限选项
	 * @method  POST
	 * @author JOHN.W
	 * @version [1.0]
	 * @return json
		{
		"code": "000000",
		"msg": "获取成功",
		"info": {
		"account": "账号管理",
		"role": "角色管理",
		"order": "订单管理",
		"pay": "支付权限",
		"bill": "开票管理",
		"contact": "是否指定技师联系人"
		}
		}
	 */
	public function actionPurview(){
		$result = Helper::getShopPurview('',true);
		return $this->response('deal_succ', '获取成功', $result);
	}
	/**
	 * [actionAdd 添加角色]
	 * @apiDoc
	 * @api     v1/role/add
	 * @group   role
	 * @name    添加角色
	 * @desc    门店APP-集团账号/分公司账号/门店账号-添加角色
	 * @method  POST
	 * @param  role_name string 角色名称 req 
	 * @param  purview string 权限【account,role..】 req
	 * @author JOHN.W
	 * @version [1.0]
	 * @return  json
		{
		"code": "000000",
		"msg": "添加成功",
		"info": ""
		}
	 */
	public function actionAdd(){
		if (empty($this->user_id)) {
            return $this->response('para_miss_user', '未能识别用户标志');
        }
        if(empty($this->para['role_name'])){
        	return $this->response('para_miss', '角色名称不能为空');
        }
        if(empty($this->para['purview'])){
        	return $this->response('para_miss', '权限不能为空');
        }
        $ShopRole = new ShopRoleModel();
        $param  = [
        	'user_id'=>$this->user_id,
        	'role_name'=>$this->para['role_name'],
        	'purview'=>$this->para['purview']
        ];
        $res = $ShopRole->saveUs($param);
        if($res){
            return $this->response('deal_succ', '添加成功');
        }else{
            return $this->response('deal_false', '添加失败');
        }
	}
	/**
	 * [actionList 角色管理]
	 * @apiDoc
	 * @api     v1/role/list
	 * @group   role
	 * @name    角色管理-列表
	 * @desc    门店APP-角色管理
	 * @method  POST
	 * @author JOHN.W
	 * @version [1.0]
	 * @return  json
		{
		"code": "000000",
		"msg": "获取成功",
		"info": [
		{
		    "id": "1",
		    "role_name": "管理员",
		    "account_num": "0"
		},
		{
		    "id": "2",
		    "role_name": "高级管理1",
		    "account_num": "0"
		}
		]
		}
	 */
	public function actionList(){
		if (empty($this->user_id)) {
            return $this->response('para_miss_user', '未能识别用户标志');
        }
        $ShopRole = new ShopRoleModel();
        $rows = $ShopRole->getWidgetRows(['cols'=>['id','role_name'],'user_id'=>$this->user_id]);
        if(!empty($rows)){
        	$Users = new UsersModel();
        	foreach ($rows as &$value) {
        		$value['account_num'] = $Users->getWidgetTotal(['parent_id'=>$this->user_id,'role_id'=>$value['id']]);
        	}
        }
        return $this->response('deal_succ', '获取成功',$rows);
	}
}