会员权益项目

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

View File

@@ -35,15 +35,15 @@ class Level extends Backend
protected $model = null; protected $model = null;
protected $modelValidate = true; protected $modelValidate = true;
protected $pay_method = null; protected $pay_method = null;
protected $benefit_model = null;
protected $join_config_model = null; protected $join_config_model = null;
protected $benefits_project_model = null;
public function _initialize() public function _initialize()
{ {
parent::_initialize(); parent::_initialize();
$this->model = new \app\admin\model\wdsxh\member\Level; $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->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()); $this->view->assign("statusList", $this->model->getStatusList());
$pay_method = (new FeesConfig())->where('id',1)->value('pay_method'); $pay_method = (new FeesConfig())->where('id',1)->value('pay_method');
$this->pay_method = $pay_method; $this->pay_method = $pay_method;
@@ -115,9 +115,9 @@ class Level extends Backend
*/ */
public function benefits() public function benefits()
{ {
$join_config_id = $this->request->get('join_config_id'); $join_config_id = $this->request->get('join_config_id');
$benefits = $this->benefit_model->getSimpleByStatus(0, $join_config_id); $benefits_project = $this->benefits_project_model->getSimpleByStatus(0, $join_config_id);
if (empty($benefits)) { if (empty($benefits_project)) {
return json([ return json([
'code' => 1, 'code' => 1,
'msg' => __('No benefits found'), 'msg' => __('No benefits found'),
@@ -127,7 +127,7 @@ class Level extends Backend
return json([ return json([
'code' => 0, 'code' => 0,
'msg' => 'success', 'msg' => 'success',
'data' => $benefits, 'data' => $benefits_project,
]); ]);
} }
@@ -140,8 +140,8 @@ class Level extends Backend
public function add() public function add()
{ {
if (false === $this->request->isPost()) { if (false === $this->request->isPost()) {
$benefits = $this->benefit_model->getSimpleByStatus(0); $benefits_project = $this->benefits_project_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits); $this->view->assign('benefits_project', $benefits_project);
$join_config = $this->join_config_model->getSimpleByStatus(); $join_config = $this->join_config_model->getSimpleByStatus();
$this->view->assign('join_config', $join_config); $this->view->assign('join_config', $join_config);
@@ -200,8 +200,8 @@ class Level extends Backend
$this->error(__('You have no permission')); $this->error(__('You have no permission'));
} }
if (false === $this->request->isPost()) { if (false === $this->request->isPost()) {
$benefits = $this->benefit_model->getSimpleByStatus(0); $benefits_project = $this->benefits_project_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits); $this->view->assign('benefits_project', $benefits_project);
$join_config = $this->join_config_model->getSimpleByStatus(); $join_config = $this->join_config_model->getSimpleByStatus();
$this->view->assign('join_config', $join_config); $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 $updateTime = 'updatetime';
protected $deleteTime = false; protected $deleteTime = false;
protected $type = [
'benefits_project' => 'json',
];
// 追加属性 // 追加属性
protected $append = [ protected $append = [
'status_text' '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> </select>
</div> </div>
</div> </div>
<!--会员权益--> <!--会员权益项目-->
<!--<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益:</label> <label class="control-label col-xs-12 col-sm-2">会员权益项目:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<select id="input-benefits" name="row[benefits_id][]" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益"> <select id="input-benefits" name="row[benefits_project][]" class="selectpicker form-control" multiple title="请选择权益项目" placeholder="请选择权益项目">
{foreach $benefits as $benefit} {foreach $benefits_project as $project}
<option value="{$benefit.id}">{$benefit.title}</option> <option value="{$project.id}">{$project.name}</option>
{/foreach} {/foreach}
</select> </select>
</div> </div>
</div>--> </div>
<!--会员轮播背景图--> <!--会员轮播背景图-->
<div class="form-group"> <div class="form-group">

View File

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