188 行
6.3 KiB
PHP
可执行文件
188 行
6.3 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Business;
|
|
|
|
use Common\Model\RetailStoreModel;
|
|
use Retail\Model\UuModel;
|
|
|
|
//[1.7.90]
|
|
|
|
/**
|
|
* UU配送
|
|
* Class UU
|
|
* [
|
|
* getUuDeliveryList 获取UU配送记录
|
|
* getUuDeliveryTotal UU订单统计
|
|
* handleMap 处理条件
|
|
* ]
|
|
* @package Retail\Business
|
|
* @author GuYunQinFeng
|
|
*/
|
|
class UU
|
|
{
|
|
/**
|
|
* 获取UU配送记录
|
|
* @param $param
|
|
* [
|
|
* store_id 门店id
|
|
* merchant_id 商户id
|
|
* time 添加时间
|
|
* order_type 订单类型 1普通 2拼团 3秒杀
|
|
* order_id 门店订单号
|
|
* status 订单状态 当前状态0未下单1下单成功 3跑男抢单 4已到达 5已取件 6到达目的地 10收件人已收货 -1订单取消
|
|
* page 页码
|
|
* limit 页长
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function getUuDeliveryList($param)
|
|
{
|
|
$where = $this->handleMap($param);
|
|
$UuModel = new UuModel();
|
|
if ($param['page'] && $param['limit']) {
|
|
$list = $UuModel->getSelect($where, '', 'id desc', "{$param['page']}, {$param['limit']}");
|
|
} else {
|
|
$list = $UuModel->getSelect($where, '', 'id desc');
|
|
}
|
|
if ($list) {
|
|
$RetailStoreModel = new RetailStoreModel();
|
|
$count = $UuModel->getCount($where);
|
|
$storeIdArr = [];
|
|
$storeInfoArr = [];
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
// 减少门店名称重复查询
|
|
if (in_array($val['storeid'], $storeIdArr)) {
|
|
$val['store_name'] = $storeInfoArr[$val['storeid']]['name'];
|
|
} else {
|
|
$val['store_name'] = $RetailStoreModel->getFindField(['id' => $val['storeid']], 'storetag');
|
|
$storeIdArr[] = $val['storeid'];
|
|
$storeInfoArr[$val['storeid']]['name'] = $val['store_name'];
|
|
}
|
|
switch ($val['state']) {
|
|
case 0:
|
|
$val['order_status'] = '未下单UU';
|
|
break;
|
|
case 1:
|
|
$val['order_status'] = '下单成功';
|
|
break;
|
|
case 3:
|
|
$val['order_status'] = '跑男抢单';
|
|
break;
|
|
case 4:
|
|
$val['order_status'] = '骑手已达到';
|
|
break;
|
|
case 5:
|
|
$val['order_status'] = '已取件';
|
|
break;
|
|
case 6:
|
|
$val['order_status'] = '骑手到达目的地';
|
|
break;
|
|
case 10:
|
|
$val['order_status'] = '收件人已收货';
|
|
break;
|
|
case -1:
|
|
$val['order_status'] = '已取消配送';
|
|
break;
|
|
}
|
|
switch ($val['order_genre']) {
|
|
case 1:
|
|
$val['order_type'] = '商城订单';
|
|
break;
|
|
case 2:
|
|
$val['order_type'] = '拼团订单';
|
|
break;
|
|
case 3:
|
|
$val['order_type'] = '秒杀订单';
|
|
break;
|
|
}
|
|
if (!empty($val['addtime'])) {
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['addtime']);
|
|
unset($val['addtime']);
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'],'数据获取成功',[
|
|
'list' => $list,
|
|
'count' => $count,
|
|
]);
|
|
} else {
|
|
return callBack(statusCode()['success'],'暂无数据',[
|
|
'list' => [],
|
|
'count' => 0,
|
|
]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* UU订单统计
|
|
*/
|
|
public function getUuDeliveryTotal($param)
|
|
{
|
|
$where = $this->handleMap($param);
|
|
$UuModel = new UuModel();
|
|
$order_count = $UuModel->getCount($where);
|
|
if (empty($param['status']) || $param['status'] == 2) {
|
|
$where['state'] = 10;
|
|
$complete = $UuModel->getCount($where);
|
|
if (empty($param['status'])) {
|
|
$where['state'] = ['not in', '0,-1'];
|
|
}
|
|
$cost_total = $UuModel->getSum($where, 'need_paymoney');
|
|
$cost_total = $cost_total ? $cost_total : 0;
|
|
$coupon_money = $UuModel->getSum($where, 'total_priceoff');
|
|
$coupon_money = $coupon_money ? $coupon_money : 0;
|
|
} else {
|
|
$complete = 0;
|
|
$cost_total = 0;
|
|
$coupon_money = 0;
|
|
}
|
|
return callBack(statusCode()['success'],'数据获取成功',[
|
|
'order_count' => $order_count,
|
|
'complete' => $complete,
|
|
'cost_total' => $cost_total,
|
|
'coupon_money' => $coupon_money,
|
|
]);
|
|
}
|
|
|
|
|
|
/**
|
|
* 条件处理
|
|
*/
|
|
public function handleMap($param)
|
|
{
|
|
$where['merchantid'] = $param['merchant_id'];
|
|
if (!empty($param['order_id'])) {
|
|
$where['order_id'] = ['like', '%' . $param['order_id'] . '%'];
|
|
}
|
|
if (!empty($param['store_id'])) {
|
|
$where['storeid'] = $param['store_id'];
|
|
}
|
|
if (!empty($param['status'])) {
|
|
switch ($param['status']) {
|
|
case 1:
|
|
$where['state'] = ['neq', 10];
|
|
break;
|
|
case 2:
|
|
$where['state'] = 10;
|
|
break;
|
|
}
|
|
}
|
|
if (!empty($param['order_type'])) {
|
|
$where['order_genre'] = $param['order_type'];
|
|
}
|
|
$time = $param['time'];
|
|
if (!empty($time)) {
|
|
if(!is_array($time)){
|
|
$time = explode(',',$time);
|
|
}
|
|
$start_time = strtotime($time[0]);
|
|
$end_time = strtotime($time[1]);
|
|
$where['addtime'] = ['between', [$start_time, $end_time]];
|
|
}else if ($param['is_export']){
|
|
//默认导出当日记录
|
|
$where['addtime'] = ['between', [strtotime(date('Y-m-d 00:00:00')), time()]];
|
|
}
|
|
return $where;
|
|
}
|
|
}
|