fix: 总会员/体验会员抢单池前端校验与会员状态同步
- dashou-profile 增强 userHasHuiyuan,支持总会员子类型与 ID 等价比较 - 会员支付成功后从 dashouxinxi 刷新完整 clumber,不再只写总会员 ID - order-pool 对齐 accept-order:服务端 clumber、hasRequiredMember、抢单校验 - fighter 我的页下拉刷新正确同步管事/组长角色状态
This commit is contained in:
@@ -399,6 +399,7 @@ Page(createPage({
|
||||
this.loadMyZhidingOrders(),
|
||||
]);
|
||||
this.checkRoleStatuses();
|
||||
this.syncConfiguredAssets();
|
||||
const dashouOk = results[0].status === 'fulfilled';
|
||||
if (showToast) {
|
||||
wx.showToast({
|
||||
@@ -491,16 +492,22 @@ Page(createPage({
|
||||
throw new Error('打手信息获取失败');
|
||||
},
|
||||
|
||||
_applyRoleStatusFromApi(field, active) {
|
||||
const val = active ? 1 : 0;
|
||||
wx.setStorageSync(field, val);
|
||||
getApp().globalData[field] = val;
|
||||
return val;
|
||||
},
|
||||
|
||||
async _fetchGuanshiInfoSilent() {
|
||||
const res = await request({ url: '/yonghu/guanshixinxi', method: 'POST' });
|
||||
if (res && this._isApiSuccess(res.data)) {
|
||||
const data = this._extractUserData(res.data);
|
||||
// guanshixinxi 成功即表示已是管事;接口不返回 guanshistatus,不能依赖本地旧缓存
|
||||
if (data.guanshistatus !== undefined) {
|
||||
wx.setStorageSync('guanshistatus', data.guanshistatus);
|
||||
getApp().globalData.guanshistatus = data.guanshistatus;
|
||||
}
|
||||
if (!isRoleStatusActive(data.guanshistatus ?? wx.getStorageSync('guanshistatus'))) {
|
||||
return;
|
||||
this._applyRoleStatusFromApi('guanshistatus', isRoleStatusActive(data.guanshistatus));
|
||||
} else {
|
||||
this._applyRoleStatusFromApi('guanshistatus', true);
|
||||
}
|
||||
const app = getApp();
|
||||
if (!app.globalData.guanshi) app.globalData.guanshi = {};
|
||||
@@ -519,18 +526,19 @@ Page(createPage({
|
||||
this._updateTotalAssets();
|
||||
return;
|
||||
}
|
||||
this._applyRoleStatusFromApi('guanshistatus', false);
|
||||
this.setData({ isGuanshi: false });
|
||||
},
|
||||
|
||||
async _fetchZuzhangInfoSilent() {
|
||||
const res = await request({ url: '/yonghu/zuzhangxinxi', method: 'POST' });
|
||||
if (res && res.data.code === 200) {
|
||||
const data = res.data.data || {};
|
||||
// zuzhangxinxi 成功即表示已是组长;后台新增组长后本地缓存可能仍为 0
|
||||
if (data.zuzhangstatus !== undefined) {
|
||||
wx.setStorageSync('zuzhangstatus', data.zuzhangstatus);
|
||||
getApp().globalData.zuzhangstatus = data.zuzhangstatus;
|
||||
}
|
||||
if (!isRoleStatusActive(data.zuzhangstatus ?? wx.getStorageSync('zuzhangstatus'))) {
|
||||
return;
|
||||
this._applyRoleStatusFromApi('zuzhangstatus', isRoleStatusActive(data.zuzhangstatus));
|
||||
} else {
|
||||
this._applyRoleStatusFromApi('zuzhangstatus', true);
|
||||
}
|
||||
this.setData({
|
||||
isZuzhang: true,
|
||||
@@ -541,6 +549,8 @@ Page(createPage({
|
||||
this._updateTotalAssets();
|
||||
return;
|
||||
}
|
||||
this._applyRoleStatusFromApi('zuzhangstatus', false);
|
||||
this.setData({ isZuzhang: false });
|
||||
},
|
||||
|
||||
async _fetchKaoheguanInfoSilent() {
|
||||
|
||||
Reference in New Issue
Block a user