醉梦人间三千年 6 mesiacov pred
rodič
commit
99c194ba25

+ 8 - 9
.env

@@ -3,10 +3,9 @@ APP_ENV=local
 APP_KEY=base64:tXBuLJEDanur8QpVucLgqSpvCJvjQAA5ngxD/vMHwjM=
 APP_DEBUG=true
 APP_TIMEZONE=UTC
-APP_URL=http://127.0.0.1:8000
-# 这下面两行必须配置,否则跨域会报错,或者配置为*允许所有
-FRONTEND_URL=http://127.0.0.1:4000
-BACKEND_URL=http://127.0.0.1:8000
+APP_URL=http://localhost:8000
+FRONTEND_URL=http://127.0.0.1:8080
+BACKEND_URL=http://127.0.0.1:8080
 
 APP_LOCALE=en
 APP_FALLBACK_LOCALE=en
@@ -23,11 +22,11 @@ LOG_DEPRECATIONS_CHANNEL=null
 LOG_LEVEL=debug
 
 DB_CONNECTION=mysql
-DB_HOST=192.168.110.5
+DB_HOST=127.0.0.1
 DB_PORT=3306
 DB_DATABASE=massage_new
-DB_USERNAME=dd
-DB_PASSWORD=Dd.123456
+DB_USERNAME=root
+DB_PASSWORD=root
 
 SESSION_DRIVER=database
 SESSION_LIFETIME=120
@@ -45,8 +44,8 @@ CACHE_PREFIX=
 MEMCACHED_HOST=127.0.0.1
 
 REDIS_CLIENT=phpredis
-REDIS_HOST=192.168.110.5
-REDIS_PASSWORD=Dd.123456
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
 REDIS_PORT=6379
 
 MAIL_MAILER=log

+ 30 - 0
app/Http/Controllers/Frontend/Client/Service/OrderController.php

@@ -17,6 +17,7 @@ use App\Http\Services\Frontend\Client\Service\OrderService;
 use App\Models\Coach\User;
 use App\Models\Service\Order;
 use Illuminate\Http\JsonResponse;
+use SimpleSoftwareIO\QrCode\Facades\QrCode;
 
 class OrderController extends Controller
 {
@@ -80,6 +81,35 @@ class OrderController extends Controller
         return self::success($res);
     }
 
+    public function start()
+    {
+
+    }
+
+    /**
+     * Notes :
+     * Method : 结束订单
+     * @throws ApiException
+     */
+    public function end(Request $request): JsonResponse
+    {
+        $params = $request->all();
+        $this->orderService->updateOrder( [...$params,'status' => 6]);
+        return self::success(true);
+    }
+
+    public function close()
+    {
+
+    }
+
+    public function qrCode(){
+        // 生成二维码并直接显示在浏览器
+        $result = QrCode::encoding('UTF-8')->format('png')->size(200)->generate('你要编码的内容');
+        dd($result);
+        return self::success(['html',$result]);
+    }
+
 }
 
 

+ 7 - 3
app/Http/Requests/Frontend/Client/Service/OrderRequest.php

@@ -25,13 +25,17 @@ class OrderRequest extends Request
             'coachId' => ['bail', 'integer'],
             'projectId' => ['bail', 'required', 'integer'],
             'couponId' => ['bail', 'integer'],
-            'orderId' => ['bail', 'string'],
-            'payType' => ['bail', 'required', 'string'],
-            'addressId' => ['bail', 'required', 'integer'],
+            'orderId' => ['bail', 'integer'],
+            'payType' => ['bail', 'required', 'integer'],
             'useBalance' => ['bail', 'integer'],
         ];
 
         $actionName = last(explode('@', Route::current()->getActionName()));
+        if($actionName === 'store'){
+            $rules['addressId'] = ['bail', 'required', 'integer'];
+            $rules['carType'] =  ['bail', 'required', 'integer'];
+        }
+
         if ($actionName === 'index') {
 
         }

+ 3 - 8
app/Http/Services/Frontend/Client/Service/OrderService.php

@@ -143,8 +143,7 @@ class OrderService extends Service
             return $orderId;
         } catch (\Exception $e) {
             DB::rollBack();
-            Log::error('Transaction failed: ' . $e->getMessage());
-            self::error('执行错误!');
+            self::error();
         }
     }
 
@@ -175,8 +174,9 @@ class OrderService extends Service
     /**
      * @throws ApiException
      */
