Example #1
0
 static function getPayList($orderby = 'order_id', $order = 'DESC', $limit = 30, array $query_conds = array(), &$statinfo = array())
 {
     $where = "AND o.`pay_status`=2";
     if (isset($query_conds['seeall']) && $query_conds['seeall']) {
         $where = "";
     }
     $where_cond = '';
     if (isset($query_conds['target']) && $query_conds['target']) {
         if (is_numeric($query_conds['target'])) {
             $where_cond .= " AND o.`player_id`=" . $query_conds['target'];
         } else {
             $where_cond .= " AND p.`truename` like '%%" . D()->escape_string($query_conds['target']) . "%%'";
         }
     }
     if (isset($query_conds['start_date']) && $query_conds['start_date']) {
         $starttime = strtotime($query_conds['start_date'] . DAY_BEGIN);
         $where_cond .= " AND o.`add_time`>=" . $starttime;
     }
     if (isset($query_conds['end_date']) && $query_conds['end_date']) {
         $endtime = strtotime($query_conds['end_date'] . DAY_END);
         $where_cond .= " AND o.`add_time`<=" . $endtime;
     }
     $where = $where . $where_cond;
     $sql = "SELECT o.*,u.nickname,u.logo,p.truename AS player_name\n\t\t\t\t\t\t\t\tFROM `{order_info}` o INNER JOIN `{member}` u ON o.user_id=u.uid\n\t\t\t\t\t\t\t\t     INNER JOIN `{player}` p ON o.player_id=p.player_id\n\t\t\t\t       WHERE 1 {$where}\n\t\t           ORDER BY `%s` %s";
     $sqlcnt = "SELECT COUNT(o.order_id) AS rcnt FROM {order_info} o INNER JOIN `{player}` p ON o.player_id=p.player_id WHERE 1 {$where}";
     $result = D()->pager_query($sql, $limit, $sqlcnt, 0, $orderby, $order)->fetch_array_all();
     $statinfo = ['total_pay' => 0, 'current_pay' => 0];
     $statinfo['total_pay'] = D()->query("SELECT SUM(o.`goods_amount`) AS total_pay FROM `{order_info}` o INNER JOIN `{player}` p ON o.player_id=p.player_id WHERE o.`pay_status`=2 {$where_cond}")->result();
     if (empty($statinfo['total_pay'])) {
         $statinfo['total_pay'] = 0;
     }
     if (!empty($result)) {
         foreach ($result as &$it) {
             $it['order_status_name'] = Fn::order_status($it['order_status']);
             $it['pay_status_name'] = Fn::pay_status($it['pay_status']);
             if ($it['pay_status'] == PS_PAYED) {
                 $statinfo['current_pay'] += $it['goods_amount'];
             }
         }
     }
     return $result;
 }
Example #2
0
 /**
  * 生成订单各种状态显示html
  * 
  * @param array $order
  * @return string
  */
 static function genStatusHtml(array &$order)
 {
     $html = '';
     $order['active_order'] = 0;
     //便于区分订单显示样式
     $br = '<br/>';
     if (!in_array($order['order_status'], [OS_CANCELED, OS_INVALID, OS_RETURNED])) {
         //订单“活动中”
         $order['active_order'] = 1;
         if ($order['pay_status'] == PS_UNPAYED) {
             //未支付
             $html .= '<p class="order-status-txt">' . Fn::pay_status($order['pay_status']) . '</p>';
             $html .= '<p class="order-status-op"><a href="javascript:;" class="btn btn-orange btn-order-topay" data-order_id="' . $order['order_id'] . '">立即付款</a></p>';
             $html .= '<p class="order-status-op last"><a href="javascript:;" class="btn-order-cancel" data-order_id="' . $order['order_id'] . '">取消订单</a></p>';
         } elseif ($order['pay_status'] == PS_PAYED) {
             //已支付
             $html .= '<p class="order-status-txt">' . Fn::pay_status($order['pay_status']) . $br . Fn::shipping_status($order['shipping_status']);
             if ($order['shipping_status'] == SS_RECEIVED) {
                 $html .= $br . '<span style="color:green">' . Fn::zonghe_status(CS_FINISHED) . '</span>';
                 //订单完成
                 $html .= '</p>';
                 $order['active_order'] = 0;
             } elseif ($order['shipping_status'] == SS_SHIPPED) {
                 $html .= '</p><p class="order-status-op"><a href="javascript:;" class="btn btn-orange btn-ship-confirm" data-order_id="' . $order['order_id'] . '">确认收货</a></p>';
             } else {
                 $html .= '</p>';
             }
         } else {
             //支付中
             $html .= '<p class="order-status-txt">' . Fn::order_status(OS_CONFIRMED) . $br . Fn::pay_status($order['pay_status']) . '</p>';
         }
     } else {
         $html .= '<p>' . Fn::order_status($order['order_status']) . '</p>';
     }
     return $html;
 }