202 lines
5.2 KiB
PHP
202 lines
5.2 KiB
PHP
<?php
|
||
|
||
namespace App\Services\TG\Hook\Mod;
|
||
use App\Models\Article as ModelArticle;
|
||
|
||
class Article extends Base {
|
||
|
||
public function List($aParam)
|
||
{
|
||
if (isset($aParam['aOption'][1])) {
|
||
$sOrderBy = $aParam['aOption'][1];
|
||
} else {
|
||
$sOrderBy = "i_in10";
|
||
}
|
||
|
||
$aArticleList = ModelArticle::orderBy($sOrderBy)->get()->toArray();
|
||
|
||
$str = "";
|
||
foreach ($aArticleList as &$row) { // 使用引用来修改原数组
|
||
unset($row['updated_at']); // 移除 updated_at 字段
|
||
unset($row['created_at']); // 移除 created_at 字段
|
||
// $aTmp[] = $this->toJson($row);
|
||
// $this->oTGHttp->sendToTG(json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
|
||
// $str .= "\n";
|
||
$str .= $this->toJson($row);
|
||
$str .= "\n";
|
||
}
|
||
|
||
return $str;
|
||
}
|
||
|
||
public function Find($aParam)
|
||
{
|
||
$iId = $aParam['aArg'][1];
|
||
|
||
$aSingle = ModelArticle::find($iId)->toArray();
|
||
|
||
unset($aSingle['updated_at']);
|
||
unset($aSingle['created_at']);
|
||
|
||
return $this->toJson($aSingle);
|
||
}
|
||
|
||
|
||
public function Like($aParams)
|
||
{
|
||
$aArticleList = ModelArticle::where($this->cmdGood($aParams['aOption'][1]), 'like', '%' . $aParams['aArg'][1] . '%')
|
||
->orderBy("user_name")
|
||
->get()
|
||
->toArray();
|
||
|
||
if (empty($aArticleList)) {
|
||
$this->oTGHttp->sendToTG("没有");
|
||
} else {
|
||
|
||
$aTmp = [];
|
||
foreach ($aArticleList as &$row) { // 使用引用来修改原数组
|
||
unset($row['updated_at']); // 移除 updated_at 字段
|
||
unset($row['created_at']); // 移除 created_at 字段
|
||
$aTmp[] = $this->toJson($row);
|
||
}
|
||
}
|
||
|
||
return $aTmp;
|
||
}
|
||
|
||
public function Clone($aParam)
|
||
{
|
||
$iId = $aParam['aArg'][1];
|
||
|
||
// 查找文章
|
||
$aArticle = ModelArticle::find($iId);
|
||
|
||
if ($aArticle) {
|
||
// 复制文章
|
||
$newArticle = $aArticle->replicate();
|
||
|
||
// 如果需要,可以修改新文章的某些字段,例如标题或状态
|
||
// $newArticle->title = $newArticle->title . ' - Copy'; // 修改标题
|
||
// $newArticle->status = 'draft'; // 例如,将状态设置为草稿
|
||
|
||
// 保存新文章
|
||
$newArticle->save();
|
||
|
||
// 发送新文章的 ID 到 Telegram
|
||
$sMsg = "新文章已创建,ID: " . $newArticle->id;
|
||
// $this->oTGHttp->sendToTG($sMsg);
|
||
|
||
// 返回 HTTP 响应
|
||
// $this->oHttp::response(200, 'ok');
|
||
|
||
return $this->toJson($sMsg);
|
||
|
||
} else {
|
||
throw new \Exception("没有这个id");
|
||
}
|
||
}
|
||
|
||
public function Add($aParams)
|
||
{
|
||
|
||
$newArticle = new ModelArticle();
|
||
$newArticle->user_name = $aParams['aArg'][1];
|
||
$r = $newArticle->save();
|
||
|
||
return $r;
|
||
|
||
}
|
||
|
||
public function Del($aParams)
|
||
{
|
||
|
||
$article = ModelArticle::find($aParams['aArg'][1]);
|
||
|
||
if ($article) {
|
||
$r = $article->delete();
|
||
} else {
|
||
$r = false;
|
||
}
|
||
|
||
return $r;
|
||
|
||
}
|
||
|
||
public function JsonAdd($aParam) {
|
||
|
||
return $this->JsonSet($aParam, "add");
|
||
|
||
}
|
||
|
||
public function Json($aParam)
|
||
{
|
||
$iId = $aParam["aOption"][1] ?? false;
|
||
$sJson = $aParam["aArg"] ?? false;
|
||
|
||
if (empty($aParam["aOption"]) && empty($aParam["aArg"])) {
|
||
return "/article#json__id? <json> | 有id为set,无id为add";
|
||
}
|
||
|
||
|
||
// if (!$iId) {
|
||
// return "需要id";
|
||
// }
|
||
//
|
||
// if (!$sJson) {
|
||
// return "需要json";
|
||
// }
|
||
|
||
if (!$iId) {
|
||
|
||
$oArticle = new ModelArticle();
|
||
|
||
} else {
|
||
|
||
$oArticle = ModelArticle::find($iId);
|
||
if (!$oArticle) {
|
||
return "没到到这个";
|
||
}
|
||
|
||
}
|
||
|
||
$sJson = implode(" ", $sJson);
|
||
|
||
$aJson = json_decode($sJson, true);
|
||
|
||
foreach ($aJson as $k => $v) {
|
||
$oArticle->$k = $v;
|
||
}
|
||
|
||
$oArticle->save();
|
||
|
||
$aParam["aArg"][1] = $oArticle->id;
|
||
return $this->Find($aParam);
|
||
}
|
||
|
||
// /ArticleSet__id__user_name xxx
|
||
public function Set($aParams)
|
||
{
|
||
$sField = $this->cmdGood($aParams['aOption'][2]);
|
||
|
||
$article = ModelArticle::find($aParams['aOption'][1]);
|
||
|
||
$sSet = $aParams['aArg'][1];
|
||
|
||
if ($article) {
|
||
$article->$sField = $sSet;
|
||
|
||
$r = $article->save();
|
||
} else {
|
||
// 处理未找到的情况
|
||
throw new \Exception("Article not found");
|
||
}
|
||
|
||
$aParam["aArg"][1] = $article->id;
|
||
return $this->Find($aParam);
|
||
|
||
// return $this->toJson($article);
|
||
|
||
}
|
||
|
||
}
|