# 交易訂單
購物流程:
生成訂單 --> 支付訂單 --> 商家發貨 --> 確認收貨 --> 評價訂單
1.買家在生成訂單之后,支付訂單之前可以取消訂單
2.買家在支付訂單之后,商家發貨之前可以申請退款
3.買家在確認收貨之后可以申請退貨
#### 1.生成訂單
文件路徑:\\shop\\controllers\\Buyer\\OrderCtl.php
控制器:Buyer\_OrderCtl
方法:addOrder()
判斷選項的支付方式是否合法
```
<pre class="calibre14">```
<span class="token5">/**
* 如果不是選 在線支付 或 貨到付款 ,則提示錯誤
*/</span>
<span class="token2">if</span><span class="token1">(</span><span class="token">!</span><span class="token3">in_array</span><span class="token1">(</span>$pay_way_id<span class="token1">,</span> <span class="token1">[</span><span class="token6">1</span><span class="token1">,</span><span class="token6">2</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">{</span>
$data <span class="token">=</span> <span class="token1">[</span><span class="token1">]</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span>
$msg <span class="token">=</span> <span class="token4">"操作錯誤,請刷新當前頁面!"</span><span class="token1">;</span>
<span class="token2">return</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> $data<span class="token1">,</span> $msg<span class="token1">,</span> $status<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
檢測是否存在加價購商品,若存在則檢測加價購商品信息是否正確。檢測加價購商品正確性后重組加價購商品的活動規則,查找出活動中所有規則下的加價購商品信息
```
<pre class="calibre14">```
<span class="token2">if</span><span class="token1">(</span>$increase_arr<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//檢驗加價購商品信息是否正確</span>
$increase_price_info <span class="token">=</span> $this<span class="token">-</span><span class="token">></span><span class="token3">checkIncreaseGoods</span><span class="token1">(</span>$increase_arr<span class="token1">,</span> $cart_id<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span><span class="token">!</span>$increase_price_info<span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">return</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token4">'code'</span><span class="token">=</span><span class="token">></span><span class="token6">1</span><span class="token1">)</span><span class="token1">,</span> <span class="token4">'failure1'</span><span class="token1">,</span> <span class="token6">250</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
$increase_goods_id <span class="token">=</span> <span class="token3">array_column</span><span class="token1">(</span>$increase_arr<span class="token1">,</span> <span class="token4">'increase_goods_id'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
判斷訂單來源
```
<pre class="calibre14">```
<span class="token5">//wap端下單</span>
$order_from <span class="token">=</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>FROM_WAP<span class="token1">;</span>
<span class="token5">//pc端下單</span>
$order_from <span class="token">=</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>FROM_PC<span class="token1">;</span>
```
```
判斷支付方式為在線支付還是貨到付款,如果是貨到付款則訂單狀態直接為待發貨狀態,如果是在線支付則訂單狀態為待付款
```
<pre class="calibre14">```
<span class="token2">if</span><span class="token1">(</span>$pay_way_id <span class="token">==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_ONLINE<span class="token1">)</span>
<span class="token1">{</span>
$order_status <span class="token">=</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_WAIT_PAY<span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span><span class="token1">(</span>$pay_way_id <span class="token">==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_CONFIRM<span class="token1">)</span>
<span class="token1">{</span>
$order_status <span class="token">=</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_WAIT_PREPARE_GOODS<span class="token1">;</span>
<span class="token1">}</span>
```
```
獲取用戶的平臺折扣信息
```
<pre class="calibre14">```
$user_info <span class="token">=</span> $User_InfoModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$user_id<span class="token1">)</span><span class="token1">;</span>
```
```
判斷是否使用了代金券,如果使用了代金券,則處理代金券的信息
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span>$voucher_id<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//查找代金券的信息</span>
$Voucher_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Voucher_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$voucher_cond_row<span class="token1">[</span><span class="token4">'voucher_id:IN'</span><span class="token1">]</span> <span class="token">=</span> $voucher_id<span class="token1">;</span>
$voucher_row <span class="token">=</span> $Voucher_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span>$voucher_cond_row<span class="token1">)</span><span class="token1">;</span>
$shop_voucher_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
foreach <span class="token1">(</span>$voucher_row as $voukey <span class="token">=</span><span class="token">></span> $vouval<span class="token1">)</span>
<span class="token1">{</span>
$shop_voucher_row<span class="token1">[</span>$vouval<span class="token1">[</span><span class="token4">'voucher_shop_id'</span><span class="token1">]</span><span class="token1">]</span> <span class="token">=</span> $vouval<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
根據cart\_id查找出購物車中的商品信息
```
<pre class="calibre14">```
$data <span class="token">=</span> $CartModel<span class="token">-</span><span class="token">></span><span class="token3">getCardList</span><span class="token1">(</span>$cond_row<span class="token1">,</span> $order_row<span class="token1">)</span><span class="token1">;</span>
```
```
計算購物車中每件商品的最后優惠的實際價格
1.店鋪商品總價 = 加價購商品總價 + 購物車商品總價(按照限時折扣和團購價計算)
2.判斷平臺是否開啟會員折扣只限自營店鋪使用。如果是平臺自營店鋪需要計算會員折扣,非平臺自營不需要計算折扣
3.計算每個商品訂單實際支付的金額,以及每件商品的實際支付單價為多少
4.平臺紅包的使用情況
查找收貨地址,計算運費
```
<pre class="calibre14">```
$User_AddressModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_AddressModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$city_id <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$address_id<span class="token1">)</span>
<span class="token1">{</span>
$user_address <span class="token">=</span> $User_AddressModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$address_id<span class="token1">)</span><span class="token1">;</span>
$city_id <span class="token">=</span> $user_address<span class="token1">[</span><span class="token4">'user_address_city_id'</span><span class="token1">]</span><span class="token1">;</span>
<span class="token1">}</span>
$Transport_TemplateModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Transport_TemplateModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$transport_cost <span class="token">=</span> $Transport_TemplateModel<span class="token">-</span><span class="token">></span><span class="token3">cartTransportCost</span><span class="token1">(</span>$city_id<span class="token1">,</span> $cart_id<span class="token1">)</span><span class="token1">;</span>
```
```
生成訂單(order\_base)
```
<pre class="calibre14">```
<span class="token5">//生成訂單號</span>
$prefix <span class="token">=</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s-%s-'</span><span class="token1">,</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">,</span> <span class="token3">date</span><span class="token1">(</span><span class="token4">'YmdHis'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$order_number <span class="token">=</span> $Number_SeqModel<span class="token">-</span><span class="token">></span><span class="token3">createSeq</span><span class="token1">(</span>$prefix<span class="token1">)</span><span class="token1">;</span>
$order_id <span class="token">=</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s-%s-%s-%s'</span><span class="token1">,</span> <span class="token4">'DD'</span><span class="token1">,</span> $val<span class="token1">[</span><span class="token4">'shop_user_id'</span><span class="token1">]</span><span class="token1">,</span> $key<span class="token1">,</span> $order_number<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//生成訂單發票信息</span>
$Order_InvoiceModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Order_InvoiceModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$order_invoice_id <span class="token">=</span> $Order_InvoiceModel<span class="token">-</span><span class="token">></span><span class="token3">getOrderInvoiceId</span><span class="token1">(</span>$invoice_id<span class="token1">,</span>$invoice_title<span class="token1">,</span>$invoice_content<span class="token1">,</span>$order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//生成訂單</span>
$flag1 <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>tradeOrderModel<span class="token">-</span><span class="token">></span><span class="token3">addBase</span><span class="token1">(</span>$order_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//修改用戶使用的紅包信息</span>
<span class="token2">if</span><span class="token1">(</span>$rpacket_id<span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">if</span><span class="token1">(</span><span class="token3">isset</span><span class="token1">(</span>$rpacket_id<span class="token1">[</span>$key<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$redPacket_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">RedPacket_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$field_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$field_row<span class="token1">[</span><span class="token4">'redpacket_state'</span><span class="token1">]</span> <span class="token">=</span> RedPacket_BaseModel<span class="token1">:</span><span class="token1">:</span>USED<span class="token1">;</span>
$field_row<span class="token1">[</span><span class="token4">'redpacket_order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_id<span class="token1">;</span>
$flag5 <span class="token">=</span> $redPacket_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editRedPacket</span><span class="token1">(</span>$rpacket_id<span class="token1">[</span>$key<span class="token1">]</span><span class="token1">,</span> $field_row<span class="token1">)</span><span class="token1">;</span>
$flag <span class="token">=</span> $flag <span class="token">&&</span> $flag5<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//修改用戶使用的代金券信息</span>
<span class="token2">if</span><span class="token1">(</span>$val<span class="token1">[</span><span class="token4">'voucher_id'</span><span class="token1">]</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">if</span><span class="token1">(</span><span class="token3">isset</span><span class="token1">(</span>$shop_voucher_row<span class="token1">[</span>$key<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$Voucher_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Voucher_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$flag6 <span class="token">=</span> $Voucher_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">changeVoucherState</span><span class="token1">(</span>$val<span class="token1">[</span><span class="token4">'voucher_id'</span><span class="token1">]</span><span class="token1">,</span> $order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//代金券使用提醒</span>
$message <span class="token">=</span> <span class="token2">new</span> <span class="token3">MessageModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$message<span class="token">-</span><span class="token">></span><span class="token3">sendMessage</span><span class="token1">(</span><span class="token4">'The use of vouchers to remind'</span><span class="token1">,</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">,</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">,</span> NULL<span class="token1">,</span> $shop_name <span class="token">=</span> NULL<span class="token1">,</span> <span class="token6">0</span><span class="token1">,</span> MessageModel<span class="token1">:</span><span class="token1">:</span>USER_MESSAGE<span class="token1">)</span><span class="token1">;</span>
$flag <span class="token">=</span> $flag <span class="token">&&</span> $flag6<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//生成訂單商品信息(order_goods)</span>
$flag2 <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">addGoods</span><span class="token1">(</span>$order_goods_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//生成交易快照</span>
$Order_GoodsSnapshot<span class="token">-</span><span class="token">></span><span class="token3">addSnapshot</span><span class="token1">(</span>$order_goods_snapshot_add_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//刪除商品庫存</span>
$Goods_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">delStock</span><span class="token1">(</span>$v<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">,</span> $v<span class="token1">[</span><span class="token4">'goods_num'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//從購物車中刪除已生成訂單的商品</span>
$CartModel<span class="token">-</span><span class="token">></span><span class="token3">removeCart</span><span class="token1">(</span>$v<span class="token1">[</span><span class="token4">'cart_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
```
```
加價購、滿即送等活動商品信息插入訂單商品表
將單個店鋪訂單信息同步到paycenter中,并將paycenter中生成的支付單號寫入訂單表中
```
<pre class="calibre14">```
<span class="token5">//支付中心生成訂單</span>
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'from_app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'consume_trade_id'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'buy_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'buyer_name'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'seller_id'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'seller_user_id'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'seller_name'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'seller_user_name'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_state_id'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_commission_fee'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_commission_fee'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'trade_remark'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_message'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'trade_create_time'</span><span class="token1">]</span> <span class="token">=</span> $order_row<span class="token1">[</span><span class="token4">'order_create_time'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'trade_title'</span><span class="token1">]</span> <span class="token">=</span> $trade_title<span class="token1">;</span> <span class="token5">//商品名稱 - 標題</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=addConsumeTrade&typ=json'</span><span class="token1">,</span>$url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
生成合并支付訂單
```
<pre class="calibre14">```
<span class="token5">//生成合并支付訂單</span>
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'inorder'</span><span class="token1">]</span> <span class="token">=</span> $inorder<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'uprice'</span><span class="token1">]</span> <span class="token">=</span> $uprice<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'buyer'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'trade_title'</span><span class="token1">]</span> <span class="token">=</span> $utrade_title<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'buyer_name'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'from_app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=addUnionOrder&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
判斷訂單生成是否成功,如果成功則將信息推送到統計中心添加訂單統計,將下單成功信息通過IM推送給商家。訂單提交失敗,將paycenter中生成的訂單刪除。
#### 2.支付訂單
支付單與訂單說明:
用戶在店鋪A和店鋪B中購買了100元的商品a和50元的商品b。這兩件商品在結算時同時結算,生成訂單Oa和訂單Ob。Paycenter中生成150元的合并支付單Uab,100元的合并支付訂單Ua,50元的合并支付訂單Ub。
用戶在店鋪C中購買10元的商品c。結算生成訂單Oc。Paycenter中生成10元的合并支付訂單Uc1(相當于上個例子中的Uab),生成10元的合并支付訂單Uc2(相當于上個例子中的Ua或者Ub)。
頁面顯示
文件路徑:\\paycenter\\controllers\\InfoCtl.php
控制器:InfoCtl
方法:pay()
視圖文件:\\paycenter\\views\\default\\InfoCtl\\pay.php
```
<pre class="calibre14">```
<span class="token5">//判斷用戶選擇哪種支付方式,如果選擇在線支付則調用相應的方法,如果選擇賬戶余額支付則調用money方法</span>
<span class="token2">if</span><span class="token1">(</span>online_payway<span class="token1">)</span>
<span class="token1">{</span>
window<span class="token1">.</span>location<span class="token1">.</span>href <span class="token">=</span> SITE_URL <span class="token">+</span> <span class="token4">"?ctl=Pay&met="</span> <span class="token">+</span> online_payway <span class="token">+</span> <span class="token4">"&trade_id="</span> <span class="token">+</span> uorder_id<span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$<span class="token1">.</span><span class="token3">post</span><span class="token1">(</span>SITE_URL <span class="token">+</span> <span class="token4">"?ctl=Pay&met=money&typ=json"</span> <span class="token1">,</span><span class="token1">{</span>trade_id<span class="token1">:</span>uorder_id<span class="token1">}</span><span class="token1">,</span><span class="token2">function</span><span class="token1">(</span>data<span class="token1">)</span><span class="token1">{</span>
<span class="token2">if</span><span class="token1">(</span>data<span class="token1">.</span>status <span class="token">==</span> <span class="token6">200</span><span class="token1">)</span>
<span class="token1">{</span>
window<span class="token1">.</span>location<span class="token1">.</span>href <span class="token">=</span> data<span class="token1">.</span>data<span class="token1">.</span>return_app_url <span class="token">+</span> <span class="token4">'?ctl=Buyer_Order&met=<?=$order_g_type?>'</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$<span class="token1">(</span><span class="token4">".loading-msg"</span><span class="token1">)</span><span class="token1">.</span><span class="token3">html</span><span class="token1">(</span><span class="token4">'支付失敗,請重新支付!'</span><span class="token1">)</span><span class="token1">;</span>
window<span class="token1">.</span>location<span class="token1">.</span><span class="token3">reload</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span><span class="token1">)</span>
<span class="token1">}</span>
```
```
文件路徑:\\paycenter\\controllers\\PayCtl.php
控制器:PayCtl.php
方法:money()
```
<pre class="calibre14">```
<span class="token5">//獲取合并訂單號的信息</span>
$uorder <span class="token">=</span> $Union_OrderModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$trade_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//判斷訂單狀態是否為等待付款狀態</span>
<span class="token2">if</span><span class="token1">(</span>$uorder<span class="token1">[</span><span class="token4">'order_state_id'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_WAIT_PAY<span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span>
<span class="token5">//判斷當前用戶是否是下單者,并且訂單狀態是否是待付款狀態</span>
<span class="token2">if</span><span class="token1">(</span>$uorder<span class="token1">[</span><span class="token4">'buyer_id'</span><span class="token1">]</span> <span class="token">==</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">true</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> $uorder<span class="token1">[</span><span class="token4">'buyer_id'</span><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>
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'sub_user_id'</span><span class="token1">]</span> <span class="token">=</span> $uorder<span class="token1">[</span><span class="token4">'buyer_id'</span><span class="token1">]</span><span class="token1">;</span>
$sub_user <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_User_Info&met=checkSubUser&typ=json'</span><span class="token1">,</span>$url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span><span class="token">!</span><span class="token3">empty</span><span class="token1">(</span>$sub_user<span class="token1">[</span><span class="token4">'data'</span><span class="token1">]</span><span class="token1">)</span> <span class="token">&&</span> $sub_user<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">200</span><span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">true</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token2">if</span><span class="token1">(</span>$pay_flag<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//修改訂單表中的各種狀態</span>
$flag <span class="token">=</span> $Consume_DepositModel<span class="token">-</span><span class="token">></span><span class="token3">notifyShop</span><span class="token1">(</span>$trade_id<span class="token1">,</span>$pay_user_id<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span>$flag<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">200</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//查找回調地址</span>
$User_AppModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_AppModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$user_app <span class="token">=</span> $User_AppModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$uorder<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
$return_app_url <span class="token">=</span> $user_app<span class="token1">[</span><span class="token4">'app_url'</span><span class="token1">]</span><span class="token1">;</span>
$data<span class="token1">[</span><span class="token4">'return_app_url'</span><span class="token1">]</span> <span class="token">=</span> $return_app_url<span class="token1">;</span>
$msg <span class="token">=</span> <span class="token4">'success'</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">200</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$msg <span class="token">=</span> <span class="token3">_</span><span class="token1">(</span><span class="token4">'failure'</span><span class="token1">)</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$msg <span class="token">=</span> <span class="token3">_</span><span class="token1">(</span><span class="token4">'failure'</span><span class="token1">)</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
文件路徑:\\paycenter\\controllers\\PayCtl.php
控制器:PayCtl.php
方法:alipay()
```
<pre class="calibre14">```
<span class="token5">//判斷訂單狀態是否為等待付款狀態</span>
<span class="token2">if</span><span class="token1">(</span>$trade_row<span class="token1">[</span><span class="token4">'order_state_id'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_WAIT_PAY<span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span>
<span class="token5">//判斷當前用戶是否是下單者,并且訂單狀態是否是待付款狀態</span>
<span class="token2">if</span><span class="token1">(</span>$trade_row<span class="token1">[</span><span class="token4">'buyer_id'</span><span class="token1">]</span> <span class="token">==</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">true</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> $trade_row<span class="token1">[</span><span class="token4">'buyer_id'</span><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>
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'sub_user_id'</span><span class="token1">]</span> <span class="token">=</span> $trade_row<span class="token1">[</span><span class="token4">'buyer_id'</span><span class="token1">]</span><span class="token1">;</span>
$sub_user <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_User_Info&met=checkSubUser&typ=json'</span><span class="token1">,</span>$url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span><span class="token">!</span><span class="token3">empty</span><span class="token1">(</span>$sub_user<span class="token1">[</span><span class="token4">'data'</span><span class="token1">]</span><span class="token1">)</span> <span class="token">&&</span> $sub_user<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">200</span><span class="token1">)</span>
<span class="token1">{</span>
$pay_flag <span class="token">=</span> <span class="token6">true</span><span class="token1">;</span>
$pay_user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//ignore 給webpos使用</span>
<span class="token2">if</span><span class="token1">(</span>$pay_flag <span class="token">||</span> $_GET<span class="token1">[</span><span class="token4">'ignore'</span><span class="token1">]</span><span class="token">==</span><span class="token4">'abc'</span> <span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$trade_row<span class="token1">)</span>
<span class="token1">{</span>
$Payment <span class="token">=</span> PaymentModel<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span><span class="token4">'alipay'</span><span class="token1">)</span><span class="token1">;</span>
$Payment<span class="token">-</span><span class="token">></span><span class="token3">pay</span><span class="token1">(</span>$trade_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
echo<span class="token4">"<script>alert('支付失敗,請重新支付');history.go(-1);</script>"</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
echo<span class="token4">"<script>alert('支付失敗,請重新支付');history.go(-1);</script>"</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
文件路徑:F:\\www\\paycenter\\paycenter\\models\\Consume\\DepositModel.php
方法:notifyShop($order\_id = null,$user\_id = null)
1.修改paycenter中訂單的信息
```
<pre class="calibre14">```
<span class="token5">//修改合并訂單中的訂單支付狀態</span>
<span class="token5">//獲取合并支付訂單信息</span>
$union_order <span class="token">=</span> $Union_OrderModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//判斷該訂單是否是白條支付</span>
$bt_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span><span class="token3">checkBt</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'trade_payment_amount'</span><span class="token">=</span><span class="token">></span>$union_order<span class="token1">[</span><span class="token4">'trade_payment_amount'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'payment_channel_id'</span><span class="token">=</span><span class="token">></span>$union_order<span class="token1">[</span><span class="token4">'payment_channel_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//檢測支付金額是否正確,判斷該訂單是否是白條支付</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token1">(</span>$union_order<span class="token1">[</span><span class="token4">'trade_payment_amount'</span><span class="token1">]</span> <span class="token">==</span> $union_order<span class="token1">[</span><span class="token4">'union_online_pay_amount'</span><span class="token1">]</span> <span class="token">+</span> $union_order<span class="token1">[</span><span class="token4">'union_money_pay_amount'</span><span class="token1">]</span> <span class="token">+</span> $union_order<span class="token1">[</span><span class="token4">'union_cards_pay_amount'</span><span class="token1">]</span><span class="token1">)</span> <span class="token">||</span> $bt_flag<span class="token1">)</span>
<span class="token1">{</span>
略
<span class="token1">}</span>
```
```
如果是合并支付的訂單,則需要將屬于它的單個合并支付單修改狀態
```
<pre class="calibre14">```
<span class="token2">if</span><span class="token1">(</span><span class="token3">count</span><span class="token1">(</span>$order_id<span class="token1">)</span> <span class="token">></span> <span class="token6">1</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//修改單個合并訂單狀態</span>
$uorder_row <span class="token">=</span> $Union_OrderModel<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">'inorder:IN'</span> <span class="token">=</span><span class="token">></span> $order_id<span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$uorder_id_row <span class="token">=</span> <span class="token3">array_column</span><span class="token1">(</span>$uorder_row<span class="token1">,</span><span class="token4">'union_order_id'</span><span class="token1">)</span><span class="token1">;</span>
$edit_uorder_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$edit_uorder_row<span class="token1">[</span><span class="token4">'order_state_id'</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>
$edit_uorder_row<span class="token1">[</span><span class="token4">'pay_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">date</span><span class="token1">(</span><span class="token4">'Y-m-d H:i:s'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">check_rs</span><span class="token1">(</span>$Union_OrderModel<span class="token">-</span><span class="token">></span><span class="token3">editUnionOrder</span><span class="token1">(</span>$uorder_id_row<span class="token1">,</span>$edit_uorder_row<span class="token1">)</span><span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
修改訂單表中的交易狀態
修改交易明細中的訂單狀態
根據支付情況修改用戶資金信息
```
<pre class="calibre14">```
<span class="token2">if</span><span class="token1">(</span>$union_order<span class="token1">[</span><span class="token4">'union_money_pay_amount'</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>
$User_ResourceModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_ResourceModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//1.用戶資源中訂單金額凍結(現金)</span>
$flag <span class="token">=</span> $User_ResourceModel<span class="token">-</span><span class="token">></span><span class="token3">frozenUserMoney</span><span class="token1">(</span>$user_id<span class="token1">,</span>$union_order<span class="token1">[</span><span class="token4">'union_money_pay_amount'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">check_rs</span><span class="token1">(</span>$flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span><span class="token1">(</span>$union_order<span class="token1">[</span><span class="token4">'union_cards_pay_amount'</span><span class="token1">]</span> <span class="token">></span> <span class="token6">0</span><span class="token1">)</span>
<span class="token1">{</span>
$User_ResourceModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_ResourceModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//2.用戶資源中訂單金額凍結(卡)</span>
$flag <span class="token">=</span> $User_ResourceModel<span class="token">-</span><span class="token">></span><span class="token3">frozenUserCards</span><span class="token1">(</span>$user_id<span class="token1">,</span>$union_order<span class="token1">[</span><span class="token4">'union_cards_pay_amount'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">check_rs</span><span class="token1">(</span>$flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//修改白條余額</span>
<span class="token2">if</span><span class="token1">(</span>$bt_flag<span class="token1">)</span>
<span class="token1">{</span>
$User_ResourceModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_ResourceModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$user_credit_availability <span class="token">=</span> $union_order<span class="token1">[</span><span class="token4">'trade_payment_amount'</span><span class="token1">]</span><span class="token">*</span><span class="token1">(</span><span class="token">-</span><span class="token6">1</span><span class="token1">)</span><span class="token1">;</span>
$flag <span class="token">=</span> $User_ResourceModel<span class="token">-</span><span class="token">></span><span class="token3">editResource</span><span class="token1">(</span>$user_id<span class="token1">,</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'user_credit_availability'</span><span class="token">=</span><span class="token">></span>$user_credit_availability<span class="token1">)</span><span class="token1">,</span><span class="token6">true</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">check_rs</span><span class="token1">(</span>$flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
2.paycenter中訂單修改完成后,修改shop中的訂單信息
付款成功后對買家極光推送
訂單付款成功后對賣家進行極光推送
```
<pre class="calibre14">```
<span class="token5">//根據訂單來源,修改shop訂單狀態</span>
$consume_record <span class="token">=</span> $Consume_TradeModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_id<span class="token1">)</span><span class="token1">;</span>
$app_id <span class="token">=</span> $consume_record<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span><span class="token1">;</span>
$User_AppModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_AppModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$app_row <span class="token">=</span> $User_AppModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$app_id<span class="token1">)</span><span class="token1">;</span>
$key <span class="token">=</span> $app_row<span class="token1">[</span><span class="token4">'app_key'</span><span class="token1">]</span><span class="token1">;</span>
$url <span class="token">=</span> $app_row<span class="token1">[</span><span class="token4">'app_url'</span><span class="token1">]</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> $app_id<span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> $_POST<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'uorder_id'</span><span class="token1">]</span> <span class="token">=</span> $uorder_id<span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$consume_record<span class="token1">[</span><span class="token4">'payment_channel_id'</span><span class="token1">]</span> <span class="token">==</span> Payment_ChannelModel<span class="token1">:</span><span class="token1">:</span>BAITIAO<span class="token1">)</span><span class="token1">{</span>
$formvars<span class="token1">[</span><span class="token4">'payment_channel_code'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'baitiao'</span><span class="token1">;</span>
<span class="token1">}</span><span class="token2">else</span><span class="token1">{</span>
$formvars<span class="token1">[</span><span class="token4">'payment_channel_code'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">''</span><span class="token1">;</span>
<span class="token1">}</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Trade_Order&met=editOrderRowSatus&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
<span class="token2">return</span> $rs<span class="token1">;</span>
```
```
#### 3.商家發貨
地址鏈接:/index.php?ctl=Seller\_Trade\_Order&met=send&typ=e&order\_id=訂單編號
文件路徑:\\shop\\controllers\\Seller\\Trade\\OrderCtl.php
控制器:OrderCtl
方法:send()
視圖文件:\\shop\\views\\default\\Seller\\Trade\\OrderCtl\\send.php
根據typ判斷該方法是用來顯示頁面,還是修改訂單狀態。
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span>$typ <span class="token">==</span> <span class="token4">'e'</span><span class="token1">)</span>
<span class="token1">{</span>
顯示頁面
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
修改訂單狀態
<span class="token1">}</span>
```
```
顯示頁面部分
```
<pre class="calibre14">```
$condi<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_id<span class="token1">;</span>
$data <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOrderList</span><span class="token1">(</span>$condi<span class="token1">)</span><span class="token1">;</span>
$data <span class="token">=</span> <span class="token3">pos</span><span class="token1">(</span>$data<span class="token1">[</span><span class="token4">'items'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//默認物流公司 url</span>
$default_express_url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'url'</span><span class="token1">)</span> <span class="token1">.</span> <span class="token4">'?ctl=Seller_Trade_Deliver&met=express&typ=e'</span><span class="token1">;</span>
<span class="token5">//打印運單URL</span>
$print_tpl_url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'url'</span><span class="token1">)</span> <span class="token1">.</span> <span class="token4">'?ctl=Seller_Trade_Waybill&met=printTpl&typ=e&order_id='</span> <span class="token1">.</span> $order_id<span class="token1">;</span>
<span class="token5">//默認物流公司</span>
$express_list <span class="token">=</span> $Shop_ExpressModel<span class="token">-</span><span class="token">></span><span class="token3">getDefaultShopExpress</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span><span class="token3">is_array</span><span class="token1">(</span>$express_list<span class="token1">)</span> <span class="token">&&</span> $express_list<span class="token1">)</span><span class="token1">{</span>
$express_list <span class="token">=</span> <span class="token3">array_values</span><span class="token1">(</span>$express_list<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
include $this<span class="token">-</span><span class="token">></span>view<span class="token">-</span><span class="token">></span><span class="token3">getView</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
```
```
修改訂單狀態部分
```
<pre class="calibre14">```
<span class="token5">//判斷該筆訂單是否是自己的單子</span>
$order_base <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//判斷賬號是否可以發貨</span>
$check_send <span class="token">=</span> $this<span class="token">-</span><span class="token">></span><span class="token3">checkSend</span><span class="token1">(</span>$order_base<span class="token1">[</span><span class="token4">'seller_user_id'</span><span class="token1">]</span><span class="token1">,</span>$order_base<span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$check_send <span class="token">&&</span> $order_base<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>
<span class="token5">//將發貨信息添加到訂單表中</span>
$edit_flag <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$order_id<span class="token1">,</span> $update_data<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//修改訂單商品信息</span>
$order_list <span class="token">=</span> $Order_GoodsModel <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_id'</span> <span class="token">=</span><span class="token">></span> $order_base<span class="token1">[</span><span class="token4">'order_source_id'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'order_goods_source_id'</span> <span class="token">=</span><span class="token">></span> <span class="token4">''</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span><span class="token">!</span><span class="token3">empty</span><span class="token1">(</span>$order_list<span class="token1">)</span> <span class="token">&&</span> $order_base<span class="token1">[</span><span class="token4">'order_source_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">{</span>
foreach <span class="token1">(</span>$order_list as $key <span class="token">=</span><span class="token">></span> $value<span class="token1">)</span> <span class="token1">{</span>
$edit_flag1 <span class="token">=</span> $Order_GoodsModel <span class="token">-</span><span class="token">></span> <span class="token3">editGoods</span><span class="token1">(</span>$key<span class="token1">,</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'order_goods_source_ship'</span> <span class="token">=</span><span class="token">></span> $update_data<span class="token1">[</span><span class="token4">'order_shipping_code'</span><span class="token1">]</span><span class="token1">.</span><span class="token4">'-'</span><span class="token1">.</span>$update_data<span class="token1">[</span><span class="token4">'order_shipping_express_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">check_rs</span><span class="token1">(</span>$edit_flag1<span class="token1">,</span>$rs_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//遠程修改paycenter中的訂單信息</span>
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=sendOrderGoods&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
如果訂單信息修改正確,發送站內信。
#### 4.確認收貨
地址路徑:index.php?ctl=Buyer\_Order&met=confirmOrder&user=buyer
控制器文件路徑:\\shop\\controllers\\Buyer\\OrderCtl.php
控制器:Buyer\_OrderCtl
方法:confirmOrder()
判斷下單者是否是當前用戶,訂單狀態是否為已發貨狀態
```
<pre class="calibre14">```
$order_base<span class="token1">[</span><span class="token4">'buyer_user_id'</span><span class="token1">]</span> <span class="token">==</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId <span class="token">&&</span> $order_base<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_WAIT_CONFIRM_GOODS
```
```
判斷是否是貨到付款訂單,如果是貨到付款訂單,則將支付時間改為確認收貨時間
```
<pre class="calibre14">```
<span class="token2">if</span><span class="token1">(</span>$order_base<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>
$condition<span class="token1">[</span><span class="token4">'payment_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
修改訂單商品表中的訂單狀態
```
<pre class="calibre14">```
$edit_row<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>
$order_goods_id <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getKeyByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'order_id'</span> <span class="token">=</span><span class="token">></span> $order_id<span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$edit_flag1 <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$order_goods_id<span class="token1">,</span> $edit_row<span class="token1">)</span><span class="token1">;</span>
```
```
貨到付款修改商品銷量
修改paycenter中的訂單狀態
```
<pre class="calibre14">```
$key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span>
$url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span>
$shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
$formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span>
$formvars<span class="token1">[</span><span class="token4">'from_app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//判斷訂單是否是貨到付款訂單,貨到付款訂單不需要修改賣家資金</span>
<span class="token2">if</span><span class="token1">(</span>$order_base<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>
$formvars<span class="token1">[</span><span class="token4">'payment'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span>
<span class="token1">}</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=confirmOrder&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
判斷用戶該筆訂單是否存在退款,如果有的話添加商家的退款流水
```
<pre class="calibre14">```
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=refundShopTransfer&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
計算本次確認收貨,用戶將獲取的積分與成長值
判斷用戶是否需要升級
```
<pre class="calibre14">```
$res_flag <span class="token">=</span> $User_GradeModel<span class="token">-</span><span class="token">></span><span class="token3">upGrade</span><span class="token1">(</span>Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">,</span> $resource_row<span class="token1">[</span><span class="token4">'user_growth'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
```
```
修改用戶積分與成長值之后添加記錄
```
<pre class="calibre14">```
<span class="token5">//積分</span>
$points_row<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'user_name'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'class_id'</span><span class="token1">]</span> <span class="token">=</span> Points_LogModel<span class="token1">:</span><span class="token1">:</span>ONBUY<span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'points_log_points'</span><span class="token1">]</span> <span class="token">=</span> $user_points<span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'points_log_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'points_log_desc'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'確認收貨'</span><span class="token1">;</span>
$points_row<span class="token1">[</span><span class="token4">'points_log_flag'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'confirmorder'</span><span class="token1">;</span>
$Points_LogModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Points_LogModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$Points_LogModel<span class="token">-</span><span class="token">></span><span class="token3">addLog</span><span class="token1">(</span>$points_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//成長值</span>
$grade_row<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'user_name'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'class_id'</span><span class="token1">]</span> <span class="token">=</span> Grade_LogModel<span class="token1">:</span><span class="token1">:</span>ONBUY<span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'grade_log_grade'</span><span class="token1">]</span> <span class="token">=</span> $user_grade<span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'grade_log_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'grade_log_desc'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'確認收貨'</span><span class="token1">;</span>
$grade_row<span class="token1">[</span><span class="token4">'grade_log_flag'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'confirmorder'</span><span class="token1">;</span>
$Grade_LogModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Grade_LogModel</span><span class="token1">;</span>
$Grade_LogModel<span class="token">-</span><span class="token">></span><span class="token3">addLog</span><span class="token1">(</span>$grade_row<span class="token1">)</span><span class="token1">;</span>
```
```
確認收貨成功之后,將信息添加到統計中心。
#### 5.評價訂單
頁面鏈接:/index.php?ctl=Buyer\_Order&met=evaluation&act=add&order\_id=訂單編號
控制器文件路徑:\\shop\\controllers\\Buyer\\OrderCtl.php
控制器:Buyer\_OrderCtl
方法:evaluation()
根據傳遞的參數act,判斷是追加評價,初次評價還是顯示評價列表頁
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span>$act <span class="token">==</span> <span class="token4">'again'</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//追加評價</span>
<span class="token5">//獲取已評價信息</span>
$data <span class="token">=</span> $Goods_EvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$evaluation_goods_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//商品信息</span>
$data<span class="token1">[</span><span class="token4">'goods_base'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">current</span><span class="token1">(</span>$Order_GoodsModel<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">'goods_id'</span><span class="token">=</span><span class="token">></span>$data<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'order_id'</span><span class="token">=</span><span class="token">></span>$data<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//訂單信息</span>
$data<span class="token1">[</span><span class="token4">'order_base'</span><span class="token1">]</span> <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$data<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//評價用戶的信息</span>
$data<span class="token1">[</span><span class="token4">'user_info'</span><span class="token1">]</span> <span class="token">=</span> $User_InfoModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$data<span class="token1">[</span><span class="token4">'order_base'</span><span class="token1">]</span><span class="token1">[</span><span class="token4">'buyer_user_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token4">'json'</span> <span class="token">==</span> $this<span class="token">-</span><span class="token">></span>typ<span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">return</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> $data<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$this<span class="token">-</span><span class="token">></span>view<span class="token">-</span><span class="token">></span><span class="token3">setMet</span><span class="token1">(</span><span class="token4">'evalagain'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
elseif <span class="token1">(</span>$act <span class="token">==</span> <span class="token4">'add'</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//初次評價</span>
<span class="token5">//訂單信息</span>
$data<span class="token1">[</span><span class="token4">'order_base'</span><span class="token1">]</span> <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//評價用戶的信息</span>
$data<span class="token1">[</span><span class="token4">'user_info'</span><span class="token1">]</span> <span class="token">=</span> $User_InfoModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$data<span class="token1">[</span><span class="token4">'order_base'</span><span class="token1">]</span><span class="token1">[</span><span class="token4">'buyer_user_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//店鋪信息</span>
$data<span class="token1">[</span><span class="token4">'shop_base'</span><span class="token1">]</span> <span class="token">=</span> $Shop_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$data<span class="token1">[</span><span class="token4">'order_base'</span><span class="token1">]</span><span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//查找出訂單中的商品</span>
$order_goods_id_row <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getKeyByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'order_id'</span> <span class="token">=</span><span class="token">></span> $order_id<span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//商品信息</span>
foreach <span class="token1">(</span>$order_goods_id_row as $ogkey <span class="token">=</span><span class="token">></span> $order_good_id<span class="token1">)</span>
<span class="token1">{</span>
$data<span class="token1">[</span><span class="token4">'order_goods'</span><span class="token1">]</span><span class="token1">[</span><span class="token1">]</span> <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_good_id<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token4">'json'</span> <span class="token">==</span> $this<span class="token">-</span><span class="token">></span>typ<span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">return</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> $data<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
$this<span class="token">-</span><span class="token">></span>view<span class="token">-</span><span class="token">></span><span class="token3">setMet</span><span class="token1">(</span><span class="token4">'evaladd'</span><span class="token1">)</span><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>
<span class="token5">//獲取買家的所有評論</span>
$user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$goods_evaluation_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$goods_evaluation_row<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> $user_id<span class="token1">;</span>
$data <span class="token">=</span> $Goods_EvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">getEvaluationByUser</span><span class="token1">(</span>$goods_evaluation_row<span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">,</span> $page<span class="token1">,</span> $rows<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
1.初次評價
方法鏈接:index.php?ctl=Goods\_Evaluation&met=addGoodsEvaluation&typ=json
控制器文件:\\shop\\controllers\\Goods\\EvaluationCtl.php
控制器:Goods\_EvaluationCtl
方法:addGoodsEvaluation()
循環商品評價
```
<pre class="calibre14">```
<span class="token3">foreach</span><span class="token1">(</span>$evaluation as $key <span class="token">=</span><span class="token">></span> $val<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//訂單商品信息</span>
$order_goods <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$val<span class="token1">[</span><span class="token6">0</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//商品信息</span>
$goods_base <span class="token">=</span> $Goods_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_goods<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//訂單信息</span>
$order_base <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_goods<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//有違禁詞</span>
<span class="token2">if</span> <span class="token1">(</span>Text_Filter<span class="token1">:</span><span class="token1">:</span><span class="token3">checkBanned</span><span class="token1">(</span>$val<span class="token1">[</span><span class="token6">3</span><span class="token1">]</span><span class="token1">,</span> $matche_row<span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$data <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$msg <span class="token">=</span> <span class="token3">__</span><span class="token1">(</span><span class="token4">'含有違禁詞'</span><span class="token1">)</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span>
$this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">,</span> $msg<span class="token1">,</span> $status<span class="token1">)</span><span class="token1">;</span>
<span class="token2">return</span> <span class="token6">false</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//修改商品的評價</span>
$evaluation_num <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>goodsEvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">countGoodsEvaluation</span><span class="token1">(</span>$order_goods<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//星級好評數</span>
$goods_evaluation_good_star <span class="token">=</span> <span class="token3">ceil</span><span class="token1">(</span><span class="token1">(</span>$evaluation_num <span class="token">*</span> $goods_base<span class="token1">[</span><span class="token4">'goods_evaluation_good_star'</span><span class="token1">]</span> <span class="token">+</span> $val<span class="token1">[</span><span class="token6">1</span><span class="token1">]</span><span class="token1">)</span> <span class="token">/</span> <span class="token1">(</span>$evaluation_num <span class="token">*</span> <span class="token6">1</span> <span class="token">+</span> <span class="token6">1</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$goods_evaluation_count <span class="token">=</span> $evaluation_num <span class="token">*</span> <span class="token6">1</span> <span class="token">+</span> <span class="token6">1</span><span class="token1">;</span>
$edit_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$edit_row<span class="token1">[</span><span class="token4">'goods_evaluation_good_star'</span><span class="token1">]</span> <span class="token">=</span> $goods_evaluation_good_star<span class="token1">;</span>
$edit_row<span class="token1">[</span><span class="token4">'goods_evaluation_count'</span><span class="token1">]</span> <span class="token">=</span> $goods_evaluation_count<span class="token1">;</span>
$Goods_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBaseFalse</span><span class="token1">(</span>$order_goods<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">,</span> $edit_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//修改商品common表中的評論數量</span>
$edit_common_row<span class="token1">[</span><span class="token4">'common_evaluate'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">1</span><span class="token1">;</span>
$Goods_CommonModel<span class="token">-</span><span class="token">></span><span class="token3">editCommonTrue</span><span class="token1">(</span>$order_goods<span class="token1">[</span><span class="token4">'common_id'</span><span class="token1">]</span><span class="token1">,</span>$edit_common_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//插入商品評價表</span>
$flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>goodsEvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">addEvalution</span><span class="token1">(</span>$add_row<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$flag<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">/********************************************************/</span>
<span class="token5">//評價成功添加數據到統計中心 商品評分</span>
$analytics_data <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span>
<span class="token4">'product_id'</span><span class="token">=</span><span class="token">></span>$goods_base<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span><span class="token1">,</span>
<span class="token4">'shop_id'</span><span class="token">=</span><span class="token">></span>$goods_base<span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span><span class="token1">,</span>
<span class="token4">'score'</span><span class="token">=</span><span class="token">></span>$goods_evaluation_good_star<span class="token1">,</span>
<span class="token1">)</span><span class="token1">;</span>
Yf_Plugin_Manager<span class="token1">:</span><span class="token1">:</span><span class="token3">getInstance</span><span class="token1">(</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">trigger</span><span class="token1">(</span><span class="token4">'analyticsScore'</span><span class="token1">,</span>$analytics_data<span class="token1">)</span><span class="token1">;</span>
<span class="token5">/********************************************************/</span>
<span class="token1">}</span>
<span class="token5">//修改訂單商品表</span>
$edit_order_goods<span class="token1">[</span><span class="token4">'order_goods_evaluation_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>EVALUATION_YES<span class="token1">;</span>
$Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$val<span class="token1">[</span><span class="token6">0</span><span class="token1">]</span><span class="token1">,</span> $edit_order_goods<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
添加店鋪評價
```
<pre class="calibre14">```
$Shop_EvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">addEvaluation</span><span class="token1">(</span>$add_shop_row<span class="token1">)</span><span class="token1">;</span>
<span class="token5">/********************************************************/</span>
<span class="token5">//評價成功添加數據到統計中心 店鋪評分</span>
$analytics_data <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span>
<span class="token4">'shop_id'</span><span class="token">=</span><span class="token">></span>$order_base<span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span>
<span class="token1">)</span><span class="token1">;</span>
Yf_Plugin_Manager<span class="token1">:</span><span class="token1">:</span><span class="token3">getInstance</span><span class="token1">(</span><span class="token1">)</span><span class="token">-</span><span class="token">></span><span class="token3">trigger</span><span class="token1">(</span><span class="token4">'analyticsShopCredit'</span><span class="token1">,</span>$analytics_data<span class="token1">)</span><span class="token1">;</span>
<span class="token5">/********************************************************/</span>
<span class="token5">//修改訂單中的評價信息</span>
$edit_order<span class="token1">[</span><span class="token4">'order_buyer_evaluation_status'</span><span class="token1">]</span> <span class="token">=</span> Order_BaseModel<span class="token1">:</span><span class="token1">:</span>BUYER_EVALUATE_YES<span class="token1">;</span>
$edit_order<span class="token1">[</span><span class="token4">'order_buyer_evaluation_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$order_base<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">,</span> $edit_order<span class="token1">)</span><span class="token1">;</span>
```
```
評價成功后,修改用戶的積分及成長值。
2.追加評價
方法鏈接:index.php?ctl=Goods\_Evaluation&met=againGoodsEvaluation&typ=json
控制器文件:\\shop\\controllers\\Goods\\EvaluationCtl.php
控制器:Goods\_EvaluationCtl
方法:againGoodsEvaluation()
獲取追加評價的商品的初次評價信息
```
<pre class="calibre14">```
$evaluation_base <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>goodsEvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$evaluation_goods_id<span class="token1">)</span><span class="token1">;</span>
```
```
判斷是否存在違禁詞
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span>Text_Filter<span class="token1">:</span><span class="token1">:</span><span class="token3">checkBanned</span><span class="token1">(</span>$content<span class="token1">,</span> $matche_row<span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$data <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$msg <span class="token">=</span> <span class="token3">__</span><span class="token1">(</span><span class="token4">'含有違禁詞'</span><span class="token1">)</span><span class="token1">;</span>
$status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span>
$this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">,</span> $msg<span class="token1">,</span> $status<span class="token1">)</span><span class="token1">;</span>
<span class="token2">return</span> <span class="token6">false</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
修改商品評價數
```
<pre class="calibre14">```
$edit_row<span class="token1">[</span><span class="token4">'goods_evaluation_count'</span><span class="token1">]</span> <span class="token">=</span> $goods_evaluation_count<span class="token1">;</span>
$Goods_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Goods_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$edit_flag <span class="token">=</span> $Goods_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$goods_id<span class="token1">,</span> $edit_row<span class="token1">)</span><span class="token1">;</span>
```
```
插入商品評價表
```
<pre class="calibre14">```
$add_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>goodsEvaluationModel<span class="token">-</span><span class="token">></span><span class="token3">addEvalution</span><span class="token1">(</span>$add_row<span class="token1">)</span><span class="token1">;</span>
```
```
修改訂單商品表中商品的評價狀態
```
<pre class="calibre14">```
$og_update_flag <span class="token">=</span> $order_goods_model<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$order_goods_id<span class="token1">,</span> <span class="token1">[</span><span class="token4">'order_goods_evaluation_status'</span><span class="token">=</span><span class="token">></span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>EVALUATION_AGAIN<span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
```
```
追加評價成功后,修改用戶的積分及成長值。
#### 5.買家取消訂單
方法路徑:index.php?ctl=Buyer\_Order&met=orderCancel&user=buyer
文件路徑:\\shop\\controllers\\Buyer\\OrderCtl.php
控制器:Buyer\_OrderCtl
方法:orderCancel()
根據typ判斷是顯示頁面,還是操作
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span>$typ <span class="token">==</span> <span class="token4">'e'</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//顯示頁面</span>
$cancel_row<span class="token1">[</span><span class="token4">'cancel_identity'</span><span class="token1">]</span> <span class="token">=</span> Order_CancelReasonModel<span class="token1">:</span><span class="token1">:</span>CANCEL_BUYER<span class="token1">;</span>
<span class="token5">//獲取取消原因</span>
$Order_CancelReasonModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">Order_CancelReasonModel</span><span class="token1">;</span>
$reason <span class="token">=</span> <span class="token3">array_values</span><span class="token1">(</span>$Order_CancelReasonModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span>$cancel_row<span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
include $this<span class="token">-</span><span class="token">></span>view<span class="token">-</span><span class="token">></span><span class="token3">getView</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
處理取消訂單
<span class="token1">}</span>
```
```
處理取消訂單
獲取訂單詳情,判斷訂單的狀態與下單者是否是當前用戶
```
<pre class="calibre14">```
$order_base <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_id<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//加入貨到付款訂單取消功能</span>
<span class="token2">if</span><span class="token1">(</span> <span class="token1">(</span>$order_base<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="token">&&</span> $order_base<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_WAIT_PREPARE_GOODS<span class="token1">)</span> <span class="token5">//貨到付款+等待發貨</span>
<span class="token">||</span> $order_base<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_WAIT_PAY
<span class="token">&&</span> $order_base<span class="token1">[</span><span class="token4">'buyer_user_id'</span><span class="token1">]</span> <span class="token">==</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">)</span>
<span class="token1">{</span>
<span class="token1">}</span>
```
```
修改訂單信息
```
<pre class="calibre14">```
<span class="token5">//訂單狀態</span>
$condition<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_CANCEL<span class="token1">;</span>
<span class="token5">//訂單取消原因</span>
$condition<span class="token1">[</span><span class="token4">'order_cancel_reason'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">addslashes</span><span class="token1">(</span>$state_info<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//訂單取消者身份</span>
$condition<span class="token1">[</span><span class="token4">'order_cancel_identity'</span><span class="token1">]</span> <span class="token">=</span> Order_BaseModel<span class="token1">:</span><span class="token1">:</span>IS_BUYER_CANCEL<span class="token1">;</span>
<span class="token5">//訂單取消時間</span>
$condition<span class="token1">[</span><span class="token4">'order_cancel_date'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$edit_flag <span class="token">=</span> $Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$order_id<span class="token1">,</span> $condition<span class="token1">)</span><span class="token1">;</span>
```
```
修改訂單商品信息
```
<pre class="calibre14">```
<span class="token5">//訂單商品狀態</span>
$edit_row<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_CANCEL<span class="token1">;</span>
$order_goods_id <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getKeyByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'order_id'</span> <span class="token">=</span><span class="token">></span> $order_id<span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$edit_flag1 <span class="token">=</span> $Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$order_goods_id<span class="token1">,</span> $edit_row<span class="token1">)</span><span class="token1">;</span>
```
```
修改商品庫存
修改paycenter中的訂單狀態
```
<pre class="calibre14">```
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=cancelOrder&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
判斷訂單是否使用平臺紅包,如果使用,將平臺紅包狀態改為未使用
```
<pre class="calibre14">```
<span class="token5">//判斷訂單是否使用平臺紅包,如果使用,將平臺紅包狀態改為未使用</span>
$RedPacket_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">RedPacket_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$red_data <span class="token">=</span> $RedPacket_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOneByWhere</span><span class="token1">(</span><span class="token1">[</span><span class="token4">'redpacket_order_id'</span><span class="token">=</span><span class="token">></span>$order_base<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$red_data<span class="token1">)</span>
<span class="token1">{</span>
$red_flag <span class="token">=</span> $RedPacket_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editRedPacket</span><span class="token1">(</span>$red_data<span class="token1">[</span><span class="token4">'redpacket_id'</span><span class="token1">]</span><span class="token1">,</span> <span class="token1">[</span><span class="token4">'redpacket_state'</span><span class="token">=</span><span class="token">></span>RedPacket_BaseModel<span class="token1">:</span><span class="token1">:</span>UNUSED<span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
訂單取消成功,加入統計中心
- 序言
- 系統要求
- 版本更新日志
- 遠豐商城技術對接說明
- 開發指導
- 框架內容
- 基礎
- 開發規范
- 目錄結構
- 架構
- 架構總覽
- 數據庫
- 數據庫連接
- 基本使用
- 緩存
- 配置
- 路由
- 數據字典
- ucenter
- shop
- paycenter
- ucenter_admin
- shop_admin
- paycenter_admin
- 通訊內容
- 商家中心
- 頂部導航欄
- 店鋪信息欄
- 店鋪及商品提示欄
- 交易提示欄
- 銷售情況統計欄
- 單品銷量排行欄
- 店鋪運營推廣欄
- 平臺聯系方式欄
- 訂單物流
- 商品
- 商品列表
- 商品詳情
- 商品發布與編輯
- 分銷商品
- 關聯版式
- 商品規格
- 圖片空間
- 淘寶導入
- 訂單流程
- 交易訂單
- 訂單退款/退貨
- 促銷
- 團購管理
- 加價購
- 限時折扣
- 滿即送
- 代金券管理
- 分銷
- 店鋪
- 店鋪設置
- 自銷產品供應商
- 實體店鋪
- 品牌申請
- 店鋪信息
- 消費者保障服務
- 門店賬號
- 分銷商--產品供應商
- 分銷明細
- 批發市場
- 售后服務
- 咨詢管理
- 投訴管理
- 退款管理
- 退貨管理
- 云方案架構
- 負載集群
- 云存儲
- 接口
- Api接口說明
- 品牌
- 商品規格
- 商品類型
- 商品分類
- 商品
- 訂單
- 商品/店鋪收藏
- 足跡
- 退款及退貨
- 商家店鋪
- 會員
- 入駐協議
- 訂單接口
- 商品接口
- 訂單物流接口
- 商家中心接口
- 促銷接口
- 快遞鳥物流接口
- 代金券接口
- 首頁版塊
- 團購
- 平臺紅包
- 限時折扣接口
- 拼團接口
- wap首頁模板
- 雜項
- 遠程上傳圖片
- JS
- 銀聯支付
- 多語言
- 商品評分
- 圖片加載
- 買家申請退款退貨
- 商家退款退貨
- 平臺退款退貨
- 添加發票
- 提交訂單
- 確認訂單
- 運費銷售區域
- 獲取會員地址
- 充值
- 導出XLS
- 商城系統集成
- 多語言實現
- 三級分銷推廣鏈接發展推廣員
- app.ini.php
- 去分銷
- 版本更新
- 物流支持
- 運營人員建議
- 業務邏輯
- 統計結算
- 客服消息
- 賬號
- 三級分銷
- IM
- 配置
- 平臺帳號
- 活動數據表說明