-    public function updateOrder(array $data, int $order_id): void
+    public function updateOrder(array $data): void
     {
+        $order_id = $data['id'];
         $order = Order::query()->find($order_id);
         $status = $data['status'];
         switch ($status) {
@@ -207,7 +207,6 @@ class OrderService extends Service
     {
         $user_id = Auth::id();
         $projectId = $params['projectId'];
-        $addressId = $params['addressId'];
         $coachId = $params['coachId'] ?? 0;
         // 查询地区项目
         $projectSelect = ['title', 'sub_title', 'cover', 'price', 'init_price', 'total_sale', 'time_long', 'is_store', 'is_door'];
@@ -238,7 +237,6 @@ class OrderService extends Service
     public function computePrice(array $params): array
     {
         $user_id = Auth::id();
-        $addressId = $params['addressId'];
         $use_balance = $params['useBalance'] ?? 0;
         $coach_id = $params['coachId'] ?? 0;
         $distance = $params['distance'] ?? 0;
@@ -247,9 +245,6 @@ class OrderService extends Service
 
 //        $member = $memberQuery->find($user_id);
 
-        // 获取地址
-        $address = Address::query()->where('user_id', $user_id)->find($addressId);
-        !$address && self::error('地址数据错误');
         $orderModel = new Order();
         $orderPayInfo = $orderModel->buildPayInfo($user_id, $params['projectId'], $use_balance, $coach_id, $car_type, $coupon_id, $distance);
 

+ 3 - 1
app/Http/Services/Service.php

@@ -11,6 +11,7 @@ namespace App\Http\Services;
 use App\Exceptions\ApiException;
 use App\Models\System\Menu;
 use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Str;
 use Spatie\Permission\Guard;
 
@@ -34,8 +35,9 @@ class Service
     /**
      * @throws ApiException
      */
-    protected static function error(string $message = '系统错误', int $code = 500)
+    protected static function error(string $message = '系统错误', int $code = 500,\Exception $e = null)
     {
+        $e && Log::error($e->getTraceAsString());
         $data = ['code' => $code, 'message' => $message];
         throw new ApiException($data);
     }

+ 3 - 1
bootstrap/app.php

@@ -31,12 +31,14 @@ return Application::configure(basePath: dirname(__DIR__))
             \Illuminate\Cookie\Middleware\EncryptCookies::class,
             \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
             \Illuminate\Session\Middleware\StartSession::class,
-            \Laravel\Sanctum\Http\Middleware\AuthenticateSession::class
+            \Laravel\Sanctum\Http\Middleware\AuthenticateSession::class,
+//            \SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,
         ]);
 
         $middleware->alias([
             'verified' => \App\Http\Middleware\EnsureEmailIsVerified::class,
             'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
+//            'QrCode' => \SimpleSoftwareIO\QrCode\Facades\QrCode::class,
         ]);
 
         //

+ 15 - 14
composer.json

@@ -5,22 +5,23 @@
     "keywords": ["laravel", "framework"],
     "license": "MIT",
     "require": {
-        "php": "^8.3",
-        "bensampo/laravel-enum": "*",
-        "laravel/framework": "*",
-        "laravel/sanctum": "*",
-        "laravel/tinker": "*",
-        "overtrue/laravel-wechat": "*",
-        "spatie/laravel-permission": "*"
+        "php": "^8.2",
+        "bensampo/laravel-enum": "^6.11",
+        "laravel/framework": "^11.9",
+        "laravel/sanctum": "^4.0",
+        "laravel/tinker": "^2.9",
+        "overtrue/laravel-wechat": "^7.3",
+        "simplesoftwareio/simple-qrcode": "^4.2",
+        "spatie/laravel-permission": "^6.9"
     },
     "require-dev": {
-        "fakerphp/faker": "*",
-        "laravel/breeze": "*",
-        "laravel/pint": "*",
-        "laravel/sail": "*",
-        "mockery/mockery": "*",
-        "nunomaduro/collision": "*",
-        "phpunit/phpunit": "*"
+        "fakerphp/faker": "^1.23",
+        "laravel/breeze": "^2.1",
+        "laravel/pint": "^1.13",
+        "laravel/sail": "^1.26",
+        "mockery/mockery": "^1.6",
+        "nunomaduro/collision": "^8.0",
+        "phpunit/phpunit": "^11.0.1"
     },
     "autoload": {
         "psr-4": {

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 888 - 55
composer.lock


+ 1 - 0
routes/api.php

@@ -58,6 +58,7 @@ Route::prefix('client')->group(function () {
             # 订单
             Route::get('order/confirm', [ClientServiceOrderController::class, 'confirm']);
             Route::get('order/compute', [ClientServiceOrderController::class, 'compute']);
+            Route::get('order/qrCode',[ClientServiceOrderController::class, 'qrCode']);
             Route::resource('order', ClientServiceOrderController::class);
 
         });

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov