<?php
# 获取小刊分类权限
$auth = Dever::tops();

# 如果用linkage,那么下面这两个用不上了
$journal = function() use ($auth)
{
    $array = array();
    if ($auth) {
        $info = Dever::db('journal/info')->getIds(array('cate_id' => $auth, 'buy' => 1));
    } else {
        $info = Dever::db('journal/info')->state(array('buy' => 1));
    }
    
    if($info)
    {
        $array += $info;
    }
    return $array;
};

$cate = function() use ($auth)
{
    $array = array();
    if ($auth) {
        $info = Dever::db('journal/cate')->getIds(array('ids' => $auth));
    } else {
        $info = Dever::db('journal/cate')->state();
    }
    
    if($info)
    {
        $array += $info;
    }
    return $array;
};

$zhou = Dever::input('search_zhou');
if ($zhou) {
    $group = 'cate_id';
} else {
    $group = 'day_int,cate_id';
}

$list = array
(
    # 匹配的正则或函数 选填项
    'option' => array
    (

        'start_day_int' => array('yes-day_int', '>='),
        'end_day_int' => array('yes-day_int', '<='),
        'cate_id' => 'yes',
        'journal_id' => 'yes',
        'state' => 1,
    ),
    'type' => 'all',
    'order' => array('day_int' => 'desc', 'id' => 'desc'),
    'group' => $group,
    'page' => array(20, 'list'),
    //'col' => 'id,sum(order_num) as order_num,sum(order_yes_num) as order_yes_num,sum(order_no_num) as order_no_num,sum(buy_num) as buy_num,sum(buy_cash) as buy_cash,cdate,journal_id,day_int,day_string,cate_id',
    'col' => 'id,sum(order_yes_num) as order_yes_num,sum(buy_num) as buy_num,sum(buy_cash) as buy_cash,cdate,journal_id,day_int,day_string,cate_id',
);

//$search = Dever::input('search_option_journal_id');
$search = Dever::input('search_linkage_cate_journal');

$groupState = false;
if ($search) {
    if ($search != -1 && isset($search[1]) && $search[1] > 0) {
        $list['option']['journal_id'] = $search[1];
        Dever::setInput('search_option_journal_id', $search[1]);
    } elseif (isset($search[0]) && $search[0] == -1) {
        Dever::setInput('search_option_journal_id', 0);
        $groupState = true;
    } else {
        $groupState = true;
    }
} else {
    $groupState = true;
}

if (!$zhou && !$groupState) {
    unset($list['group']);
    $list['col'] = '*';
}


if ($auth) {
    $list['option']['cate_id'] = array($auth, 'in');
}

return array
(
    # 表名
    'name' => 'journal',
    # 显示给用户看的名称
    'lang' => '小刊订单',
    'order' => '10',
    # 数据结构
    'struct' => array
    (
    
        'id'        => array
        (
            'type'      => 'int-11',
            'name'      => 'ID',
            'default'   => '',
            'desc'      => '',
            'match'     => 'is_numeric',
            //'list'        => true,
        ),

        'day_string'       => array
        (
            'type'      => 'varchar-60',
            'name'      => '统计日期',
            'default'   => '',
            'desc'      => '统计日期',
            'match'     => 'is_string',
            'update'    => 'text',
            //'search'    => 'fulltext',
            'list'      => $zhou ? false : true,
        ),

        'day_int'        => array
        (
            'type'      => 'int-11',
            'name'      => '统计日期',
            'default'   => '',
            'desc'      => '统计日期',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'search'    => 'time',
            'order'     => 'desc',
            //'list'        => true,
        ),

        'cate_journal'     => array
        (
            'name'      => '小刊',
            'default'   => '',
            'desc'      => '小刊',
            'search'    => 'linkage',
            'search_col' => 'cate_id,product_id',
            'option'    => Dever::url('lib/manage.search_cate_journal', 'journal'),
        ),

        'cate_id'       => array
        (
            'type'      => 'int-11',
            'name'      => '小刊分类',
            'default'   => '1',
            'desc'      => '小刊分类',
            'match'     => 'is_numeric',
            'update'    => 'select',
            'option'    => $cate,
            //'search'    => 'select',
            'list'      => true,
        ),

        'journal_id'      => array
        (
            'type'      => 'int-11',
            'name'      => '小刊',
            'default'   => '',
            'desc'      => '小刊',
            'match'     => 'is_numeric',
            'update'    => 'select',
            //'search'    => 'select',
            'option'    => $journal,
            'list'      => $zhou ? false : 'Dever::load("stat/lib/manage.info", {journal_id})',
        ),

        'order_num'       => array
        (
            'type'      => 'int-11',
            'name'      => '总订单',
            'default'   => '0',
            'match'     => '总订单数',
            'match'     => 'is_numeric',
            'update'    => 'text',
            //'list'      => true,
        ),

        'order_yes_num'       => array
        (
            'type'      => 'int-11',
            'name'      => '支付订单',
            'default'   => '0',
            'match'     => '支付订单数',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list'      => true,
        ),

        'order_no_num'       => array
        (
            'type'      => 'int-11',
            'name'      => '未支付订单',
            'default'   => '0',
            'match'     => '未支付订单数',
            'match'     => 'is_numeric',
            'update'    => 'text',
            //'list'      => true,
        ),

        'buy_num'       => array
        (
            'type'      => 'int-11',
            'name'      => '售出本数',
            'default'   => '0',
            'match'     => '售出本数',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list'      => true,
        ),

        'buy_cash'       => array
        (
            'type'      => 'int-11',
            'name'      => '售出金额',
            'default'   => '0',
            'match'     => '售出金额',
            'match'     => 'is_numeric',
            'update'    => 'text',
            'list'      => 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'      => '',
            # 只有insert时才生效
            'insert'    => true,
            //'search'    => 'date',
            'list'      => 'date("Y-m-d H:i", {cdate})',
        ),
    ),

    //'top' => Dever::config('base')->top,
    'top_option' => array
    (
        array
        (
            'value' => $auth,
            'col' => 'cate_id',
        ),
        array
        (
            'value' => Dever::load('manage/auth.authData'),
            'col' => 'id',
        ),
    ),

    'manage' => array
    (
        'insert' => false,
        'edit' => false,
        'delete' => false,
        'num' => false,
        'excel' => true,

        //'page_list' => 'journal',
    ),

    'request' => array
    (
        'list' => $list,

        'getData' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'start' => array('yes-day_int', '>='),
                'end' => array('yes-day_int', '<='),
                'state' => 1,
            ),
            'type' => 'all',
            'order' => array('day_int' => 'desc'),
            //'group' => 'day_int',
            'col' => '*',
        ),

        'getNumByJournal' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'journal_id' => 'yes',
                'state' => 1,
            ),
            'type' => 'one',
            //'group' => 'day_int',
            'col' => 'sum(buy_num) as buy_num',
        ),
    ),
);