no message

This commit is contained in:
hellcat 2025-12-30 13:32:09 +08:00
parent de4e5f1e89
commit 4e2b123106
2 changed files with 126 additions and 28 deletions

View File

@ -26,6 +26,7 @@ class Dog extends Mod\Base {
private $aMsg = [];
public $aSelectField = [];
public $aHideField = [];
public $aJsonField = [];
public function __construct($oModelSelf = false)
{
@ -52,6 +53,11 @@ class Dog extends Mod\Base {
$this->iStrMaxLen = $iStrMaxLen;
}
public function _setJsonField($aJsonField)
{
$this->aJsonField = $aJsonField;
}
// 隐藏某些字段[id,name]
public function _setHideField($aHideField = [])
{
@ -70,7 +76,6 @@ class Dog extends Mod\Base {
$this->iStrMaxLen = ModelDogOption::_hit($this->sDogName, "str_len_max");
if (!$this->iStrMaxLen) {
// throw new \Exception("需要设置dog的option的str_len_max");
$this->iStrMaxLen = 60;
$this->aMsg["警告882"] = "需要设置dog的option的str_len_max临时设为60。";
}
@ -205,14 +210,14 @@ class Dog extends Mod\Base {
//// option 系列 end
//// 辅助系列
private function filterList($oSelfList)
{
foreach ($oSelfList as &$oSelfListRow) {
$oSelfListRow = $this->filterRow($oSelfListRow);
}
return $oSelfList;
}
// private function filterList($oSelfList)
// {
// foreach ($oSelfList as &$oSelfListRow) {
// $oSelfListRow = $this->filterRow($oSelfListRow);
// }
//
// return $oSelfList;
// }
private function meToStr_list($oMe)
{
@ -277,15 +282,19 @@ class Dog extends Mod\Base {
}
//// me系列 end
private function filterRow($oSelfRow)
{
foreach ($this->aStrField as $v) {
$oSelfRow->{$v} = $this->subStr($oSelfRow->{$v});
}
return $oSelfRow;
}
// private function filterRow($oSelfRow)
// {
//
// foreach ($this->aStrField as $v) {
// $oSelfRow->{$v} = $this->subStr($oSelfRow->{$v});
// }
//
// foreach ($this->aJsonField as $v) {
// $oSelfRow->{$v} = json_decode($oSelfRow->{$v});
// }
//
// return $oSelfRow;
// }
private function subStr($input) {
@ -435,7 +444,7 @@ class Dog extends Mod\Base {
public function find($aParam)
{
$sField = $aParam["aOption"][1] ?? $this->sPrimaryKey;
$sValue = $aParam["aArg"][1] ?? false;
$sValue = $aParam["aArg"][1] ?? "_all";
$iPage = $aParam["aOption"][2] ?? 1;
$isLike = $aParam["is_like"] ?? false;
$sHitField = $aParam["sHitField"] ?? false;
@ -467,11 +476,19 @@ class Dog extends Mod\Base {
}
// hit必然单体
if ($sHitField) {
return $oSelf->items()[0]->$sHitField;
}
// if ($sHitField) {
// return $oSelf->items()[0]->$sHitField;
// }
$aData = $this->toDataList($oSelf);
if ($sHitField) {
if (in_array($sHitField, $this->aStrField)) {
$aData = $oSelf->items()[0]->$sHitField;
} else {
$aData = $aData[0][$sHitField];
}
}
return $this->toJson($aData);
}
@ -596,6 +613,10 @@ class Dog extends Mod\Base {
foreach ($this->aStrField as $sStrField) {
$aData[$sStrField] = $this->subStr($aData[$sStrField]);
}
foreach ($this->aJsonField as $sJsonField) {
$aData[$sJsonField] = json_decode($aData[$sJsonField]);
}
foreach ($this->aOutFormat as $sFormatField => $sFormatType) {
if ($sFormatType == "date") {
@ -627,7 +648,81 @@ class Dog extends Mod\Base {
return $this->set($aParam);
}
public function jsonAdd($aParam)
public function arrUnset($aParam)
{
$aParam["sCmd"] = "unset";
return $this->arrSet($aParam);
}
public function arrSet($aParam)
{
$sWhereValue = $aParam["aOption"][1] ?? '';
$sUpdField = $aParam["aOption"][2] ?? '';
$sUpdKey = $aParam["aOption"][3] ?? '';
$sUpdValue = $aParam["aArg"][1] ?? '';
$sCmd = $aParam["sCmd"] ?? 'set';
if ($sUpdValue == "?") {
return "#arrSet__[sWhereValue]__[sUpdField]__[?sUpdKey] [?sUpdValue]";
}
if (!$sWhereValue) {
return "需要whereValue";
}
if (!$sUpdField) {
return "需要sWhereValue";
}
if (!$sUpdKey) {
// return "需要sUpdKey";
}
if (!$sUpdValue) {
if ($sCmd == "set") {
return "需要sUpdValue";
}
}
$oModelSelf = $this->oModelSelf->where($this->sPrimaryKey, $sWhereValue)->first();
if (!$oModelSelf) {
return "没找到";
}
$sArr = $oModelSelf->$sUpdField ?? "[]";
$aArr = json_decode($sArr, true);
$aArrNew = $aArr;
if ($sCmd == "set") {
if ($sUpdKey) {
$aArrNew[$sUpdKey] = $sUpdValue;
} else {
$aArrNew[] = $sUpdValue;
}
} else if ($sCmd == "unset") {
if (!$sUpdKey) {
return "需要sUpdKey";
}
if (isset($aArrNew[$sUpdKey])) {
unset($aArrNew[$sUpdKey]);
}
}
$sArrNew = json_encode($aArrNew);
$oModelSelf->$sUpdField = $sArrNew ?? "[]";
$r = $oModelSelf->save();
if (!$r) {
return "save失败";
}
$a = json_decode($oModelSelf->$sUpdField);
return $this->toJson($a);
}
public function schemaAdd($aParam)
{
if (($aParam["aArg"][1] ?? false) == "?") {
return "#jsonAdd {json}";
@ -654,7 +749,7 @@ class Dog extends Mod\Base {
return $this->find($aParam);
}
public function jsonSet($aParam)
public function schemaSet($aParam)
{
$sWhereValue = $aParam["aOption"][1] ?? false;
$aJson = $aParam["aArg"] ?? false;
@ -682,7 +777,7 @@ class Dog extends Mod\Base {
foreach ($aJson as $k => $v) {
$v = $this->inFormat($k, $v);
$oModelSelf->$k = $v;
$oModelSelf->$k = $v;
}
$oModelSelf->save();
@ -693,7 +788,7 @@ class Dog extends Mod\Base {
return $this->find($aParam);
}
public function jsonGet($aParam)
public function schemaGet($aParam)
{
$sWhereValue = $aParam["aArg"][1] ?? false;
$sWhereField = $aParam["aOption"][1] ?? $this->sPrimaryKey;

View File

@ -16,9 +16,12 @@ class Node extends Base {
$this->oDog->_setDogName("node"); // 必须me用正常就是类名只不过后期没准改名所以就这里写死
// $this->oDog->_setPrimaryKey("code"); // 可选默认id
// $this->oDog->_setStrField(["content"]); // 可选,指定长文本字段
$this->oDog->_setJsonField(["custom_config", "dynamic_rate_config"]);
$this->oDog->_setHideFile(["gfw_block", "dynamic_rate_type", "dynamic_rate_config", "password", "online_user_date_last"]);
$this->oDog->_setOutFormat([
// "create_time" => "date",
// "update_time" => "date",
"node_heartbeat" => "date",
"node_bandwidth_limit" => "gb",
"node_bandwidth" => "node_bandwidth"
]);
}