ChannelApi.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Http\Api;
  3. use App\Models\Channel;
  4. use Illuminate\Support\Str;
  5. class ChannelApi{
  6. public static function getById($id){
  7. if(!Str::isUuid($id)){
  8. return false;
  9. }
  10. $channel = Channel::where("uid",$id)->first();
  11. if($channel){
  12. return [
  13. 'id'=>$id,
  14. 'name'=>$channel['name'],
  15. 'type'=>$channel['type'],
  16. 'lang'=>$channel['lang'],
  17. 'studio_id'=>$channel['owner_uid'],
  18. ];
  19. }else{
  20. return false;
  21. }
  22. }
  23. public static function getCanReadByUser($userUuid=null){
  24. #获取 user 在某章节 所有有权限的 channel 列表
  25. $channelId = [];
  26. //我自己的
  27. if($userUuid){
  28. $my = Channel::select('uid')->where('owner_uid', $userUuid)->get();
  29. foreach ($my as $key => $value) {
  30. $channelId[$value->uid] = $value->uid;
  31. }
  32. //获取共享channel
  33. $allSharedChannels = ShareApi::getResList($userUuid,2);
  34. foreach ($allSharedChannels as $key => $value) {
  35. $channelId[$value['res_id']] = $value['res_id'];
  36. }
  37. }
  38. //获取全网公开的channel
  39. $my = Channel::select('uid')->where('status', 30)->get();
  40. foreach ($my as $key => $value) {
  41. $channelId[$value->uid] = $value->uid;
  42. }
  43. $output = array();
  44. foreach ($channelId as $key => $value) {
  45. $output[] = $key;
  46. }
  47. return $output;
  48. }
  49. public static function getSysChannel($channel_name,$fallback=""){
  50. $channel = Channel::where('name',$channel_name)
  51. ->where('owner_uid',config("app.admin.root_uuid"))
  52. ->first();
  53. if(!$channel){
  54. if(!empty($fallback)){
  55. $channel = Channel::where('name',$fallback)
  56. ->where('owner_uid',config("app.admin.root_uuid"))
  57. ->first();
  58. if(!$channel){
  59. return false;
  60. }else{
  61. return $channel->uid;
  62. }
  63. }
  64. return false;
  65. }else{
  66. return $channel->uid;
  67. }
  68. }
  69. }