// +---------------------------------------------------------------------- namespace app\common\model; use think\facade\Db; use think\Model; /** * Class Config 系统配置 * @package common\model */ class StoreOrder extends Model { /** * 更改订单信息 */ public function edit($data, $condition, $limit = 0) { return $this->where($condition)->limit($limit)->update($data); } /** * 取得订单列表(所有) */ public function getOrderList($condition, $pagesize = '', $field = '*', $order = 'id desc', $limit = 0, $extend = []) { if ($pagesize) { $list_paginate = $this->field($field)->where($condition)->order($order)->paginate(['list_rows' => $pagesize, 'query' => request()->param()], false); $this->page_info = $list_paginate; $list = $list_paginate->items(); } else { $list = $this->field($field)->where($condition)->order($order)->limit($limit)->select()->toArray(); } if (empty($list)) { return []; } $order_list = []; foreach ($list as $order) { if (isset($order['order_state'])) { $order['state_desc'] = get_order_state($order); } if (isset($order['payment_code'])) { $order['payment_name'] = get_order_payment_name($order['payment_code']); } $order['pay_amount'] = round($order['order_amount'] - $order['deduction_amount'], 2); $order['add_time'] = date('Y-m-d H:i:s', $order['add_time']); $order['finished_time'] = date('Y-m-d H:i:s', $order['finished_time']); $order_list[$order['id']] = $order; } if (empty($order_list)) { $order_list = $list; } //追加返回店铺信息 if (in_array('store', $extend)) { $store_id_array = []; foreach ($order_list as $value) { if (!in_array($value['store_id'], $store_id_array)) $store_id_array[] = $value['store_id']; } $store_list = Db::name('store')->where('store_id', 'in', array_values($store_id_array))->select()->toArray(); $store_new_list = []; foreach ($store_list as $store) { $store['store_avatar'] = get_store_logo($store['store_avatar']); $store_new_list[$store['store_id']] = $store; } foreach ($order_list as $order_id => $order) { $order_list[$order_id]['extend_store'] = isset($store_new_list[$order['store_id']]) ? $store_new_list[$order['store_id']] : ''; } } //追加返回买家信息 if (in_array('member', $extend)) { foreach ($order_list as $order_id => $order) { $order_list[$order_id]['extend_member'] = model('member')->getMemberInfoByID($order['buyer_id']); } } return $order_list; } /** * 获取订单详情 */ public function getOrderInfo($condition, $extend = [], $fields = '*') { $order_info = $this->field($fields)->where($condition)->find(); if (empty($order_info)) { return []; } if (isset($order_info['order_state'])) { $order_info['state_desc'] = get_order_state($order_info); } if (isset($order_info['payment_code'])) { $order_info['payment_name'] = get_order_payment_name($order_info['payment_code']); } $order_info['pay_amount'] = round($order_info['order_amount'] - $order_info['deduction_amount'], 2); $order_info['add_time'] = date('Y-m-d H:i:s', $order_info['add_time']); $order_info['finished_time'] = date('Y-m-d H:i:s', $order_info['finished_time']); //追加返回店铺信息 if (in_array('store', $extend)) { $store = Db::name('store')->where('store_id', $order_info['store_id'])->find(); $store['store_avatar'] = get_store_logo($store['store_avatar']); $order_info['extend_store'] = $store; } //追加返回买家信息 if (in_array('member', $extend)) { $order_info['extend_member'] = model('member')->getMemberInfoByID($order_info['buyer_id']); } return $order_info; } /** * 取得订单数量 * @access public * @author csdeshang * @param array $condition 条件 * @return int */ public function getOrderCount($condition) { return $this->where($condition)->count(); } }