Browse Source

完善功能

gorden 8 months ago
parent
commit
e0cbecc4d6

+ 59 - 0
app/admin/controller/order/AppointmentController.php

@@ -4,6 +4,8 @@ namespace app\admin\controller\order;
 
 use app\admin\service\order\AppointmentService;
 use app\model\Appointment;
+use app\model\Goods;
+use support\Db;
 use support\Request;
 use support\Response;
 
@@ -43,4 +45,61 @@ class AppointmentController
     {
         return AppointmentService::getTimes($request);
     }
+
+    
+    public function myAppointments(Request $request)
+    {
+        $page = $request->get('page',1);
+        $pageSize = $request->get('pageSize',1);
+        $memberId = $request->get('member_id', '');
+        $datetime = $request->get('order_addtimes',[]);
+        $goodsName = $request->get('goods_name','');
+        if (!$memberId) {
+            return json_fail('查询错误');
+        }
+
+        $goodsIds = [];
+        if (!empty($goodsName)){
+            $goodsIds = Goods::where('goods_name','like','%'.$goodsName.'%')->pluck('goods_id')->toArray();
+        }
+        // 预约单
+        $appointments = Db::table('appointment')
+//            ->leftJoin('member', 'member.member_id', '=', 'appointment.join_appointment_member_id')
+//            ->leftJoin('member_cert', 'member_cert.join_cert_member_id', '=', 'appointment.join_appointment_member_id')
+//            ->leftJoin('member_info', 'member_info.join_info_member_id', '=', 'appointment.join_appointment_member_id')
+            ->leftJoin('goods', 'goods.goods_id', '=', 'appointment.join_appointment_goods_id')
+//            ->leftJoin('order', 'order.order_id', '=', 'appointment.join_appointment_order_id')
+            ->leftJoin('member_benefit', 'member_benefit.member_benefit_id', '=', 'appointment.join_appointment_member_benefit_id')
+//            ->leftJoin('goods_sku', 'goods_sku.goods_sku_id', '=', 'appointment.join_appointment_goods_sku_id')
+            ->where('join_appointment_member_id', $memberId)
+            ->whereIn('appointment_status', ['WAITING', 'PENDING', 'DOING', 'DONE', 'CANCEL', 'REVOKE'])
+            ->select('appointment.*',
+//            'member.member_mobile',
+//            'member_cert.member_cert_name',
+//            'member_info.member_info_nickname',
+                'goods.goods_name', 'goods.goods_sales_price',
+//            'order.order_name', 'goods_sku.goods_sku_specs_json', 'order.order_amount_total', 'order.order_amount_pay',
+//            'order.order_category', 'order.order_status_system', 'order.order_status_payment', 'order.order_status_storage',
+//            'order.order_addtimes',
+                'member_benefit.member_benefit_name'
+            )->when(!empty($goodsIds),function($query) use ($goodsIds){
+                $query->whereIn('join_appointment_goods_id',$goodsIds);
+            })
+            ->when(!empty($datetime), function($query) use ($datetime){
+                $datetime[0] = strtotime($datetime[0]);
+                $datetime[1] = strtotime($datetime[1]);
+                $query->whereBetween('appointment_addtimes',$datetime);
+            });
+        $total = $appointments->count();
+        $rows = $appointments->orderBy('appointment.appointment_addtimes', 'desc')
+            ->get();
+        foreach ($rows as &$row) {
+            if ($row->appointment_category == 'NOFEE') {
+                $row->member_benefit_name = "后付费预约";
+            }
+            $row->appointment_addtimes = date('Y-m-d H:i:s', $row->appointment_addtimes);
+        }
+
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
+    }
 }

+ 33 - 34
app/admin/controller/order/WholeController.php

@@ -80,6 +80,14 @@ class WholeController extends Curd
         if ($request->get('return')){
             $where['order_return.order_return_status'] = $request->get('return');
         }
+        if ($request->get('goods_classify')){
+            $goodsIds = Goods::where('goods_classify',$request->get('goods_classify'))->pluck('goods_id')->toArray();
+            $where['order_sheet.join_sheet_goods_id'] = ['in',implode(',',$goodsIds)];
+        }
+        if ($request->get('goods_name')){
+            $goodsIds = Goods::where('goods_name','like','%'.$request->get('goods_name').'%')->pluck('goods_id')->toArray();
+            $where['order_sheet.join_sheet_goods_id'] = ['in',implode(',',$goodsIds)];
+        }
 
         $query = $this->doSelect($where, $field, $order);
         return $this->doFormat($query, $format, $limit);
