文件
mashangyoujiu/Application/Common/Model/RetailMaiyatianOrderModel.class.php

100 行
3.7 KiB
PHP
可执行文件

<?php
namespace Common\Model;
use Common\Model\RetailMaiyatianDeliveryModel;
use Common\Lib\MaiyatianEnum;
class RetailMaiyatianOrderModel extends BaseModel
{
protected $tableName = 'retail_maiyatian_order';
/**
* 配送订单记录
* @param $param
* [
* merchant_id
* store_id
* ]
* @return mixed
*/
public function orderRecord($param)
{
$page = $param['page'];
$limit = $param['limit'];
$where = $this->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;
}
}