orderRecordTerm($param); try { $list = $this->getSelect($where, '*', 'id desc', $page . ',' . $limit); } catch (\Exception $e) { return []; } if (!empty($list)) { $count = $this->getCount($where); $StoreModel = new RetailStoreModel(); $delivery = new RetailMaiyatianDeliveryModel; $enum = new MaiyatianEnum; foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['order_customer'] = @json_decode($val['order_customer'], true); $deliverys = $delivery->where(['order_id' => $val['order_id']])->order('update_time DESC')->select(); $accept = array_search('GRABBED', array_column($deliverys, 'status')); $val['accept_time'] = '--'; if ($accept !== false) { $val['accept_time'] = date('Y-m-d H:i:s', $deliverys[$accept]['update_time']); } $accept = array_search('DONE', array_column($deliverys, 'status')); $val['complete_time'] = '--'; if ($accept !== false) { $val['complete_time'] = date('Y-m-d H:i:s', $deliverys[$accept]['update_time']); } $val['status_name'] = '--'; if ($item = $enum->getKey('delivery.status', $deliverys[0]['status'])) { $val['status_name'] = empty($item['value']) ? '--' : $item['value']; } $val['distance'] = '--'; if ($item = $enum->getKey('delivery.logistic_tag', strtoupper($deliverys[0]['logistic_tag']))) { $val['distance'] = empty($item['value']) ? '--' : $item['value']; } $val['rider_mobile'] = empty($deliverys[0]['rider_phone']) ? '--' : $deliverys[0]['rider_phone']; $val['rider_name'] = empty($deliverys[0]['rider_name']) ? '--' : $deliverys[0]['rider_name']; $val['bill_order_number'] = empty($val['order_id']) ? '--' : $val['order_id']; $val['total_price'] = empty($val['delivery_fee']) ? '--' : $val['delivery_fee']; $val['storetag'] = $StoreModel->getFindField([ 'id' => $val['store_id'] ], 'storetag'); } } return callBack(statusCode()['success'], "查询成功", ['list' => $list, 'count' => $count ? $count : 0]); } /** * 配送订单记录的查询条件 * @param $param * [ * merchant_id * store_id * add_time * status * order_number * ] * @return mixed */ public function orderRecordTerm($param) { if (!empty($param['add_time'])) { $start_time = strtotime($param['add_time'][0]); $end_time = strtotime($param['add_time'][1]); $where['update_time'] = ['between', [$start_time, $end_time]]; } if (!empty($param['order_number'])) { $where['order_id'] = $param['order_number']; } if (!empty($param['store_id'])) { $where['store_id'] = $param['store_id']; } $where['merchant_id'] = $param['merchant_id']; return $where; } }