仰望星辰工作室

Merge branch 'main' of https://github.com/1181469655/MNBT

Y yang1145 提交于 2026-09-30 20:55 · d878119 ·父提交 411b745
Merge branch 'main' of https://github.com/1181469655/MNBT
5 个文件变更 +55 -67 13172193298@163.com
•MPHX/bt_api.php +43 -0
•admin/api/zj.php +3 -20
•api/api.php +3 -5
•app_plugins/hosting_shop/lib/hosting.php +3 -21
•app_plugins/resource_pool/lib/pool.php +3 -21
变更内容
diff --cc api/api.php
index 12548c4,cb06be5..0f0b210
--- a/api/api.php
+++ b/api/api.php
@@@ -127,26 -114,17 +127,24 @@@ if($gn=='cfif')
                  api_json_exit(100, '错误!网站创建成功但到期时间设置失败!');
              }
          }
-         $r_datn = $api->sjlist('ftps');
-         $r_datp = $api->sjlist('databases');
-         $aedfs = '0'; $sqlfs = '0';
-         foreach(($r_datn['data'] ?? []) as $val){ if($val['name']===$user){ $aedfs=$val['id']; break; } }
-         foreach(($r_datp['data'] ?? []) as $val){ if($val['name']===$user){ $sqlfs=$val['id']; break; } }
+         // 按账号精确获取 FTP/数据库 ID(原为全表拉取,主机数多时会显著变慢)
+         $aedfs = $api->sjid('ftps', $user);
+         $sqlfs = $api->sjid('databases', $user);
          // 写入主机记录:max(id)+1 在并发下可能重复导致插入失败,失败时重新取号重试几次
 +        $insert_sql = "INSERT INTO `MN_zj` (`id`, `ssbt`, `user`, `pass`, `sqluser`, `sqlpass`, `data`, `datae`, `qk`, `btid`, `sqldz`, `ftpid`, `ymbds`, `hxa`, `hxb`, `hxc`, `hxd`, `llmax`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
 +        $insert_args = [$bh, $user, $pass, $user, $pass, $date, $datae, 'true', $zdide, $btserw, $aedfs, $ymbds, $webdx, $sqldx, '2', $sqlfs, $flowratemax];
          $insert_ok = false;
 -        for($tryi = 0; $tryi < 3; $tryi++){
 -            $rowe=$DB->get_row_prepare("SELECT id FROM MN_zj WHERE 1 order by id desc limit 1");
 -            $id=($rowe['id'] ?? 0)+1;
 -            if($DB->query_prepare("INSERT INTO `MN_zj` (`id`, `ssbt`, `user`, `pass`, `sqluser`, `sqlpass`, `data`, `datae`, `qk`, `btid`, `sqldz`, `ftpid`, `ymbds`, `hxa`, `hxb`, `hxc`, `hxd`, `llmax`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", [$id, $bh, $user, $pass, $user, $pass, $date, $datae, 'true', $zdide, $btserw, $aedfs, $ymbds, $webdx, $sqldx, '2', $sqlfs, $flowratemax])){
 -                $insert_ok = true;
 -                break;
 +        if(mnbt_api_compat_mode()){
 +            // 1.81 兼容:沿用建站前取的号单次插入,保证站点名与 id 序列一致
 +            $insert_ok = (bool)$DB->query_prepare($insert_sql, array_merge([$id], $insert_args));
 +        }else{
 +            for($tryi = 0; $tryi < 3; $tryi++){
 +                $rowe=$DB->get_row_prepare("SELECT id FROM MN_zj WHERE 1 order by id desc limit 1");
 +                $id=($rowe['id'] ?? 0)+1;
 +                if($DB->query_prepare($insert_sql, array_merge([$id], $insert_args))){
 +                    $insert_ok = true;
 +                    break;
 +                }
              }
          }
          if($insert_ok){