新增:购买自动钓鱼卡后自动开启钓鱼模式
This commit is contained in:
@@ -125,6 +125,11 @@ class ShopController extends Controller
|
|||||||
'total_price' => $result['total_price'] ?? $item->price,
|
'total_price' => $result['total_price'] ?? $item->price,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// 购买自动钓鱼卡后返回剩余分钟数,前端用于自动开启钓鱼
|
||||||
|
if ($item->type === 'auto_fishing') {
|
||||||
|
$response['auto_fishing_minutes_left'] = $this->shopService->getActiveAutoFishingMinutesLeft($user);
|
||||||
|
}
|
||||||
|
|
||||||
// ── 装扮购买:向前端透传槽位与样式信息,用于即时更新装扮状态 ──
|
// ── 装扮购买:向前端透传槽位与样式信息,用于即时更新装扮状态 ──
|
||||||
if (! empty($result['slot'])) {
|
if (! empty($result['slot'])) {
|
||||||
$response['slot'] = $result['slot'];
|
$response['slot'] = $result['slot'];
|
||||||
|
|||||||
@@ -556,7 +556,7 @@ async function confirmAndBuyItem(item) {
|
|||||||
const confirmed = await confirmShopPurchase(confirmMessage);
|
const confirmed = await confirmShopPurchase(confirmMessage);
|
||||||
|
|
||||||
if (confirmed) {
|
if (confirmed) {
|
||||||
buyItem(item.id, item.name, item.price, "all", "", quantity);
|
buyItem(item.id, item.name, item.price, "all", "", quantity, item.type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -645,7 +645,7 @@ export function confirmGift() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
closeGiftDialog();
|
closeGiftDialog();
|
||||||
buyItem(item.id, item.name, item.price, recipient, message);
|
buyItem(item.id, item.name, item.price, recipient, message, 1, item.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -659,7 +659,7 @@ export function confirmGift() {
|
|||||||
* @param {number} quantity 购买数量
|
* @param {number} quantity 购买数量
|
||||||
* @returns {Promise<void>}
|
* @returns {Promise<void>}
|
||||||
*/
|
*/
|
||||||
export async function buyItem(itemId, name, price, recipient, message, quantity = 1) {
|
export async function buyItem(itemId, name, price, recipient, message, quantity = 1, itemType = '') {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(getShopUrls().buy, {
|
const response = await fetch(getShopUrls().buy, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -675,7 +675,7 @@ export async function buyItem(itemId, name, price, recipient, message, quantity
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
if (data.status === "success") {
|
if (data.status === "success") {
|
||||||
handleBuySuccess(data, name);
|
handleBuySuccess(data, name, itemType);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -692,7 +692,7 @@ export async function buyItem(itemId, name, price, recipient, message, quantity
|
|||||||
* @param {string} itemName 商品名称
|
* @param {string} itemName 商品名称
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
function handleBuySuccess(data, itemName) {
|
function handleBuySuccess(data, itemName, itemType = '') {
|
||||||
const balance = document.getElementById("shop-jjb");
|
const balance = document.getElementById("shop-jjb");
|
||||||
|
|
||||||
if (data.jjb !== undefined && balance) {
|
if (data.jjb !== undefined && balance) {
|
||||||
@@ -717,8 +717,15 @@ function handleBuySuccess(data, itemName) {
|
|||||||
shopLoaded = false;
|
shopLoaded = false;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
fetchShopData();
|
fetchShopData();
|
||||||
shopLoaded = true;
|
}, 300);
|
||||||
}, 1000);
|
|
||||||
|
// 自动钓鱼卡购买后立即开启自动钓鱼
|
||||||
|
if (itemType === "auto_fishing" && typeof window.checkAndAutoStartFishing === "function") {
|
||||||
|
if (!window.chatContext) window.chatContext = {};
|
||||||
|
window.chatContext.autoFishingMinutesLeft = Number(data.auto_fishing_minutes_left || 1);
|
||||||
|
window.chatContext.fishingCooldownSeconds = 0;
|
||||||
|
setTimeout(() => window.checkAndAutoStartFishing(), 500);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user