From 04102f7237efefa744090ed7c25f7b5d0807b679 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 18:11:57 +0800
Subject: [PATCH] 完成运营中心提现和运营中心权限管理

---
 admin/app/common/model/product/Product.php |   62 ++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/admin/app/common/model/product/Product.php b/admin/app/common/model/product/Product.php
index 40f00f3..009985d 100644
--- a/admin/app/common/model/product/Product.php
+++ b/admin/app/common/model/product/Product.php
@@ -39,13 +39,35 @@
     {
         return json_encode($data);
     }
-    
+
     /**
      * 修改器:预告开启购买时间
      */
     public function setPreviewTimeAttr($value)
     {
         return $value ? strtotime($value) : 0;
+    }
+
+    /**
+     * 优惠券数组转换
+     * @param $value
+     * @param $data
+     * @return string
+     */
+    public function setOpenCouponsAttr($value)
+    {
+        return $value ? json_encode($value) : '';
+    }
+
+    /**
+     * 数组转换
+     * @param $value
+     * @param $data
+     * @return string
+     */
+    public function getOpenCouponsAttr($value)
+    {
+        return $value ? json_decode($value, 1) : [];
     }
 
     /**
@@ -126,7 +148,7 @@
     public function supplier()
     {
         return $this->belongsTo('app\\common\\model\\supplier\\Supplier', 'shop_supplier_id', 'shop_supplier_id')
-            ->field(['shop_supplier_id', 'name', 'address', 'logo_id']);
+            ->field(['shop_supplier_id', 'name', 'address', 'logo_id','supplier_type','gift_type']);
     }
 
     /**
@@ -136,6 +158,7 @@
     {
         return $this->hasOne('app\\common\\model\\file\\UploadFile', 'file_id', 'video_id');
     }
+
     /**
      * 关联视频封面
      */
@@ -188,8 +211,8 @@
             'audit_status' => -1,    //审核状态
             'is_virtual' => -1,    //商品类型
             'is_good' => -1,    //商品类型
+            'is_gift_pack' => -1,    //是否是升级礼包
         ], $param);
-
         // 筛选条件
         $filter = [];
         $model = $this;
@@ -204,6 +227,9 @@
         }
         if (!empty($params['product_name'])) {
             $model = $model->where('product_name', 'like', '%' . trim($params['product_name']) . '%');
+        }
+        if ($params['is_gift_pack']>-1) {
+            $model = $model->where('is_gift_pack',  $params['is_gift_pack']);
         }
         if (!empty($params['search'])) {
             $model = $model->where('product_name', 'like', '%' . trim($params['search']) . '%');
@@ -224,7 +250,7 @@
 
         // 是否有城市ids by yj
         if (!empty($params['city_supplier_ids'])) {
-            $city_supplier_ids = explode(",",$params['city_supplier_ids']);
+            $city_supplier_ids = explode(",", $params['city_supplier_ids']);
             $model = $model->where('product.shop_supplier_id', 'IN', $city_supplier_ids);
         }
         // 排序规则
@@ -241,14 +267,14 @@
         if (isset($params['type'])) {
             $model = $this->buildProductType($model, $params['type']);
         }
-        if(isset($params['shop_supplier_id'])&&$params['shop_supplier_id']){
+        if (isset($params['shop_supplier_id']) && $params['shop_supplier_id']) {
             $model = $model->where('product.shop_supplier_id', '=', $params['shop_supplier_id']);
         }
-        if(isset($params['shop_supplier_ids'])&&$params['shop_supplier_ids']){
+        if (isset($params['shop_supplier_ids']) && $params['shop_supplier_ids']) {
             $model = $model->where('product.shop_supplier_id', 'in', $params['shop_supplier_ids']);
         }
-        if(isset($params['product_id'])&&$params['product_id']){
-            $model = $model->whereNotIn('product_id',$params['product_id']);
+        if (isset($params['product_id']) && $params['product_id']) {
+            $model = $model->whereNotIn('product_id', $params['product_id']);
         }
         // 多规格商品 最高价与最低价
         $ProductSku = new ProductSku;
@@ -264,7 +290,7 @@
                 "$maxPriceSql AS product_max_price"
             ])
             ->with(['category', 'image.file', 'sku', 'supplier', 'spec_rel.spec'])
-            ->join('supplier supplier', 'product.shop_supplier_id = supplier.shop_supplier_id','left')
+            ->join('supplier supplier', 'product.shop_supplier_id = supplier.shop_supplier_id', 'left')
             ->where('product.is_delete', '=', 0)
             ->where('supplier.is_delete', '=', 0)
             ->where('supplier.status', '=', 0)
@@ -364,23 +390,23 @@
             // 商品默认规格
             $product['product_sku'] = self::getShowSku($product);
             // 等级id转换成数组
-            if(!is_array ($product['grade_ids'])){
-                if($product['grade_ids'] != ''){
+            if (!is_array($product['grade_ids'])) {
+                if ($product['grade_ids'] != '') {
                     $product['grade_ids'] = explode(',', $product['grade_ids']);
                 } else {
                     $product['grade_ids'] = [];
                 }
             }
             // 可核销门店ids by yj
-            if(!is_array($product['verify_store_ids'])){
-                if($product['verify_store_ids'] != ''){
+            if (!is_array($product['verify_store_ids'])) {
+                if ($product['verify_store_ids'] != '') {
                     $product['verify_store_ids'] = explode(',', $product['verify_store_ids']);
                 } else {
                     $product['verify_store_ids'] = [];
                 }
             }
             // 核销有效时间段
-            if($product['verify_type'] == 20){
+            if ($product['verify_type'] == 20) {
                 $product['verify_time'] = [date('Y-m-d H:i:s', $product['verify_start_time']), date('Y-m-d H:i:s', $product['verify_end_time'])];
             }
             // 商品多分类 by lyzflash
@@ -594,12 +620,12 @@
     public static function getShowSku($product)
     {
         //如果是单规格
-        if($product['spec_type'] == 10){
+        if ($product['spec_type'] == 10) {
             return $product['sku'][0];
-        }else{
+        } else {
             //多规格返回最低价
-            foreach ($product['sku'] as $sku){
-                if($product['product_price'] == $sku['product_price']){
+            foreach ($product['sku'] as $sku) {
+                if ($product['product_price'] == $sku['product_price']) {
                     return $sku;
                 }
             }

--
Gitblit v1.9.2