@@ -89,7 +97,7 @@ class WholeController extends Curd
     {
         $model = $this->model->with([
             'sheets' => function ($query) {
-                $query->select('join_sheet_order_id', 'order_sheet_id', 'join_sheet_goods_id', 'order_sheet_num');
+                $query->select('join_sheet_order_id', 'order_sheet_id', 'join_sheet_goods_id', 'order_sheet_num','order_sheet_price');
             },
             'member' => function ($query) {
                 $query->select('member_id', 'member_mobile');
@@ -107,7 +115,8 @@ class WholeController extends Curd
             'express' => function ($query) {
                 $query->select('join_express_order_id', 'order_express_type');
             }
-        ])->leftJoin('order_return','order_return.join_return_order_id','=','order.order_id');
+        ])->leftJoin('order_return','order_return.join_return_order_id','=','order.order_id')
+        ->leftJoin('order_sheet','join_sheet_order_id','=','order.order_id');
         foreach ($where as $column => $value) {
             if (is_array($value)) {
                 if ($value[0] === 'like' || $value[0] === 'not like') {
@@ -1090,10 +1099,18 @@ class WholeController extends Curd
 
     public function myOrder(Request $request)
     {
+        $page = $request->get('page',1);
+        $pageSize = $request->get('pageSize',1);
+        $datetime = $request->get('order_addtimes',[]);
+        $goodsName = $request->get('goods_name','');
         $memberId = $request->get('member_id', '');
         if (!$memberId) {
             return json_fail('查询错误');
         }
+        $goodsIds = [];
+        if (!empty($goodsName)){
+            $goodsIds = Goods::where('goods_name','like','%'.$goodsName.'%')->pluck('goods_id')->toArray();
+        }
 
         $sheet = OrderSheet::with([
             'goods' => function ($query) {
@@ -1106,46 +1123,28 @@ class WholeController extends Curd
                 $query->select('join_return_order_id', 'orders_return_id', 'order_return_status');
             },
         ])->where('join_sheet_member_id', $memberId)
+            ->when(!empty($datetime), function($query) use ($datetime){
+                $datetime[0] = strtotime($datetime[0]);
+                $datetime[1] = strtotime($datetime[1]);
+                $query->whereBetween('order_sheet_addtimes',$datetime);
+            })
+            ->when(!empty($goodsIds),function($query) use ($goodsIds){
+                $query->whereIn('join_sheet_goods_id',$goodsIds);
+            });
+
+        $total = $sheet->count();
+        $rows = $sheet
             ->orderBy('order_sheet_addtimes', 'desc')
+            ->forPage($page,$pageSize)
             ->get()
             ->toArray();
-        foreach ($sheet as &$item) {
+        foreach ($rows as &$item) {
             if (!empty($item->goods->goods_cover)) {
                 $item->goods->goods_cover = getenv('STORAGE_DOMAIN') . $item->goods->goods_cover;
             }
         }
 
-        // 预约单
-        $appointments = Db::table('appointment')
-//            ->leftJoin('member', 'member.member_id', '=', 'appointment.join_appointment_member_id')
-//            ->leftJoin('member_cert', 'member_cert.join_cert_member_id', '=', 'appointment.join_appointment_member_id')
-//            ->leftJoin('member_info', 'member_info.join_info_member_id', '=', 'appointment.join_appointment_member_id')
-            ->leftJoin('goods', 'goods.goods_id', '=', 'appointment.join_appointment_goods_id')
-//            ->leftJoin('order', 'order.order_id', '=', 'appointment.join_appointment_order_id')
-            ->leftJoin('member_benefit', 'member_benefit.member_benefit_id', '=', 'appointment.join_appointment_member_benefit_id')
-//            ->leftJoin('goods_sku', 'goods_sku.goods_sku_id', '=', 'appointment.join_appointment_goods_sku_id')
-            ->where('join_appointment_member_id', $memberId)
-            ->whereIn('appointment_status', ['WAITING', 'PENDING', 'DOING', 'DONE', 'CANCEL', 'REVOKE'])
-            ->select('appointment.*',
-//            'member.member_mobile',
-//            'member_cert.member_cert_name',
-//            'member_info.member_info_nickname',
-                'goods.goods_name', 'goods.goods_sales_price',
-//            'order.order_name', 'goods_sku.goods_sku_specs_json', 'order.order_amount_total', 'order.order_amount_pay',
-//            'order.order_category', 'order.order_status_system', 'order.order_status_payment', 'order.order_status_storage',
-//            'order.order_addtimes',
-                'member_benefit.member_benefit_name'
-            )
-            ->orderBy('appointment.appointment_addtimes', 'desc')
-            ->get();
-        foreach ($appointments as &$row) {
-            if ($row->appointment_category == 'NOFEE') {
-                $row->member_benefit_name = "后付费预约";
-            }
-            $row->appointment_addtimes = date('Y-m-d H:i:s', $row->appointment_addtimes);
-        }
-
-        return json_success('', ['order' => $sheet, 'appointment' => $appointments]);
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 
     public function saveExpress($params)

+ 2 - 0
route/admin.php

@@ -841,6 +841,8 @@ Route::group('/admin', function () {
             Route::get('/update', [\app\admin\controller\order\AppointmentController::class, 'update']);
             Route::post('/confirm/{id:[0-9a-zA-Z]+}', [\app\admin\controller\order\AppointmentController::class, 'confirm']);
             Route::get('/getTimes', [\app\admin\controller\order\AppointmentController::class, 'getTimes']);
+            Route::get('/my', [\app\admin\controller\order\AppointmentController::class, 'myAppointments']);
+
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);