zhangdehua 1 gadu atpakaļ
vecāks
revīzija
26bd342391

+ 14 - 2
app/index/controller/Cart.php

@@ -48,10 +48,19 @@ class Cart extends Controller
         $cartTotal = (new CartModel)->getCartTotal();
         $user = $this->getCurrentLoginUser();
         $cartMoney = '0.00';
-        foreach ($list as $item) {
+        foreach ($list as &$item) {
             $temp = bcmul(strval($item['goods_num']), $item['goods']['goods_price_min'], 2);
             $cartMoney = bcadd($cartMoney, $temp, 2);
+            $goodsNum = $item['goods_num'];
+            $flavors = json_decode($item['remark_for_one'], true);
+            $flavorsAll = $flavors;
+            array_walk($flavorsAll, function (&$item, $key) use ($goodsNum) {
+                $item = bcmul(strval($item), strval($goodsNum), 0);
+            });
+            $item['flavors_arr'] = $flavorsAll;
         }
+//        pre($list->toArray());
+//        die;
 
         $payPoints = intval(bcmul($cartMoney, '100', 0));//订单所需积分
         $payByPoints = false;
@@ -140,7 +149,10 @@ class Cart extends Controller
      */
     public function add(int $goodsId, string $goodsSkuId, int $goodsNum): Json
     {
+        //pre($this->request->param());
         $key = $this->request->param('key', '');
+        //每一包的口味配比
+        $flavors = $this->request->param('flavors', []);
         $userId = Session::get('user_id');
         if (empty($userId)) {
             Session::set('returnuri', '/index/index/productDetails.html?goodsId=' . $goodsId . '&key=' . $key, 300);
@@ -151,7 +163,7 @@ class Cart extends Controller
         }
 
         $model = new CartModel;
-        if (!$model->add($goodsId, $goodsSkuId, $goodsNum)) {
+        if (!$model->add($goodsId, $goodsSkuId, $goodsNum, $flavors)) {
             return $this->renderError($model->getError() ?: 'Added to shopping cart failed');
         }
         // 购物车商品总数量

+ 3 - 0
app/index/controller/Index.php

@@ -147,6 +147,9 @@ class Index extends Controller
         $model = new CommentModel;
         $total = $model->rowsTotal($goodsId);
 
+        //$flavors = ['STRAWBERRY-MANGO','BLUE RAZZ-ICE','WATERMELON','GRAPE','KIWI-PASSION-FRUIT-GUAVA','JUICY-PEACH','BLUEBERRY-ICE'];
+
+
         return view('productDetails', ['goods' => $goods, 'comment_total' => $total, 'key' => $key]);
     }
 

+ 11 - 0
app/index/controller/User.php

@@ -69,6 +69,17 @@ class User extends Controller
             return redirect('/index/passport/login.html');
         }
         $model = OrderModel::getUserOrderDetail($orderId);
+        foreach ($model['goods'] as &$goods){
+            $goodsNum = $goods['total_num'];
+            $flavorsAll = json_decode($goods['remark_for_one'], true);
+
+            array_walk($flavorsAll, function (&$item, $key) use ($goodsNum) {
+                $item = bcmul(strval($item), strval($goodsNum), 0);
+            });
+
+            $goods['remark_for_one'] = json_encode($flavorsAll);
+        }
+
         $orderAddress = OrderAddress::get(['order_id' => $orderId]);
 
         if (!empty($model['express_no'])) {

+ 8 - 1
app/index/model/Cart.php

@@ -31,13 +31,14 @@ class Cart extends CartModel
      * @param int $goodsId 商品ID
      * @param string $goodsSkuId 商品sku唯一标识
      * @param int $goodsNum 商品数量
+     * @param array $flavors 一套装的口味
      * @return bool
      * @throws BaseException
      * @throws \think\db\exception\DataNotFoundException
      * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
      */
-    public function add(int $goodsId, string $goodsSkuId, int $goodsNum)
+    public function add(int $goodsId, string $goodsSkuId, int $goodsNum,array $flavors = [])
     {
         // 判断是否已存在购物车记录
         $detail = $this->getInfo($goodsId, $goodsSkuId, false);
@@ -54,10 +55,16 @@ class Cart extends CartModel
             'goods_sku_id' => $goodsSkuId,
             'goods_num' => $goodsNum,
             'user_id' => $userId,
+            'remark_for_one' => json_encode($flavors),
             'store_id' => self::$storeId,
         ]);
     }
 
