From af396c6b16bb9f036138bb3b6525a4bb33ddcd90 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Tue, 25 Jun 2024 10:18:33 +0800
Subject: [PATCH] =?UTF-8?q?feat(CartList):=20=E6=B7=BB=E5=8A=A0=E6=BB=A1?=
 =?UTF-8?q?=E5=87=8F=E6=B4=BB=E5=8A=A8=E9=80=BB=E8=BE=91=E5=92=8C=E4=BC=9A?=
 =?UTF-8?q?=E5=91=98=E4=BB=B7=E6=A0=BC=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../logic/store_product/StoreProductLogic.php |  3 ++
 app/api/lists/order/CartList.php              | 43 +++++++++++++------
 2 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php
index b2784d03c..8cdfb894c 100644
--- a/app/admin/logic/store_product/StoreProductLogic.php
+++ b/app/admin/logic/store_product/StoreProductLogic.php
@@ -39,6 +39,7 @@ class StoreProductLogic extends BaseLogic
             $data = [
                 'store_name' => $params['store_name'],
                 'image' => $params['image'],
+                'store_info' => $params['store_info'] ?? '',
                 'bar_code' => $params['bar_code'] ?? '',
                 'cate_id' => $params['cate_id'],
                 'unit' => $params['unit'],
@@ -140,6 +141,7 @@ class StoreProductLogic extends BaseLogic
                 'store_name' => $params['store_name'],
                 'image' => $params['image'],
                 'bar_code' => $params['bar_code'] ?? '',
+                'store_info' => $params['store_info'] ?? '',
                 'cate_id' => $params['cate_id'],
                 'unit' => $params['unit'],
                 'stock' => $params['stock'],
@@ -181,6 +183,7 @@ class StoreProductLogic extends BaseLogic
                 'cost' => $params['cost'],'unit'=>$params['unit'],
                 'batch'=>$params['batch'],'store_name'=>$params['store_name'],
                 'manufacturer_information' => $params['manufacturer_information']??'',
+                'store_info' => $params['store_info']??'',
             ]);
 
             Db::commit();
diff --git a/app/api/lists/order/CartList.php b/app/api/lists/order/CartList.php
index 652c9eedf..43765c46b 100644
--- a/app/api/lists/order/CartList.php
+++ b/app/api/lists/order/CartList.php
@@ -7,6 +7,7 @@ use app\admin\lists\BaseAdminDataLists;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\order\Cart;
 use app\common\lists\ListsExtendInterface;
+use app\common\model\Config;
 use app\common\model\dict\DictType;
 use app\common\model\store_branch_product\StoreBranchProduct;
 use app\common\model\store_product_attr_value\StoreProductAttrValue;
@@ -23,6 +24,7 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
 
     protected $total_price = 0;
     protected $activity_price = 0;
+    protected $off_activity = 0;
 
 
     /**
@@ -60,27 +62,33 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
                 return $item;
             })
             ->toArray();
-        // $check = DictType::where('type', 'activities')->find();
+        $off_activity = Config::where('name', 'off_activity')->value('value');
+        $this->off_activity=$off_activity;
         $user = User::where('id', $userId)->find();
         foreach ($list as $key => &$item) {
 
-            $find = StoreBranchProduct::where(['product_id' => $item['product_id'],'store_id' => $item['store_id']])
+            $find = StoreBranchProduct::where(['product_id' => $item['product_id'], 'store_id' => $item['store_id']])
                 ->field('product_id,image,price,cost,store_name,unit,delete_time,vip_price')
                 ->withTrashed()
                 ->find();
 
             if ($find) {
-                if ($user && $user['user_ship'] == 1) {
-                    //更新 会员为1的时候原价减去会员价
-                    $deduction_price_count=bcmul(bcsub($find['price'], $find['vip_price'], 2),$item['cart_num'],2);
-                    $this->activity_price = bcadd($this->activity_price, $deduction_price_count, 2);
-                }elseif ($user && $user['user_ship'] == 4) {
-                    //更新  为4商户的时候减去商户价格
-                    $deduction_price_count=bcmul(bcsub($find['price'], $find['cost'], 2),$item['cart_num'],2);
-                    $this->activity_price = bcadd( $this->activity_price, $deduction_price_count, 2);
+                if($off_activity==1){
+                    $this->activity_price = bcadd(bcmul($item['cost'],$item['cart_num'], 2), $this->activity_price, 2);
                 }else{
-                    $this->activity_price =0;
+                    if ($user && $user['user_ship'] == 1) {
+                        //更新 会员为1的时候原价减去会员价
+                        $deduction_price_count = bcmul(bcsub($find['price'], $find['vip_price'], 2), $item['cart_num'], 2);
+                        $this->activity_price = bcadd($this->activity_price, $deduction_price_count, 2);
+                    } elseif ($user && $user['user_ship'] == 4) {
+                        //更新  为4商户的时候减去商户价格
+                        $deduction_price_count = bcmul(bcsub($find['price'], $find['cost'], 2), $item['cart_num'], 2);
+                        $this->activity_price = bcadd($this->activity_price, $deduction_price_count, 2);
+                    } else {
+                        $this->activity_price = 0;
+                    }
                 }
+
                 $item['goods_total_price'] = bcmul($item['cart_num'], $find['price'], 2);
                 $this->total_price = bcadd($this->total_price, $item['goods_total_price'], 2);
                 $item['imgs'] = $find['image'];
@@ -111,10 +119,19 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
 
     public function extend()
     {
-        return [
+        $data= [
+            'off_activity' => $this->off_activity,
             'total_price' => $this->total_price,
             'activity_price' => $this->activity_price,
-            'pay_price'=> bcsub($this->total_price, $this->activity_price, 2)
+            'msg' => '',
+            'pay_price' => bcsub($this->total_price, $this->activity_price, 2)
         ];
+        if($this->off_activity==1){
+            $data['pay_price']=$this->activity_price;
+            if($this->activity_price<500){
+                $data['msg']='还差'.bcsub(500,$this->activity_price,2).'元可参与满减活动';
+            }
+        }
+        return $data;
     }
 }