public function recharge($param)
{
if (empty($param['userId']) || empty($param['money']) || empty($param['type']) || empty($param['img']) || empty($param['paypassword'])) {
new Exception("参数错误");
}
$user = \app\admin\model\User::where(['id' => $param['userId']])->find();
if (!$user || ($user['paypassword'] != $param['paypassword'])) {
new Exception("支付密码错误", 0);
}
$orderSn = getordersn('CZ');
Db::startTrans();
try {
$rechargeModel = new Recharge();
$userId = $param['userId']; // 或者其他用户标识
$cacheKey = "submit_limit:" . $userId;
$lastSubmitTime = cache($cacheKey);
if ($lastSubmitTime && (time() - $lastSubmitTime < 5)) { // 5秒内限制
// 返回错误,防止重复提交
new Exception("请稍后再试", 0);
} else {
// 处理请求
$rechargeModel->save([
'orderNo' => $orderSn,
'user_id' => $param['userId'],
'payid' => $param['payid'],
'type' => $param['type'],
'money' => $param['money'],
'status' => 2,
'payPic' => $param['img'],
'remark' => $param['remark'] ?? '',
]);
Db::commit();
cache($cacheKey, time(), 10); // 设置缓存,10秒有效
}
new Exception("充值提交成功", 1, ['order_id' => $orderSn]);
} catch (\think\Exception $e) {
Db::rollback();
new Exception($e->getMessage());
}
}
发表评论 取消回复