|
@@ -289,6 +289,31 @@ class ChapterService
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ public static function splitContentAll($bid){
|
|
|
+ $chapters = Chapter::where('bid',$bid)->where('size','>=',4000)->select('id','sequence')->orderBy('sequence')->get();
|
|
|
+ $i = 0;
|
|
|
+ $count = 0;
|
|
|
+ $end_sequence = 0;
|
|
|
+ $start_sequence = 0;
|
|
|
+ foreach ($chapters as $k=>$chapter){
|
|
|
+ if($k == 0){
|
|
|
+ $start_sequence = $chapter->sequence;
|
|
|
+ }
|
|
|
+ $content = self::splitContent($chapter->id);
|
|
|
+ if(!$content) continue;
|
|
|
+ //\Log::info($chapter);
|
|
|
+ $count += self::createSplitContent($chapter->id,$content,false);
|
|
|
+ $end_sequence = $chapter->sequence;
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ //\Log::info('$start_sequence is: '.$start_sequence);
|
|
|
+ //\Log::info('$end_sequence is: '.($end_sequence+$i+$count));
|
|
|
+ self::adjustSequent($bid,$start_sequence,$end_sequence+$i+$count);
|
|
|
+
|
|
|
+ return $count;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public static function splitContent($chapter_id)
|
|
|
{
|
|
|
$chapter = self::getChapterById($chapter_id);
|
|
@@ -329,21 +354,26 @@ class ChapterService
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
- public static function createSplitContent($chapter_id,$data)
|
|
|
+ public static function createSplitContent($chapter_id,$data,$is_adjust = true)
|
|
|
{
|
|
|
- if(count($data) == 1){
|
|
|
+ if(count($data) <= 1){
|
|
|
return ;
|
|
|
}
|
|
|
Chapter::where('bid',$data[0]['bid'])->where('sequence','>=',$data[0]['sequence']+1)->increment('sequence',count($data)-1);
|
|
|
Chapter::where('id',$chapter_id)->update([
|
|
|
'content'=>$data[0]['content'],
|
|
|
- 'size'=>$data[0]['size']
|
|
|
+ 'size'=>$data[0]['size'],
|
|
|
+ 'name'=>$data[0]['name']
|
|
|
]);
|
|
|
+ $i = 0;
|
|
|
foreach ($data as $kye=>$item){
|
|
|
if($kye == 0) continue;
|
|
|
+ $i++;
|
|
|
self::createChapter($item);
|
|
|
}
|
|
|
- self::adjustSequent($data[0]['bid'],$data[0]['sequence'],$data[0]['sequence']+count($data));
|
|
|
+ if($is_adjust){
|
|
|
+ self::adjustSequent($data[0]['bid'],$data[0]['sequence'],$data[0]['sequence']+count($data)+5);
|
|
|
+ }
|
|
|
|
|
|
if(self::getChapterFromOss($data[0]['bid'],$chapter_id)){
|
|
|
$oss = self::ossObject();
|
|
@@ -353,7 +383,10 @@ class ChapterService
|
|
|
}
|
|
|
$key = sprintf('book_chapter_%s_%s', $data[0]['bid'], $chapter_id);
|
|
|
//Redis::connection('chapter')
|
|
|
- Redis::connection('chapter')->delete($key);
|
|
|
+ try{
|
|
|
+ Redis::connection('chapter')->delete($key);
|
|
|
+ }catch (\Exception $e){}
|
|
|
+
|
|
|
|
|
|
$last = Chapter::where('bid',$data[0]['bid'])
|
|
|
->select('id','bid','name','sequence')
|
|
@@ -362,20 +395,21 @@ class ChapterService
|
|
|
->first();
|
|
|
Book::where('id',$data[0]['bid'])->update([
|
|
|
'chapter_count'=>$last->sequence,
|
|
|
- 'last_chapter'=>$last->last_chapter,
|
|
|
+ 'last_chapter'=>$last->name,
|
|
|
'last_cid'=>$last->id,
|
|
|
]);
|
|
|
+ return $i;
|
|
|
}
|
|
|
|
|
|
public static function adjustSequent($bid,$start_sequence,$end_sequence){
|
|
|
$chapter_list = Chapter::where('bid',$bid);
|
|
|
if($start_sequence){
|
|
|
- $chapter_list->where('sequence','>=',$start_sequence);
|
|
|
+ $chapter_list = $chapter_list->where('sequence','>=',$start_sequence);
|
|
|
}
|
|
|
if($end_sequence){
|
|
|
- $chapter_list->where('sequence','<=',$end_sequence);
|
|
|
+ $chapter_list = $chapter_list->where('sequence','<=',$end_sequence);
|
|
|
}
|
|
|
- $chapter_list->orderBy('sequence')->select('id')->get();
|
|
|
+ $chapter_list = $chapter_list->orderBy('sequence')->select('id')->get();
|
|
|
$prev = 0;
|
|
|
|
|
|
foreach ($chapter_list as $chapter){
|