love_php/app/Http/Middleware/App/CheckStoreCommunityMoment.php
2026-04-02 09:20:51 +08:00

69 lines
2.3 KiB
PHP

<?php
namespace App\Http\Middleware\App;
use Closure;
use App\Http\Response\ResponseJson;
class CheckStoreCommunityMoment
{
use ResponseJson;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try {
//话题状态
$topic_status = $request->input('topic_status',0);
switch ($topic_status) {
case 0://不带话题
break;
case 1://引用话题
$topic_id = $request->input('topic_id');
if (empty($topic_id)) {
return $this->failure('请选择话题');
}
break;
case 2://创建话题
//判断话题是否存在
$community = $request->community;
//判断是会否是群主
if (auth()->id() != $community->user_id) {
return $this->failure('你还不是群主,暂不支持创建话题');
}
//话题名称
$name = $request->input('name');
if (empty($name)) {
return $this->failure('请输入话题名称');
}
if (strlen($name) > 50) {
return $this->failure('话题名称过长');
}
$topic = $community->topic()->where('name', $request->name)->first();
if ($topic) {
$request->topic_id = $topic->id;
// dd($topic);
// return $this->failure('此话题已经存在');
}
break;
default:
break;
}
$content = $request->input("content");
if (empty($content)) {
return $this->failure('请输入动态内容');
}
return $next($request);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('发布动态失败,请稍后再试');
}
}
}