|
|
@@ -11,22 +11,12 @@
|
|
|
|
|
|
namespace App\Services\Api;
|
|
|
|
|
|
-use App\Models\AccountLogModel;
|
|
|
-use App\Models\CarCategoryModel;
|
|
|
-use App\Models\DriverModel;
|
|
|
-use App\Models\FreightCategoryModel;
|
|
|
-use App\Models\FreightPackageModel;
|
|
|
-use App\Models\FreightSpecModel;
|
|
|
use App\Models\GoodsModel;
|
|
|
-use App\Models\MemberCouponModel;
|
|
|
use App\Models\MemberModel;
|
|
|
-use App\Models\OrderFreightModel;
|
|
|
use App\Models\OrderGoodsModel;
|
|
|
use App\Models\OrderModel;
|
|
|
-use App\Models\PaymentModel;
|
|
|
use App\Services\BaseService;
|
|
|
use App\Services\ConfigService;
|
|
|
-use App\Services\MapService;
|
|
|
use App\Services\RedisService;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use wxkxklmyt\Scws;
|
|
|
@@ -72,25 +62,25 @@ class OrderService extends BaseService
|
|
|
public function getDataList($params, $pageSize = 15)
|
|
|
{
|
|
|
$where = ['a.mark' => 1];
|
|
|
- $parentId = isset($params['parent_id']) ? $params['parent_id'] : 0;
|
|
|
- if ($parentId > 0) {
|
|
|
- $where['b.parent_id'] = $parentId;
|
|
|
- }
|
|
|
-
|
|
|
- $list = $this->model->from('orders as a')->with(['freight', 'carCategory', 'driver'])
|
|
|
- ->leftJoin('member as b', 'a.user_id', '=', 'b.id')
|
|
|
+ $list = $this->model->from('orders as a')->with(['goods','user'])
|
|
|
+ ->leftJoin('member as b', 'b.id', '=', 'a.buy_user_id')
|
|
|
->where($where)
|
|
|
->where(function ($query) use ($params) {
|
|
|
$keyword = isset($params['keyword']) ? $params['keyword'] : '';
|
|
|
if ($keyword) {
|
|
|
- $query->where('a.order_no', 'like', "%{$keyword}%")->orWhere('b.mobile', 'like', "%{$keyword}%");
|
|
|
+ $query->where('a.order_no', 'like', "%{$keyword}%")
|
|
|
+ ->orWhere('b.username', 'like', "%{$keyword}%")
|
|
|
+ ->orWhere('b.nickname', 'like', "%{$keyword}%")
|
|
|
+ ->orWhere('b.mobile', 'like', "%{$keyword}%");
|
|
|
}
|
|
|
})
|
|
|
->where(function ($query) use ($params) {
|
|
|
$userId = isset($params['user_id']) ? $params['user_id'] : 0;
|
|
|
- $type = isset($params['type']) ? $params['type'] : 0;
|
|
|
if ($userId) {
|
|
|
- $query->where('a.user_id', '=', $userId);
|
|
|
+ $query->where(function($query) use($userId){
|
|
|
+ $query->where('a.user_id', $userId)
|
|
|
+ ->orWhere('a.buy_user_id', $userId);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
$driverId = isset($params['driver_id']) ? $params['driver_id'] : 0;
|
|
|
@@ -98,88 +88,36 @@ class OrderService extends BaseService
|
|
|
$query->where('a.driver_id', '=', $driverId);
|
|
|
}
|
|
|
|
|
|
- if ($type > 0) {
|
|
|
- $query->where('a.type', '=', $type);
|
|
|
- }
|
|
|
-
|
|
|
- $serviceType = isset($params['service_type']) ? $params['service_type'] : 0;
|
|
|
- if ($serviceType > 0) {
|
|
|
- $query->where('a.service_type', '=', $serviceType);
|
|
|
+ $orderType = isset($params['order_type']) ? $params['order_type'] : 0;
|
|
|
+ if ($orderType > 0) {
|
|
|
+ $query->where('a.order_type', '=', $orderType);
|
|
|
}
|
|
|
})
|
|
|
->where(function ($query) use ($params) {
|
|
|
$status = isset($params['status']) ? $params['status'] : 0;
|
|
|
// 进行中
|
|
|
- if ($status == 1) {
|
|
|
- $query->where(function ($query) {
|
|
|
- $query->whereIn('a.status', [2, 3, 7]);
|
|
|
- })
|
|
|
- ->orWhere(function ($query) {
|
|
|
- $query->where(['a.pay_style' => 2, 'a.deposit_status' => 1])->whereIn('a.status', [1, 2, 3, 7]);
|
|
|
- });
|
|
|
- } // 完成
|
|
|
- else if ($status == 2) {
|
|
|
- $query->where('a.status', 4);
|
|
|
- } // 取消
|
|
|
- else if ($status == 3) {
|
|
|
- $query->whereIn('a.status', [5, 6, 99]);
|
|
|
- } else {
|
|
|
- $query->where(function ($query) {
|
|
|
- $query->where('a.status', '>', 1);
|
|
|
- })
|
|
|
- ->orWhere(function ($query) {
|
|
|
- $query->where(['a.pay_style' => 2, 'a.deposit_status' => 1])->where('a.status', '>=', 1);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- // 过滤已开票的
|
|
|
- $ticket = isset($params['is_ticket']) ? $params['is_ticket'] : 0;
|
|
|
- if ($ticket) {
|
|
|
- $query->where('a.ticket_status', 2);
|
|
|
+ if ($status>0) {
|
|
|
+ $query->where('a.status', $status);
|
|
|
}
|
|
|
})
|
|
|
- ->select(['a.*', 'b.nickname', 'b.mobile as member_mobile', 'b.avatar', 'b.realname as member_realname'])
|
|
|
- ->orderBy('a.pay_time', 'desc')
|
|
|
+ ->select(['a.*'])
|
|
|
+ ->orderBy('a.status', 'asc')
|
|
|
+ ->orderBy('a.create_time', 'desc')
|
|
|
+ ->orderBy('a.pay_at', 'desc')
|
|
|
->orderBy('a.id', 'desc')
|
|
|
->paginate($pageSize > 0 ? $pageSize : 9999999);
|
|
|
$list = $list ? $list->toArray() : [];
|
|
|
if ($list) {
|
|
|
- $refundStatusArr = [1 => '退款中', 2 => '已退款', 3 => '退款失败'];
|
|
|
- $statusArr = [1 => '待付款', 2 => '待接单', 3 => '服务中', 4 => '已完成', 5 => '已退款', 7 => '取货中'];
|
|
|
+ $statusArr = [1 => '待审核', 2 => '待捡货', 3 => '捡货中', 4 => '已发货', 5 => '已送达', 6 => '已结账'];
|
|
|
foreach ($list['data'] as &$item) {
|
|
|
- $item['avatar'] = isset($item['avatar']) ? get_image_url($item['avatar']) : '';
|
|
|
$item['create_time'] = $item['create_time'] ? datetime($item['create_time'], 'Y-m-d H:i:s') : '';
|
|
|
- $item['pay_time'] = $item['pay_time'] ? datetime($item['pay_time'], 'Y-m-d H:i:s') : '';
|
|
|
$status = isset($item['status']) ? $item['status'] : 0;
|
|
|
- $item['status_text'] = '待付款';
|
|
|
- $item['refund_status_text'] = '';
|
|
|
+ $item['status_text'] = '待审核';
|
|
|
if ($status) {
|
|
|
- if ($item['status'] == 7) {
|
|
|
- $item['status_text'] = $item['service_type'] == 1 ? '接客中' : '取货中';
|
|
|
- }
|
|
|
-
|
|
|
- if ($item['type'] == 2) {
|
|
|
- $item['status_text'] = isset($serviceStatusArr[$status]) ? $serviceStatusArr[$status] : '';
|
|
|
- } else {
|
|
|
- $item['status_text'] = isset($statusArr[$status]) ? $statusArr[$status] : '';
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 到付订单
|
|
|
- if ($item['pay_type'] == 2 && $status == 1) {
|
|
|
- $item['status_text'] = '待接单';
|
|
|
+ $item['status_text'] = isset($statusArr[$status]) ? $statusArr[$status] : '';
|
|
|
}
|
|
|
|
|
|
- $refundStatus = isset($item['refund_status']) ? $item['refund_status'] : 0;
|
|
|
- if ($refundStatus && $status != 4) {
|
|
|
- $item['refund_status_text'] = isset($refundStatusArr[$refundStatus]) ? $refundStatusArr[$refundStatus] : '';
|
|
|
- }
|
|
|
-
|
|
|
- $item['freight'] = isset($item['freight']) ? $item['freight'] : [];
|
|
|
- $item['service_type_text'] = $item['service_type'] == 1 ? '出行' : '货运';
|
|
|
- $driver = isset($item['driver']) ? $item['driver'] : [];
|
|
|
- $driver['avatar'] = isset($driver['avatar']) && $driver['avatar'] ? get_image_url($driver['avatar']) : '';
|
|
|
- $item['driver'] = $driver;
|
|
|
+ $item['goods'] = isset($item['goods']) && $item['goods']? $item['goods'] : [];
|
|
|
}
|
|
|
unset($item);
|
|
|
}
|
|
|
@@ -194,58 +132,28 @@ class OrderService extends BaseService
|
|
|
/**
|
|
|
* 订单详情
|
|
|
* @param $id
|
|
|
- * @param int $userId
|
|
|
*/
|
|
|
- public function getOrderInfo($id, $userId = 0)
|
|
|
+ public function getOrderInfo($id)
|
|
|
{
|
|
|
-
|
|
|
- $refundStatusArr = [1 => '退款中', 2 => '已退款', 3 => '退款失败'];
|
|
|
- $statusArr = [1 => '待付款', 2 => '待接单', 3 => '服务中', 4 => '已完成', 5 => '已退款'];
|
|
|
- $info = $this->model->from('orders as a')->with(['carCategory', 'driver'])
|
|
|
- ->leftJoin('member as b', 'a.user_id', '=', 'b.id')
|
|
|
+ $statusArr = [1 => '待审核', 2 => '待捡货', 3 => '捡货中', 4 => '已发货', 5 => '已送达', 6 => '已结账'];
|
|
|
+ $info = $this->model->from('orders as a')->with(['goods', 'user'])
|
|
|
+ ->leftJoin('member as b', 'b.id', '=', 'a.buy_user_id')
|
|
|
->where(['a.id' => $id, 'a.mark' => 1])
|
|
|
- ->select(['a.*', 'b.nickname', 'b.mobile as member_mobile', 'b.avatar', 'b.realname as member_realname'])
|
|
|
+ ->select(['a.*'])
|
|
|
->first();
|
|
|
|
|
|
if ($info) {
|
|
|
$info = $info->toArray();
|
|
|
- $info['avatar'] = isset($info['avatar']) ? get_image_url($info['avatar']) : '';
|
|
|
$info['create_time'] = $info['create_time'] ? datetime($info['create_time'], 'Y-m-d H:i:s') : '';
|
|
|
- $info['pay_time'] = $info['pay_time'] ? datetime($info['pay_time'], 'Y-m-d H:i:s') : '';
|
|
|
$status = isset($info['status']) ? $info['status'] : 0;
|
|
|
$info['status_text'] = '待付款';
|
|
|
- $info['refund_status_text'] = '';
|
|
|
if ($status) {
|
|
|
- if ($info['status'] == 7) {
|
|
|
- $info['status_text'] = $info['service_type'] == 1 ? '接客中' : '取货中';
|
|
|
- }
|
|
|
-
|
|
|
- if ($info['type'] == 2) {
|
|
|
- $info['status_text'] = isset($serviceStatusArr[$status]) ? $serviceStatusArr[$status] : '';
|
|
|
- } else {
|
|
|
- $info['status_text'] = isset($statusArr[$status]) ? $statusArr[$status] : '';
|
|
|
- }
|
|
|
+ $info['status_text'] = isset($statusArr[$status]) ? $statusArr[$status] : '';
|
|
|
}
|
|
|
|
|
|
- // 到付订单
|
|
|
- if ($info['pay_type'] == 2 && $status == 1) {
|
|
|
- $info['status_text'] = '待接单';
|
|
|
- }
|
|
|
-
|
|
|
- $refundStatus = isset($info['refund_status']) ? $info['refund_status'] : 0;
|
|
|
- if ($refundStatus && $status != 4) {
|
|
|
- $info['refund_status_text'] = isset($refundStatusArr[$refundStatus]) ? $refundStatusArr[$refundStatus] : '';
|
|
|
- }
|
|
|
-
|
|
|
- $freight = OrderFreightModel::with(['category', 'package', 'spec'])->where(['order_no' => $info['order_no'], 'mark' => 1])->first();
|
|
|
- $freight = $freight ? $freight->toArray() : [];
|
|
|
- if ($freight) {
|
|
|
- $freight['albums'] = get_images_preview($freight['albums'], 'url', 1);
|
|
|
- $freight['accept_albums'] = get_images_preview($freight['accept_albums'], 'url', 1);
|
|
|
- }
|
|
|
- $info['freight'] = $freight ? $freight : [];
|
|
|
+ $info['goods'] = isset($info['goods'])&&$info['goods']? $info['goods'] : [];
|
|
|
}
|
|
|
- //RedisService::set("caches:order:detail_{$id}_{$userId}",$info,600);
|
|
|
+
|
|
|
return $info;
|
|
|
}
|
|
|
|
|
|
@@ -343,6 +251,7 @@ class OrderService extends BaseService
|
|
|
$goodsId = isset($item['goods_id'])? $item['goods_id'] : 0;
|
|
|
$price = isset($item['price'])? $item['price'] : 0;
|
|
|
$goodsNum = isset($item['num'])? $item['num'] : 0;
|
|
|
+ $category = isset($item['category'])? $item['category'] : [];
|
|
|
$realPrice = isset($item['real_price']) && $item['real_price']>0? floatval($item['real_price']) : $price;
|
|
|
$goodsTotal = round($realPrice * $goodsNum, 2);
|
|
|
$goodsOriginalTotal = round($price * $goodsNum, 2);
|
|
|
@@ -360,6 +269,7 @@ class OrderService extends BaseService
|
|
|
'stock_id'=> $stockId,
|
|
|
'brand_id'=> isset($item['brand_id'])? $item['brand_id'] : 0,
|
|
|
'cate_id'=> isset($item['cate_id'])? $item['cate_id'] : 0,
|
|
|
+ 'cate_name'=> isset($category['cate_name'])? $category['cate_name'] : '',
|
|
|
'settle_type'=> isset($item['settle_type'])? $item['settle_type'] : 0,
|
|
|
'settle_rate'=> isset($item['settle_rate'])? $item['settle_rate'] : 0,
|
|
|
'settle_num'=> isset($item['settle_num'])? $item['settle_num'] : 0,
|