has('channel')) { return response()->error('PARAM_EMPTY'); } $channel = $request->input('channel'); if(!in_array($channel,['1','2',1,2])){ return response()->error('PARAM_ERROR'); } $file_obj = $request->file('file'); $spreadsheet = IOFactory::load($file_obj->path()); $sheetData = $spreadsheet->getActiveSheet(0)->toArray(null, true, true, true); $arr_length = count($sheetData); $valid_data = array(); $hayStack = array('loop','hot','live','recom','new_recom'); /*var_dump($sheetData); die;*/ DB::beginTransaction(); try{ $version = RecomVersion::create(array( 'channel' => $channel, 'status'=>0 )); for($i=2;$i<=$arr_length;$i++) { if(!in_array($sheetData[$i]['A'],$hayStack)) { DB::rollBack(); return ['code'=>300,'msg'=>'A'.($i+1).'单元格数据有误,请更正!']; } $valid_data[] = array( 'bid'=>$sheetData[$i]['C'], 'channel'=>$channel, 'sequence'=>$sheetData[$i]['D'], 'subject'=>$sheetData[$i]['A'], 'version_id'=>$version->id, 'is_show'=>0, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s') ); } Recommend::insert($valid_data); DB::commit(); }catch (\Exception $e){ DB::rollBack(); return ['code'=>301,'msg'=>$e->getMessage()]; } return response()->success(); } public function getRecentRecommend(Request $request) { if(!$request->has('channel')) { return response()->error('PARAM_EMPTY'); } $channel = $request->input('channel'); if(!in_array($channel,['1','2',1,2])){ return response()->error('PARAM_ERROR'); } $recom_ver = RecomVersion::where([ ['channel','=',$channel], ['status','=',0], ]) ->orderBy('created_at','desc') ->first(); $recommend = array(); if($recom_ver){ $recommend = Recommend::leftjoin('book_configs','book_configs.id','=','recommend_books.bid') ->select('recommend_books.bid','recommend_books.channel','recommend_books.sequence','recommend_books.subject','recommend_books.is_show','book_configs.book_name') ->where('recommend_books.version_id',$recom_ver->id) ->get(); } $recommend_valid = array(); foreach ($recommend as $key=>$value) { $subject = ''; switch ($value->subject){ case 'loop':$subject = '轮播图';break; case 'hot':$subject = '热门推荐';break; case 'live':$subject = '神书直播';break; case 'recom':$subject = '编辑推荐';break; case 'new_recom':$subject = '新书推荐';break; default:; } $channel= ''; switch ($value->channel){ case '1':$channel = '男频';break; case '2':$channel = '女频';break; default: ; } $recommend_valid[] = array( 'book_name'=>$value->book_name, 'subject'=>$subject, 'channel'=>$channel, 'bid'=>$value->bid, 'sequence'=>$value->sequence ); } $res = ['version'=>$recom_ver?$recom_ver->id:'','recommend'=>$recommend_valid]; return response()->success($res); } public function setRecommend(Request $request) { if(!$request->has('channel')) { return response()->error('PARAM_EMPTY'); } if(!$request->has('version')) { return response()->error('PARAM_EMPTY'); } $channel = $request->input('channel'); $version = $request->input('version'); if(!in_array($channel,['1','2',1,2])){ return response()->error('PARAM_ERROR'); } $recom_version = RecomVersion::where([ ['channel','=',$channel], ['id','=',$version] ])->first(); if(!$recom_version){ return response()->error('PARAM_ERROR'); } DB::beginTransaction(); try{ $recommend_old = Recommend::where([['is_show','=',1],['channel','=',$channel]])->get(); foreach($recommend_old as $item) { $item->is_show = 0; $item->save(); } $recommends = Recommend::where('version_id',$version)->get(); foreach ($recommends as $recommend) { $recommend->is_show = 1; $recommend->save(); } $recom_version->status= 1; $recom_version->save(); $unResured = RecomVersion::where([['status','=',0],['channel','=',$channel]])->get(); foreach ($unResured as $each) { $each->status = 1; $each->save(); } DB::commit(); }catch (\Exception $e){ DB::rollBack(); return ['code'=>301,'msg'=>$e->getMessage()]; } return response()->success(); } public function getEnsuredList(Request $request){ if(!$request->has('channel')) { return response()->error('PARAM_EMPTY'); } $channel = $request->input('channel'); if(!in_array($channel,['1','2',1,2])){ return response()->error('PARAM_ERROR'); } $recommend = Recommend::leftjoin('book_configs','book_configs.id','=','recommend_books.bid') ->select('recommend_books.bid','recommend_books.channel','recommend_books.sequence','recommend_books.subject','recommend_books.is_show','book_configs.book_name') ->where([ ['recommend_books.is_show','=',1], ['recommend_books.channel','=',$channel], ]) ->get(); $recommend_valid = array(); foreach ($recommend as $key=>$value) { $subject = ''; switch ($value->subject){ case 'loop':$subject = '轮播图';break; case 'hot':$subject = '热门推荐';break; case 'live':$subject = '神书直播';break; case 'recom':$subject = '编辑推荐';break; case 'new_recom':$subject = '新书推荐';break; default:; } $channel= ''; switch ($value->channel){ case '1':$channel = '男频';break; case '2':$channel = '女频';break; default: ; } $recommend_valid[] = array( 'book_name'=>$value->book_name, 'subject'=>$subject, 'channel'=>$channel, 'bid'=>$value->bid, 'sequence'=>$value->sequence ); } return response()->success($recommend_valid); } }