فهرست منبع

商品规格绩效规则编辑

whitefang 1 سال پیش
والد
کامیت
e8ebd40617
3فایلهای تغییر یافته به همراه28 افزوده شده و 2 حذف شده
  1. 6 1
      app/adminapi/lists/goods/GoodsLists.php
  2. 15 1
      app/adminapi/logic/goods/GoodsLogic.php
  3. 7 0
      app/common/model/goods/Goods.php

+ 6 - 1
app/adminapi/lists/goods/GoodsLists.php

@@ -20,6 +20,7 @@ use app\common\model\goods\Goods;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\goods_category\GoodsCategory;
 use app\common\service\FileService;
+use think\db\Query;
 
 
 /**
@@ -76,7 +77,11 @@ class GoodsLists extends BaseAdminDataLists implements ListsSearchInterface
      */
     public function lists(): array
     {
-        $lists = Goods::with('goodsCategory')
+        $lists = Goods::with(['goodsCategory'=>function (Query $query) {
+            $query->field('name');
+        },'performanceRules'=>function (Query $query) {
+            $query->field('type,rate');
+        }])
             ->where($this->searchWhere)
             ->where($this->queryWhere())
             ->order(['id' => 'desc'])

+ 15 - 1
app/adminapi/logic/goods/GoodsLogic.php

@@ -18,6 +18,7 @@ namespace app\adminapi\logic\goods;
 use app\common\model\goods\Goods;
 use app\common\logic\BaseLogic;
 use app\common\model\goods_category\GoodsCategory;
+use app\common\model\performance\PerformanceRules;
 use think\facade\Db;
 
 
@@ -124,6 +125,19 @@ class GoodsLogic extends BaseLogic
                 'hot_weight' => $params['hot_weight'] ?:0,
             ]);
 
+            //更新绩效规则
+            $rule = PerformanceRules::where(['goods_id'=>$params['id']])->findOrEmpty();
+            if(!$rule->isEmpty()){
+                $rule->type = $params['type'];
+                $rule->rate = $params['rate'];
+            }else{
+                $rule = new PerformanceRules();
+                $rule->goods_id = $params['id'];
+                $rule->type = $params['type'];
+                $rule->rate = $params['rate'];
+            }
+            $rule->save();
+
             Db::commit();
             return true;
         } catch (\Exception $e) {
@@ -154,6 +168,6 @@ class GoodsLogic extends BaseLogic
      */
     public static function detail($params): array
     {
-        return Goods::findOrEmpty($params['id'])->toArray();
+        return Goods::with('performanceRules')->findOrEmpty($params['id'])->toArray();
     }
 }

+ 7 - 0
app/common/model/goods/Goods.php

@@ -17,6 +17,7 @@ namespace app\common\model\goods;
 
 use app\common\model\BaseModel;
 use app\common\model\goods_category\GoodsCategory;
+use app\common\model\performance\PerformanceRules;
 
 
 /**
@@ -40,4 +41,10 @@ class Goods extends BaseModel
         return $this->hasOne(GoodsCategory::class, 'id', 'goods_category_id')
             ->field('id,name,picture');
     }
+
+    public function performanceRules()
+    {
+        return $this->hasOne(PerformanceRules::class, 'goods_id', 'id')
+            ->field('goods_id,type,rate');
+    }
 }