小程序会员权益接口

This commit is contained in:
2026-04-28 17:37:39 +08:00
parent e078a2689b
commit 1f24148801
2 changed files with 73 additions and 13 deletions

View File

@@ -20,16 +20,18 @@ class MemberBenefits extends Api
protected $join_config_model = null; protected $join_config_model = null;
protected $level_model = null; protected $level_model = null;
protected $benefits_model = null;
protected $article_model = null; protected $article_model = null;
protected $benefits_model = null;
protected $benefits_project_model = null;
public function _initialize() public function _initialize()
{ {
parent::_initialize(); parent::_initialize();
$this->join_config_model = new \app\api\model\wdsxh\member\JoinConfig(); $this->join_config_model = new \app\api\model\wdsxh\member\JoinConfig();
$this->level_model = new \app\api\model\wdsxh\member\Level(); $this->level_model = new \app\api\model\wdsxh\member\Level();
$this->benefits_model = new \app\api\model\wdsxh\member\MemberBenefits();
$this->article_model = new \app\api\model\wdsxh\article\Article(); $this->article_model = new \app\api\model\wdsxh\article\Article();
$this->benefits_model = new \app\api\model\wdsxh\member\MemberBenefits();
$this->benefits_project_model = new \app\api\model\wdsxh\member\MemberBenefitsProject();
} }
/** /**
@@ -63,36 +65,60 @@ class MemberBenefits extends Api
// 查询该入会类型下的所有会员级别(按权重升序) // 查询该入会类型下的所有会员级别(按权重升序)
$levels = $this->level_model $levels = $this->level_model
->field(['id', 'join_config_id', 'name', 'image', 'fees', 'content']) ->field(['id', 'join_config_id', 'benefits_project', 'name', 'image', 'fees', 'content'])
->where('join_config_id', $join_config_id) ->where('join_config_id', $join_config_id)
->where('status', 'normal') ->where('status', 'normal')
->order('weigh', 'asc') ->order('weigh', 'asc')
->select(); ->select();
// 查询该入会类型下的所有会员权益(按排序值升序,排除禁用的) // 查询该入会类型下的所有会员权益(按排序值升序,排除禁用的)
$levels_id = array_column($levels, 'id');
$all_benefits = $this->benefits_model $all_benefits = $this->benefits_model
->field(['id', 'join_config_id', 'level_id', 'title', 'image', 'desc']) ->field(['id', 'join_config_id', 'level_id', 'title', 'image', 'desc'])
->where('join_config_id', $join_config_id) ->where('join_config_id', $join_config_id)
->where('level_id', 'in', $levels_id)
->where('disabled', 0)
->order('sort', 'asc')
->select();
$benefis_maps = [];
foreach ($all_benefits as $key => $val) {
$benefis_maps['b_' . $val['level_id']][] = $val;
}
// 查询该入会类型下的所有会员权益项目(按排序值升序,排除禁用的)
$all_benefits_project = $this->benefits_project_model
->field(['id', 'join_config_id', 'name'])
->where('join_config_id', $join_config_id)
->where('disabled', 0) ->where('disabled', 0)
->order('sort', 'asc') ->order('sort', 'asc')
->select(); ->select();
$levels = collection($levels)->toArray();
// 为每个级别构建完整的权益列表(含 has 标记) // 为每个级别构建完整的权益列表(含 has 标记)
$result_levels = []; $result_levels = [];
foreach ($levels as $level) { foreach ($levels as $level) {
$benefits_with_flag = []; if (!isset($level['benefits'])) {
foreach ($all_benefits as $key => $val) { $level['benefits'] = [];
$benefits_with_flag[] = [ }
'id' => $val['id'], if (!empty($benefis_maps['b_' . $level['id']])) {
'join_config_id' => $val['join_config_id'], $level['benefits'][] = $benefis_maps['b_' . $level['id']];
'title' => $val['title'], }
'image' => $val['image'],
'desc' => $val['desc'], $owned_ids = json_decode($level['benefits_project'], true) ?: [];
'has' => $level['id'] == $val['level_id'], $owned_ids = array_map('intval', $owned_ids);
unset($level['benefits_project']);
if (!isset($level['all_benefits_projects'])) {
$level['all_benefits_projects'] = [];
}
foreach ($all_benefits_project as $v) {
$level['all_benefits_projects'][] = [
'id' => $v['id'],
'join_config_id' => $v['join_config_id'],
'name' => $v['name'],
'has' => !empty($owned_ids) && in_array($val['id'], $owned_ids, true),
]; ];
} }
$level['benefits'] = $benefits_with_flag;
$result_levels[] = $level; $result_levels[] = $level;
} }

View File

@@ -0,0 +1,34 @@
<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展
// +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +----------------------------------------------------------------------
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
// +----------------------------------------------------------------------
/**
* Class MemberBenefits
* Desc 会员权益项目模型
* Create on 2024/3/8 9:56
* Create by wangyafang
*/
namespace app\api\model\wdsxh\member;
use app\api\model\wdsxh\Base;
class MemberBenefitsProject extends Base
{
// 表名
protected $name = 'wdsxh_member_benefits_project';
// 自动写入时间戳字段
protected $autoWriteTimestamp = false;
// 定义时间戳字段名
protected $createTime = false;
protected $updateTime = false;
}