瀏覽代碼

修改用户等级配置

邹景立 3 年之前
父節點
當前提交
57fa2645dc

+ 0 - 16
app/data/controller/base/Upgrade.php

@@ -28,20 +28,6 @@ class Upgrade extends Controller
     }
 
     /**
-     * 数据列表处理
-     * @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;

+ 25 - 0
app/data/model/BaseUserUpgrade.php

@@ -2,6 +2,7 @@
 
 namespace app\data\model;
 
+use app\data\service\RebateService;
 use think\admin\Model;
 
 /**
@@ -35,6 +36,30 @@ class BaseUserUpgrade extends Model
     }
 
     /**
+     * 规格化奖励配置
+     * @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
      * @return string

+ 1 - 1
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;
     }

+ 1 - 1
app/data/view/base/upgrade/form.html

@@ -146,7 +146,7 @@
         <fieldset class="layui-form-item">
             <legend><span class="layui-badge layui-bg-cyan">奖利规则</span></legend>
             <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>
                 {else}
                 <label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}"> {$prize.name}</label>

+ 1 - 1
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('<span class="layui-badge layui-bg-gray">{{d.v}}</span>').render({v: rule});
                         }), d.html || '-';
                     }