fix: 抢单池优先使用后端 hasRequiredMember 与 clumber

同步 /dingdan/ddhq 返回的会员权限与 clumber,兼容 huiyuanid/huiyuan_id 双字段。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-08 14:00:19 +08:00
parent 26bf717867
commit 267de7c780

View File

@@ -306,6 +306,11 @@ Page({
if (res.data.code === 200 || res.data.code === 0) {
const newList = res.data.data.list || [];
const hasMore = res.data.data.has_more || false;
const serverClumber = res.data.data.clumber;
if (Array.isArray(serverClumber) && serverClumber.length) {
app.globalData.clumber = serverClumber;
this.setData({ huiyuanList: serverClumber });
}
// 🆕 处理每条订单,增加 hasRequiredMember 字段
const processedList = newList.map(item => this.processDingdanItem(item));
@@ -357,10 +362,16 @@ Page({
}
const zhidingNicheng = item.zhiding_nicheng || '';
// 🆕 判断用户是否有订单所需的会员(仅当订单要求会员类型且存在huiyuan_id
// 🆕 判断用户是否有订单所需的会员(优先后端 hasRequiredMember
let hasRequiredMember = true;
if (item.yaoqiuleixing == 1 && item.huiyuan_id) {
const userHasIt = this.data.huiyuanList.some(h => h.huiyuanid == item.huiyuan_id);
if (item.hasRequiredMember !== undefined) {
hasRequiredMember = !!item.hasRequiredMember;
} else if (item.has_required_member !== undefined) {
hasRequiredMember = !!item.has_required_member;
} else if (item.yaoqiuleixing == 1 && item.huiyuan_id) {
const userHasIt = this.data.huiyuanList.some(h =>
(h.huiyuanid == item.huiyuan_id) || (h.huiyuan_id == item.huiyuan_id)
);
hasRequiredMember = userHasIt;
}
@@ -442,7 +453,9 @@ Page({
}
// 校验5: 会员要求
if (dingdanItem.yaoqiuleixing == 1) {
const hasHuiyuan = this.data.huiyuanList.some(h => h.huiyuanid == dingdanItem.huiyuan_id);
const hasHuiyuan = this.data.huiyuanList.some(h =>
(h.huiyuanid == dingdanItem.huiyuan_id) || (h.huiyuan_id == dingdanItem.huiyuan_id)
);
if (!hasHuiyuan) {
wx.showToast({
title: '未开通对应会员,无法抢单',