100 行
3.7 KiB
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;
|
|
}
|
|
} |