dever 6 years ago
parent
commit
c07b1a7aca

+ 13 - 2
code/database/config.php

@@ -28,6 +28,17 @@ return array
 			'match' 	=> 'is_numeric',
 			'value'		=> Dever::input('where_id'),
 		),
+
+		'product'     => array
+        (
+            'type'      => 'varchar-200',
+            'name'      => '选择小刊',
+            'default'   => '',
+            'desc'      => '选择小刊',
+            'search'	=> 'linkage',
+			'update'	=> 'linkage',//多级联动 用于搜索
+			'option'	=> Dever::url('lib/manage.search_cate_journal', 'journal'),
+        ),
 		
 		'product_id'     => array
         (
@@ -36,8 +47,8 @@ return array
             'default'   => '',
             'desc'      => '选择小刊',
             'match'     => 'option',
-            'update'    => 'select',
-            'update_search' => 'journal/lib/manage.search_journal',
+            //'update'    => 'select',
+            //'update_search' => 'journal/lib/manage.search_journal',
         ),
 
         'seller_id'     => array

+ 51 - 1
code/database/info.php

@@ -15,6 +15,23 @@ $seller = function()
 	return Dever::db('code/seller')->state();
 };
 
+# 获取小刊分类权限
+$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;
+};
+
 return array
 (
 	# 表名
@@ -35,6 +52,7 @@ return array
 			'desc' 		=> '',
 			'match' 	=> 'is_numeric',
 			'search'	=> 'order',
+			'order'		=> 'desc',
 			//'list'		=> true,
 		),
 
@@ -48,6 +66,29 @@ return array
 			//'list'		=> 'Dever::load("code/lib/manage.showUserInfo", "{uid}", "{ldate}")',
 		),
 
+		'product'     => 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,
+        ),
+
 		'product_id'		=> array
 		(
 			'type' 		=> 'int-11',
@@ -57,7 +98,7 @@ return array
 			'match' 	=> 'is_numeric',
 			'update'	=> 'select',
 			'option'	=> $product,
-			'search'	=> 'select',
+			//'search'	=> 'select',
 			'list'		=> true,
 		),
 
@@ -154,6 +195,15 @@ return array
 		),
 	),
 
+	'top' => Dever::config('base')->top,
+
+    # 增加这个,为了给当前的list增加一个option
+    'top_option' => array
+    (
+        'value' => $auth,
+        'col' => 'cate_id',
+    ),
+
 	'manage' => array
 	(
 		'excel'	=> true,

+ 4 - 2
code/lib/Core.php

@@ -6,15 +6,17 @@ use Dever;
 
 class Core
 {
-	public function createCode($product_id, $seller_id, $product_num = 1, $create_uid = -1)
+	public function createCode($product, $cate_id, $product_id, $seller_id, $product_num = 1, $create_uid = -1)
 	{
 		$code = Dever::rand(8, 0);
 		$data['code'] = $code;
 		$total = Dever::db('code/info')->total($data);
 		if ($total > 0) {
-			return $this->createCode($product_id, $seller_id, $product_num, $create_uid);
+			return $this->createCode($product, $cate_id, $product_id, $seller_id, $product_num, $create_uid);
 		}
 		
+		//$data['product'] = $product;
+		$data['cate_id'] = $cate_id;
 		$data['product_id'] = $product_id;
 		$data['seller_id'] = $seller_id;
 		$data['product_num'] = $product_num;

+ 14 - 2
code/lib/Manage.php

@@ -39,9 +39,21 @@ class Manage
 	{
 		$code = Dever::param('num', $param);
 		$product_num = Dever::param('product_num', $param);
-		$product_id = Dever::param('product_id', $param);
+		$product = Dever::param('product', $param);
+		//$product_id = Dever::param('product_id', $param);
 		$seller_id = Dever::param('seller_id', $param);
 
+		$cate_id = $product_id = 0;
+		if ($product && isset($product[0]) && isset($product[1])) {
+			$cate_id = $product[0];
+			$product_id = $product[1];
+			$product = implode(',', $product);
+		}
+
+		if ($cate_id <= 0 || $product_id <= 0){
+			Dever::alert('生成失败');
+		}
+
 		//$total = Dever::db('code/info')->total(array('product_id' => $product_id, 'type' => 1));
 		$total = 0;
 		$core = Dever::load('code/lib/core');
@@ -49,7 +61,7 @@ class Manage
 			$num = $code - $total;
 
 			for ($i = 0; $i < $num; $i++) {
-				$core->createCode($product_id, $seller_id, $product_num);
+				$core->createCode($product, $cate_id, $product_id, $seller_id, $product_num);
 			}
 		}
 	}

+ 13 - 0
journal/database/cate.php

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

+ 52 - 5
journal/database/info.php

@@ -14,11 +14,17 @@ $share = function()
 	}
 	return $array;
 };
