Kirin 3 tahun lalu
induk
melakukan
ec4eea72e3

+ 1 - 0
app/admin/controller/store/StoreProduct.php

@@ -286,6 +286,7 @@ class StoreProduct extends AuthController
             ['is_hot', 0],
             ['is_benefit', 0],
             ['is_suit', 0],
+            ['is_award', 0],
             ['is_best', 0],
             ['is_new', 0],
             ['mer_use', 0],

+ 15 - 1
app/admin/view/store/store_product/create.php

@@ -762,6 +762,19 @@
 <!--                                            </div>-->
 <!--                                        </div>-->
 <!--                                    </div>-->
+                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
+                                        <div class="grid-demo grid-demo-bg1">
+                                            <div class="layui-form-item">
+                                                <label class="layui-form-label">参与极差</label>
+                                                <div class="layui-input-block">
+                                                    <input type="radio" name="is_award" lay-filter="is_award" value="1" title="开启"
+                                                           :checked="formData.is_award == 1 ? true : false">
+                                                    <input type="radio" name="is_award" lay-filter="is_award" value="0" title="关闭"
+                                                           :checked="formData.is_award == 0 ? true : false">
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
@@ -935,6 +948,7 @@
                 sort: 0,
                 is_show: 1,
                 is_hot: 0,
+                is_award: 0,
                 is_benefit: 0,
                 is_best: 0,
                 is_new: 0,
@@ -978,7 +992,7 @@
             activity:{'秒杀':'#1E9FFF','砍价':'#189688','拼团':'#FEB900'},
             attr: [],//临时属性
             newRule: false,//是否添加新规则
-            radioRule: ['is_sub','is_show', 'is_hot', 'is_benefit', 'is_new','is_good','is_suit' ,'is_best', 'spec_type'],//radio 当选规则
+            radioRule: ['is_sub','is_show','is_award', 'is_hot', 'is_benefit', 'is_new','is_good','is_suit' ,'is_best', 'spec_type'],//radio 当选规则
             rule: { //多图选择规则
                 slider_image: {
                     maxLength: 5

+ 2 - 1
app/models/store/StoreCart.php

@@ -80,7 +80,8 @@ class StoreCart extends BaseModel
             $add_time = time();
             $id = self::getkeytoid('cart_id');
             $is_suit = (!$combination_id && !$seckill_id && !$bargain_id && StoreProduct::where('id', $product_id)->value('is_suit')) ? 1 : 0;
-            $rs = self::create(compact('uid', 'product_id', 'cart_num', 'product_attr_unique', 'is_new', 'type', 'combination_id', 'add_time', 'bargain_id', 'seckill_id', 'id', 'is_consumer', 'is_suit'));
+            $is_award = (!$combination_id && !$seckill_id && !$bargain_id && StoreProduct::where('id', $product_id)->value('is_award')) ? 1 : 0;
+            $rs = self::create(compact('uid', 'is_award', 'product_id', 'cart_num', 'product_attr_unique', 'is_new', 'type', 'combination_id', 'add_time', 'bargain_id', 'seckill_id', 'id', 'is_consumer', 'is_suit'));
             @file_put_contents("cart.txt", self::getlastsql(), 8);
             return $rs;
         }

+ 6 - 2
app/models/store/StoreOrder.php

@@ -2494,6 +2494,7 @@ class StoreOrder extends BaseModel
         $cartInfo = StoreOrderCartInfo::whereIn('cart_id', $order['cart_id'])->column('cart_info');
         $suit = 0;
         $suit_price = 0;
+        $extra_price = 0;
         foreach ($cartInfo as $value) {
             $product = json_decode($value, true);
             if (isset($product['productInfo'])) {
@@ -2502,6 +2503,9 @@ class StoreOrder extends BaseModel
                     $suit += $product['cart_num'] ?? 0;
                     $suit_price += ($productInfo['attrInfo']['price'] ?? $product['price']) * $product['cart_num'];
                 }
+                if (!$product['is_award']) {
+                    $extra_price += ($productInfo['attrInfo']['price'] ?? $product['price']) * $product['cart_num'];
+                }
             }
         }
         $res = true;
@@ -2588,8 +2592,8 @@ class StoreOrder extends BaseModel
 //                }
             }
             if ($group_level) {
-                $brokeragePrice = bcmul(bcdiv($group_level['group_award'], 100, 4), bcsub($order['pay_price'], $suit_price, 2), 2);
-                if ($order['use_integral'] > 0) $brokeragePrice = bcmul(bcdiv($group_level['integral_group_award'], 100, 4), bcsub($order['pay_price'], $suit_price, 2), 2);
+                $brokeragePrice = bcmul(bcdiv($group_level['group_award'], 100, 4), bcsub(bcsub($order['pay_price'], $suit_price, 2), $extra_price, 2), 2);
+                if ($order['use_integral'] > 0) $brokeragePrice = bcmul(bcdiv($group_level['integral_group_award'], 100, 4), bcsub(bcsub($order['pay_price'], $suit_price, 2), $extra_price, 2), 2);
                 if ($brokeragePrice > $send_normal) {
                     $real_send = bcsub($brokeragePrice, $send_normal, 2);
                     if ($real_send > 0) {