会员权益项目

This commit is contained in:
2026-04-28 16:42:56 +08:00
parent bdc0ff2399
commit e078a2689b
9 changed files with 132 additions and 24 deletions

View File

@@ -35,15 +35,15 @@ class Level extends Backend
protected $model = null;
protected $modelValidate = true;
protected $pay_method = null;
protected $benefit_model = null;
protected $join_config_model = null;
protected $benefits_project_model = null;
public function _initialize()
{
parent::_initialize();
$this->model = new \app\admin\model\wdsxh\member\Level;
$this->benefit_model = new \app\admin\model\wdsxh\member\MemberBenefits;
$this->join_config_model = new \app\admin\model\wdsxh\member\JoinConfig;
$this->benefits_project_model = new \app\admin\model\wdsxh\member\MemberBenefitsProject();
$this->view->assign("statusList", $this->model->getStatusList());
$pay_method = (new FeesConfig())->where('id',1)->value('pay_method');
$this->pay_method = $pay_method;
@@ -116,8 +116,8 @@ class Level extends Backend
public function benefits()
{
$join_config_id = $this->request->get('join_config_id');
$benefits = $this->benefit_model->getSimpleByStatus(0, $join_config_id);
if (empty($benefits)) {
$benefits_project = $this->benefits_project_model->getSimpleByStatus(0, $join_config_id);
if (empty($benefits_project)) {
return json([
'code' => 1,
'msg' => __('No benefits found'),
@@ -127,7 +127,7 @@ class Level extends Backend
return json([
'code' => 0,
'msg' => 'success',
'data' => $benefits,
'data' => $benefits_project,
]);
}
@@ -140,8 +140,8 @@ class Level extends Backend
public function add()
{
if (false === $this->request->isPost()) {
$benefits = $this->benefit_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits);
$benefits_project = $this->benefits_project_model->getSimpleByStatus(0);
$this->view->assign('benefits_project', $benefits_project);
$join_config = $this->join_config_model->getSimpleByStatus();
$this->view->assign('join_config', $join_config);
@@ -200,8 +200,8 @@ class Level extends Backend
$this->error(__('You have no permission'));
}
if (false === $this->request->isPost()) {
$benefits = $this->benefit_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits);
$benefits_project = $this->benefits_project_model->getSimpleByStatus(0);
$this->view->assign('benefits_project', $benefits_project);
$join_config = $this->join_config_model->getSimpleByStatus();
$this->view->assign('join_config', $join_config);

View File

@@ -0,0 +1,35 @@
<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展
// +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +----------------------------------------------------------------------
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
// +----------------------------------------------------------------------
namespace app\admin\controller\wdsxh\member;
use app\common\controller\Backend;
/**
* 会员列表
*
* @icon fa fa-circle-o
*/
class Rights extends Backend
{
protected $join_config_model = null;
public function _initialize()
{
parent::_initialize();
$this->model = new \app\admin\model\wdsxh\member\MemberBenefitsProject();
$this->view->assign("statusList", $this->model->getDisabledList());
$this->join_config_model = new \app\admin\model\wdsxh\member\JoinConfig();
$this->view->assign('join_config', $this->join_config_model->getSimpleByStatus());
$this->searchFields = ['title'];
}
}

View File

@@ -32,6 +32,11 @@ class Level extends Model
protected $updateTime = 'updatetime';
protected $deleteTime = false;
protected $type = [
'benefits_project' => 'json',
];
// 追加属性
protected $append = [
'status_text'

View File

@@ -0,0 +1,68 @@
<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展
// +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +----------------------------------------------------------------------
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
// +----------------------------------------------------------------------
namespace app\admin\model\wdsxh\member;
use think\Model;
class MemberBenefitsProject extends Model
{
// 表名
protected $name = 'wdsxh_member_benefits_project';
// 自动写入时间戳字段
protected $autoWriteTimestamp = false;
// 定义时间戳字段名
protected $createTime = 'created_at';
protected $updateTime = 'updated_at';
protected $deleteTime = false;
// 追加属性
protected $append = [
'disabled_text'
];
protected static function init()
{
self::afterInsert(function ($row) {
$pk = $row->getPk();
$row->getQuery()->where($pk, $row[$pk])->update(['sort' => $row[$pk]]);
});
}
public function getDisabledList()
{
return ['0' => __('Member Benefits Project Enabled'), '1' => __('Member Benefits Project Disabled')];
}
public function getDisabledTextAttr($value, $data)
{
$value = $value ? $value : (isset($data['disabled']) ? $data['disabled'] : '');
$list = $this->getDisabledList();
return isset($list[$value]) ? $list[$value] : '';
}
public function getSimpleByStatus($disabled = 0, $join_config_id = null)
{
return Self::field(['id', 'name'])->where(function($query) use ($disabled, $join_config_id) {
if (null !== $disabled) {
$query->where('disabled', '=', $disabled);
}
if (null !== $join_config_id) {
$query->where('join_config_id', '=', $join_config_id);
}
})->order('sort', 'asc')->select();
}
}

View File

@@ -22,17 +22,17 @@
</select>
</div>
</div>
<!--会员权益-->
<!--<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益:</label>
<!--会员权益项目-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益项目:</label>
<div class="col-xs-12 col-sm-8">
<select id="input-benefits" name="row[benefits_id][]" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益">
{foreach $benefits as $benefit}
<option value="{$benefit.id}">{$benefit.title}</option>
<select id="input-benefits" name="row[benefits_project][]" class="selectpicker form-control" multiple title="请选择权益项目" placeholder="请选择权益项目">
{foreach $benefits_project as $project}
<option value="{$project.id}">{$project.name}</option>
{/foreach}
</select>
</div>
</div>-->
</div>
<!--会员轮播背景图-->
<div class="form-group">

View File

@@ -22,17 +22,17 @@
</select>
</div>
</div>
<!--会员权益-->
<!--<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益:</label>
<!--会员权益项目-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益项目:</label>
<div class="col-xs-12 col-sm-8">
<select id="input-benefits" name="row[benefits_id][]" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益">
{foreach $benefits as $benefit}
<option value="{$benefit.id}" >{$benefit.title}</option>
<select id="input-benefits" name="row[benefits_project][]" class="selectpicker form-control" multiple title="请选择权益项目" placeholder="请选择权益项目">
{foreach $benefits_project as $project}
<option value="{$project.id}" {if in_array($project.id, $row.benefits_project)}selected{/if}>{$project.name}</option>
{/foreach}
</select>
</div>
</div>-->
</div>
<!--会员轮播背景图-->
<div class="form-group">