-
-$cate = function()
+# 获取小刊分类权限
+$auth = Dever::tops();
+$cate = function() use ($auth)
 {
 	$array = array();
-	$info = Dever::db('journal/cate')->state();
+	if ($auth) {
+		$info = Dever::db('journal/cate')->getIds(array('ids' => $auth));
+	} else {
+		$info = Dever::db('journal/cate')->state();
+	}
+	
 	if($info)
 	{
 		$array += $info;
@@ -45,7 +51,7 @@ $page = 15;
 # 常用的col
 $col = 'id,name,subname,pic_cover,pic_view_cover,pic_view_bg,pdate,num_add_view+num_view as num_view,ROUND((num_ding+num_add_ding)*num_ratio_ding) as num_ding,num_comment,buy,share_yes,share_title,share_pic,share_content,pic_gd,cate_id,cash,bgmusic';
 
-return array
+$config = array
 (
 	# 表名
 	'name' => 'info',
@@ -82,7 +88,7 @@ return array
 		'name'		=> array
 		(
 			'type' 		=> 'varchar-180',
-			'name' 		=> '杂志标题',
+			'name' 		=> '小刊标题',
 			'default' 	=> '',
 			'desc' 		=> '标题',
 			'match' 	=> 'is_string',
@@ -112,6 +118,7 @@ return array
 			'update'	=> 'select',
 			'option'	=> $cate,
 			'search'	=> 'select',
+			'list'		=> true,
 		),
 
   		'pic_cover'		=> array
@@ -472,6 +479,15 @@ return array
 			'insert'	=> true,
 		),
 	),
+
+	'top' => Dever::config('base')->top,
+
+	# 增加这个,为了给当前的list增加一个option
+	'top_option' => array
+	(
+		'value' => $auth,
+		'col' => 'cate_id',
+	),
 	
 	# 管理功能
 	'manage' => array
@@ -564,5 +580,36 @@ return array
 				'num_view' => 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',
+        ),
 	),
 );
