<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 通過商品唯一碼和顧客身份判斷是否限時折扣營銷活動的商品 **位置:** Wpos\Controller\IndexController.class.php **參數:** * 判斷是否限時折扣營銷活動的商品 * @param $goods_no string 唯一碼 * @param $customer int 顧客會員身份 * @return array **調用:** * $result = $this->check_goods_active($goods_no,$customer); **完整代碼:** ~~~ /** * 對單個商品的營銷活動判斷封裝 * 包括活動最優判斷,折扣最低 * Lanson 2017-08-22 * @param $goods_no string 唯一碼 * @param $customer int 顧客會員身份 * @return array */ public function check_goods_active($goods_no,$customer) { // 1.調用營銷活動公共方法 $event_result = $this->check_public_active(); if (empty($event_result)) { return array('success' => false, 'msg' => '暫時不符合活動條件'); } // 2.判斷是否限時折扣活動 foreach ($event_result as $key => $value) { // 判斷活動是否包含限時折扣 if (empty($value['time_discount'])) { unset($event_result[$key]); } } if (empty($event_result)) { return array('success' => false, 'msg' => '暫時不符合活動條件'); } // 3.判斷唯一碼是否符合營銷活動的范圍內 // 查詢輸入的唯一碼的基本信息 $goods = M('goods_no no') ->field("no.no,no.system_style_no,menu.brand,menu.large_class,menu.middle_class,menu.small_class,menu.sex, no.company_retail_price as price,no.discount,no.color_name,no.size") ->join("coscia_goods_menu as menu on no.menu_id = menu.id","left") ->where("no.no = '{$goods_no}'") ->find(); // 將商品的品牌、大類、中類、小類、性別全部轉化為ID值 $brand_id = M('goods_base_data_value_list')->where(" `key` = 'name_en' and `value` = '{$goods['brand']}'")->getField('base_data_id'); $large_class_id = M('goods_base_data_value_list')->where(" `key` = 'name' and `value` = '{$goods['large_class']}'")->getField('base_data_id'); $middle_class_id = M('goods_base_data_value_list as list') ->join("coscia_goods_base_data_mark as mark on mark.id = list.base_data_id") ->join("coscia_goods_base_data_list as b on mark.data_list_id = b.id") ->where("list.key = 'no' and list.value = '{$goods['middle_class']}' and b.name = '中類'") ->getField('base_data_id'); $small_class_id = M('goods_base_data_value_list as list') ->join("coscia_goods_base_data_mark as mark on mark.id = list.base_data_id") ->join("coscia_goods_base_data_list as b on mark.data_list_id = b.id") ->where("list.key = 'name' and list.value = '{$goods['small_class']}' and b.name = '小類'") ->getField('base_data_id'); $sex_id = M('goods_base_data_value_list as list') ->join("coscia_goods_base_data_mark as mark on mark.id = list.base_data_id") ->join("coscia_goods_base_data_list as b on mark.data_list_id = b.id") ->where("list.key = 'name' and list.value = '{$goods['sex']}' and b.name = '性別'") ->getField('base_data_id'); $goods['brand'] = $brand_id; $goods['large_class'] = $large_class_id; $goods['middle_class'] = $middle_class_id; $goods['small_class'] = $small_class_id; $goods['sex'] = $sex_id; $active = array(); // 記錄滿足條件后活動ID和折后價 // 通過活動ID來查詢對應的活動范圍 foreach ($event_result as $keyA => $valueA) { // 1為品類 if ($valueA['time_discount'] == 1) { $whereC['event_id'] = array('eq',$valueA['id']); $whereC['is_delete'] = array('eq',0); $event_class = M('event_time_goods_class')->where($whereC)->select(); foreach ($event_class as $keyC => $valueC) { // 判斷大類ID是否相等 if (!empty($valueC['large_class'])) { if ($valueC['large_class'] == 1) { continue; } elseif ($valueC['large_class'] != $goods['large_class']) { unset($event_class[$keyC]); continue; } } // 判斷品牌ID是否相等 if (!empty($valueC['brand'])) { if ($valueC['brand'] != $goods['brand']) { unset($event_class[$keyC]); continue; } } // 判斷中類ID是否相等 if (!empty($valueC['middle_class'])) { if ($valueC['middle_class'] != $goods['middle_class']) { unset($event_class[$keyC]); continue; } } // 判斷小類ID是否相等 if (!empty($valueC['small_class'])) { if ($valueC['small_class'] != $goods['small_class']) { unset($event_class[$keyC]); continue; } } // 判斷性別ID是否相等 if (!empty($valueC['sex'])) { if ($valueC['sex'] != $goods['sex']) { unset($event_class[$keyC]); continue; } } } if (empty($event_class)) { unset($event_result[$keyA]); } else { // 多個滿足活動范圍的折扣設定進行最優判斷 $discount = 0; $key = 0; foreach ($event_class as $keyE => $valueE) { if (empty($discount)) { $discount = $valueE['discount']; $key = $keyE; continue; } if ($valueE['discount'] >= $discount) { unset($event_class[$keyE]); } else { unset($event_class[$key]); $key = $keyE; $discount = $valueE['discount']; } } $id = array_column($event_class, 'event_id')[0]; $price = round(array_column($event_class, 'discount')[0]*$goods['price']/10,0); $discount = round(array_column($event_class, 'discount')[0]/10,2); $active[] = array('id' => $id,'price' => $price,'ac_discount' => $discount); } } // 2為款號或SKU else { $whereB['event_id'] = array('eq',$valueA['id']); $whereB['is_delete'] = array('eq',0); $event_no = M('event_time_goods_no')->where($whereB)->select(); // 通過Mark字段來區分是SKU還是款號 foreach ($event_no as $keyB => $valueB) { // 款號 if ($valueB['mark'] == 1) { $system_no = $goods['system_style_no']; if ($valueB['system_style_no'] == $system_no) { continue; } else { unset($event_no[$keyB]); } } // SKU elseif ($valueB['mark'] == 2) { $sku = $this->noToSku($valueB['no']); // 通過函數從唯一碼截取SKU碼 if ($valueB['system_style_no'] == $sku) { continue; } else { unset($event_no[$keyB]); } } } // 范圍判斷商品沒找到匹配時,會刪除營銷活動的鍵和值 if (empty($event_no)) { unset($event_result[$keyA]); } else { $id = array_column($event_no, 'event_id')[0]; $price = array_column($event_no, 'discount_price')[0]; $discount = round($price/$goods['price'],2); $active[] = array('id' => $id,'price' => $price,'ac_discount' => $discount); } } } if (empty($event_result)) { return array('success' => false, 'msg' => '暫時不符合活動條件'); } // 4.對滿足條件的活動進行最優判斷 foreach ($active as $keyF => $valueF) { if (empty($ac_price)) { $ac_price = $valueF['price']; $key = $keyF; continue; } if ($valueF['price'] >= $ac_price) { unset($active[$keyF]); } else { unset($active[$key]); $key = $keyF; $ac_price = $valueF['price']; } } // 把active活動信息轉為一維數組 $activeA = array(); foreach ($active as $keyG => $valueG) { $activeA = $valueG; } // 5.最終返回成功的數組數據有活動ID、活動商品的基本信息、最終的折后價 $data = array('success' => true,'active' => $activeA); return $data; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看