<?php

$role = function()
{
    $array = array();
    $data = Dever::load('setting/role-state');
    if($data)
    {
        $array += $data;
    }
    return $array;
};

$title = function()
{
    $array = array();
    $data = Dever::load('setting/title-state');
    if($data)
    {
        $array += $data;
    }
    return $array;
};

$status = array
(
    1 => array('name' => '未认证', 'style' => 'font-weight:bold;color:#436EEE'),
    2 => array('name' => '正常', 'style' => 'font-weight:bold;color:green'),
    //3 => '驳回',
    //4 => '已删除',
    5 => array('name' => '已禁用', 'style' => 'font-weight:bold;color:#CD3700'),
);

$type = array
(
    1 => '个人',
    2 => '公司',
);

$prize_type = array
(
    1 => '名额外',
    2 => '名额内',
);

$is_shop = array
(
    1 => '无法修改',
    2 => '可以修改',
);

$import = array
(
    1 => '最新系统',
    2 => 'v2旧系统导入',
    3 => 'v1旧系统导入',
);

$is_area = array
(
    1 => '是',
    2 => '否',
);

$source_id = function()
{
    $array = array
    (
        -1 => array
        (
            'id' => '-1',
            'name' => '无来源',
        ),
    );
    $data = Dever::load('setting/source-state');
    if($data)
    {
        $array += $data;
    }
    return $array;
};

$level = function()
{
    $array = array
    (
        -1 => array
        (
            'id' => -1,
            'name' => '普通',
        ),
    );
    $data = Dever::load('setting/level-state');
    if($data)
    {
        $array += $data;
    }
    return $array;
};
$excel = false;
if (Dever::load('manage/auth')->checkFunc('agent.member', 'agent_member_excel1', '代理商数据导出')) {
    $excel = array
    (
        array('代理商数据导出', '代理商列表', 'agent/lib/manage.agentOut'),
        array('代理商资金数据导出', '代理商资金列表', 'agent/lib/manage.agentCashOut'),
    );
}

# 权限设置 1是查看详情、2是头衔统计
$search_auth = Dever::input('search_option_dever_auth', 1);
$info = '';
$button = array();
$list_button = array();
if($search_auth == 1){
    $list_button['list'] = array('查看详情', '"member_area&mid={id}&page_type=1&[refer]"');
}
if($search_auth == 2){
    if(Dever::load('manage/auth')->checkFunc('agent.member_title', 'editTitleout', '头衔数据导出')){

        /*
        $button = array
        (
            '数据导出' => array('excel', 'agent/lib/member.out_member'),
        );
        */
        $excel[] = array('头衔数据导出', '头衔数据导出', 'agent/lib/member.out_member');
    }
    
}

/*
if (Dever::load('manage/auth')->checkFunc('agent.member', 'edit6', '查看关系图谱')) {
    $list_button['list1'] = array('查看关系图谱',Dever::url('lib/manage.relation?mid={id}&[refer].manage', 'agent'));
}
*/


