修正 Telegram 控制器與帳戶服務相關邏輯
This commit is contained in:
+13
-6
@@ -29,20 +29,27 @@ public static function comm_1($msg){
|
||||
public static function comm_2($msg){
|
||||
$res = self::parseLedgerMessage($msg['message_text']); //
|
||||
if ($res) {
|
||||
$TgGroupUsers=TgGroupUsers::GetUsername($res['usernamer']);
|
||||
$TgGroupUsers=TgGroupUsers::GetUsername($res['username']); //获取用户资料
|
||||
if ($TgGroupUsers) {
|
||||
$res=array_merge($res, ['user_id' => $TgGroupUsers->user_id,'chat_id'=>$msg['message_chat_id'],'token'=>$msg['token']]); //加入用户和群组ID
|
||||
$Ledger=Ledger::AddIncome($res); //写入收支记录
|
||||
$CheckUser=UserAccount::CheckUserId($res); //检查该user_id是否有账户资料,有的话处理余额,没有的话添加相关账户资料
|
||||
if ($CheckUser){
|
||||
$balance=Ledger::UpdateUser($res); //更新账号余额
|
||||
$data=array_merge($res,['comm' => 2,'balance' => $balance,'token' => $msg['token'],'chat_id'=>$msg['chat_id']]); //
|
||||
$balance=UserAccount::UpdateUser($res); //更新账号余额
|
||||
$data=array_merge($res,['comm' => 2,'balance' => $balance,'token' => $msg['token']]); //添加资料到数组
|
||||
$Msg=TgMsg::MakeMsg($data); //构成发送数据
|
||||
return $Msg;
|
||||
// dd($Msg);
|
||||
$res=UserFun::CurlPost($Msg['url'],$Msg['text']); //发送Tg消息
|
||||
dd($res);
|
||||
return $res;
|
||||
} else {
|
||||
$balance=UserAccount::CreatUser($res); //新建用户账号,并写入充值金额
|
||||
$res=array_merge($res,['balance' => $balance]);
|
||||
//发送Tg通知
|
||||
$Msg=TgMsg::MakeMsg($res); //构成发送数据
|
||||
dd($Msg);
|
||||
$res=CurlPost($Msg);
|
||||
return $res;
|
||||
}
|
||||
} else {
|
||||
return $res['usernamer'].'-该用户不存在';
|
||||
@@ -56,11 +63,11 @@ public static function comm_2($msg){
|
||||
private static function parseLedgerMessage(string $text): ?array
|
||||
{
|
||||
if (preg_match('/@(\w+)\s*([+-])\s*(\d+(?:\.\d+)?)/', $text, $matches)) {
|
||||
$usernamer = $matches[1];
|
||||
$username = $matches[1];
|
||||
$type = $matches[2] === '+' ? '0' : '1';
|
||||
$amount = (float) str_replace(',', '', $matches[3]);
|
||||
|
||||
return compact('usernamer', 'type', 'amount');
|
||||
return compact('username', 'type', 'amount');
|
||||
}
|
||||
|
||||
return null; // 格式不符
|
||||
|
||||
Reference in New Issue
Block a user