all(); $sArticleType = $aData["articleType"] ?? "freenode"; $sArticleCode = $aData["articleCode"] ?? "fn".date("Ymd"); $iCategoryId = Categories::where("sSlug", "freenode")->first()?->id; $oArticle = Articles::where("iCategoryId", $iCategoryId)->where("sSlug", $sArticleCode)->first(); if (!$oArticle) { $oArticle = Articles::where("iCategoryId", $iCategoryId)->orderBy("id", "desc")->first(); } return response()->json($oArticle); } public function receiveFreenode(Request $oRequest) { $sObjName = "nodehub:article_receive_freenode"; $oFlow = Flow::make($sObjName); $aData = $oRequest->all(); $aArticle = $aData["article"]; $sArticleTitle = $aArticle["title"]; $sArticleTitleSub = $aArticle["title_sub"]; $sArticleContent = $aArticle["content"]; $aArticleTags = $aArticle["tags"]; $sSlug = 'fn'.date("Ymd"); $sImgAuthor = "tg_xiuren_a"; $i7like = $aArticle["7like"]; $oThumbNum = ArticleFreenodeThumbNum::firstOrCreate(["author_code" => $sImgAuthor]); $iThumbNum = $oThumbNum->num; $sImagesApi = "https://".config("path.url_resource_base")."/api/images/get/url-by-num"; $aApiArg = [ "sAuthorCode" => $sImgAuthor, "iNum" => $iThumbNum+1, ]; $sApiResult = HttpV2::make($sImagesApi, "post")->withToken()->setDataA($aApiArg)->send(); $aApiResult = json_decode($sApiResult, true); if (!isset($aApiResult["isDone"]) || !$aApiResult["isDone"]) { echo $sApiResult; return response()->json($oFlow->fail("{$sObjName}的图片api调用失败")); } $sThumbPath = $aApiResult["aData"]["sFileUrl"]; $sThumbNumTrue = $aApiResult["aData"]["iTrueNum"]; $oCategories = Categories::where("sSlug", "freenode")->first(); $oArticle = Articles::updateOrCreate( ['sSlug' => $sSlug], [ 'sThumb' => $sThumbPath, 'iCategoryId' => $oCategories->id, 'sTitle' => $sArticleTitle, 'sTitleSub' => $sArticleTitleSub, 'sContent' => $sArticleContent, 'i7like' => $i7like, 'iStatus' => 1, 'iUserId' => 1, ], ); (new TagService())->syncArticleTagsByName($oArticle, $aArticleTags); ArticleFreenodeThumbNum::where("author_code", $sImgAuthor)->update(["num" => $sThumbNumTrue]); $sArticleUrl = config("app.url")."/feenode/".$sSlug; TeleSlave::notify()->send($sArticleUrl." 发布成功"); return response()->json($oFlow->done()); } }