|
|
@@ -32,24 +32,24 @@ class DiscussionController extends Controller
|
|
|
{
|
|
|
//
|
|
|
$user = AuthApi::current($request);
|
|
|
- if($user){
|
|
|
+ if ($user) {
|
|
|
$userInfo = UserApi::getByUuid($user['user_uid']);
|
|
|
}
|
|
|
- switch ($request->get('view')) {
|
|
|
+ switch ($request->get('view')) {
|
|
|
case 'question-by-topic':
|
|
|
- $topic = Discussion::where('id',$request->get('id'));
|
|
|
- $topic->where('status',$request->get('status','active'))
|
|
|
- ->select('res_id')->first();
|
|
|
- if(!$topic){
|
|
|
- return $this->error("无效的id");
|
|
|
+ $topic = Discussion::where('id', $request->get('id'));
|
|
|
+ $topic->where('status', $request->get('status', 'active'))
|
|
|
+ ->select('res_id')->first();
|
|
|
+ if (!$topic) {
|
|
|
+ return $this->error("无效的id");
|
|
|
}
|
|
|
- $table = Discussion::where('res_id',$topic->res_id);
|
|
|
- $activeNumber = Discussion::where('res_id',$topic->res_id)
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::where('res_id',$topic->res_id)
|
|
|
- ->where('status','close')->count();
|
|
|
- $table->where('status',$request->get('status','active'))
|
|
|
- ->where('parent',null);
|
|
|
+ $table = Discussion::where('res_id', $topic->res_id);
|
|
|
+ $activeNumber = Discussion::where('res_id', $topic->res_id)
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::where('res_id', $topic->res_id)
|
|
|
+ ->where('status', 'close')->count();
|
|
|
+ $table->where('status', $request->get('status', 'active'))
|
|
|
+ ->where('parent', null);
|
|
|
break;
|
|
|
case 'question':
|
|
|
/**
|
|
|
@@ -58,7 +58,7 @@ class DiscussionController extends Controller
|
|
|
* basic用户看到别人在别人channel发表的discussion
|
|
|
*
|
|
|
*/
|
|
|
- if(!$user && $request->get('type')==='discussion'){
|
|
|
+ if (!$user && $request->get('type') === 'discussion') {
|
|
|
return $this->ok([
|
|
|
"rows" => [],
|
|
|
"count" => 0,
|
|
|
@@ -66,20 +66,20 @@ class DiscussionController extends Controller
|
|
|
'close' => 0,
|
|
|
'can_create' => false,
|
|
|
'can_reply' => false,
|
|
|
- ]);
|
|
|
+ ]);
|
|
|
}
|
|
|
$resType = $request->get('res_type');
|
|
|
- if($user){
|
|
|
+ if ($user) {
|
|
|
switch ($resType) {
|
|
|
case 'sentence':
|
|
|
# code...
|
|
|
break;
|
|
|
case 'wbw':
|
|
|
- $block_uid = Wbw::where('uid',$request->get('id'))->value('block_uid');
|
|
|
- if($block_uid){
|
|
|
- $channelId = WbwBlock::where('uid',$block_uid)->value('channel_uid');
|
|
|
- if($channelId){
|
|
|
- $canEdit = ChannelApi::userCanEdit($user['user_uid'],$channelId);
|
|
|
+ $block_uid = Wbw::where('uid', $request->get('id'))->value('block_uid');
|
|
|
+ if ($block_uid) {
|
|
|
+ $channelId = WbwBlock::where('uid', $block_uid)->value('channel_uid');
|
|
|
+ if ($channelId) {
|
|
|
+ $canEdit = ChannelApi::userCanEdit($user['user_uid'], $channelId);
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
@@ -91,7 +91,7 @@ class DiscussionController extends Controller
|
|
|
|
|
|
|
|
|
$resId = [$request->get('id')];
|
|
|
- if(!empty($request->get('course'))){
|
|
|
+ if (!empty($request->get('course'))) {
|
|
|
//
|
|
|
/**
|
|
|
* 如果res id 是答案,获取学员提问
|
|
|
@@ -99,116 +99,118 @@ class DiscussionController extends Controller
|
|
|
*/
|
|
|
//获取学员提问
|
|
|
//获取学员channel
|
|
|
- if($request->get('show_student') === 'true'){
|
|
|
+ if ($request->get('show_student') === 'true') {
|
|
|
$channelsId = CourseApi::getStudentChannels($request->get('course'));
|
|
|
switch ($resType) {
|
|
|
case 'wbw':
|
|
|
//获取答案单词编号
|
|
|
- $wbwWord = Wbw::where('uid',$request->get('id'))
|
|
|
- ->first();
|
|
|
+ $wbwWord = Wbw::where('uid', $request->get('id'))
|
|
|
+ ->first();
|
|
|
$wbwId = WbwSentenceController::getWbwIdByChannels(
|
|
|
- $channelsId,
|
|
|
- $wbwWord->book_id,
|
|
|
- $wbwWord->paragraph,
|
|
|
- $wbwWord->wid);
|
|
|
- $resId = array_merge($resId,$wbwId);
|
|
|
+ $channelsId,
|
|
|
+ $wbwWord->book_id,
|
|
|
+ $wbwWord->paragraph,
|
|
|
+ $wbwWord->wid
|
|
|
+ );
|
|
|
+ $resId = array_merge($resId, $wbwId);
|
|
|
break;
|
|
|
case 'sentence':
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- $table = Discussion::whereIn('res_id',$resId)
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status',$request->get('status','active'))
|
|
|
- ->where('parent',null);
|
|
|
- if($request->get('type')==='discussion'){
|
|
|
- if(isset($userInfo) &&
|
|
|
+ $table = Discussion::whereIn('res_id', $resId)
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', $request->get('status', 'active'))
|
|
|
+ ->where('parent', null);
|
|
|
+ if ($request->get('type') === 'discussion') {
|
|
|
+ if (
|
|
|
+ isset($userInfo) &&
|
|
|
isset($userInfo['roles']) &&
|
|
|
- in_array('basic',$userInfo['roles'])){
|
|
|
- if(isset($canEdit) && $canEdit===true){
|
|
|
-
|
|
|
- }else{
|
|
|
- $table = $table->where('editor_uid',$userInfo['id']);
|
|
|
- }
|
|
|
+ in_array('basic', $userInfo['roles'])
|
|
|
+ ) {
|
|
|
+ if (isset($canEdit) && $canEdit === true) {
|
|
|
+ } else {
|
|
|
+ $table = $table->where('editor_uid', $userInfo['id']);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- $activeNumber = Discussion::whereIn('res_id',$resId)
|
|
|
- ->where('parent',null)
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::whereIn('res_id',$resId)
|
|
|
- ->where('parent',null)
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','close')->count();
|
|
|
+ $activeNumber = Discussion::whereIn('res_id', $resId)
|
|
|
+ ->where('parent', null)
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::whereIn('res_id', $resId)
|
|
|
+ ->where('parent', null)
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'close')->count();
|
|
|
break;
|
|
|
case 'answer':
|
|
|
- $table = Discussion::where('parent',$request->get('id'));
|
|
|
- $activeNumber = Discussion::where('parent',$request->get('id'))
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::where('parent',$request->get('id'))
|
|
|
- ->where('status','close')->count();
|
|
|
+ $table = Discussion::where('parent', $request->get('id'));
|
|
|
+ $activeNumber = Discussion::where('parent', $request->get('id'))
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::where('parent', $request->get('id'))
|
|
|
+ ->where('status', 'close')->count();
|
|
|
break;
|
|
|
case 'res_id':
|
|
|
/**
|
|
|
* 先获取顶级节点
|
|
|
* 需要确定用户身份,manager查看全部topic 普通用户只显示自己提交的topic
|
|
|
*/
|
|
|
- $roots = Discussion::where('res_id',$request->get('id'))
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->whereIn('status',explode(',',$request->get('status','active')) )
|
|
|
- ->where('parent',null)
|
|
|
- ->select('id')
|
|
|
- ->get();
|
|
|
+ $roots = Discussion::where('res_id', $request->get('id'))
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->whereIn('status', explode(',', $request->get('status', 'active')))
|
|
|
+ ->where('parent', null)
|
|
|
+ ->select('id')
|
|
|
+ ->get();
|
|
|
|
|
|
$table = Discussion::where(function ($query) use ($roots) {
|
|
|
- $query->whereIn('id' , $roots)
|
|
|
- ->orWhereIn('parent', $roots);
|
|
|
- });
|
|
|
- $activeNumber = Discussion::where('res_id',$request->get('id'))
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::where('res_id',$request->get('id'))
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','close')->count();
|
|
|
+ $query->whereIn('id', $roots)
|
|
|
+ ->orWhereIn('parent', $roots);
|
|
|
+ });
|
|
|
+ $activeNumber = Discussion::where('res_id', $request->get('id'))
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::where('res_id', $request->get('id'))
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'close')->count();
|
|
|
break;
|
|
|
case 'topic-by-user':
|
|
|
/**
|
|
|
* 某用户发表的全部topic
|
|
|
*
|
|
|
*/
|
|
|
- if(!$user){
|
|
|
- return $this->error('',403,403);
|
|
|
+ if (!$user) {
|
|
|
+ return $this->error('', 403, 403);
|
|
|
}
|
|
|
- $table = Discussion::where('editor_uid',$user['user_uid'])
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->whereIn('status',explode(',',$request->get('status','active')) )
|
|
|
- ->where('parent',null);
|
|
|
- $activeNumber = Discussion::where('editor_uid',$user['user_uid'])
|
|
|
- ->where('parent',null)
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::where('editor_uid',$user['user_uid'])
|
|
|
- ->where('parent',null)
|
|
|
- ->where('type', $request->get('type','discussion'))
|
|
|
- ->where('status','close')->count();
|
|
|
+ $table = Discussion::where('editor_uid', $user['user_uid'])
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->whereIn('status', explode(',', $request->get('status', 'active')))
|
|
|
+ ->where('parent', null);
|
|
|
+ $activeNumber = Discussion::where('editor_uid', $user['user_uid'])
|
|
|
+ ->where('parent', null)
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::where('editor_uid', $user['user_uid'])
|
|
|
+ ->where('parent', null)
|
|
|
+ ->where('type', $request->get('type', 'discussion'))
|
|
|
+ ->where('status', 'close')->count();
|
|
|
break;
|
|
|
case 'all':
|
|
|
- $table = Discussion::where('parent',null);
|
|
|
- $activeNumber = Discussion::where('parent',null)
|
|
|
- ->where('status','active')->count();
|
|
|
- $closeNumber = Discussion::where('parent',null)
|
|
|
- ->where('status','close')->count();
|
|
|
+ $table = Discussion::where('parent', null);
|
|
|
+ $activeNumber = Discussion::where('parent', null)
|
|
|
+ ->where('status', 'active')->count();
|
|
|
+ $closeNumber = Discussion::where('parent', null)
|
|
|
+ ->where('status', 'close')->count();
|
|
|
break;
|
|
|
}
|
|
|
- if(!empty($search)){
|
|
|
- $table = $table->where('title', 'like', $search."%");
|
|
|
+ if (!empty($search)) {
|
|
|
+ $table = $table->where('title', 'like', $search . "%");
|
|
|
}
|
|
|
$count = $table->count();
|
|
|
|
|
|
- $table = $table->orderBy($request->get('order','created_at'),$request->get('dir','desc'));
|
|
|
- $table = $table->skip($request->get("offset",0))
|
|
|
- ->take($request->get('limit',1000));
|
|
|
+ $table = $table->orderBy($request->get('order', 'created_at'), $request->get('dir', 'desc'));
|
|
|
+ $table = $table->skip($request->get("offset", 0))
|
|
|
+ ->take($request->get('limit', 1000));
|
|
|
|
|
|
$result = $table->get();
|
|
|
|
|
|
@@ -216,11 +218,11 @@ class DiscussionController extends Controller
|
|
|
$can_reply = false;
|
|
|
$user = AuthApi::current($request);
|
|
|
|
|
|
- switch ($request->get('type','discussion')) {
|
|
|
+ switch ($request->get('type', 'discussion')) {
|
|
|
case 'qa':
|
|
|
switch ($request->get('res_type')) {
|
|
|
case 'article':
|
|
|
- if($user && ArticleController::userCanEditId($user['user_uid'],$request->get('id'))){
|
|
|
+ if ($user && ArticleController::userCanEditId($user['user_uid'], $request->get('id'))) {
|
|
|
$can_create = true;
|
|
|
$can_reply = true;
|
|
|
}
|
|
|
@@ -230,9 +232,9 @@ class DiscussionController extends Controller
|
|
|
case 'help':
|
|
|
switch ($request->get('res_type')) {
|
|
|
case 'article':
|
|
|
- if($user){
|
|
|
+ if ($user) {
|
|
|
$can_reply = true;
|
|
|
- if(ArticleController::userCanEditId($user['user_uid'],$request->get('id'))){
|
|
|
+ if (ArticleController::userCanEditId($user['user_uid'], $request->get('id'))) {
|
|
|
$can_create = true;
|
|
|
}
|
|
|
}
|
|
|
@@ -240,7 +242,7 @@ class DiscussionController extends Controller
|
|
|
}
|
|
|
break;
|
|
|
case 'discussion':
|
|
|
- if($user){
|
|
|
+ if ($user) {
|
|
|
$can_create = true;
|
|
|
$can_reply = true;
|
|
|
}
|
|
|
@@ -254,27 +256,27 @@ class DiscussionController extends Controller
|
|
|
'close' => $closeNumber,
|
|
|
'can_create' => $can_create,
|
|
|
'can_reply' => $can_reply,
|
|
|
- ]);
|
|
|
-
|
|
|
+ ]);
|
|
|
}
|
|
|
|
|
|
- public function discussion_tree(Request $request){
|
|
|
+ public function discussion_tree(Request $request)
|
|
|
+ {
|
|
|
$output = [];
|
|
|
$sentences = $request->get("data");
|
|
|
foreach ($sentences as $key => $sentence) {
|
|
|
# 先查句子信息
|
|
|
- $sentInfo = Sentence::where('book_id',$sentence['book'])
|
|
|
- ->where('paragraph',$sentence['paragraph'])
|
|
|
- ->where('word_start',$sentence['word_start'])
|
|
|
- ->where('word_end',$sentence['word_end'])
|
|
|
- ->where('channel_uid',$sentence['channel_id'])
|
|
|
- ->first();
|
|
|
- if($sentInfo){
|
|
|
- $sentPr = Discussion::where('res_id',$sentInfo['uid'])
|
|
|
- ->whereNull('parent')
|
|
|
- ->select('title','children_count','editor_uid')
|
|
|
- ->orderBy('created_at','desc')->get();
|
|
|
- if(count($sentPr)>0){
|
|
|
+ $sentInfo = Sentence::where('book_id', $sentence['book'])
|
|
|
+ ->where('paragraph', $sentence['paragraph'])
|
|
|
+ ->where('word_start', $sentence['word_start'])
|
|
|
+ ->where('word_end', $sentence['word_end'])
|
|
|
+ ->where('channel_uid', $sentence['channel_id'])
|
|
|
+ ->first();
|
|
|
+ if ($sentInfo) {
|
|
|
+ $sentPr = Discussion::where('res_id', $sentInfo['uid'])
|
|
|
+ ->whereNull('parent')
|
|
|
+ ->select('title', 'children_count', 'editor_uid')
|
|
|
+ ->orderBy('created_at', 'desc')->get();
|
|
|
+ if (count($sentPr) > 0) {
|
|
|
$output[] = [
|
|
|
'sentence' => [
|
|
|
'book' => $sentInfo->book_id,
|
|
|
@@ -288,11 +290,9 @@ class DiscussionController extends Controller
|
|
|
'pr' => $sentPr,
|
|
|
];
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- return $this->ok(['rows'=>$output,'count'=>count($output)]);
|
|
|
+ return $this->ok(['rows' => $output, 'count' => count($output)]);
|
|
|
}
|
|
|
/**
|
|
|
* Store a newly created resource in storage.
|
|
|
@@ -303,52 +303,52 @@ class DiscussionController extends Controller
|
|
|
public function store(Request $request)
|
|
|
{
|
|
|
$user = AuthApi::current($request);
|
|
|
- if(!$user){
|
|
|
- Log::error('discussion store auth failed {request}',['request'=>$request]);
|
|
|
- return $this->error(__('auth.failed'),[401],401);
|
|
|
+ if (!$user) {
|
|
|
+ Log::error('discussion store auth failed {request}', ['request' => $request]);
|
|
|
+ return $this->error(__('auth.failed'), [401], 401);
|
|
|
}
|
|
|
//
|
|
|
// validate
|
|
|
// read more on validation at http://laravel.com/docs/validation
|
|
|
|
|
|
- if($request->has('parent')){
|
|
|
+ if ($request->has('parent')) {
|
|
|
$rules = [];
|
|
|
$parentInfo = Discussion::find($request->get('parent'));
|
|
|
- if(!$parentInfo){
|
|
|
+ if (!$parentInfo) {
|
|
|
return $this->error('no record');
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$rules = array(
|
|
|
- 'res_id' => 'required',
|
|
|
- 'res_type' => 'required',
|
|
|
- 'title' => 'required',
|
|
|
- );
|
|
|
+ 'res_id' => 'required',
|
|
|
+ 'res_type' => 'required',
|
|
|
+ 'title' => 'required',
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
$validated = $request->validate($rules);
|
|
|
|
|
|
$discussion = new Discussion;
|
|
|
- if($request->has('parent')){
|
|
|
+ if ($request->has('parent')) {
|
|
|
$discussion->res_id = $parentInfo->res_id;
|
|
|
$discussion->res_type = $parentInfo->res_type;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$discussion->res_id = $request->get('res_id');
|
|
|
$discussion->res_type = $request->get('res_type');
|
|
|
}
|
|
|
- $discussion->type = $request->get('type','discussion');
|
|
|
+ $discussion->type = $request->get('type', 'discussion');
|
|
|
$discussion->tpl_id = $request->get('tpl_id');
|
|
|
- $discussion->title = $request->get('title',null);
|
|
|
- $discussion->content = $request->get('content',null);
|
|
|
- $discussion->content_type = $request->get('content_type',"markdown");
|
|
|
- $discussion->parent = $request->get('parent',null);
|
|
|
+ $discussion->title = $request->get('title', null);
|
|
|
+ $discussion->content = $request->get('content', null);
|
|
|
+ $discussion->content_type = $request->get('content_type', "markdown");
|
|
|
+ $discussion->parent = $request->get('parent', null);
|
|
|
$discussion->editor_uid = $user['user_uid'];
|
|
|
$discussion->save();
|
|
|
//更新parent children_count
|
|
|
- if($request->has('parent')){
|
|
|
- $parentInfo->increment('children_count',1);
|
|
|
+ if ($request->has('parent')) {
|
|
|
+ $parentInfo->increment('children_count', 1);
|
|
|
$parentInfo->save();
|
|
|
}
|
|
|
- Mq::publish('discussion',new DiscussionResource($discussion));
|
|
|
+ Mq::publish('discussion', new DiscussionResource($discussion));
|
|
|
|
|
|
return $this->ok(new DiscussionResource($discussion));
|
|
|
}
|
|
|
@@ -363,10 +363,9 @@ class DiscussionController extends Controller
|
|
|
{
|
|
|
//
|
|
|
return $this->ok(new DiscussionResource($discussion));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ /**
|
|
|
* 获取discussion 锚点的数据。以句子为最小单位,逐词解析也要显示单词所在的句子
|
|
|
*
|
|
|
* @param string $id
|
|
|
@@ -376,37 +375,36 @@ class DiscussionController extends Controller
|
|
|
{
|
|
|
//
|
|
|
$discussion = Discussion::find($id);
|
|
|
+ $content = '';
|
|
|
switch ($discussion->res_type) {
|
|
|
case 'wbw':
|
|
|
# 从逐词解析表获取逐词解析数据
|
|
|
- $wbw = Wbw::where('uid',$discussion->res_id)->first();
|
|
|
- if(!$wbw){
|
|
|
+ $wbw = Wbw::where('uid', $discussion->res_id)->first();
|
|
|
+ if (!$wbw) {
|
|
|
return $this->error('no wbw data');
|
|
|
}
|
|
|
- $wbwBlock = WbwBlock::where('uid',$wbw->block_uid)->first();
|
|
|
- if(!$wbwBlock){
|
|
|
+ $wbwBlock = WbwBlock::where('uid', $wbw->block_uid)->first();
|
|
|
+ if (!$wbwBlock) {
|
|
|
return $this->error('no wbwBlock data');
|
|
|
}
|
|
|
- $sent = PaliSentence::where('book',$wbw->book_id)
|
|
|
- ->where('paragraph',$wbw->paragraph)
|
|
|
- ->where('word_begin','<=',$wbw->wid)
|
|
|
- ->where('word_end','>=',$wbw->wid)
|
|
|
- ->first();
|
|
|
- if(!$sent){
|
|
|
+ $sent = PaliSentence::where('book', $wbw->book_id)
|
|
|
+ ->where('paragraph', $wbw->paragraph)
|
|
|
+ ->where('word_begin', '<=', $wbw->wid)
|
|
|
+ ->where('word_end', '>=', $wbw->wid)
|
|
|
+ ->first();
|
|
|
+ if (!$sent) {
|
|
|
return $this->error('no sent data');
|
|
|
}
|
|
|
$sentId = "{$sent['book']}-{$sent['paragraph']}-{$sent['word_begin']}-{$sent['word_end']}";
|
|
|
$channel = $wbwBlock->channel_uid;
|
|
|
- $content = MdRender::render("{{".$sentId."}}",[$channel]);
|
|
|
- return $this->ok($content);
|
|
|
+ $content = MdRender::render("{{" . $sentId . "}}", [$channel]);
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
# code...
|
|
|
break;
|
|
|
}
|
|
|
- return $this->ok();
|
|
|
-
|
|
|
+ return $this->ok($content);
|
|
|
}
|
|
|
/**
|
|
|
* Update the specified resource in storage.
|
|
|
@@ -419,51 +417,50 @@ class DiscussionController extends Controller
|
|
|
{
|
|
|
//
|
|
|
$user = AuthApi::current($request);
|
|
|
- if(!$user){
|
|
|
- return $this->error(__('auth.failed'),[403],403);
|
|
|
+ if (!$user) {
|
|
|
+ return $this->error(__('auth.failed'), [403], 403);
|
|
|
}
|
|
|
//
|
|
|
$isManager = false;
|
|
|
$isResManager = false;
|
|
|
- if($discussion->editor_uid === $user['user_uid']){
|
|
|
+ if ($discussion->editor_uid === $user['user_uid']) {
|
|
|
$isManager = true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//查看是否是资源拥有者
|
|
|
- if($discussion->res_type === 'sentence'){
|
|
|
+ if ($discussion->res_type === 'sentence') {
|
|
|
$res = Sentence::find($discussion->res_id);
|
|
|
- if($res){
|
|
|
+ if ($res) {
|
|
|
$channelId = $res->channel_uid;
|
|
|
}
|
|
|
- }else if($discussion->res_type === 'wbw'){
|
|
|
- $res = Wbw::where('uid',$discussion->res_id)->first();
|
|
|
- if($res){
|
|
|
- $block = WbwBlock::where('uid',$res->block_uid)->first();
|
|
|
- if($block){
|
|
|
+ } else if ($discussion->res_type === 'wbw') {
|
|
|
+ $res = Wbw::where('uid', $discussion->res_id)->first();
|
|
|
+ if ($res) {
|
|
|
+ $block = WbwBlock::where('uid', $res->block_uid)->first();
|
|
|
+ if ($block) {
|
|
|
$channelId = $block->channel_uid;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(isset($channelId)){
|
|
|
+ if (isset($channelId)) {
|
|
|
$channel = Channel::find($channelId);
|
|
|
- if($channel){
|
|
|
- $isResManager = ChannelApi::userCanEdit($user['user_uid'],$channelId);
|
|
|
+ if ($channel) {
|
|
|
+ $isResManager = ChannelApi::userCanEdit($user['user_uid'], $channelId);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(!$isManager && !$isResManager){
|
|
|
- return $this->error(__('auth.failed'),[403],403);
|
|
|
+ if (!$isManager && !$isResManager) {
|
|
|
+ return $this->error(__('auth.failed'), [403], 403);
|
|
|
}
|
|
|
|
|
|
- $discussion->title = $request->get('title',null);
|
|
|
- $discussion->content = $request->get('content',null);
|
|
|
- $discussion->status = $request->get('status','active');
|
|
|
- if($request->has('type')){
|
|
|
+ $discussion->title = $request->get('title', null);
|
|
|
+ $discussion->content = $request->get('content', null);
|
|
|
+ $discussion->status = $request->get('status', 'active');
|
|
|
+ if ($request->has('type')) {
|
|
|
$discussion->type = $request->get('type');
|
|
|
}
|
|
|
//$discussion->editor_uid = $user['user_uid'];
|
|
|
$discussion->save();
|
|
|
return $this->ok(new DiscussionResource($discussion));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -472,16 +469,16 @@ class DiscussionController extends Controller
|
|
|
* @param \App\Models\Discussion $discussion
|
|
|
* @return \Illuminate\Http\Response
|
|
|
*/
|
|
|
- public function destroy(Request $request,Discussion $discussion)
|
|
|
+ public function destroy(Request $request, Discussion $discussion)
|
|
|
{
|
|
|
//
|
|
|
$user = AuthApi::current($request);
|
|
|
- if(!$user){
|
|
|
- return $this->error(__('auth.failed'),[401],401);
|
|
|
+ if (!$user) {
|
|
|
+ return $this->error(__('auth.failed'), [401], 401);
|
|
|
}
|
|
|
//TODO 其他有权限的人也可以删除
|
|
|
- if($discussion->editor_uid !== $user['user_uid']){
|
|
|
- return $this->error(__('auth.failed'),[403],403);
|
|
|
+ if ($discussion->editor_uid !== $user['user_uid']) {
|
|
|
+ return $this->error(__('auth.failed'), [403], 403);
|
|
|
}
|
|
|
$delete = $discussion->delete();
|
|
|
return $this->ok($delete);
|