<?php
$time = (7*86400);
$audit = Dever::config('base')->audit;

$status = Dever::config('base')->status;

$share = function()
{
	$array = array();
	$info = Dever::db('poster/template')->state();
	if($info)
	{
		$array += $info;
	}
	return $array;
};
# 获取小刊分类权限
$auth = Dever::tops();
$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;
};


$share = array
(
	1 => '显示',
	2 => '不显示',
);

$top = array
(
	1 => '显示',
	2 => '不显示',
);

$buy = array
(
	1 => '收费',
	2 => '免费',
	//3 => '会员',
);

$hot = array
(
	1 => '热门',
	2 => '普通',
);


$page = 15;

# 常用的col
$col = 'id,name,subname,pic_cover,pic_view_cover,pic_view_bg,pdate,num_view,num_ding,num_add_ding,num_ratio_ding,num_comment,num_up,buy,share_yes,share_title,share_pic,share_content,pic_gd,cate_id,cash,bgmusic';

$config = array
(
	# 表名
	'name' => 'info',
	# 显示给用户看的名称
	'lang' => '小刊管理',
	'order' => 100,
	'end' => array
	(
		'insert' => 'journal/lib/manage.setJournalCache',
		'update' => 'journal/lib/manage.setJournalCache',
	),

	# 同步更新另外一个或多个表的数据 小刊不需要同步到审核页面
	/*
	'syncone' => array
	(
		'audit/data' => array
		(
			# 更新另外一个表的字段 => 本表的字段
			'where' => array('data_id' => 'id', 'type' => 4),
			# 要更新的数据
			'update' => array('data_id' => 'id', 'type' => 4, 'pdate' => 'pdate', 'reorder' => 'reorder', 'name' => 'name', 'audit' => 'audit', 'state' => 'state'),
		)
	),
	*/
	# 数据结构
	'struct' => array
	(
		'id' 		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> 'ID',
			'default' 	=> '',
			'desc' 		=> '',
			'match' 	=> 'is_numeric',
			'list'		=> true,
		),

		'name'		=> array
		(
			'type' 		=> 'varchar-180',
			'name' 		=> '小刊标题',
			'default' 	=> '',
			'desc' 		=> '标题',
			'match' 	=> 'is_string',
			'update'	=> 'text',
			'search'	=> 'fulltext',
			'list'		=> true,
		),

		'subname'		=> array
		(
			'type' 		=> 'varchar-80',
			'name' 		=> '子标题-一般为杂志的期数，如第1期',
			'default' 	=> '',
			'desc' 		=> '子标题',
			'match' 	=> 'is_string',
			'update'	=> 'text',
			//'list'		=> true,
		),

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

  		'pic_cover'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '列表页封面图-4:3比例的图片',
			'default' 	=> '',
			'desc' 		=> '列表封面图',
			'match' 	=> 'is_string',
			//'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
		),

		'pic_view_cover'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '封面图-图片尺寸660*660px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式',
			'default' 	=> '',
			'desc' 		=> '封面图',
			'match' 	=> 'is_string',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
		),

		'pic_view_bg'		=> array
		(
			'type' 		=> 'text-255',
			'name' 		=> '全屏背景图-图片尺寸750*1386px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式',
			'default' 	=> '',
			'desc' 		=> '全屏背景图',
			'match' 	=> 'is_string',
			'update'	=> 'images',
			'key' 		=> '1',
			'place'		=> '150',
		),

		'pic_gd'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '小刊推广图-图片尺寸512*688px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式',
			'default' 	=> '',
			'desc' 		=> '小刊推广图',
			'match' 	=> 'is_string',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
		),

		'bgmusic'		=> array
		(
			'type' 		=> 'varchar-800',
			'name' 		=> '背景音乐-音频格式mp3，上传大小不能超过100M',
			'default' 	=> '',
			'desc' 		=> '背景音乐',
			'match' 	=> 'option',
			'update'	=> 'upload',
			'key' 		=> '2',
			'place'		=> '150',
			'upload'	=> 'qiniu',
			'large' 	=> true,
			//不覆盖原文件，生成新文件
			'cover'		=> 2,
		),

		'num_ratio_ding'		=> array
		(
			'type' 		=> 'varchar-20',
			'name' 		=> '订阅系数-系数不能小于等于0，支持两位小数，电子刊总订阅量=（用户当前订阅数+订阅基数）*订阅系数',
			'default' 	=> '1',
			'desc' 		=> '手动增加订阅系数',
			'match' 	=> 'is_string',
			'update'	=> 'text',
		),

		'num_add_ding'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '订阅基数',
			'default' 	=> '0',
			'desc' 		=> '手动增加阅读数',
			'match' 	=> 'option',
			'update'	=> 'text',
		),

		'num_ding'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '订阅数',
			'default' 	=> '0',
			'desc' 		=> '请填写订阅数',
			'match' 	=> 'option',
			'search'	=> 'order',
			//'list'		=> '{num_view}+{num_add_view}',
		),

		'num_add_view'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '阅读数基数-废弃',
			'default' 	=> '0',
			'desc' 		=> '手动增加阅读数',
			'match' 	=> 'option',
			//'update'	=> 'text',
		),

		'num_view'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '阅读数-废弃',
			'default' 	=> '0',
			'desc' 		=> '请填写阅读数',
			'match' 	=> 'option',
			'search'	=> 'order',
			//'list'		=> '{num_view}+{num_add_view}',
		),

		'num_add_up'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '喜欢基数-废弃',
			'default' 	=> '0',
			'desc' 		=> '喜欢基数',
			'match' 	=> 'option',
			//'update'	=> 'text',
		),
		
		'num_up'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '喜欢数-已更新为订阅数，当使用通用兑换码时以及阅读时使用',
			'default' 	=> '0',
			'desc' 		=> '请填写喜欢数',
			'match' 	=> 'option',
			//'search'	=> 'order',
			'list'		=> 'Dever::load("journal/lib/manage.ding?id={id}")',
			'list_name'	=> '统计数字',
		),

		'num_comment'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '评论数-废弃',
			'default' 	=> '0',
			'desc' 		=> '请填写评论数',
			'search'	=> 'order',
			'match' 	=> 'option',
			//'list'		=> true,
		),

		'state'		=> array
		(
			'type' 		=> 'tinyint-1',
			'name' 		=> '状态',
			'default' 	=> '1',
			'desc' 		=> '请选择状态',
			'match' 	=> 'is_numeric',
		),

		'audit'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '审核',
			'default' 	=> '1',
			'desc' 		=> '审核',
			'match' 	=> 'is_numeric',
			//'update'	=> 'select',
			'option'	=> $audit,
			//'search'	=> 'select',
			//'list'		=> true,
			//'edit'		=> true,
		),

		'status'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '上线状态',
			'default' 	=> '1',
			'desc' 		=> '上线状态',
			'match' 	=> 'is_numeric',
			//'update'	=> 'select',
			'option'	=> $status,
			'search'	=> 'select',
			'list'		=> true,
			'edit'		=> true,
		),

		'admin_founder'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '创建人',
			'default' 	=> '1',
			'desc' 		=> '创建人',
			'match' 	=> 'is_numeric',
		),

		'admin_editor'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '操作人',
			'default' 	=> '1',
			'desc' 		=> '操作人',
			'match' 	=> 'is_numeric',
		),

		'pdate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '发售时间',
			'match' 	=> array('is_numeric', time()),
			'default'	=> '',
			'desc' 		=> '',
			'update'	=> 'date',
			'callback'	=> 'maketime',
			'insert'	=> true,
			//'list'		=> 'date("Y-m-d H:i:s", {pdate})',
			'auth'		=> '"{pdate}" > 0',
		),

		'ydate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '预售时间',
			'match' 	=> 'option',
			'default'	=> '',
			'desc' 		=> '',
			//'update'	=> 'date',
			'callback'	=> 'maketime',
			//'insert'	=> true,
			//'list'		=> 'date("Y-m-d H:i:s", {pdate})',
			//'auth'		=> '"{ydate}" > 0',
		),

		'share'		=> array
		(
			'type' 		=> 'text-255',
			'name' 		=> '分享海报-选择海报库中的海报',
			'default' 	=> '',
			'desc' 		=> '分享海报',
			'match' 	=> 'option',
			//'update'	=> 'checkbox',
			'option'	=> $share,
		),

		'top'		=> array
		(
			'type' 		=> 'tinyint-11',
			'name' 		=> '是否显示排行榜',
			'default' 	=> '1',
			'desc' 		=> '是否显示排行榜',
			'match' 	=> 'option',
			'update'	=> 'radio',
			'option'	=> $top,
			'list'		=> true,
			'search'	=> 'select',
			'edit'		=> true,
		),

		'buy'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '是否收费',
			'default' 	=> '1',
			'desc' 		=> '是否收费',
			'match' 	=> 'option',
			'update'	=> 'radio',
			'option'	=> $buy,
			'control'	=> 'buy',
			//'list'		=> true,
			'search'	=> 'select',
		),

		'hot'		=> array
		(
			'type' 		=> 'tinyint-1',
			'name' 		=> '是否热门电子刊',
			'default' 	=> '2',
			'desc' 		=> '是否热门电子刊',
			'match' 	=> 'option',
			'update'	=> 'radio',
			'option'	=> $hot,
			'list'		=> true,
			'edit'		=> true,
		),

		'cash'      => array
        (
            'type'      => 'varchar-50',
            'name'      => '单本支付价格-实际的小刊单本支付价格，单位元，直接填写数字即可',
            'default'   => '',
            'desc'      => '支付价格',
            'match'     => 'is_string',
            'update'    => 'text',
            'show'		=> 'buy=1',
        ),


        'score'         => array
        (
            'type'      => 'varchar-80',
            'name'      => '购买增加积分数-直接填写购买单本小刊的积分数，设置之后，积分规则里的设置将失效，如果设置为0，则按照积分规则进行增加积分',
            'default'   => '20',
            'desc'      => '增加积分数',
            'match'     => 'is_string',
            'update'    => 'text',
            'show'		=> 'buy=1',
        ),

        'dh_score'         => array
        (
            'type'      => 'varchar-80',
            'name'      => '兑换增加积分数-直接填写兑换单本小刊的积分数，设置之后，积分规则里的设置将失效，如果设置为0，则按照积分规则进行增加积分',
            'default'   => '20',
            'desc'      => '增加积分数',
            'match'     => 'is_string',
            'update'    => 'text',
            'show'		=> 'buy=1',
        ),

		'share_yes'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '是否显示分享按钮',
			'default' 	=> '1',
			'desc' 		=> '是否显示分享按钮',
			'match' 	=> 'option',
			'update'	=> 'radio',
			'option'	=> $share,
			'control'	=> 'share_yes',
		),

		'share_title'		=> array
		(
			'type' 		=> 'varchar-100',
			'name' 		=> '分享标题',
			'default' 	=> '',
			'desc' 		=> '分享标题',
			'match' 	=> 'option',
			'update'	=> 'text',
			'show'		=> 'share_yes=1',
		),

		'share_pic'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '分享图片-图片尺寸570*570px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式',
			'default' 	=> '',
			'desc' 		=> '分享图片',
			'match' 	=> 'is_string',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
			'show'		=> 'share_yes=1',
			//'upload'	=> 'qiniu',
			//'large' 	=> true,
		),

		'share_content'		=> array
		(
			'type' 		=> 'varchar-200',
			'name' 		=> '分享内容',
			'default' 	=> '',
			'desc' 		=> '分享内容',
			'match' 	=> 'option',
			'update'	=> 'textarea',
			'show'		=> 'share_yes=1',
		),

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

		'udate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '更新时间',
			'match' 	=> array('is_numeric', time()),
			'desc' 		=> '',
		),

		'cdate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '录入时间',
			'match' 	=> array('is_numeric', time()),
			'desc' 		=> '',
			# 只有insert时才生效
			'insert'	=> true,
		),
	),

	'top' => Dever::config('base')->top,

	# 增加这个，为了给当前的list增加一个option
	'top_option' => array
	(
		'value' => $auth,
		'col' => 'cate_id',
	),
	
	# 管理功能
	'manage' => array
	(
		//'insert' => false,
		'delete' => false,
		# 列表
		'list_button' => array
		(
			'edit' => array('预览', str_replace('https://api.', 'http://www.', Dever::url('main/preview.get?type=4'))),
			'edit1' => array('活动预览', str_replace('https://api.', 'http://www.', Dever::url('main/preview.get?type=13')), '{audit} == 1 && {buy} == 1'),
			'br2' => array('<br />'),
			'list10' => array('排行榜', '"journal_num&project=act&search_type=4&search_option_journal_id={id}&oper_parent=info&oper_project=journal"' , '{audit} == 1 && {buy} == 1'),
			'list11' => array('积分排行榜(旧)', '"score&project=act&search_type=4&search_option_data_id={id}&oper_parent=info&oper_project=journal"', '{audit} == 1 && {buy} == 1'),
			//'list11' => array('邀请排行', '"invite&project=act&search_type=4&search_option_data_id={id}&oper_parent=info&oper_project=journal"'),
			'br1' => array('<br />'),
			'list' => array('内页管理', '"content&search_option_info_id={id}&oper_parent=info&page_type=1"' , '{audit} == 1'),
			'br2' => array('<br />'),
			'add' => array('购买设置', '"buy&project=journal&search_option_info_id={id}&oper_parent=info&oper_project=journal&oper_save_jump=info&where_id={id}"', '{audit} == 1 && {buy} == 1'),
			'add1' => array('活动设置', '"active&project=journal&search_option_info_id={id}&oper_parent=info&oper_project=journal&oper_save_jump=info&where_id={id}"', '{audit} == 1 && {buy} == 1'),
			'br3' => array('<br />'),
			'list1' => array('购买本数管理', '"buy_num&search_option_info_id={id}&oper_parent=info"' , '{audit} == 1 && {buy} == 1'),
		),
	),

	# request 请求接口定义
	'request' => array
	(

		'search' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				'ids' => array('yes-id', 'in'),
				'cate_id' => 'yes',
				'name' => array('yes', 'like'),
				'id' => 'yes',
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc', 'id' => 'desc'),
			'limit' => '0,1000',
			'col' => 'name as name, id, id as value, "" as selected, "" as disabled|id',
		),

		'getAll' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				//'audit' => 2,
				'buy' => 'yes',
				'cate_id' => 'yes',
				'status' => 2,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc', 'id' => 'desc'),
			//'page' => array(10, 'list'),
			'col' => $col,
		),

		'getAllByPage' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				//'audit' => 2,
				'cate_id_1' => array('yes-cate_id', '=', 'and('),
				'time' => array('yes-pdate', '<=', 'or)'),
				'buy' => 'yes',
				'cate_id' => 'yes',
				'status' => 2,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc', 'id' => 'desc'),
			'page' => array(10, 'list'),
			'col' => $col,
		),
		
		# 更新浏览量
		'addView' => array
		(
			'type' => 'update',
			'where' => array
			(
				'id' => 'yes',
			),
			'set' => array
			(
				'num_view' => array('1', '+='),
			),
		),

		# 更新订阅量
		'addDing' => array
		(
			'type' => 'update',
			'where' => array
			(
				'id' => 'yes',
			),
			'set' => array
			(
				'num_up' => array('1', '+='),
			),
		),

		'getIds' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'cate_id' => array('yes-cate_id', 'in'),
                'state' => 1,
            ),
            'type' => 'all',
            'order' => array('reorder' => 'desc','id' => 'desc'),
            'col' => '*,id as value|id',
        ),

        'getOne' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
                'id' => 'yes',
                'state' => 1,
            ),
            'type' => 'one',
            'col' => $col,
        ),

        'getNew' => array
        (
            # 匹配的正则或函数 选填项
            'option' => array
            (
            	'cate_id_1' => array('yes-cate_id', '=', 'and('),
				'time' => array('yes-pdate', '<=', 'or)'),
				'cate_id' => 'yes',
            	'status' => 2,
                'state' => 1,
            ),
            'type' => 'one',
            'order' => array('ssdate' => 'desc'),
            'col' => $col . ',case when cate_id = 1 then pdate else pdate-'.$time.' end as ssdate',
        ),
	),
);

/* 由top_option取代
if ($auth) {
	$config['request']['list'] = array
	(
		'type' => 'all',
        'order' => array('id' => 'desc'),
        'col' => '*|id',
        'page' => array(15, 'list'),
        'option' => array
        (
        	'cate_id' => array($auth, 'in'),
        ),
	);
}
*/

return $config;