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){