diff --git a/app/data/controller/base/Upgrade.php b/app/data/controller/base/Upgrade.php index 8c4de2b37..0879ecd58 100644 --- a/app/data/controller/base/Upgrade.php +++ b/app/data/controller/base/Upgrade.php @@ -27,20 +27,6 @@ class Upgrade extends Controller 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 @@ -70,10 +56,8 @@ class Upgrade extends Controller if ($this->request->isGet()) { $this->prizes = RebateService::PRIZES; $vo['number'] = $vo['number'] ?? BaseUserUpgrade::maxNumber(); - $vo['rebate_rule'] = str2arr($vo['rebate_rule'] ?? ''); } else { $vo['utime'] = time(); - $vo['rebate_rule'] = arr2str($vo['rebate_rule'] ?? []); // 用户升级条件开关 $vo['goods_vip_status'] = isset($vo['goods_vip_status']) ? 1 : 0; $vo['teams_users_status'] = isset($vo['teams_users_status']) ? 1 : 0; diff --git a/app/data/model/BaseUserUpgrade.php b/app/data/model/BaseUserUpgrade.php index b139bb03c..2cdb0d5e5 100644 --- a/app/data/model/BaseUserUpgrade.php +++ b/app/data/model/BaseUserUpgrade.php @@ -2,6 +2,7 @@ namespace app\data\model; +use app\data\service\RebateService; use think\admin\Model; /** @@ -34,6 +35,30 @@ class BaseUserUpgrade extends Model 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 diff --git a/app/data/service/RebateService.php b/app/data/service/RebateService.php index 582b873a6..b7befd9a6 100644 --- a/app/data/service/RebateService.php +++ b/app/data/service/RebateService.php @@ -417,7 +417,7 @@ class RebateService extends Service * @param string $prize * @return string */ - public function name(string $prize): string + public static function name(string $prize): string { return self::PRIZES[$prize]['name'] ?? $prize; } diff --git a/app/data/view/base/upgrade/form.html b/app/data/view/base/upgrade/form.html index 27282d88f..04af488b7 100644 --- a/app/data/view/base/upgrade/form.html +++ b/app/data/view/base/upgrade/form.html @@ -146,7 +146,7 @@
奖利规则
- {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])} {else} diff --git a/app/data/view/base/upgrade/index.html b/app/data/view/base/upgrade/index.html index fbabc1371..886e7c091 100644 --- a/app/data/view/base/upgrade/index.html +++ b/app/data/view/base/upgrade/index.html @@ -72,7 +72,7 @@ }, { 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('{{d.v}}').render({v: rule}); }), d.html || '-'; }