SuperiorBookController.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace App\Http\Controllers\Manage\Book;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Controllers\Manage\Book\Transformers\SuperiorHistoryBookTransformer;
  5. use App\Modules\Book\Services\SuperiorHistoryBookService;
  6. use App\Modules\Book\Services\SuperiorNewBookService;
  7. use Illuminate\Http\Request;
  8. use PhpOffice\PhpSpreadsheet\IOFactory;
  9. use DB;
  10. class SuperiorBookController extends Controller
  11. {
  12. public function getSuperiorNewBook(Request $request){
  13. $channel = $request->input('channel','');
  14. $book_name = $request->input('book_name','');
  15. $bid=$request->input('bid','');
  16. $serach = [];
  17. if($book_name){
  18. $serach[] = ['book_configs.book_name','like','%'.$book_name.'%'];
  19. }
  20. if($bid){
  21. $serach[] = ['book_configs.bid',$bid];
  22. }
  23. $list = SuperiorNewBookService::getSuperiorList($channel,$serach);
  24. foreach ($list as $item){
  25. $list->gender=$item->pid==1?'男':'女';
  26. }
  27. return response()->success($list);
  28. }
  29. public function getSuperiorHistoryBook(Request $request){
  30. $channel = $request->input('channel','');
  31. $book_name = $request->input('book_name','');
  32. $bid=$request->input('bid','');
  33. $serach = [];
  34. if($book_name){
  35. $serach[] = ['book_configs.book_name','like','%'.$book_name.'%'];
  36. }
  37. if($bid){
  38. $serach[] = ['book_configs.bid','=',$bid];
  39. }
  40. $paginate = $request->input('paginate',15);
  41. $list = SuperiorHistoryBookService::getSuperiorList($channel,$paginate,$serach);
  42. return response()->pagination(new SuperiorHistoryBookTransformer(),$list);
  43. }
  44. /**
  45. * 导出历史优质书库
  46. * @param Request $request
  47. */
  48. public function exportSuperiorHistoryBook(Request $request) {
  49. $channel = $request->input('channel','');
  50. $list = SuperiorHistoryBookService::getSuperiorList($channel,'',[],false);
  51. $res = collectionTransform(new SuperiorHistoryBookTransformer(),$list);
  52. //$superior_books = json_decode(json_encode($res),true);
  53. //$total = count($res);
  54. $superiors = [];
  55. foreach ($res as $key=>$superior_book){
  56. $superiors[] = array(
  57. $key+1,
  58. $superior_book['add_time'],
  59. $superior_book['bid'],
  60. $superior_book['book_name'],
  61. $superior_book['gender'],
  62. $superior_book['register_uv_rate'],
  63. $superior_book['pay_uv_rate'],
  64. $superior_book['charge_uv_rate'],
  65. );
  66. }
  67. $header = ['序号','入库时间','书籍id','书名','男女频','注册/UV','付费/UV','充值/UV'];
  68. saveExcelData($header,$superiors,'');
  69. }
  70. public function sortSuperiorHistoryBooks(Request $request){
  71. if(!$request->hasFile('superior_books_sort')) {
  72. return response()->error('PARAM_ERROR');
  73. }
  74. $file_obj = $request->file('superior_books_sort');
  75. $spreadsheet = IOFactory::load($file_obj->path());
  76. $sheetData = $spreadsheet->getActiveSheet(0)->toArray(null, true, true, true);
  77. //$sequence = $sheetDataLength = count($sheetData)-1;
  78. \Log::info($sheetData);
  79. DB::beginTransaction();
  80. try{
  81. foreach ($sheetData as $key=>$value) {
  82. if($key==1){
  83. continue;
  84. }
  85. if(!intval($value['A'])) throw new \Exception('第'.$key.'序号错误');
  86. SuperiorHistoryBookService::updateOne(intval($value['C']),['order_index'=>intval($value['A'])]);
  87. // $sequence;
  88. }
  89. }catch (\Exception $e){
  90. \Log::error('sort history superior books failed:'.($e->getMessage()));
  91. DB::rollback();
  92. return response()->error('UPLOAD_FAILED',$e->getMessage());
  93. }
  94. DB::commit();
  95. return response()->success();
  96. }
  97. public function adjustHistorySuperiorBooksSequence(Request $request) {
  98. $bid = $request->input('bid','');
  99. $sequence = $request->input('sequence','');
  100. if(empty($bid) && !intval($sequence)) {
  101. return response()->error('PARAM_EMPTY');
  102. }
  103. DB::beginTransaction();
  104. try{
  105. SuperiorHistoryBookService::adjustSequence($bid,$sequence);
  106. }catch (\Exception $e){
  107. DB::rollback();
  108. if($e->getCode()==10001) return ['code'=>10001,'msg'=>'序号超出范围'];
  109. return ['code'=>'304','msg'=>$e->getMessage()];
  110. }
  111. DB::commit();
  112. return response()->success();
  113. }
  114. public function modifySuperiorNewBook(Request $request) {
  115. $action = $request->input('action');
  116. $bid = $request->input('bid');
  117. if(!$bid){
  118. return response()->error('PARAM_EMPTY');
  119. }
  120. if(!in_array($action,['delete','set_top'])){
  121. return response()->error('PARAM_ERROR');
  122. }
  123. if($action == 'delete') {
  124. SuperiorNewBookService::deleteOne($bid);
  125. }
  126. if($action =='set_top') {
  127. SuperiorNewBookService::setTop($bid);
  128. }
  129. return response()->success();
  130. }
  131. public function modifySuperiorHistoryBook(Request $request) {
  132. $action = $request->input('action');
  133. $bid = $request->input('bid');
  134. if(!$bid){
  135. return response()->error('PARAM_EMPTY');
  136. }
  137. if(!in_array($action,['delete','set_top'])){
  138. return response()->error('PARAM_ERROR');
  139. }
  140. if($action == 'delete') {
  141. SuperiorHistoryBookService::deleteOne($bid);
  142. SuperiorHistoryBookService::resortSuperiorBooks();
  143. }
  144. if($action =='set_top') {
  145. SuperiorHistoryBookService::setTop($bid);
  146. }
  147. return response()->success();
  148. }
  149. }