# id小于50000为导入的数据
return array
(
    # 表名
    'name' => 'member',
    # 显示给用户看的名称
    'lang' => '代理商管理',
    'order' => 100,
    'auto' => 50000,
    'config_type' => $type,
    'config_status' => $status,
    'info' => $info,
    'start' => array
    (
        'update' => 'agent/lib/manage.updateArea',
    ),
    # 数据结构
    'struct' => array
    (
    
        'id'        => array
        (
            'type'      => 'int-11',
            'name'      => '代理商姓名/手机号',
            'default'   => '',
            'desc'      => '',
            'match'     => 'is_numeric',
            'search'    => 'order',
            //'list'        => true,
            'search'    => array
            (
                'api' => 'agent/member-getSearch',
                'col' => 'col',
                'result' => 'id',
                'search' => 'id',
            ),
            'list_name' => '代理商信息',
            'list'      => $search_auth == 1 ? 'Dever::load("agent/lib/member.getOne", {id}, "agent/member", true)' : false,
        ),

        'name'      => array
        (
            'type'      => 'varchar-100',
            'name'      => '代理商姓名',
            'default'   => '',
            'desc'      => '姓名',
            'match'     => 'is_string',
            'update'    => 'text',
            'list_name' => $search_auth == 2 ? '姓名': false,
            'list'      => $search_auth == 2 ? true : false,
        ),

        'rdate'     => array
        (
            'type'      => 'int-11',
            'name'      => '认证时间',
            'match'     => 'option',
            'default'   => '0',
            'desc'      => '',
            'update'    => 'date',
            'callback'  => 'maketime',
            'search'    => 'date',
            // 'list'        => '{rdate} > 0 ? date("Y-m-d H:i", {rdate}) : "无"',
            'list'      => $search_auth == 1 ? 'Dever::load("agent/lib/member.set_rdate", {id})' : false,
            'list_order' => 100,
        ),

        'avatar'        => array
        (
            'type'      => 'varchar-150',
            'name'      => '头像',
            'default'   => '',
            'desc'      => '请选择头像',
            'match'     => 'option',
            'update'    => 'image',
            'key'       => '1',
            //'place'       => '150',
        ),

        'mobile'      => array
        (
            'type'      => 'bigint-11',
            'name'      => '手机号',
            'default'   => '',
            'desc'      => '请输入手机号',
            'match'     => Dever::rule('mobile'),
            'update'    => 'hidden',
            //'search'    => 'fulltext',
            'list'      => $search_auth == 2 ? true : false,
        ),

        'email'     => array
        (
            'type'      => 'varchar-150',
            'name'      => '邮箱',
            'default'   => '',
            'desc'      => '请输入邮箱',
            'match'     => 'option||' . Dever::rule('email'),
            'update'    => 'text',
        ),

        'username'      => array
        (
            'type'      => 'varchar-100',
            'name'      => '昵称',
            'default'   => '',
            'desc'      => '昵称',
            'match'     => 'is_string',
            'update'    => 'text',
        ),

        'birthday'      => array
        (
            'type'      => 'int-11',
            'name'      => '生日',
            'default'   => '',
            'match'     => 'option',
            'desc'      => '生日',
            'update'    => 'time',
            'callback'  => 'maketime',
        ),

        'password'      => array
        (
            'type'      => 'varchar-50',
            'name'      => '密码',
            'default'   => '',
            'desc'      => '请输入密码',
            'match'     => 'option',
            'update'    => 'password',
            'callback'  => 'sha1',
        ),

        'parent_mid'      => array
        (
            'type'      => 'int-11',
            'name'      => '上级姓名/手机号',
            'default'   => '-1',
            'desc'      => '邀请人',
            'match'     => 'is_string',
            //'update'    => 'text',
            'search'    => $search_auth == 1 ? array
            (
                'api' => 'agent/member-getSearch',
                'col' => 'col',
                'result' => 'id',
                'search' => 'parent_mid',
            ) : false,
            'list_name' => '上级信息',
            'list'      => $search_auth == 1 ? 'Dever::load("agent/lib/member.getOne", {parent_mid})' : false,
        ),

        'source_id'      => array
        (
            'type'      => 'int-11',
            'name'      => '注册来源',
            'default'   => '-1',
            'desc'      => '注册来源',
            'match'     => 'is_numeric',
            'search'    => 'select',
            //'update'    => 'checkbox',
            'option'    => $source_id,
        ),

        'code'        => array
        (
            'type'      => 'varchar-50',
            'name'      => '邀请码',
            'default'   => '',
            'desc'      => '代理商邀请码',
            'match'     => 'option',
            //'update'    => 'text',
            'list_order'=>1,
        ),

        'role'      => array
        (
            'type'      => 'int-11',
            'name'      => '代理角色',
            'default'   => '',
            'desc'      => '代理角色',
            'match'     => 'is_numeric',
            'search'    => 'select',
            'update'    => 'select',
            'option'    => $role,
            'list'      => $search_auth == 2 ? true : false,
        ),

        'level_id'      => array
        (
            'type'      => 'int-11',
            'name'      => '代理商等级',
            'default'   => '-1',
            'desc'      => '代理商等级',
            'match'     => 'is_numeric',
            'search'    => 'select',
            'update'    => 'select',
            'option'    => $level,
            //'list'        => true,
        ),

        'title_id'      => array
        (
            'type'      => 'int-11',
            'name'      => '代理商头衔',
            'default'   => '1',
            'desc'      => '代理商头衔',
            'match'     => 'is_numeric',
            'search'    => 'select',
            'update'    => 'radio',
            'option'    => $title,
            'list'      => $search_auth == 2 ? true : false,
        ),

        'is_area'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '是否有代理区域',
            'default'   => '1',
            'desc'      => '是否有代理区域',
            'match'     => 'is_numeric',
            'option'    => $is_area,
            'update'    => 'radio',
        ),

        'area'       => array
        (
            'type'      => 'varchar-500',
            'name'      => '代理区域',
            'default'   => '',
            'desc'      => '代理区域',
            'match'     => 'option',
            'search'    => 'linkage',
            'update'    => 'linkage',
            'option'    => Dever::url('api.get?level_total=4', 'area'),
        ),

        'is_shop'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '门店是否可以修改',
            'default'   => '2',
            'desc'      => '门店是否可以修改',
            'match'     => 'is_numeric',
            'option'    => $is_shop,
            'update'    => 'radio',
        ),

        'shop_id'      => array
        (
            'type'      => 'int-11',
            'name'      => '所属门店',
            'default'   => '',
            'desc'      => '所属门店',
            'match'     => 'is_numeric',
            'update'    => 'select',
            'update_search' => 'shop/lib/manage.search',
        ),

        'type'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '类型',
            'default'   => '1',
            'desc'      => '类型',
            'match'     => 'is_numeric',
            'option'    => $type,
            'update'    => 'radio',
            'control'   => 'type',
        ),

        'sign'     => array
        (
            'type'      => 'varchar-150',
            'name'      => '手写签名',
            'default'   => '',
            'desc'      => '手写签名',
            'match'     => 'option',
            'update'    => 'image',
            'key'       => '7',
        ),

        'idcard'      => array
        (
            'type'      => 'varchar-32',
            'name'      => '身份证号码',
            'default'   => '',
            'desc'      => '身份证号码',
            'match'     => Dever::rule('idcard'),
            'update'    => 'text',
        ),

        'idcard_front'     => array
        (
            'type'      => 'varchar-150',
            'name'      => '身份证正面',
            'default'   => '',
            'desc'      => '身份证正面',
            'match'     => 'option',
            'update'    => 'image',
            'key'       => '8',
            //'place'     => '660*660',
        ),

        'idcard_back'     => array
        (
            'type'      => 'varchar-150',
            'name'      => '身份证背面',
            'default'   => '',
            'desc'      => '身份证背面',
            'match'     => 'option',
            'update'    => 'image',
            'key'       => '8',
            //'place'     => '660*660',
        ),

        'company_name'      => array
        (
            'type'      => 'varchar-100',
            'name'      => '公司名称',
            'default'   => '',
            'desc'      => '公司名称',
            'match'     => 'is_string',
            'update'    => 'text',
            //'search'    => 'fulltext',
            //'list'      => true,
            'show'      => 'type=2',
        ),

        'company_pic'      => array
        (
            'type'      => 'varchar-150',
            'name'      => '营业执照',
            'default'   => '',
            'desc'      => '营业执照',
            'match'     => 'option',
            'update'    => 'image',
            'key'       => '8',
            //'place'     => '660*660',
            'show'      => 'type=2',
        ),

        'company_number'      => array
        (
            'type'      => 'varchar-80',
            'name'      => '营业执照号码',
            'default'   => '',
            'desc'      => '营业执照号码',
            'match'     => 'is_string',
            'update'    => 'text',
            'show'      => 'type=2',
        ),

        'address'      => array
        (
            'type'      => 'varchar-800',
            'name'      => '地址',
            'default'   => '',
            'desc'      => '地址',
            'match'     => 'is_string',
            'update'    => 'text',
        ),

        'cash'      => array
        (
            'type'      => 'decimal-11,2',
            'name'      => '余额',
            'default'   => '0',
            'desc'      => '余额',
            'match'     => 'is_numeric',
            'search'    => 'exp',
            'update'    => 'text',
            'list_name' => '余额<br />直推业绩<br />团队业绩',
            'list'      => $search_auth == 1 ?'"{cash}<br />{sell}<br />{group_sell}"' : false,
        ),

        'sell'      => array
        (
            'type'      => 'decimal-11,2',
            'name'      => '直推业绩',
            'default'   => '0',
            'desc'      => '销售业绩',
            'search'    => 'exp',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list'      => $search_auth == 2 ? 'Dever::load("agent/lib/member.new_sell",{id})' : false,
        ),

        'group_sell'      => array
        (
            'type'      => 'decimal-11,2',
            'name'      => '团队业绩',
            'default'   => '0',
            'desc'      => '团队销售业绩',
            'match'     => 'is_numeric',
            'search'    => 'exp',
            'update'    => 'text',
            'list'      => $search_auth == 2 ? 'Dever::load("agent/lib/member.new_groupsell",{id})' : false,
        ),

        'old_group_sell'      => array
        (
            'type'      => 'decimal-11,2',
            'name'      => '历史团队业绩',
            'default'   => '0',
            'desc'      => '历史团队业绩',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list_name' => $search_auth == 2 ? '新增业绩' : false,
            'list'      => $search_auth == 2 ? 'Dever::load("agent/lib/member.new_money",{id})': false,
        ),

        'old_agentdownnum'      => array
        (
            'type'      => 'int-11',
            'name'      => '历史直推人数',
            'default'   => '0',
            'desc'      => '历史团队业绩',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list_name' => $search_auth == 2 ? '新增正常业绩' : false,
            'list'      => $search_auth == 2 ? 'Dever::load("agent/lib/member.new_zmoney",{id})': false,
        ),

        'old_pwd'      => array
        (
            'type'      => 'varchar-32',
            'name'      => 'pwd',
            'default'   => '',
            'desc'      => 'pwd',
            'match'     => 'is_string',
            'update'    => 'text',
        ),

        'old_salt'      => array
        (
            'type'      => 'varchar-32',
            'name'      => 'salt',
            'default'   => '',
            'desc'      => 'salt',
            'match'     => 'is_string',
            'update'    => 'text',
        ),

        'status'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '状态',
            'default'   => '1',
            'desc'      => '状态',
            'match'     => 'is_numeric',
            'option'    => $status,
            'search'    => 'select',
            'list'      => $search_auth == 1 ? true : false,
        ),

        'import'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '是否导入',
            'default'   => '1',
            'desc'      => '是否导入',
            'match'     => 'is_numeric',
            'option'    => $import,
            'update'    => 'radio',
        ),

        'prize_type'        => array
        (
            'type'      => 'tinyint-1',
            'name'      => '是否名额内',
            'default'   => '1',
            'desc'      => '是否名额内',
            'match'     => 'is_numeric',
            'option'    => $prize_type,
        ),

        'dever_auth'      => array
        (
            'name'      => '业绩时间',
            'default'   => '',
            'desc'      => '类型',
            'match'     => 'is_string',
            'search'    => 'hidden',
            
        ),

        'dever_time'      => array
        (
            'name'      => '业绩时间',
            'default'   => '',
            'desc'      => '类型',
            'match'     => 'is_string',
            // 'search'    => 'hidden',
            'search'    => $search_auth == 2 ? 'date' : false,
        ),

        'reorder'       => array
        (
            'type'      => 'int-11',
            'name'      => '排序(数值越大越靠前)',
            'default'   => '1',
            'desc'      => '请输入排序',
            'match'     => 'option',
            //'update'    => 'text',
            //'search'    => 'order',
            //'list'      => true,
            //'order'     => 'desc',
            //'edit'      => true,
        ),

        'state'     => array
        (
            'type'      => 'tinyint-1',
            'name'      => '状态',
            'default'   => '1',
            'desc'      => '请选择状态',
            'match'     => 'is_numeric',
        ),
        
        'cdate'     => array
        (
            'type'      => 'int-11',
            'name'      => '加入日期',
            'match'     => array('is_numeric', time()),
            'desc'      => '',
            // 'search'    => $search_auth == 2 ? 'date' : false,
            # 只有insert时才生效
            'insert'    => true,
            //'search'    => 'date',
        ),
    ),

    'alter' => array
    (
        5 => array
        (
            array('update', 'cash', 'cash', 'decimal-11,2 0 余额'),
            array('update', 'sell', 'sell', 'decimal-11,2 0 直推业绩'),
            array('update', 'group_sell', 'group_sell', 'decimal-11,2 0 团队业绩'),
            array('update', 'old_group_sell', 'old_group_sell', 'decimal-11,2 0 历史团队业绩'),
        ),
        'version' => 5,
    ),

    'index' => array
    (
        1 => array
        (
            'parent_mid' => 'parent_mid',
        ),
        
        # 版本号 更改版本号会更新当前表的索引
        'version' => 1,
    ),

    'manage' => array
    (
        //'list_table' => 'js',
        'insert' => false,
        'delete' => false,
        'edit' => false,
        'excel' => $excel,
        'button' => $button,

        'list_button' => $list_button,
    ),

    'request' => array
    (
        'getInfo' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'status' => 2,
                'state' => 1,
            ),
            'order' => array('id' => 'desc'),
            'type' => 'one',
            'col' => '*',
        ),

        'getData' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'idcard' => 'yes',
                'id' => array('yes', '!='),
                'status' => array('yes', 'in'),
                'state' => 1,
            ),
            'order' => array('id' => 'desc'),
            'type' => 'all',
            'page' => array(20, 'list'),
            'col' => '*',
        ),

        'upCash' => array
        (
            'type' => 'update',
            'where' => array
            (
                'id' => 'yes',
            ),
            'set' => array
            (
                'cash' => array('yes', '+='),
            ),
        ),

        'upSell' => array
        (
            'type' => 'update',
            'where' => array
            (
                'id' => 'yes',
            ),
            'set' => array
            (
                'cash' => array('yes', '+='),
                'upcol' => array('yes-sell', '+='),
                'level_id' => 'yes',
            ),
        ),

        'upGroupSell' => array
        (
            'type' => 'update',
            'where' => array
            (
                'id' => 'yes',
            ),
            'set' => array
            (
                'cash' => array('yes', '+='),
                'upcol' => array('yes-group_sell', '+='),
                'level_id' => 'yes',
            ),
        ),

        'upGroupSellOne' => array
        (
            'type' => 'update',
            'where' => array
            (
                'id' => 'yes',
            ),
            'set' => array
            (
                'sell' => array('yes', '+='),
                'group_sell' => array('yes', '+='),
            ),
        ),

        # 获取订单数量
        'getNum' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'start' => array('yes-cdate', '>='),
                'end' => array('yes-cdate', '<='),
                'fstart' => array('yes-rdate', '>='),
                'fend' => array('yes-rdate', '<='),
                'status' => 'yes',
                'role' => 'yes',
                'parent_mid' =>'yes',
                'state' => 1,
            ),
            'type' => 'count',
            'col' => '*',
        ),

        'getSearch' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'col' => array('yes-mobile,name', 'like'),
            ),
            'type' => 'all',
            'col' => '*|id',
        ),
        'getShopAll' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'shop_id' => array('yes','>='),
                'state' => 1,
            ),
            'type' => 'all',
            'col' => '*',
        ),
        'getCount' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'id' => 'yes',
                'role' => array('yes','in'),
                'prize_type' => 'yes',
                'state' => 1,
            ),
            'type' => 'count',
            'col' => '*',
        ),
        'getOutAll' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'id' => 'yes',
                'role' => 'yes',
                'prize_type' => 'yes',
                'state' => 1,
            ),
            'type' => 'all',
            'col' => '*',
        ),

        'getCountByRole' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'role' => 'yes',
                'parent_mid' => 'yes',
                'status' => 2,
                'state' => 1,
            ),
            'type' => 'count',
            'col' => '*',
        ),

        'search' => array
        (
            'option' => array
            (
                'ids' => array('yes-id', 'in'),
                'name' => array('yes-name,mobile', 'like'),
                'id' => 'yes',
                'state' => 1,
            ),
            'type' => 'all',
            'order' => array('reorder' => 'desc', 'id' => 'desc'),
            'limit' => '0,20',
            'col' => 'concat(name, "(", mobile , ")") as name, id, id as value, "" as selected, "" as disabled|id',
        ),

        'getAll' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'start' => array('yes-rdate', '>='),
                'end' => array('yes-rdate', '<='),
                'status' => 'yes',
                'state' => 1,
            ),
            'type' => 'all',
            // 'limit' => 10,
            'page' => array(20, 'list'),
            'col' => 'id,name,mobile,idcard,role,group_sell',
        ),

        'getNewParent' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'start' => array('yes-rdate','>='),
                'end' => array('yes-rdate','<='),
                'parent_mid' => 'yes',
                'state' => 1,
            ),
            'type' => 'all',
            'col' => 'id,group_sell,sell',
        ),

        'getDataByArea' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'area' => array('yes', 'like'),
                'state' => 1,
            ),
            'order' => array('id' => 'desc'),
            'type' => 'all',
            'col' => '*',
        ),

        'getDataByRole' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'role' => array('yes', 'in'),
                'state' => 1,
            ),
            'order' => array('id' => 'desc'),
            'type' => 'all',
            'col' => '*',
        ),

        'getExcelAll' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'start' => array('yes-rdate','>='),
                'end' => array('yes-rdate','<='),
                'area' => array('yes','like'),
                'role' =>'yes',
                'source_id' => 'yes',
                'title_id' =>'yes',
                'level_id' => 'yes',
                'id' => 'yes',
                'state' => 1,
                'status' => 'yes',
            ),
            'type' => 'all',
            'col' => '*',
        ),

        'getAreaAll' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'area' => array('yes','like'),
                'state' => 1,
            ),
            // 'order' => array('id' => 'desc'),
            'type' => 'one',
            'col' => 'id',
        ),

        'getOne' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'role' => 'yes',
                'area' => 'yes',
                'status' => 2,
                'state' => 1,
            ),
            'type' => 'one',
            'col' => '*',
        ),

        'getDataByName' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'name' =>'yes',
                'state' => 1,
            ),
            'type' => 'all',
            'order' => array('role' => 'asc', 'id' => 'desc'),
            'col' => '*',
        ),
    ),
);