2
0

CollectionController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Collection;
  4. use Illuminate\Http\Request;
  5. require_once __DIR__.'/../../../public/app/ucenter/function.php';
  6. class CollectionController extends Controller
  7. {
  8. /**
  9. * Display a listing of the resource.
  10. *
  11. * @return \Illuminate\Http\Response
  12. */
  13. public function index(Request $request)
  14. {
  15. //
  16. //
  17. $result=false;
  18. $indexCol = ['uid','title','subtitle','summary','article_list','owner','lang','updated_at','created_at'];
  19. switch ($request->get('view')) {
  20. case 'studio_list':
  21. $indexCol = ['owner'];
  22. $table = Collection::select($indexCol)->selectRaw('count(*) as count')->where('status', 30)->groupBy('owner');
  23. break;
  24. case 'studio':
  25. # code...
  26. $table = Collection::select($indexCol)->where('owner', $_COOKIE["user_uid"]);
  27. break;
  28. case 'public':
  29. $table = Collection::select($indexCol)->where('status', 30);
  30. break;
  31. default:
  32. # code...
  33. return $this->error("没有查询到数据");
  34. break;
  35. }
  36. if(isset($_GET["search"])){
  37. $table = $table->where('title', 'like', $_GET["search"]."%");
  38. }
  39. $count = $table->count();
  40. if(isset($_GET["order"]) && isset($_GET["dir"])){
  41. $table = $table->orderBy($_GET["order"],$_GET["dir"]);
  42. }else{
  43. if($request->get('view') === 'studio_list'){
  44. $table = $table->orderBy('count','desc');
  45. }else{
  46. $table = $table->orderBy('updated_at','desc');
  47. }
  48. }
  49. if(isset($_GET["limit"])){
  50. $offset = 0;
  51. if(isset($_GET["offset"])){
  52. $offset = $_GET["offset"];
  53. }
  54. $table = $table->skip($offset)->take($_GET["limit"]);
  55. }
  56. $result = $table->get();
  57. if($result){
  58. $userinfo = new \UserInfo();
  59. foreach ($result as $key => $value) {
  60. # code...
  61. if(isset($result[$key]->article_list)){
  62. $result[$key]->article_list = array_slice(\json_decode($value->article_list),0,4);
  63. }
  64. $value->studio = [
  65. 'id'=>$value->owner,
  66. 'name'=>$userinfo->getName($value->owner)['nickname'],
  67. 'avastar'=>'',
  68. 'owner' => [
  69. 'id'=>$value->owner,
  70. 'name'=>$userinfo->getName($value->owner)['nickname'],
  71. 'avastar'=>'',
  72. ]
  73. ];
  74. }
  75. return $this->ok(["rows"=>$result,"count"=>$count]);
  76. }else{
  77. return $this->error("没有查询到数据");
  78. }
  79. }
  80. /**
  81. * Store a newly created resource in storage.
  82. *
  83. * @param \Illuminate\Http\Request $request
  84. * @return \Illuminate\Http\Response
  85. */
  86. public function store(Request $request)
  87. {
  88. //
  89. }
  90. /**
  91. * Display the specified resource.
  92. *
  93. * @param string $id
  94. * @return \Illuminate\Http\Response
  95. */
  96. public function show($id)
  97. {
  98. //
  99. $indexCol = ['uid','title','subtitle','summary','article_list','owner','lang','updated_at','created_at'];
  100. $result = Collection::select($indexCol)->where('uid', $id)->first();
  101. if($result){
  102. if(!empty($result->article_list)){
  103. $result->article_list = \json_decode($result->article_list);
  104. }
  105. return $this->ok($result);
  106. }else{
  107. return $this->error("没有查询到数据");
  108. }
  109. }
  110. /**
  111. * Update the specified resource in storage.
  112. *
  113. * @param \Illuminate\Http\Request $request
  114. * @param \App\Models\Collection $collection
  115. * @return \Illuminate\Http\Response
  116. */
  117. public function update(Request $request, Collection $collection)
  118. {
  119. //
  120. }
  121. /**
  122. * Remove the specified resource from storage.
  123. *
  124. * @param \App\Models\Collection $collection
  125. * @return \Illuminate\Http\Response
  126. */
  127. public function destroy(Collection $collection)
  128. {
  129. //
  130. }
  131. }