GroupController.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\GroupInfo;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Str;
  6. use Illuminate\Support\Facades\Log;
  7. require_once __DIR__.'/../../../public/app/ucenter/function.php';
  8. class GroupController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index(Request $request)
  16. {
  17. //
  18. $userinfo = new \UserInfo();
  19. $result=false;
  20. $indexCol = ['uid','name','description','owner','updated_at','created_at'];
  21. switch ($request->get('view')) {
  22. case 'studio':
  23. # 获取studio内所有channel
  24. $user = \App\Http\Api\AuthApi::current($request);
  25. if($user){
  26. //判断当前用户是否有指定的studio的权限
  27. if($user['user_uid'] === \App\Http\Api\StudioApi::getIdByName($request->get('name'))){
  28. $table = GroupInfo::select($indexCol)->where('owner', $user["user_uid"]);
  29. }else{
  30. return $this->error(__('auth.failed'));
  31. }
  32. }else{
  33. return $this->error(__('auth.failed'));
  34. }
  35. break;
  36. }
  37. if(isset($_GET["search"])){
  38. $table = $table->where('title', 'like', $_GET["search"]."%");
  39. }
  40. $count = $table->count();
  41. if(isset($_GET["order"]) && isset($_GET["dir"])){
  42. $table = $table->orderBy($_GET["order"],$_GET["dir"]);
  43. }else{
  44. if($request->get('view') === 'studio_list'){
  45. $table = $table->orderBy('count','desc');
  46. }else{
  47. $table = $table->orderBy('updated_at','desc');
  48. }
  49. }
  50. if(isset($_GET["limit"])){
  51. $offset = 0;
  52. if(isset($_GET["offset"])){
  53. $offset = $_GET["offset"];
  54. }
  55. $table = $table->skip($offset)->take($_GET["limit"]);
  56. }
  57. $result = $table->get();
  58. if($result){
  59. foreach ($result as $key => $value) {
  60. # code...
  61. $value->role = 'owner';
  62. $value->studio = [
  63. 'id'=>$value->owner,
  64. 'nickName'=>$userinfo->getName($value->owner)['nickname'],
  65. 'studioName'=>$userinfo->getName($value->owner)['username'],
  66. 'avastar'=>'',
  67. 'owner' => [
  68. 'id'=>$value->owner,
  69. 'nickName'=>$userinfo->getName($value->owner)['nickname'],
  70. 'userName'=>$userinfo->getName($value->owner)['username'],
  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(Request $request,$id)
  97. {
  98. //
  99. $indexCol = ['uid','name','description','owner','updated_at','created_at'];
  100. $result = GroupInfo::select($indexCol)->where('uid', $id)->first();
  101. if($result){
  102. if($result->status<30){
  103. //私有,判断权限
  104. $user = \App\Http\Api\AuthApi::current($request);
  105. if($user){
  106. //判断当前用户是否有指定的studio的权限
  107. if($user['user_uid'] !== $result->owner){
  108. //非所有者
  109. //TODO 判断是否协作
  110. return $this->error(__('auth.failed'));
  111. }
  112. }else{
  113. return $this->error(__('auth.failed'));
  114. }
  115. }
  116. return $this->ok($result);
  117. }else{
  118. return $this->error("没有查询到数据");
  119. }
  120. }
  121. /**
  122. * Update the specified resource in storage.
  123. *
  124. * @param \Illuminate\Http\Request $request
  125. * @param \App\Models\Group $group
  126. * @return \Illuminate\Http\Response
  127. */
  128. public function update(Request $request, Group $group)
  129. {
  130. //
  131. }
  132. /**
  133. * Remove the specified resource from storage.
  134. *
  135. * @param \App\Models\Group $group
  136. * @return \Illuminate\Http\Response
  137. */
  138. public function destroy(Group $group)
  139. {
  140. //
  141. }
  142. }