瀏覽代碼

完善功能

gorden 10 月之前
父節點
當前提交
d9d0fcfadf

+ 5 - 0
app/admin/controller/goods/ServiceGoodsController.php

@@ -22,6 +22,11 @@ class ServiceGoodsController
         return GoodsService::select($request, 'SERVICE');
     }
 
+    public function selectList(Request $request)
+    {
+        return GoodsService::selectList($request, 'SERVICE');
+    }
+
     /**
      * @Desc 商品详情
      * @Author Gorden

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

@@ -29,6 +29,11 @@ class AppointmentController
         return AppointmentService::confirm($id);
     }
 
+    public function add(Request $request)
+    {
+        return AppointmentService::add($request);
+    }
+
     public function update(Request $request)
     {
         return AppointmentService::update($request);

+ 17 - 0
app/admin/controller/order/WholeController.php

@@ -169,4 +169,21 @@ class WholeController extends Curd
             return json_fail('发货失败');
         }
     }
+
+    // TODO 确认收货(完成订单)
+    public function confirm($id)
+    {
+        $order = Order::where('order_id', $id)->first();
+        if (empty($order)) {
+            return json_fail("暂无数据");
+        }
+
+        Db::beginTransaction();
+        try {
+            // 主订单
+            Order::where('order_id',$id)->update(['order_status_system'=>'CONFIRM']);
+        }catch (\Exception $e){
+
+        }
+    }
 }

+ 6 - 4
app/admin/service/goods/GoodsService.php

@@ -138,15 +138,17 @@ class GoodsService
      * @param Request $request
      * @return Response
      */
-    public static function selectList(Request $request)
+    public static function selectList(Request $request, $goodsClassify)
     {
-//        $keywords = $request->get('keywords', '');
+        $keywords = $request->get('keywords', '');
 //        if (!$keywords){
 //            return json_success('暂无数据');
 //        }
 
-        $goods = Goods::where('goods_classify', 'SERVICE')
-//            ->where('goods_name','like',"%".$keywords."%")
+        $goods = Goods::where('goods_classify', $goodsClassify)
+            ->when($keywords != '', function ($query) use($keywords) {
+                $query->where('goods_name','like',"%".$keywords."%");
+            })
             ->select('goods_id', 'goods_name', 'goods_sales_price')
             ->get()
             ->toArray();

+ 49 - 12
app/admin/service/order/AppointmentService.php

@@ -3,7 +3,9 @@
 namespace app\admin\service\order;
 
 use app\model\Appointment;
+use app\model\Goods;
 use app\model\MemberBenefit;
+use app\model\SysSerial;
 use support\Db;
 use support\Request;
 use function _PHPStan_cc8d35ffb\RingCentral\Psr7\str;
@@ -33,11 +35,11 @@ class AppointmentService
             });
 
         $total = $rows->count('member.member_id');
-        $rows = $rows->select( 'appointment.*',
+        $rows = $rows->select('appointment.*',
             'member.member_mobile',
             'member_cert.member_cert_name',
             'member_info.member_info_nickname',
-            'goods.goods_name', 'goods.goods_cover','goods.goods_sales_price',
+            'goods.goods_name', 'goods.goods_cover', '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',
@@ -52,6 +54,9 @@ class AppointmentService
             $row->goods_sku_specs_json = !empty($row->goods_sku_specs_json) ? json_decode($row->goods_sku_specs_json, true) : [];
             $row->order_addtimes = date('Y-m-d H:i:s', $row->order_addtimes);
             $row->appointment_addtimes = date('Y-m-d H:i:s', $row->appointment_addtimes);
+            if ($row->appointment_category == 'NOFEE') {
+                $row->member_benefit_name = "后付费预约";
+            }
         }
 
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));
@@ -75,6 +80,38 @@ class AppointmentService
         }
     }
 
