fix: point exp

This commit is contained in:
zzc
2026-02-25 11:02:27 +08:00
parent a6e9c1c9ce
commit 32457aa947
2 changed files with 41 additions and 28 deletions

View File

@@ -332,11 +332,24 @@ const downloadWallpaper = async (item) => {
}
uni.showLoading({ title: "下载中..." });
await saveRemoteImageToLocal(item.imageUrl);
await saveRecordRequest("", item.id, "wallpaper_download", item.imageUrl);
try {
// Parallelize save record and download
// Wait for saveRecordRequest to ensure backend deducts points
await Promise.all([
saveRecordRequest("", item.id, "wallpaper_download", item.imageUrl),
saveRemoteImageToLocal(item.imageUrl),
]);
await userStore.fetchUserAssets();
uni.showToast({ title: "保存成功 消耗 20 积分", icon: "success" });
// Refresh user assets to show updated points
await userStore.fetchUserAssets();
uni.hideLoading();
uni.showToast({ title: "保存成功 消耗 20 积分", icon: "success" });
} catch (e) {
uni.hideLoading();
console.error("Download failed", e);
uni.showToast({ title: "下载失败", icon: "none" });
}
};
const shareWallpaper = (item) => {};

View File

@@ -70,30 +70,30 @@ export const saveViewRequest = async (shareToken, scene, targetId = "") => {
};
export const saveRemoteImageToLocal = (imageUrl) => {
uni.downloadFile({
url: imageUrl,
success: (res) => {
if (res.statusCode === 200) {
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: () => {
uni.hideLoading();
uni.showToast({ title: "已保存到相册" });
},
fail: () => {
uni.hideLoading();
uni.showToast({ title: "保存失败", icon: "none" });
},
});
} else {
uni.hideLoading();
uni.showToast({ title: "下载失败", icon: "none" });
}
},
fail: () => {
uni.hideLoading();
uni.showToast({ title: "下载失败", icon: "none" });
},
return new Promise((resolve, reject) => {
uni.downloadFile({
url: imageUrl,
success: (res) => {
if (res.statusCode === 200) {
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: () => {
resolve(true);
},
fail: (err) => {
reject(err);
},
});
} else {
reject(
new Error("Download failed with status code: " + res.statusCode),
);
}
},
fail: (err) => {
reject(err);
},
});
});
};