no message
This commit is contained in:
parent
3e8e0f2c2b
commit
4a770ff17f
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
48
src/Services/Tg/Hook/Mod/Invoice.php
Normal file
48
src/Services/Tg/Hook/Mod/Invoice.php
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
153
src/Services/Tg/Hook/Mod/OrderOld.php
Normal file
153
src/Services/Tg/Hook/Mod/OrderOld.php
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
244
src/Services/Tg/Hook/Mod/UserOld.php
Normal file
244
src/Services/Tg/Hook/Mod/UserOld.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user