+    public static function add(Request $request)
+    {
+        $params = $request->post();
+        Db::beginTransaction();
+        try {
+            $data = [
+                'appointment_id' => "AP" . str_pad(SysSerial::getSerial(), 16, '0') . random_string(6,'up'),
+                'join_appointment_member_id' => $params['join_appointment_member_id'] ?? '',
+                'join_appointment_goods_id' => $params['join_appointment_goods_id'] ?? '',
+                'appointment_status' => $params['appointment_status'] ?? '',
+                'appointment_datetime' => isset($params['appointment_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_datetime'])) : '',
+                'appointment_apply_datetime' => isset($params['appointment_apply_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_apply_datetime'])) : '',
+                'appointment_doing_datetime' => isset($params['appointment_doing_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_doing_datetime'])) : '',
+                'appointment_done_datetime' => isset($params['appointment_done_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_done_datetime'])) : '',
+                'appointment_cancel_datetime' => isset($params['appointment_cancel_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_cancel_datetime'])) : '',
+                'appointment_remark' => $params['appointment_remark'] ?? '',
+                'appointment_category' => 'NOFEE',
+                'appointment_addtimes' => time(),
+            ];
+
+            Appointment::insert($data);
+
+            Db::commit();
+            return json_success("添加预约成功");
+        } catch (\Exception $e) {
+            Db::rollBack();
+            dump($e->getMessage());
+            return json_fail("添加预约失败");
+        }
+    }
+
+
     public static function update(Request $request)
     {
         $appointmentId = $request->post('appointment_id');
@@ -86,24 +123,24 @@ class AppointmentService
         Db::beginTransaction();
         try {
             $data = [
-                'appointment_status'=>$params['appointment_status'],
-                'appointment_datetime'=>$params['appointment_datetime'] ? date('Y-m-d H:i:s',strtotime($params['appointment_datetime'])) : null,
-                'appointment_apply_datetime'=>$params['appointment_apply_datetime'] ? date('Y-m-d H:i:s',strtotime($params['appointment_apply_datetime'])) : null,
-                'appointment_doing_datetime'=>$params['appointment_doing_datetime'] ? date('Y-m-d H:i:s',strtotime($params['appointment_doing_datetime'])) : null,
-                'appointment_done_datetime'=>$params['appointment_done_datetime'] ? date('Y-m-d H:i:s',strtotime($params['appointment_done_datetime'])) : null,
-                'appointment_cancel_datetime'=>$params['appointment_cancel_datetime'] ? date('Y-m-d H:i:s',strtotime($params['appointment_cancel_datetime'])) : null,
-                'appointment_remark'=>$params['appointment_remark'] ?? '',
+                'appointment_status' => $params['appointment_status'],
+                'appointment_datetime' => $params['appointment_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_datetime'])) : null,
+                'appointment_apply_datetime' => $params['appointment_apply_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_apply_datetime'])) : null,
+                'appointment_doing_datetime' => $params['appointment_doing_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_doing_datetime'])) : null,
+                'appointment_done_datetime' => $params['appointment_done_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_done_datetime'])) : null,
+                'appointment_cancel_datetime' => $params['appointment_cancel_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_cancel_datetime'])) : null,
+                'appointment_remark' => $params['appointment_remark'] ?? '',
             ];
 
             Appointment::where('appointment_id', $appointmentId)->update($data);
             // 如果是完成状态
-            if ($params['appointment_status'] == 'DONE' && $appointment->appointment_status != 'DONE'){
-                MemberBenefit::where('member_benefit_id',$appointment->join_appointment_member_benefit_id)->increment('member_benefit_used_count');
+            if ($params['appointment_status'] == 'DONE' && $appointment->appointment_status != 'DONE') {
+                MemberBenefit::where('member_benefit_id', $appointment->join_appointment_member_benefit_id)->increment('member_benefit_used_count');
             }
 
             Db::commit();
             return json_success("数据更新成功");
-        }catch (\Exception $e){
+        } catch (\Exception $e) {
             Db::rollBack();
             dump($e->getMessage());
             return json_fail("数据更新失败");

+ 3 - 0
route/admin.php

@@ -33,6 +33,7 @@ Route::group('/admin', function () {
         /* 业务服务商品管理 */
         Route::group('/service', function () {
             Route::get('/list', [\app\admin\controller\goods\ServiceGoodsController::class, 'select']);
+            Route::get('/selectList', [\app\admin\controller\goods\ServiceGoodsController::class, 'selectList']);
             Route::get('/info', [\app\admin\controller\goods\ServiceGoodsController::class, 'info']);
             Route::post('/add', [\app\admin\controller\goods\ServiceGoodsController::class, 'insert']);
             Route::post('/update', [\app\admin\controller\goods\ServiceGoodsController::class, 'update']);
@@ -642,6 +643,8 @@ Route::group('/admin', function () {
         // 预约订单
         Route::group('/appointment', function () {
             Route::get('/list', [\app\admin\controller\order\AppointmentController::class, 'select']);
+            Route::get('/add', [\app\admin\controller\order\AppointmentController::class, 'add']);
+            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']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class