|
|
@@ -1,33 +1,38 @@
|
|
|
<?php
|
|
|
+
|
|
|
namespace App\Http\Api;
|
|
|
+
|
|
|
use App\Models\Channel;
|
|
|
use Illuminate\Support\Str;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
-class ChannelApi{
|
|
|
- public static function getById($id){
|
|
|
- if(!Str::isUuid($id)){
|
|
|
+class ChannelApi
|
|
|
+{
|
|
|
+ public static function getById($id)
|
|
|
+ {
|
|
|
+ if (!Str::isUuid($id)) {
|
|
|
return false;
|
|
|
}
|
|
|
- $channel = Channel::where("uid",$id)->first();
|
|
|
- if($channel){
|
|
|
+ $channel = Channel::where("uid", $id)->first();
|
|
|
+ if ($channel) {
|
|
|
return [
|
|
|
- 'id'=>$id,
|
|
|
- 'name'=>$channel['name'],
|
|
|
- 'type'=>$channel['type'],
|
|
|
- 'lang'=>$channel['lang'],
|
|
|
- 'studio_id'=>$channel['owner_uid'],
|
|
|
- ];
|
|
|
- }else{
|
|
|
+ 'id' => $id,
|
|
|
+ 'name' => $channel['name'],
|
|
|
+ 'type' => $channel['type'],
|
|
|
+ 'lang' => $channel['lang'],
|
|
|
+ 'studio_id' => $channel['owner_uid'],
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
- public static function getCanReadByUser($userUuid=null){
|
|
|
+ public static function getCanReadByUser($userUuid = null)
|
|
|
+ {
|
|
|
#获取 user 在某章节 所有有权限的 channel 列表
|
|
|
$channelId = [];
|
|
|
//我自己的
|
|
|
|
|
|
- if($userUuid){
|
|
|
+ if ($userUuid) {
|
|
|
$my = Channel::select('uid')->where('owner_uid', $userUuid)->get();
|
|
|
foreach ($my as $key => $value) {
|
|
|
$channelId[$value->uid] = $value->uid;
|
|
|
@@ -35,7 +40,7 @@ class ChannelApi{
|
|
|
|
|
|
//获取共享channel
|
|
|
|
|
|
- $allSharedChannels = ShareApi::getResList($userUuid,2);
|
|
|
+ $allSharedChannels = ShareApi::getResList($userUuid, 2);
|
|
|
foreach ($allSharedChannels as $key => $value) {
|
|
|
$channelId[$value['res_id']] = $value['res_id'];
|
|
|
}
|
|
|
@@ -52,16 +57,13 @@ class ChannelApi{
|
|
|
return $output;
|
|
|
}
|
|
|
|
|
|
- public static function userCanEdit($userUid,$channelUid){
|
|
|
- $channels = ChannelApi::getCanEditByUser($userUid);
|
|
|
- return in_array($channelUid,$channels);
|
|
|
- }
|
|
|
- public static function getCanEditByUser($userUuid=null){
|
|
|
+ public static function getCanEditByUser($userUuid = null)
|
|
|
+ {
|
|
|
#获取 user 在某章节 所有有权限的 channel 列表
|
|
|
$channelId = [];
|
|
|
//我自己的
|
|
|
|
|
|
- if($userUuid){
|
|
|
+ if ($userUuid) {
|
|
|
$my = Channel::select('uid')->where('owner_uid', $userUuid)->get();
|
|
|
foreach ($my as $key => $value) {
|
|
|
$channelId[$value->uid] = $value->uid;
|
|
|
@@ -69,10 +71,10 @@ class ChannelApi{
|
|
|
|
|
|
//获取共享channel
|
|
|
|
|
|
- $allSharedChannels = ShareApi::getResList($userUuid,2);
|
|
|
+ $allSharedChannels = ShareApi::getResList($userUuid, 2);
|
|
|
foreach ($allSharedChannels as $key => $value) {
|
|
|
- if($value['power'] >= 20){
|
|
|
- $channelId[$value['res_id']] = $value['res_id'];
|
|
|
+ if ($value['power'] >= 20) {
|
|
|
+ $channelId[$value['res_id']] = $value['res_id'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -83,28 +85,41 @@ class ChannelApi{
|
|
|
}
|
|
|
return $output;
|
|
|
}
|
|
|
- public static function canManageByUser($channelId,$userUuid){
|
|
|
+ public static function userCanRead($userUid, $channelUid)
|
|
|
+ {
|
|
|
+ $channels = ChannelApi::getCanReadByUser($userUid);
|
|
|
+ return in_array($channelUid, $channels);
|
|
|
+ }
|
|
|
+ public static function userCanEdit($userUid, $channelUid)
|
|
|
+ {
|
|
|
+ $channels = ChannelApi::getCanEditByUser($userUid);
|
|
|
+ return in_array($channelUid, $channels);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function canManageByUser($channelId, $userUuid)
|
|
|
+ {
|
|
|
$isOwner = Channel::where('owner_uid', $userUuid)
|
|
|
- ->where('uid', $channelId)->exists();
|
|
|
+ ->where('uid', $channelId)->exists();
|
|
|
return $isOwner;
|
|
|
}
|
|
|
- public static function getSysChannel($channel_name,$fallback=""){
|
|
|
- $channel = Channel::where('name',$channel_name)
|
|
|
- ->where('owner_uid',config("mint.admin.root_uuid"))
|
|
|
+ public static function getSysChannel($channel_name, $fallback = "")
|
|
|
+ {
|
|
|
+ $channel = Channel::where('name', $channel_name)
|
|
|
+ ->where('owner_uid', config("mint.admin.root_uuid"))
|
|
|
+ ->first();
|
|
|
+ if (!$channel) {
|
|
|
+ if (!empty($fallback)) {
|
|
|
+ $channel = Channel::where('name', $fallback)
|
|
|
+ ->where('owner_uid', config("mint.admin.root_uuid"))
|
|
|
->first();
|
|
|
- if(!$channel){
|
|
|
- if(!empty($fallback)){
|
|
|
- $channel = Channel::where('name',$fallback)
|
|
|
- ->where('owner_uid',config("mint.admin.root_uuid"))
|
|
|
- ->first();
|
|
|
- if(!$channel){
|
|
|
+ if (!$channel) {
|
|
|
return false;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return $channel->uid;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return $channel->uid;
|
|
|
}
|
|
|
}
|
|
|
@@ -113,11 +128,12 @@ class ChannelApi{
|
|
|
* 获取某个studio 的某个语言的自定义书的channel
|
|
|
* 如果没有,建立
|
|
|
*/
|
|
|
- public static function userBookGetOrCreate($studioId,$lang,$status){
|
|
|
- $channelName = '_user_book_'.$lang;
|
|
|
- $channel = Channel::where('owner_uid',$studioId)
|
|
|
- ->where('name',$channelName)->first();
|
|
|
- if($channel){
|
|
|
+ public static function userBookGetOrCreate($studioId, $lang, $status)
|
|
|
+ {
|
|
|
+ $channelName = '_user_book_' . $lang;
|
|
|
+ $channel = Channel::where('owner_uid', $studioId)
|
|
|
+ ->where('name', $channelName)->first();
|
|
|
+ if ($channel) {
|
|
|
return $channel->uid;
|
|
|
}
|
|
|
$channelUuid = Str::uuid();
|
|
|
@@ -130,15 +146,15 @@ class ChannelApi{
|
|
|
$channel->lang = $lang;
|
|
|
$channel->editor_id = 0;
|
|
|
$channel->is_system = true;
|
|
|
- $channel->create_time = time()*1000;
|
|
|
- $channel->modify_time = time()*1000;
|
|
|
+ $channel->create_time = time() * 1000;
|
|
|
+ $channel->modify_time = time() * 1000;
|
|
|
$channel->status = $status;
|
|
|
$saveOk = $channel->save();
|
|
|
- if($saveOk){
|
|
|
- Log::debug('copy user book : create channel success name='.$channelName);
|
|
|
+ if ($saveOk) {
|
|
|
+ Log::debug('copy user book : create channel success name=' . $channelName);
|
|
|
return $channel->uid;
|
|
|
- }else{
|
|
|
- Log::error('copy user book : create channel fail.',['channel'=>$channelName,'studioId'=>$studioId]);
|
|
|
+ } else {
|
|
|
+ Log::error('copy user book : create channel fail.', ['channel' => $channelName, 'studioId' => $studioId]);
|
|
|
return false;
|
|
|
}
|
|
|
}
|