+    private function goodsNum($flavorNum,$goodsNum)
+    {
+        return $flavorNum * $goodsNum;
+    }
+
     /**
      * 更新购物车记录
      * @param int $goodsId 商品ID

+ 2 - 0
app/index/service/Cart.php

@@ -96,6 +96,8 @@ class Cart extends BaseService
             $goods['goods_price'] = $goods['skuInfo']['goods_price'];
             // 商品购买数量
             $goods['total_num'] = $item['goods_num'];
+            //每一套的口味备注
+            $goods['remark_for_one'] = $item['remark_for_one'];
             // 商品SKU索引
             $goods['goods_sku_id'] = $item['goods_sku_id'];
             // 商品购买总金额

+ 3 - 1
app/index/service/order/Checkout.php

@@ -827,7 +827,9 @@ class Checkout extends BaseService
                 'points_bonus' => $goods['points_bonus'],
                 'total_num' => $goods['total_num'],
                 'total_price' => $goods['total_price'],
-                'total_pay_price' => $goods['total_pay_price']
+                'total_pay_price' => $goods['total_pay_price'],
+                'remark_for_one' => $goods['remark_for_one']
+
             ];
             // 记录订单商品来源id
             $item['goods_source_id'] = isset($goods['goods_source_id']) ? $goods['goods_source_id'] : 0;

+ 18 - 4
app/index/view/index/productDetails.html

@@ -146,9 +146,21 @@
         var goodsSkuId = {$goods['skuList'][0]['goods_sku_id']};
         var key = "{$key}";
         const VAPES_SHARE_KEY = "vapes_share_key"
-        if (key != ""){
+        if (key != "") {
             localStorage.setItem(VAPES_SHARE_KEY, key);
         }
+
+        var flavors = {
+            'STRAWBERRY-MANGO': 0,
+            'BLUE-RAZZ-ICE': 0,
+            'WATERMELON': 0,
+            'GRAPE': 0,
+            'KIWI-PASSION-FRUIT-GUAVA': 0,
+            'JUICY-PEACH': 0,
+            'BLUEBERRY-ICE': 0
+        };
+        flavors["STRAWBERRY-MANGO"] = 2;
+
         console.log(key);
 
         //富文本处理
@@ -159,9 +171,10 @@
         /**
          * 添加购物车
          * @param number 数量
+         * @param flavors 口味
          * @returns
          */
-        function addCart(number) {
+        function addCart(number, flavors) {
             if (!number || number <= 0) {
                 showToast("Please enter the quantity of products")
                 return
@@ -173,6 +186,7 @@
                 goodsId: goodsId,
                 goodsSkuId: goodsSkuId,
                 goodsNum: number,
+                flavors: flavors,
                 key: localKey
             }
             $.ajax({
@@ -245,13 +259,13 @@
         //上面的添加按钮
         $(".addToCart").on(tap, function () {
             const number = $('#numberInput').val();
-            addCart(number)
+            addCart(number, flavors)
         });
 
         //悬浮模块的添加按钮
         $(".fPrAddToCart").on(tap, function () {
             const number = $('#fPrNumberInput').val();
-            addCart(number)
+            addCart(number, flavors)
         });
         initRichText()
 

+ 1 - 1
app/index/view/user/orderDetails.html

@@ -117,7 +117,7 @@
                                      alt="">
                             </div>
                             <div class="ogTitleBox">
-                                <p class="ogTitle">{$goods['goods_name']}</p>
+                                <p class="ogTitle">{$goods['goods_name']}({$goods['remark_for_one']})</p>
                                 <p class="ogSpecs"></p>
                             </div>
                             <p class="ogPr">${$goods['goods_price']}x{$goods['total_num']}</p>

BIN
public/assets/index/asstes/flavors/BLUE-RAZZ-ICE.jpg


BIN
public/assets/index/asstes/flavors/BLUEBERRY-ICE.jpg


BIN
public/assets/index/asstes/flavors/GRAPE.jpg


BIN
public/assets/index/asstes/flavors/JUICY-PEACH.jpg


BIN
public/assets/index/asstes/flavors/KIWI-PASSIONFRUIT-GUAVA.jpg


BIN
public/assets/index/asstes/flavors/STRAWBERRY-MANGO.jpg


BIN
public/assets/index/asstes/flavors/WATERMELON.jpg