<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 買家申請退款退貨 文件路徑: shop/controllers/Buyer/Service/ReturnCtl.php 方法: addReturn() 參數: order\_id:“退款/退貨”的訂單號 goods\_id:“退款/退貨”的訂單商品id return\_message:“退款/退貨”說明 return\_reason\_id:“退款/退貨”原因id nums:“退款/退貨”商品數量 # 1.根據goods\_id查找訂單信息,將查找出的訂單id與傳遞參數訂單id進行比較。兩者不一致,報錯。 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">!==</span> $order_id<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` # 2.判斷訂單狀態,只有已付款訂單才可進去“退款/退貨” ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token"><</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` # 3.確定return\_type的值,判斷此次的“退款/退貨”究竟是退款,還是退貨。 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_is_virtual'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> $field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_VIRTUAL<span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> switch <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> case Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED<span class="token1">:</span>$field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_ORDER <span class="token1">;</span> <span class="token5">//退款</span> <span class="token2">break</span><span class="token1">;</span> case Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">:</span>$field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_GOODS <span class="token1">;</span> <span class="token5">//退貨</span> <span class="token2">break</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` # 4.如果是貨到付款,確認收貨(付款)后才能退款 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span> <span class="token">==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_CONFIRM<span class="token1">)</span><span class="token1">{</span> <span class="token2">if</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token"><</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_RECEIVED<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` # 5.根據訂單狀態,確定return\_goods\_return值。 退款(貨到付款只支持退貨,不支持退款) ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_goods_status'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">&&</span> $order<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span> <span class="token">!==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_CONFIRM<span class="token1">)</span> <span class="token1">{</span> <span class="token5">//白條支付不支持退款和退貨</span> <span class="token2">if</span><span class="token1">(</span><span class="token3">strstr</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_name'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'白條支付'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> $field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span> <span class="token5">//是否需要退貨 0-不需要 1-需要</span> $<span class="token2">return</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_type'</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_ORDER<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 退貨 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_goods_status'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">)</span> <span class="token1">{</span> <span class="token2">if</span><span class="token1">(</span><span class="token3">strstr</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_name'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'白條支付'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> $field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">1</span><span class="token1">;</span> <span class="token5">//需要退貨</span> <span class="token5">//查詢是否存在該訂單商品的退貨申請信息,且該申請未被賣家拒絕,以此判斷是否重新提交退貨申請</span> <span class="token5">//只有以前沒有提交過該商品的退貨申請,且未被賣家拒絕的情況下,才可以提交退貨申請</span> $<span class="token2">return</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_type'</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_GOODS<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` # 6.計算生成“退款/退貨”訂單所需要的各種金額 //判斷這件“退款/退貨”商品是否還有可退數量(退款,退貨都會退還商品數量) ``` <pre class="calibre14">``` $this_goods_return <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` - $this\_goods\_return\_num :“退款/退貨”商品總的已退還件數 - $this\_goods\_return\_cash :“退款/退貨”商品總的已退金額(包含正在審核中的金額) //查找該筆訂單已經進行過或正進行中的的退款,退貨 ``` <pre class="calibre14">``` $order_return <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_number'</span> <span class="token">=</span><span class="token">></span> $order<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單已經退款退貨的金額(包括與同意的退款和正在審核中的退款) ``` <pre class="calibre14">``` $order_return_cash <span class="token">=</span> <span class="token3">array_sum</span><span class="token1">(</span><span class="token3">array_column</span><span class="token1">(</span>$order_return<span class="token1">,</span> <span class="token4">'return_cash'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單已經退還的商品數量 ``` <pre class="calibre14">``` $order_return_num <span class="token">=</span> <span class="token3">array_sum</span><span class="token1">(</span><span class="token3">array_column</span><span class="token1">(</span>$order_return<span class="token1">,</span> <span class="token4">'order_goods_num'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單還可退還的金額 = 訂單實付金額 - 訂單已退金額 //如果沒有發貨,可以退運費 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> $order_can_return_cash <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span> <span class="token">-</span> $order_return_cash<span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $order_can_return_cash <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span> <span class="token">-</span> $order_return_cash <span class="token">-</span> $order<span class="token1">[</span><span class="token4">'order_shipping_fee'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> <span class="token5">/* * $data['order']['order_refund_amount'] 與 $order_return_cash 的區別 * $data['order']['order_refund_amount']:表示商家已經同意的退款金額 * $order_return_cash:表示買家已經申請的退款,除被商家拒絕的退款外,正在審核的退款也包含在內 */</span> <span class="token5">//訂單已退還的金額</span> $return_limit <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_refund_amount'</span><span class="token1">]</span><span class="token1">;</span> <span class="token5">//訂單可退金額</span> $cash_limit <span class="token">=</span> $order_can_return_cash<span class="token1">;</span> <span class="token5">//訂單可退商品數量</span> $goods_can_return_nums <span class="token">=</span> $order_all_goods_num <span class="token">-</span> $order_return_num<span class="token1">;</span> <span class="token5">//該件商品可退的總金額</span> $return_goods_cash <span class="token">=</span> $goods<span class="token1">[</span><span class="token4">'order_goods_amount'</span><span class="token1">]</span> <span class="token">-</span> $this_goods_return_cash<span class="token1">;</span> <span class="token5">//該件商品還可退還商品數量</span> $return_goods_nums <span class="token">=</span> $goods<span class="token1">[</span><span class="token4">'order_goods_num'</span><span class="token1">]</span> <span class="token">-</span> $this_goods_return_num<span class="token1">;</span> ``` ``` //實際該件商品可退還的金額(有時可能包含運費) //該件商品全部“退款/退貨” //return\_goods\_nums ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods_can_return_nums <span class="token">==</span> $nums <span class="token">&&</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//加上運費(未發貨)</span> $return_cash <span class="token">=</span> $return_goods_cash <span class="token">+</span> $order<span class="token1">[</span><span class="token4">'order_shipping_fee'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $return_cash <span class="token">=</span> <span class="token3">floor</span><span class="token1">(</span>$nums <span class="token">*</span> $goods<span class="token1">[</span><span class="token4">'order_goods_payment_amount'</span><span class="token1">]</span> <span class="token">*</span> <span class="token6">100</span><span class="token1">)</span> <span class="token">/</span> <span class="token6">100</span><span class="token1">;</span> <span class="token1">}</span> <span class="token5">//如果訂單為已付款狀態,并且所有商品都退款,則將運費退還</span> <span class="token2">if</span><span class="token1">(</span>Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token">&&</span> $nums <span class="token">==</span> $goods_can_return_nums<span class="token1">)</span> <span class="token1">{</span> $return_cash <span class="token">=</span> $cash_limit<span class="token1">;</span> <span class="token1">}</span> <span class="token5">/*退款退貨走同樣的流程。區別是:退款時可能會退還運費,退貨不可能退還運費。*/</span> ``` ``` # 7.訂單商品表中插入訂單商品的“退款/退貨”狀態 ``` <pre class="calibre15">``` <span class="token2">if</span><span class="token1">(</span>$field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">0</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//退款</span> $goods_field<span class="token1">[</span><span class="token4">'goods_return_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_IN<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderGoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$goods_id<span class="token1">,</span> $goods_field<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> <span class="token5">//退貨</span> $goods_field<span class="token1">[</span><span class="token4">'goods_refund_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_IN<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderGoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$goods_id<span class="token1">,</span> $goods_field<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ```
                  <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>

                              哎呀哎呀视频在线观看