+
+/* 由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;

+ 18 - 3
journal/database/order.php

@@ -40,11 +40,16 @@ $buy = function()
 {
     return Dever::db('journal/buy_num')->state();
 };
-
-$cate = function()
+# 获取小刊分类权限
+$auth = Dever::tops();
+$cate = function() use ($auth)
 {
     $array = array();
-    $info = Dever::db('journal/cate')->state();
+    if ($auth) {
+        $info = Dever::db('journal/cate')->getIds(array('ids' => $auth));
+    } else {
+        $info = Dever::db('journal/cate')->state();
+    }
     if($info)
     {
         $array += $info;
@@ -108,6 +113,7 @@ return array
             'update'    => 'select',
             'option'    => $cate,
             'search'    => 'select',
+            'list'      => true,
         ),
 
         'name'      => array
@@ -355,6 +361,15 @@ return array
         ),
     ),
 
+    'top' => Dever::config('base')->top,
+
+    # 增加这个,为了给当前的list增加一个option
+    'top_option' => array
+    (
+        'value' => $auth,
+        'col' => 'cate_id',
+    ),
+
     'manage' => array
     (
         'delete' => false,

+ 44 - 1
journal/lib/Manage.php

@@ -68,7 +68,7 @@ class Manage
 
         $where = array();
 
-        $cate = Dever::input('cate', 1);
+        $cate = Dever::input('cate');
         if ($cate) {
             $where['cate_id'] = $cate;
         }
@@ -142,6 +142,49 @@ class Manage
         return $this->search('content/applet');
     }
 
+    # 按照分类搜索小刊
+    public function search_cate_journal_api()
+    {
+        $level_num = Dever::input('level_num');
+        $level_id = Dever::input('level_id');
+        
+        $auth = Dever::tops();
+        $where = array();
+        if ($level_num == 1) {
+            $default = array
+            (
+                'value' => -1,
+                'name' => '选择分类',
+            );
+            if ($auth) {
+                $where['ids'] = $auth;
+            }
+
+            $data = Dever::db('journal/cate')->getIds($where);
+        } elseif ($level_num == 2 && $level_id > 0) {
+            $default = array
+            (
+                'value' => -1,
+                'name' => '选择小刊',
+            );
+            if ($level_id > 0) {
+                $where['cate_id'] = $level_id;
+            } elseif ($auth) {
+                $where['cate_id'] = $auth;
+            }
+            
+            $data = Dever::db('journal/info')->getIds($where);
+        } else {
+            return array();
+        }
+
+        
+        array_unshift($data, $default);
+        $result['level_total'] = 2;
+        $result['list'] = $data;
+        return $result;
+    }
+
     # 显示杂志内页
     public function journalContent()
     {

+ 40 - 8
stat/database/journal.php

@@ -1,18 +1,33 @@
 <?php
-$journal = function()
+# 获取小刊分类权限
+$auth = Dever::tops();
+
+# 如果用linkage,那么下面这两个用不上了
+$journal = function() use ($auth)
 {
     $array = array();
-    $info = Dever::db('journal/info')->state(array('buy' => 1));
+    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()
+
+$cate = function() use ($auth)
 {
     $array = array();
-    $info = Dever::db('journal/cate')->state();
+    if ($auth) {
+        $info = Dever::db('journal/cate')->getIds(array('ids' => $auth));
+    } else {
+        $info = Dever::db('journal/cate')->state();
+    }
+    
     if($info)
     {
         $array += $info;
@@ -38,12 +53,17 @@ $list = array
     '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',
 );
 
-$search = Dever::input('search_option_journal_id');
-if ($search && $search > 0) {
+//$search = Dever::input('search_option_journal_id');
+$search = Dever::input('search_linkage_cate_journal');
+if ($search && isset($search[1]) && $search[1] > 0) {
+    Dever::setInput('search_option_journal_id', $search[1]);
     unset($list['group']);
     $list['col'] = '*';
 }
 
+if ($auth) {
+    $list['option']['cate_id'] = array($auth, 'in');
+}
 return array
 (
     # 表名
@@ -90,6 +110,16 @@ return array
             //'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',
@@ -99,7 +129,7 @@ return array
             'match'     => 'is_numeric',
             'update'    => 'select',
             'option'    => $cate,
-            'search'    => 'select',
+            //'search'    => 'select',
             'list'      => true,
         ),
 
@@ -111,7 +141,7 @@ return array
             'desc'      => '小刊',
             'match'     => 'is_numeric',
             'update'    => 'select',
-            'search'    => 'select',
+            //'search'    => 'select',
             'option'    => $journal,
             'list'      => 'Dever::load("stat/lib/manage.info", {journal_id})',
         ),
@@ -193,6 +223,8 @@ return array
         ),
     ),
 
+    'top' => Dever::config('base')->top,
+
     'manage' => array
     (
         'insert' => false,

+ 43 - 10
stat/database/source.php

@@ -1,34 +1,49 @@
 <?php
-$journal = function()
+# 获取小刊分类权限
+$auth = Dever::tops();
+
+# 如果用linkage,那么下面这两个用不上了
+$journal = function() use ($auth)
 {
     $array = array();
-    $info = Dever::db('journal/info')->state(array('buy' => 1));
+    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;
 };
-$source = function()
+
+$cate = function() use ($auth)
 {
     $array = array();
-    $info = Dever::db('source/info')->state();
+    if ($auth) {
+        $info = Dever::db('journal/cate')->getIds(array('ids' => $auth));
+    } else {
+        $info = Dever::db('journal/cate')->state();
+    }
+    
     if($info)
     {
         $array += $info;
     }
     return $array;
 };
-$cate = function()
+$source = function()
 {
     $array = array();
-    $info = Dever::db('journal/cate')->state();
+    $info = Dever::db('source/info')->state();
     if($info)
     {
         $array += $info;
     }
     return $array;
 };
+
 $list = array
 (
     # 匹配的正则或函数 选填项
@@ -49,12 +64,18 @@ $list = array
     'col' => 'id,pv,uv,user_num,user_yes_num,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,source_id,day_int,day_string,cate_id',
 );
 
-$search = Dever::input('search_option_journal_id');
-if ($search && $search > 0) {
+//$search = Dever::input('search_option_journal_id');
+$search = Dever::input('search_linkage_cate_journal');
+if ($search && isset($search[1]) && $search[1] > 0) {
+    Dever::setInput('search_option_journal_id', $search[1]);
     unset($list['group']);
     $list['col'] = 'id,order_num,order_yes_num,order_no_num,buy_num,buy_cash,cdate,journal_id,source_id,day_int,day_string,cate_id';
 }
 
+if ($auth) {
+    $list['option']['cate_id'] = array($auth, 'in');
+}
+
 $config = array
 (
     # 表名
@@ -114,6 +135,16 @@ $config = array
             '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',
@@ -123,7 +154,7 @@ $config = array
             'match'     => 'is_numeric',
             'update'    => 'select',
             'option'    => $cate,
-            'search'    => 'select',
+            //'search'    => 'select',
             'list'      => true,
         ),
 
@@ -135,7 +166,7 @@ $config = array
             'desc'      => '小刊',
             'match'     => 'is_numeric',
             'update'    => 'select',
-            'search'    => 'select',
+            //'search'    => 'select',
             'option'    => $journal,
             'list'      => 'Dever::load("stat/lib/manage.info", {journal_id})',
         ),
@@ -261,6 +292,8 @@ $config = array
         ),
     ),
 
+    'top' => Dever::config('base')->top,
+
     'manage' => array
     (
         'insert' => false,