修改用户等级配置

This commit is contained in:
邹景立 2022-04-30 17:14:46 +08:00
parent b765e011a2
commit 57fa2645dc
5 changed files with 28 additions and 19 deletions

View File

@ -27,20 +27,6 @@ class Upgrade extends Controller
BaseUserUpgrade::mQuery()->order('number asc')->layTable(); BaseUserUpgrade::mQuery()->order('number asc')->layTable();
} }
/**
* 数据列表处理
* @param array $data
*/
protected function _page_filter(array &$data)
{
foreach ($data as &$vo) {
$vo['rebate_rule'] = str2arr($vo['rebate_rule']);
foreach ($vo['rebate_rule'] as &$v) {
$v = RebateService::instance()->name($v);
}
}
}
/** /**
* 添加用户等级 * 添加用户等级
* @auth true * @auth true
@ -70,10 +56,8 @@ class Upgrade extends Controller
if ($this->request->isGet()) { if ($this->request->isGet()) {
$this->prizes = RebateService::PRIZES; $this->prizes = RebateService::PRIZES;
$vo['number'] = $vo['number'] ?? BaseUserUpgrade::maxNumber(); $vo['number'] = $vo['number'] ?? BaseUserUpgrade::maxNumber();
$vo['rebate_rule'] = str2arr($vo['rebate_rule'] ?? '');
} else { } else {
$vo['utime'] = time(); $vo['utime'] = time();
$vo['rebate_rule'] = arr2str($vo['rebate_rule'] ?? []);
// 用户升级条件开关 // 用户升级条件开关
$vo['goods_vip_status'] = isset($vo['goods_vip_status']) ? 1 : 0; $vo['goods_vip_status'] = isset($vo['goods_vip_status']) ? 1 : 0;
$vo['teams_users_status'] = isset($vo['teams_users_status']) ? 1 : 0; $vo['teams_users_status'] = isset($vo['teams_users_status']) ? 1 : 0;

View File

@ -2,6 +2,7 @@
namespace app\data\model; namespace app\data\model;
use app\data\service\RebateService;
use think\admin\Model; use think\admin\Model;
/** /**
@ -34,6 +35,30 @@ class BaseUserUpgrade extends Model
return static::mk()->max('number', 0) + 1; return static::mk()->max('number', 0) + 1;
} }
/**
* 规格化奖励配置
* @param mixed $value
* @return array
*/
public function getRebateRuleAttr($value): array
{
[$data, $rules] = [[], array_column(RebateService::PRIZES, 'code')];
foreach (is_string($value) ? str2arr($value, ',', $rules) : [] as $rule) {
$data[$rule] = RebateService::name($rule);
}
return $data;
}
/**
* 格式化奖励配置
* @param mixed $value
* @return string
*/
public function setRebateRuleAttr($value): string
{
return is_array($value) ? arr2str($value) : $value;
}
/** /**
* 格式化创建时间 * 格式化创建时间
* @param string $value * @param string $value

View File

@ -417,7 +417,7 @@ class RebateService extends Service
* @param string $prize * @param string $prize
* @return string * @return string
*/ */
public function name(string $prize): string public static function name(string $prize): string
{ {
return self::PRIZES[$prize]['name'] ?? $prize; return self::PRIZES[$prize]['name'] ?? $prize;
} }

View File

@ -146,7 +146,7 @@
<fieldset class="layui-form-item"> <fieldset class="layui-form-item">
<legend><span class="layui-badge layui-bg-cyan">奖利规则</span></legend> <legend><span class="layui-badge layui-bg-cyan">奖利规则</span></legend>
<div class="notselect relative"> <div class="notselect relative">
{foreach $prizes as $prize}{if isset($vo.rebate_rule) && is_array($vo.rebate_rule) && in_array($prize.code, $vo.rebate_rule)} {foreach $prizes as $prize}{if isset($vo.rebate_rule) && is_array($vo.rebate_rule) && isset($vo.rebate_rule[$prize.code])}
<label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}" checked> {$prize.name}</label> <label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}" checked> {$prize.name}</label>
{else} {else}
<label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}"> {$prize.name}</label> <label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}"> {$prize.name}</label>

View File

@ -72,7 +72,7 @@
}, },
{ {
field: 'rebate_rule', title: '奖利规则', align: 'center', minWidth: 100, templet: function (d) { field: 'rebate_rule', title: '奖利规则', align: 'center', minWidth: 100, templet: function (d) {
return (d.html = ''), (d.rebate_rule || []).forEach(function (rule) { return (d.html = ''), layui.each(d.rebate_rule || {}, function (k, rule) {
d.html += laytpl('<span class="layui-badge layui-bg-gray">{{d.v}}</span>').render({v: rule}); d.html += laytpl('<span class="layui-badge layui-bg-gray">{{d.v}}</span>').render({v: rule});
}), d.html || '-'; }), d.html || '-';
} }