diff --git a/application/api/controller/wdsxh/member/MemberBenefits.php b/application/api/controller/wdsxh/member/MemberBenefits.php index b0c50ec..0104f09 100644 --- a/application/api/controller/wdsxh/member/MemberBenefits.php +++ b/application/api/controller/wdsxh/member/MemberBenefits.php @@ -63,7 +63,7 @@ class MemberBenefits extends Api // 查询该入会类型下的所有会员级别(按权重升序) $levels = $this->level_model - ->field(['id', 'join_config_id', 'benefits_id', 'name', 'image', 'fees', 'content']) + ->field(['id', 'join_config_id', 'name', 'image', 'fees', 'content']) ->where('join_config_id', $join_config_id) ->where('status', 'normal') ->order('weigh', 'asc') @@ -71,7 +71,7 @@ class MemberBenefits extends Api // 查询该入会类型下的所有会员权益(按排序值升序,排除禁用的) $all_benefits = $this->benefits_model - ->field(['id', 'join_config_id', 'title', 'image', 'desc']) + ->field(['id', 'join_config_id', 'level_id', 'title', 'image', 'desc']) ->where('join_config_id', $join_config_id) ->where('disabled', 0) ->order('sort', 'asc') @@ -80,9 +80,6 @@ class MemberBenefits extends Api // 为每个级别构建完整的权益列表(含 has 标记) $result_levels = []; foreach ($levels as $level) { - $owned_ids = json_decode($level['benefits_id'], true) ?: []; - $owned_ids = array_map('intval', $owned_ids); - $benefits_with_flag = []; foreach ($all_benefits as $key => $val) { $benefits_with_flag[] = [ @@ -91,7 +88,7 @@ class MemberBenefits extends Api 'title' => $val['title'], 'image' => $val['image'], 'desc' => $val['desc'], - 'has' => !empty($owned_ids) && in_array($val['id'], $owned_ids, true), + 'has' => $level['id'] == $val['level_id'], ]; }