no message

This commit is contained in:
hellcat 2025-10-13 15:42:22 +08:00
parent 3e8e0f2c2b
commit 4a770ff17f
6 changed files with 625 additions and 330 deletions

View File

@ -24,6 +24,8 @@ class Dog extends Mod\Base {
public $aOutFormat = [];
public $sDogName;
private $aMsg = [];
public $aSelectField = [];
public $aHideField = [];
public function __construct($oModelSelf = false)
{
@ -31,11 +33,38 @@ class Dog extends Mod\Base {
}
//// 定义系列
// 必须关联option和me那些
public function _setDogName($sDogName)
{
$this->sDogName = $sDogName;
}
// 必须使用的model
public function _setModel($oModelSelf)
{
$this->oModelSelf = $oModelSelf;
}
// str字段的最大长度
public function _setStrMaxLen($iStrMaxLen)
{
$this->iStrMaxLen = $iStrMaxLen;
}
// 隐藏某些字段[id,name]
public function _setHideField($aHideField = [])
{
$this->aHideField = $aHideField;
}
// 选择性取某些字段[id,name]
public function _setSelectField($aSelectField = [])
{
$this->aSelectField = $aSelectField;
}
// 设置长字符串字段
public function _setStrField($aStrField)
{
$this->iStrMaxLen = ModelDogOption::_hit($this->sDogName, "str_len_max");
@ -49,35 +78,24 @@ class Dog extends Mod\Base {
$this->aStrField = $aStrField;
}
public function _setDogName($sDogName)
{
$this->sDogName = $sDogName;
}
public function _setModel($oModelSelf)
{
$this->oModelSelf = $oModelSelf;
}
// 设置主键
public function _setPrimaryKey($key)
{
$this->sPrimaryKey = $key;
}
// 写入数据时格式化某些字段 [transfer_enable => gb]
public function _setInFormat($aInFormat)
{
$this->aInFormat = $aInFormat;
}
// 输出数据时格式化某些字段 [transfer_enable => gb]
public function _setOutFormat($aOutFormat)
{
$this->aOutFormat = $aOutFormat;
}
// public function _setFormatField($aFormatField)
// {
// $this->aFormatField = $aFormatField;
// }
//// 定义系列 end
//// option 系列
@ -417,12 +435,12 @@ class Dog extends Mod\Base {
$sHitField = $aParam["sHitField"] ?? false;
if ($sValue == "?") {
return "#find__{field?primaryKey}__{page?1} {value?all}";
return "#find__{field?primaryKey}__{page?1} {value?_all}";
}
$iLimit = $this->_getLimit();
if ($sValue === false ) {
if ($sValue === "_all" ) {
$oSelf = $this->oModelSelf;
@ -555,6 +573,20 @@ class Dog extends Mod\Base {
private function filterData($aData)
{
if ($this->aSelectField) {
$aDataNew = [];
foreach ($this->aSelectField as $sSelectField) {
$aDataNew[$sSelectField] = $aData[$sSelectField];
}
$aData = $aDataNew;
}
if ($this->aHideField) {
foreach ($this->aHideField as $sHideField) {
unset($aData[$sHideField]);
}
}
foreach ($this->aStrField as $sStrField) {
$aData[$sStrField] = $this->subStr($aData[$sStrField]);
}
@ -564,6 +596,8 @@ class Dog extends Mod\Base {
$aData[$sFormatField] = date("Y-m-d", (int) $aData[$sFormatField]);
} else if ($sFormatType == "dateFull") {
$aData[$sFormatField] = date("Y-m-d", (int) $aData[$sFormatField]);
} else if ($sFormatType == "gb") {
$aData[$sFormatField] = round($aData[$sFormatField] / 1073741824, 2)."gb";
}
}

View File

@ -0,0 +1,48 @@
<?php
namespace App\Services\Tg\Hook\Mod;
use App\Models\Invoice as ModelIvoice;
use App\Services\Tg\Hook\Dog;
class Invoice extends Base {
private $oDog;
public function __construct($aUpdate)
{
$this->oDog = new Dog(new ModelIvoice());
$this->oDog->_setDogName("Invoice"); // 必须me用正常就是类名只不过后期没准改名所以就这里写死
// $this->oDog->_setPrimaryKey("code"); // 可选默认id
// $this->oDog->_setStrField(["content"]); // 可选,指定长文本字段
// $this->oDog->_setInFormat(["date"]);
$this->oDog->_setOutFormat([
"create_time" => "date",
"update_time" => "date",
"pay_time" => "date",
]);
}
public function __call($sName, $aArg)
{
return $this->oDog->$sName($aArg[0]);
}
public function findFull($aParam)
{
return $this->oDog->find($aParam);
}
public function find($aParam)
{
// $this->oDog->_setHideField([
// "content"
// ]);
return $this->oDog->find($aParam);
}
}

View File

@ -1,153 +1,32 @@
<?php
//declare(strict_types=1);
namespace App\Services\Tg\Hook\Mod;
use App\Models\Order as ModelOrder;
use App\Services\DB;
use App\Services\Tg\Hook\Dog;
final class Order extends Base
{
class Order extends Base {
private function format($v)
{
$v['create_time'] = date("Y-m-d H:i:m", $v['create_time']);
$v['update_time'] = date("Y-m-d H:i:m", $v['update_time']);
$v['product_content'] = json_decode($v['product_content']);
return $v;
}
private function ValueTypeFormat($sValue)
{
list($sValue, $sValueType) = explode("#", $sValue);
if ($sValueType) {
if ($sValueType == "gb") {
$sValue = Tools::tomGbToB($sValue);
} else if ($sValueType == "date") {
$sValue = strtotime($sValue);
}
}
return $sValue;
}
public function Set($aParam)
{
$iId = $aParam['aOption'][1];
$sField = $aParam['aOption'][2];
$sValue = $aParam['aArg'][1];
$sValue = $this->ValueTypeFormat($sValue);
if (!$iId) {
return "没有id";
}
$oOrder = ModelOrder::find($iId);
if (!$oOrder) {
return "没找到";
}
$oOrder->$sField = $sValue;
$r = $oOrder->save();
return $r;
}
public function Limit($aParam)
{
$iLimit = $aParam['aArg'][1] ?? 1;
$aOrder = ModelOrder::orderBy('id', 'desc')->limit($iLimit)->get()->toArray();
foreach ($aOrder as $v) {
$aOrderSingle = $this->format($v);
$sMsg = json_encode($aOrderSingle, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
public function Find($aParam)
{
$iId = $aParam['aArg'][1];
$aOrder = ModelOrder::where("id", $iId)->first()->toArray();
$sMsg = json_encode($this->format($aOrder), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function FindByUser($aParam)
{
$iUserId = $aParam['aArg'][1];
$aOrder = ModelOrder::where("user_id", $iUserId)->get()->toArray();
if ($aOrder) {
$aOrderNew = [];
foreach ($aOrder as $k => $v) {
$aOrderNew[] = $this->format($v);
}
} else {
$aOrderNew = ["not have id" => $iUserId];
}
$sMsg = json_encode($aOrderNew, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function GroupBySaleCode($aParam)
{
// @list($sCmd, $iDay) = explode("#", $sText, 2);
if (!isset($aParam['aArg'][1])) {
$iDay = 0;
} else {
$iDay = $aParam['aArg'][1];
}
// 确保 $iDay 是一个有效的数字
if (!is_numeric($iDay) || $iDay < 0) {
throw new \Exception("无效的天数参数");
}
private $oDog;
$sStartTime = strtotime("-$iDay days");
$tmp = date("Y-m-d", $sStartTime);
$sStartTime = strtotime($tmp);
$aOrderList = ModelOrder::where('update_time', '>=', $sStartTime)
->whereIn('status', ['activated', 'pending_activation']) // 添加状态条件
->select('coupon',
\App\Services\DB::raw('count(*) as total'),
\App\Services\DB::raw('SUM(price) as total_price'))
->groupBy('coupon')
->get()
->toArray();
$sMsg = '从 '.date("Y-m-d H:i:s", $sStartTime);
foreach ($aOrderList as $row) {
$coupon = str_replace('.', '#', $row['coupon']);
if (!$coupon) {
$coupon = '无';
}
$sMsg .= "\n\n";
$sMsg .= $coupon . ' - ' . $row['total_price'] . ' / ' . $row['total'];
}
return $sMsg;
public function __construct($aUpdate)
{
$this->oDog = new Dog(new ModelOrder());
$this->oDog->_setDogName("order"); // 必须me用正常就是类名只不过后期没准改名所以就这里写死
// $this->oDog->_setPrimaryKey("code"); // 可选默认id
// $this->oDog->_setStrField(["content"]); // 可选,指定长文本字段
$this->oDog->_setOutFormat([
"create_time" => "date",
"update_time" => "date",
]);
}
public function __call($sName, $aArg)
{
return $this->oDog->$sName($aArg[0]);
}
}

View File

@ -0,0 +1,153 @@
<?php
//declare(strict_types=1);
namespace App\Services\Tg\Hook\Mod;
use App\Models\Order as ModelOrder;
use App\Services\DB;
final class Order extends Base
{
private function format($v)
{
$v['create_time'] = date("Y-m-d H:i:m", $v['create_time']);
$v['update_time'] = date("Y-m-d H:i:m", $v['update_time']);
$v['product_content'] = json_decode($v['product_content']);
return $v;
}
private function ValueTypeFormat($sValue)
{
list($sValue, $sValueType) = explode("#", $sValue);
if ($sValueType) {
if ($sValueType == "gb") {
$sValue = Tools::tomGbToB($sValue);
} else if ($sValueType == "date") {
$sValue = strtotime($sValue);
}
}
return $sValue;
}
public function Set($aParam)
{
$iId = $aParam['aOption'][1];
$sField = $aParam['aOption'][2];
$sValue = $aParam['aArg'][1];
$sValue = $this->ValueTypeFormat($sValue);
if (!$iId) {
return "没有id";
}
$oOrder = ModelOrder::find($iId);
if (!$oOrder) {
return "没找到";
}
$oOrder->$sField = $sValue;
$r = $oOrder->save();
return $r;
}
public function Limit($aParam)
{
$iLimit = $aParam['aArg'][1] ?? 1;
$aOrder = ModelOrder::orderBy('id', 'desc')->limit($iLimit)->get()->toArray();
foreach ($aOrder as $v) {
$aOrderSingle = $this->format($v);
$sMsg = json_encode($aOrderSingle, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
public function Find($aParam)
{
$iId = $aParam['aArg'][1];
$aOrder = ModelOrder::where("id", $iId)->first()->toArray();
$sMsg = json_encode($this->format($aOrder), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function FindByUser($aParam)
{
$iUserId = $aParam['aArg'][1];
$aOrder = ModelOrder::where("user_id", $iUserId)->get()->toArray();
if ($aOrder) {
$aOrderNew = [];
foreach ($aOrder as $k => $v) {
$aOrderNew[] = $this->format($v);
}
} else {
$aOrderNew = ["not have id" => $iUserId];
}
$sMsg = json_encode($aOrderNew, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function GroupBySaleCode($aParam)
{
// @list($sCmd, $iDay) = explode("#", $sText, 2);
if (!isset($aParam['aArg'][1])) {
$iDay = 0;
} else {
$iDay = $aParam['aArg'][1];
}
// 确保 $iDay 是一个有效的数字
if (!is_numeric($iDay) || $iDay < 0) {
throw new \Exception("无效的天数参数");
}
$sStartTime = strtotime("-$iDay days");
$tmp = date("Y-m-d", $sStartTime);
$sStartTime = strtotime($tmp);
$aOrderList = ModelOrder::where('update_time', '>=', $sStartTime)
->whereIn('status', ['activated', 'pending_activation']) // 添加状态条件
->select('coupon',
\App\Services\DB::raw('count(*) as total'),
\App\Services\DB::raw('SUM(price) as total_price'))
->groupBy('coupon')
->get()
->toArray();
$sMsg = '从 '.date("Y-m-d H:i:s", $sStartTime);
foreach ($aOrderList as $row) {
$coupon = str_replace('.', '#', $row['coupon']);
if (!$coupon) {
$coupon = '无';
}
$sMsg .= "\n\n";
$sMsg .= $coupon . ' - ' . $row['total_price'] . ' / ' . $row['total'];
}
return $sMsg;
}
}

View File

@ -1,209 +1,122 @@
<?php
//declare(strict_types=1);
namespace App\Services\Tg\Hook\Mod;
use App\Services\Tg\ReportUser as ServiceTgReportUser;
use App\Models\User as ModelUser;
//use App\Services\DB;
use App\Services\Tg\Hook\Dog;
use App\Services\Tg\ReportUser as ServiceTgReportUser;
use App\Utils\Tools;
use App\Services\CountUser as ServiceCountUser;
final class User extends Base
{
private function format($aUser)
{
unset($aUser['pass']);
unset($aUser['passwd']);
unset($aUser['uuid']);
unset($aUser['method']);
unset($aUser['is_admin']);
unset($aUser['theme']);
unset($aUser['ga_token']);
unset($aUser['ga_enable']);
unset($aUser['api_token']);
unset($aUser['is_dark_mode']);
unset($aUser['locale']);
$aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
$aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
$aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
$aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
$aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
$aUser['ud'] = (int)$aUser['u'] + (int)$aUser['d'];
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
return $aUser;
}
class User extends Base {
public function Limit($aParam)
{
// $sField = $aParam['aOption'][1];
$iLimit = $aParam['aArg'][1] ?? 1; // 默认五条
$sType = $aParam['aOption'][1] ?? "class0";
if ($sType == "class1") {
$sTypePre = ">";
} else if ($sType == "class0") {
$sTypePre = ">=";
}
$aUser = ModelUser::where("class", $sTypePre, 0)->orderBy("id", "desc")->limit($iLimit)->get()->toArray();
foreach ($aUser as $row) {
$sMsg = json_encode($this->format($row), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
private function ValueTypeFormat($sValue)
{
list($sValue, $sValueType) = explode("#", $sValue);
if ($sValueType) {
if ($sValueType == "gb") {
$sValue = Tools::tomGbToB($sValue);
} else if ($sValueType == "date") {
$sValue = strtotime($sValue);
}
}
return $sValue;
}
public function Set($aParam)
{
// $iId = 1778;
$iId = $aParam['aOption'][1];
$sField = $aParam['aOption'][2];
$sValue = $aParam['aArg'][1];
$sValue = $this->ValueTypeFormat($sValue);
if (!$iId) {
return "没有id";
}
$oUser = ModelUser::find($iId);
if ($oUser) {
$oUser->$sField = $sValue;
$r = $oUser->save();
} else {
$r = '没有';
}
return $r;
}
public function Find($aParam)
{
// list(, $iUserId) = explode(" ", $sText, 2);
$iUserId = $aParam['aArg'][1];
$oUser = ModelUser::find($iUserId);
if ($oUser) {
$aUser = $oUser->toArray();
$aUser = $this->format($aUser);
// unset($aUser['pass']);
// unset($aUser['passwd']);
// unset($aUser['uuid']);
// unset($aUser['method']);
// unset($aUser['is_admin']);
// unset($aUser['theme']);
// unset($aUser['ga_token']);
// unset($aUser['ga_enable']);
// unset($aUser['api_token']);
// unset($aUser['is_dark_mode']);
// unset($aUser['locale']);
//
// $aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
// $aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
// $aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
// $aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
// $aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
// $aUser['ud'] = $aUser['u'] + $aUser['d'];
// $aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
} else {
$aUser = ["not have id" => $iUserId];
}
private $oDog;
$sMsg = json_encode($aUser, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
public function __construct($aUpdate)
{
return $sMsg;
$this->oDog = new Dog(new ModelUser());
$this->oDog->_setDogName("user"); // 必须me用正常就是类名只不过后期没准改名所以就这里写死
// $this->oDog->_setPrimaryKey("code"); // 可选默认id
// $this->oDog->_setStrField(["content"]); // 可选,指定长文本字段
// $this->oDog->_setInFormat(["date"]);
$this->oDog->_setOutFormat([
"transfer_enable" => "gb",
"u" => "gb",
"d" => "gb",
]);
}
public function __call($sName, $aArg)
{
return $this->oDog->$sName($aArg[0]);
}
public function Report($aParam)
public function findFull($aParam)
{
// @list(, $sOption1, $sOption2, $sOption3) = explode("_", $sText, 4);
@$sOption1 = $aParam['aOption'][1];
@$sOption2 = $aParam['aOption'][2];
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$sMsg = (new ServiceTgReportUser())->ByDay($sOption2);
}
if ($sOption1 == 'date') {
$sMsg = (new ServiceTgReportUser())->ByDate($sOption2, $sOption3);
}
return $sMsg;
return $this->oDog->find($aParam);
}
public function delDone($aParam)
public function find($aParam)
{
$aParam["bIsDone"] = true;
$sMail = $aParam["aArg"][1] ?? false;
return $this->del($aParam);
$aSelectField = [
"id",
"email",
"money",
"total_pay",
"class",
"class_expire",
"transfer_enable",
"u",
"d",
"reg_date",
];
$this->_setSelectField($aSelectField);
return $this->oDog->find($aParam);
}
public function del($aParam)
public function moneyAdd($aParam)
{
$iId = $aParam["aArg"][1] ?? false;
$bIsDone = $aParam["bIsDone"] ?? false;
$aParam["_sUpDown"] = "up";
if (!$iId) {
return "需要id";
if ($aParam["aArg"][1] == "?") {
return "/user#moneyAdd__[key]__[where]__确认[y/n:default] [money]";
}
if ($iId == "?") {
return "/user#del {user_id}";
return $this->_moneyUpDown($aParam);
}
private function _moneyUpDown($aParam)
{
$sKey = $aParam["aOption"][1] ?? false;
$sWhere = $aParam["aOption"][2] ?? false;
$sConfirm = $aParam["aOption"][3] ?? "n";
$iMoney = $aParam["aArg"][1] ?? false;
$sUpDown = $aParam["_sUpDown"] ?? false;
if (!$sUpDown) {
return "需要upDown";
}
$oUser = ModelUser::where("id", $iId)->first();
if (!$sKey) {
return "需要key";
}
if (!$sWhere) {
return "需要where";
}
if (!$iMoney) {
return "需要money";
}
$oUser = ModelUser::select("id", "email", "money", "total_pay", "class")->where($sKey, $sWhere)->first();
if (!$oUser) {
return "没有这个用户:".$iId;
return "没有这个user";
}
if ($bIsDone === true) {
$r = $oUser->delete();
if ($sConfirm == "n") {
$sStr = "<p>给他加【".$iMoney."】的money确认加y<p>";
$sStr .= $this->toJson($oUser);
return "删除".$r."条数据";
return $sStr;
}
$sMsg = "清确认信息没问题用delDone \n\n";
if ($sConfirm == "y") {
$oUser->money += $iMoney;
$oUser->save();
return $this->toJson($oUser);
}
$sUserJson = $this->toJson($this->format($oUser->toArray()));
$sReturn = $sMsg.$sUserJson;
return $sReturn;
}
public function CountReg($aParam)
@ -241,4 +154,28 @@ final class User extends Base
return $sTop.$sTotal.$sMsg.$sFoot;
}
public function Report($aParam)
{
// @list(, $sOption1, $sOption2, $sOption3) = explode("_", $sText, 4);
@$sOption1 = $aParam['aOption'][1];
@$sOption2 = $aParam['aOption'][2];
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$sMsg = (new ServiceTgReportUser())->ByDay($sOption2);
}
if ($sOption1 == 'date') {
$sMsg = (new ServiceTgReportUser())->ByDate($sOption2, $sOption3);
}
return $sMsg;
}
}

View File

@ -0,0 +1,244 @@
<?php
//declare(strict_types=1);
namespace App\Services\Tg\Hook\Mod;
use App\Services\Tg\ReportUser as ServiceTgReportUser;
use App\Models\User as ModelUser;
//use App\Services\DB;
use App\Utils\Tools;
use App\Services\CountUser as ServiceCountUser;
final class User extends Base
{
private function format($aUser)
{
unset($aUser['pass']);
unset($aUser['passwd']);
unset($aUser['uuid']);
unset($aUser['method']);
unset($aUser['is_admin']);
unset($aUser['theme']);
unset($aUser['ga_token']);
unset($aUser['ga_enable']);
unset($aUser['api_token']);
unset($aUser['is_dark_mode']);
unset($aUser['locale']);
$aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
$aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
$aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
$aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
$aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
$aUser['ud'] = (int)$aUser['u'] + (int)$aUser['d'];
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
return $aUser;
}
public function Limit($aParam)
{
// $sField = $aParam['aOption'][1];
$iLimit = $aParam['aArg'][1] ?? 1; // 默认五条
$sType = $aParam['aOption'][1] ?? "class0";
if ($sType == "class1") {
$sTypePre = ">";
} else if ($sType == "class0") {
$sTypePre = ">=";
}
$aUser = ModelUser::where("class", $sTypePre, 0)->orderBy("id", "desc")->limit($iLimit)->get()->toArray();
foreach ($aUser as $row) {
$sMsg = json_encode($this->format($row), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
private function ValueTypeFormat($sValue)
{
list($sValue, $sValueType) = explode("#", $sValue);
if ($sValueType) {
if ($sValueType == "gb") {
$sValue = Tools::tomGbToB($sValue);
} else if ($sValueType == "date") {
$sValue = strtotime($sValue);
}
}
return $sValue;
}
public function Set($aParam)
{
// $iId = 1778;
$iId = $aParam['aOption'][1];
$sField = $aParam['aOption'][2];
$sValue = $aParam['aArg'][1];
$sValue = $this->ValueTypeFormat($sValue);
if (!$iId) {
return "没有id";
}
$oUser = ModelUser::find($iId);
if ($oUser) {
$oUser->$sField = $sValue;
$r = $oUser->save();
} else {
$r = '没有';
}
return $r;
}
public function Find($aParam)
{
// list(, $iUserId) = explode(" ", $sText, 2);
$iUserId = $aParam['aArg'][1];
$oUser = ModelUser::find($iUserId);
if ($oUser) {
$aUser = $oUser->toArray();
$aUser = $this->format($aUser);
// unset($aUser['pass']);
// unset($aUser['passwd']);
// unset($aUser['uuid']);
// unset($aUser['method']);
// unset($aUser['is_admin']);
// unset($aUser['theme']);
// unset($aUser['ga_token']);
// unset($aUser['ga_enable']);
// unset($aUser['api_token']);
// unset($aUser['is_dark_mode']);
// unset($aUser['locale']);
//
// $aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
// $aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
// $aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
// $aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
// $aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
// $aUser['ud'] = $aUser['u'] + $aUser['d'];
// $aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
} else {
$aUser = ["not have id" => $iUserId];
}
$sMsg = json_encode($aUser, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function Report($aParam)
{
// @list(, $sOption1, $sOption2, $sOption3) = explode("_", $sText, 4);
@$sOption1 = $aParam['aOption'][1];
@$sOption2 = $aParam['aOption'][2];
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$sMsg = (new ServiceTgReportUser())->ByDay($sOption2);
}
if ($sOption1 == 'date') {
$sMsg = (new ServiceTgReportUser())->ByDate($sOption2, $sOption3);
}
return $sMsg;
}
public function delDone($aParam)
{
$aParam["bIsDone"] = true;
return $this->del($aParam);
}
public function del($aParam)
{
$iId = $aParam["aArg"][1] ?? false;
$bIsDone = $aParam["bIsDone"] ?? false;
if (!$iId) {
return "需要id";
}
if ($iId == "?") {
return "/user#del {user_id}";
}
$oUser = ModelUser::where("id", $iId)->first();
if (!$oUser) {
return "没有这个用户:".$iId;
}
if ($bIsDone === true) {
$r = $oUser->delete();
return "删除".$r."条数据";
}
$sMsg = "清确认信息没问题用delDone \n\n";
$sUserJson = $this->toJson($this->format($oUser->toArray()));
$sReturn = $sMsg.$sUserJson;
return $sReturn;
}
public function CountReg($aParam)
{
@$sOption1 = $aParam['aOption'][1] ?? 'day';
@$sOption2 = $aParam['aOption'][2] ?? 0;
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$r = (new ServiceCountUser())->RegByDay($sOption2);
}
if ($sOption1 == 'date') {
$r = (new ServiceCountUser())->RegByDate($sOption2, $sOption3);
}
$sTop = "\n\n--注册统计--------------------";
$sMsg = '';
$iTotalCount = 0;
foreach ($r as $row) {
$sMsg .= "\n\n";
$sMsg .= $row['from'].":".$row['count'];
$iTotalCount += $row['count'] ?? 0;
}
$sTotal = "\n\n总数:".$iTotalCount;
$sTotal .= "\n\n---------------------------";
$sFoot = "\n\n---------------------------";
return $sTop.$sTotal.$sMsg.$sFoot;
}
}