dever 3 years ago
parent
commit
2c97f67703
1 changed files with 60 additions and 47 deletions
  1. 60 47
      app/collection/lib/Create.php

+ 60 - 47
app/collection/lib/Create.php

@@ -8,7 +8,7 @@ use Dever\Support\Img as Handle;
 class Create
 {
     # 自动创建
-    public function up($info_id, $source_id, $type = 11, $data, $cover = '')
+    public function up($info_id, $source_id, $name, $desc, $year, $type = 11, $data, $cover = '')
     {
         $where['info_id'] = $info_id;
 
@@ -29,97 +29,110 @@ class Create
         //唯美 第1章(时光)12季(主章节),1季12章(子章节),1章15篇(内容)
         if ($info) {
             if ($info['reorder'] >= $max) {
+            	$max = 12;
                 $result['reorder'] = $info['reorder'] = 1;
-                $name = '第' . $result['reorder'] . '篇';
 
                 $page = Dever::db('collection/page')->find($info['page_id']);
                 if ($page) {
 
-                	if ($page['reorder'] >= 12) {
+                	if ($page['reorder'] >= $max) {
+
+                		# 超出子章节最大值,创建新的主章节
+                		$result['page_id'] = $this->createPage($info_id, $source_id, $page['times_id_parent'], $page['times_id'], $result['page_reorder'], $page['page_id'], $desc, $cover);
 
                 	} else {
-                		$page_reorder = $page['reorder'] + 1;
-                		$name = '第' . ;
-                	}
-                	
-                }
+                		# 直接创建子章节
+                		$result['page_reorder'] = $page['reorder'] + 1;
 
-                $name = '第' . $result['reorder'] . '篇';
+                		$result['page_id'] = $this->createPage($info_id, $source_id, $page['times_id_parent'], $page['times_id'], $result['page_reorder'], $page['page_id'], $desc, $cover);
 
-                $result['page_id'] = $this->createPage($info_id, $source_id, $month_name, $parent_page_id, $times_id_parent, $times_id, $page_desc, $cover, $reorder, $max);
+                	}
+                }
 
-                $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], 11, $name, $cover);
+                $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], $type, $result['reorder'], $cover);
 
             } else {
                 $result['reorder'] = $info['reorder'] + 1;
-                $name = '第' . $result['reorder'] . '篇';
 
                 $result['page_id'] = $info['page_id'];
-                $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], 11, $result['reorder'], $cover);
+                $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], $type, $result['reorder'], $cover);
                 
             }
-            return $info['reorder'] + 1; 
+        } else {
+        	$times_id_parent = $this->createTimes($info_id, $source_id, 1, $name);
+            if ($times_id_parent) {
+                $times_id = $this->createTimes($info_id, $source_id, 1, '', $year, $times_id_parent);
+                if ($times_id) {
+                	$parent_page_id = $this->createPage($info_id, $source_id, $times_id_parent, $times_id, 1, -1);
+
+                    if ($parent_page_id) {
+
+                        $page_id = $this->createPage($info_id, $source_id, $times_id_parent, $times_id, 1, $parent_page_id, $desc, $cover);
+
+                        if ($page_id) {
+                            $content_id = $this->createContent($info_id, $source_id, $page_id, $type, 1, $cover);
+                        }
+                    }
+                }
+        	}
         }
 
-        return 1;
+        if ($content_id) {
+        	if ($type == 11) {
+        		$this->createPic($info_id, $content_id, $data);
+        	}
+        }
+
+        return $result;
     }
 
     # 生成时光
-    public function createTimes($info_id, $source_id, $name, $year = '', $parent = -1)
+    public function createTimes($info_id, $source_id, $reorder, $name, $year = '', $parent = -1)
     {
     	$table = 'collection/times';
     	$where['info_id'] = $info_id;
     	$where['source_id'] = $source_id;
     	$where['times_id'] = $parent;
-        $where['name'] = $name;
+    	if ($name) {
+    		$where['name'] = $name;
+    	} else {
+    		$where['name'] = '第' . $reorder . '卷';
+    	}
+        
         $param = array();
     	if ($year) {
     		$param['year'] = $year;
     	}
+    	$param['reorder'] = $reorder;
     	return Dever::upinto($table, $where, $param);
     }
 
     # 生成章节
-    public function createPage($info_id, $source_id, $name, $parent = -1, $times_id_parent, $times_id, $desc = '', $pic = '', $reorder = 1, $max = 12, $num = 1)
+    public function createPage($info_id, $source_id, $times_id_parent, $times_id, $reorder = 1, $parent_page_id = -1, $desc = '', $pic = '')
     {
     	$table = 'collection/page';
     	$where['info_id'] = $info_id;
     	$where['source_id'] = $source_id;
-    	$where['name'] = $name;
-    	$where['page_id'] = $parent;
+    	$where['page_id'] = $parent_page_id;
+    	if ($parent_page_id > 0) {
+    		$where['name'] = '第' . $reorder . '章';
+    	} else {
+    		$where['name'] = '第' . $reorder . '季';
+    	}
+    	
     	$where['times_id_parent'] = $times_id_parent;
     	$where['times_id'] = $times_id;
-    	if ($desc) {
+
+    	$param = array();
+        $param['reorder'] = $reorder;
+        if ($desc) {
     		$param['desc'] = $desc;
     	}
     	if ($pic) {
     		$param['pic'] = $pic;
     	}
-        if ($reorder) {
-            $param['reorder'] = $reorder;
-        }
 
-        if ($parent > 0) {
-            $where['clear'] = true;
-            $where['name'] .= '第'.$num.'期';
-            $info = Dever::db($table)->one($where);
-            if (!$info) {
-                $param = array_merge($where, $param);
-                $id = Dever::db($table)->insert($param);
-            } else {
-                $total = Dever::db('collection/content')->total(array('info_id' => $info_id, 'page_id' => $info['id'], 'clear' => true));
-
-                if ($total >= $max) {
-                    $num = $num+1;
-                    $reorder += $num;
-                    $id = $this->createPage($info_id, $source_id, $name, $parent, $times_id_parent, $times_id, $desc, $pic, $reorder, $max, $num);
-                } else {
-                    $id = $info['id'];
-                }
-            }
-        } else {
-            $id = Dever::upinto($table, $where, $param);
-        }
+        $id = Dever::upinto($table, $where, $param);
 
         return $id;
     }
@@ -130,15 +143,15 @@ class Create
     	$table = 'collection/content';
     	$where['info_id'] = $info_id;
     	$where['source_id'] = $source_id;
-    	$where['reorder'] = $reorder;
     	$where['name'] = '第' . $reorder . '篇';
     	$where['page_id'] = $page_id;
     	$where['type'] = $type;
 
+    	$param = array();
     	if ($pic) {
     		$param['pic'] = $pic;
     	}
-    	
+    	$param['reorder'] = $reorder;
     	return Dever::upinto($table, $where, $param);
     }
 }