alroyso 10 月之前
父節點
當前提交
42839bf3f0

+ 1 - 1
.idea/dataSources.local.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="dataSourceStorageLocal" created-in="PS-233.14475.35">
+  <component name="dataSourceStorageLocal" created-in="PS-241.15989.102">
     <data-source name="api_niubiyun_xyz@47.243.54.62" uuid="1e09a6f5-c562-4514-a27d-37e0d8ac0291">
       <database-info product="MySQL" version="5.7.37-log" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="5.7.37" exact-driver-version="8.0">
         <extra-name-characters>#@</extra-name-characters>

+ 3 - 3
app/Console/Commands/AutoJob.php

@@ -151,9 +151,9 @@ class AutoJob extends Command
             ->where('expired_at', '>=', date('Y-m-d H:i:s'))
             ->whereRaw('u + d < transfer_enable')
             ->get();
-        Log::info('--------------');
-        Log::info('查询数据封禁的账号--------:'.var_export($userList,true));
-        Log::info('--------------');
+
+        //Log::info('查询数据封禁的账号--------:'.var_export($userList,true));
+
         foreach ($userList as $user) {
             $user->update(['enable' => 1]);
 

+ 1 - 2
app/Console/Commands/DailyJob.php

@@ -6,7 +6,6 @@ use App\Components\Helpers;
 use App\Models\Order;
 use App\Models\Ticket;
 use App\Models\User;
-use App\Notifications\TicketClosed;
 use App\Services\OrderService;
 use Illuminate\Console\Command;
 use Log;
@@ -86,7 +85,7 @@ class DailyJob extends Command
     {
         foreach (Ticket::where('updated_at', '<=', date('Y-m-d', strtotime('-3 days')))->whereStatus(1)->get() as $ticket) {
             if ($ticket->close()) {
-                $ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket', ['id' => $ticket->id]), __('You have not responded this ticket in :num hours, System has auto closed your ticket.', ['num' => '72'])));
+                //$ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket', ['id' => $ticket->id]), __('You have not responded this ticket in :num hours, System has auto closed your ticket.', ['num' => '72'])));
             }
         }
     }

+ 2 - 2
app/Console/Kernel.php

@@ -51,14 +51,14 @@ class Kernel extends ConsoleKernel
      */
     protected function schedule(Schedule $schedule)
     {
-        $schedule->command('autoJob')->everyMinute();
+        $schedule->command('autoJob')->everyFiveMinutes();
         $schedule->command('serviceTimer')->everyTenMinutes();
         $schedule->command('autoClearLog')->everyThirtyMinutes();
 //        $schedule->command('nodeStatusDetection')->everyTenMinutes();
         $schedule->command('autoStatisticsNodeHourlyTraffic')->hourly();
         $schedule->command('autoStatisticsUserHourlyTraffic')->hourly();
         $schedule->command('userTrafficAbnormalAutoWarning')->hourly();
-        $schedule->command('dailyJob')->everyFiveMinutes();
+        $schedule->command('dailyJob')->everyFifteenMinutes();
         $schedule->command('autoReportNode')->dailyAt('09:00');
         $schedule->command('userTrafficAutoWarning')->dailyAt('10:30');
         $schedule->command('userExpireAutoWarning')->dailyAt('20:00');

+ 15 - 18
app/Http/Controllers/Admin/TicketController.php

@@ -6,9 +6,6 @@ use App\Http\Controllers\Controller;
 use App\Http\Requests\Admin\TicketRequest;
 use App\Models\Ticket;
 use App\Models\User;
-use App\Notifications\TicketClosed;
-use App\Notifications\TicketCreated;
-use App\Notifications\TicketReplied;
 use Auth;
 use Illuminate\Http\Request;
 use Response;
@@ -47,10 +44,10 @@ class TicketController extends Controller
             return Response::json(['status' => 'fail', 'message' => '不能对自己发起工单']);
         }
 
-        if ($ticket = Ticket::create(['user_id' => $user->id, 'admin_id' => auth()->id(), 'title' => $data['title'], 'content' => clean($data['content'])])) {
-            if (in_array('mail', sysConfig('ticket_created_notification'), true)) {
-                $user->notify(new TicketCreated($data['title'], $data['content'], route('replyTicket', $ticket), true));
-            }
+        if (Ticket::create(['user_id' => $user->id, 'admin_id' => auth()->id(), 'title' => $data['title'], 'content' => clean($data['content'])]) ) {
+//            if (in_array('mail', sysConfig('ticket_created_notification'), true)) {
+//                $user->notify(new TicketCreated($data['title'], $data['content'], route('replyTicket', $ticket), true));
+//            }
 
             return Response::json(['status' => 'success', 'message' => '工单创建成功']);
         }
@@ -77,12 +74,12 @@ class TicketController extends Controller
             $ticket->update(['status' => 1]);
 
             // 通知用户
-            if (in_array('mail', sysConfig('ticket_replied_notification'), true)) {
-                Log::info(route('replyTicket')."?id=".$ticket->id);
-                Log::info($ticket);
-                //$ticket->user->notify(new TicketReplied($ticket->title, $content, route('replyTicket', $ticket), true));
-                $ticket->user->notify(new TicketReplied($ticket->title, $content, route('replyTicket')."?id=".$ticket->id, true));
-            }
+//            if (in_array('mail', sysConfig('ticket_replied_notification'), true)) {
+//                Log::info(route('replyTicket')."?id=".$ticket->id);
+//                Log::info($ticket);
+//                //$ticket->user->notify(new TicketReplied($ticket->title, $content, route('replyTicket', $ticket), true));
+//                ##$ticket->user->notify(new TicketReplied($ticket->title, $content, route('replyTicket')."?id=".$ticket->id, true));
+//            }
 
             return Response::json(['status' => 'success', 'message' => '回复成功']);
         }
@@ -96,11 +93,11 @@ class TicketController extends Controller
         if (! $ticket->close()) {
             return Response::json(['status' => 'fail', 'message' => '关闭失败']);
         }
-        // 通知用户
-        if (in_array('mail', sysConfig('ticket_closed_notification'), true)) {
-           // $ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket', $ticket), \request('reason'), true));
-            $ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket')."?id=".$ticket->id, \request('reason'), true));
-        }
+//        // 通知用户
+//        if (in_array('mail', sysConfig('ticket_closed_notification'), true)) {
+//           // $ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket', $ticket), \request('reason'), true));
+//           ## $ticket->user->notify(new TicketClosed($ticket->id, $ticket->title, route('replyTicket')."?id=".$ticket->id, \request('reason'), true));
+//        }
 
         return Response::json(['status' => 'success', 'message' => '关闭成功']);
     }

+ 9 - 3
app/Http/Controllers/Api/Client/V3Controller.php

@@ -24,9 +24,13 @@ class V3Controller  extends Controller
 {
     public function __construct()
     {
-        $this->middleware('auth:api')->except('login','refreshByUser', 'register', 'shop', 'getConfig','version','buy','ClashConfig','getsysconfig');
+        $this->middleware('auth:api')->except('login','Ping','refreshByUser', 'register', 'shop', 'getConfig','version','buy','ClashConfig','getsysconfig');
         auth()->shouldUse('api');
     }
+    public function Ping()
+    {
+        return response()->json(['ret' => 1], 200);
+    }
     //生成配置
     public function ClashConfig(Request $request){
        $code =  $request->input('code');
@@ -120,6 +124,8 @@ class V3Controller  extends Controller
             'user_buy' => 'https://user.viptwo.xyz/logina?email='.$request->input('email') . '&password='.$request->input('password'),
             'user_ticket' => 'https://user.viptwo.xyz/logintoticket?email='.$request->input('email') . '&password='.$request->input('password'),
             'clash_config' => route('SProxy_config', ['code'=>$userinfo['code']]),
+            'subUrl'      => sysConfig('subscribe_domain') . "/s/" . $userinfo['code'],
+            'subUrl2'      => "https://vip.zfvipone.xyz" . "/s/" . $userinfo['code'],
         ];
 
         return response()->json(['ret' => 1, 'msg' => "请求成功",'data'=>$data], 200);
@@ -128,8 +134,8 @@ class V3Controller  extends Controller
     //正在获取系统配置
     public function getsysconfig(Request $request){
 
-        $url = "rj.viptwo.top";
-
+        //$url = "user.viptwo.xyz";
+        $url = "vip.zfvipone.xyz";
         $tag = $request->input('email');
         if (!isset($tag)){
             $data = [

+ 4 - 2
app/Http/Controllers/PaymentController.php

@@ -187,7 +187,7 @@ class PaymentController extends Controller
 
         // 生成订单
         try {
-            $newOrder = Order::create([
+            $order_data = [
                 'sn' => date('ymdHis').random_int(100000, 999999),
                 'user_id' => auth()->id(),
                 'goods_id' => $credit ? null : $goods_id,
@@ -196,7 +196,9 @@ class PaymentController extends Controller
                 'amount'=>$amount,
                 'pay_type'=>$pay_type,
                 'pay_way'=>self::$method,
-            ]);
+            ];
+            Log::info('生成订单数据:'.var_export($order_data,true));
+            $newOrder = Order::create($order_data);
 
             // 使用优惠券,减少可使用次数
             if (! empty($coupon)) {

+ 9 - 11
app/Http/Controllers/UserController.php

@@ -12,8 +12,6 @@ use App\Models\NodeHeartbeat;
 use App\Models\Order;
 use App\Models\Ticket;
 use App\Models\User;
-use App\Notifications\TicketCreated;
-use App\Notifications\TicketReplied;
 use Cache;
 use DB;
 use Exception;
@@ -337,10 +335,10 @@ class UserController extends Controller
 
         if ($ticket = $user->tickets()->create(compact('title', 'content'))) {
             // 通知相关管理员
-            Notification::send(User::permission('admin.ticket.edit,update')->orWhere(function ($query) {
-                return $query->role('Super Admin');
-            })->get(),
-                new TicketCreated($ticket->title, $ticket->content, route('admin.ticket.edit', $ticket)));
+//            Notification::send(User::permission('admin.ticket.edit,update')->orWhere(function ($query) {
+//                return $query->role('Super Admin');
+//            })->get(),
+//                new TicketCreated($ticket->title, $ticket->content, route('admin.ticket.edit', $ticket)));
 
             return Response::json(['status' => 'success', 'message' => trans('common.submit_item', ['attribute' => trans('common.success')])]);
         }
@@ -373,11 +371,11 @@ class UserController extends Controller
                 $ticket->status = 0;
                 $ticket->save();
 
-                // 通知相关管理员
-                Notification::send(User::permission('admin.ticket.edit,update')->orWhere(function ($query) {
-                    return $query->role('Super Admin');
-                })->get(),
-                    new TicketReplied($ticket->title, $content, route('admin.ticket.edit', $ticket)));
+//                // 通知相关管理员
+//                Notification::send(User::permission('admin.ticket.edit,update')->orWhere(function ($query) {
+//                    return $query->role('Super Admin');
+//                })->get(),
+//                    new TicketReplied($ticket->title, $content, route('admin.ticket.edit', $ticket)));
 
                 return Response::json(['status' => 'success', 'message' => trans('user.ticket.reply').trans('common.success')]);
             }

+ 6 - 5
app/Notifications/TicketCreated.php

@@ -31,11 +31,12 @@ class TicketCreated extends Notification implements ShouldQueue
 
     public function toMail($notifiable)
     {
-        return (new MailMessage)
-            ->subject(trans('notification.new_ticket', ['title' => $this->title]))
-            ->line(trans('notification.ticket_content'))
-            ->line($this->content)
-            ->action(trans('notification.view_ticket'), $this->url);
+        return "";
+//        return (new MailMessage)
+//            ->subject(trans('notification.new_ticket', ['title' => $this->title]))
+//            ->line(trans('notification.ticket_content'))
+//            ->line($this->content)
+//            ->action(trans('notification.view_ticket'), $this->url);
     }
 
     public function toCustom($notifiable)

+ 6 - 5
app/Notifications/TicketReplied.php

@@ -31,11 +31,12 @@ class TicketReplied extends Notification implements ShouldQueue
 
     public function toMail($notifiable)
     {
-        return (new MailMessage)
-            ->subject(trans('notification.reply_ticket', ['title' => $this->title]))
-            ->line(trans('notification.ticket_content'))
-            ->line(strip_tags($this->content))
-            ->action(trans('notification.view_ticket'), $this->url);
+        return "";
+//        return (new MailMessage)
+//            ->subject(trans('notification.reply_ticket', ['title' => $this->title]))
+//            ->line(trans('notification.ticket_content'))
+//            ->line(strip_tags($this->content))
+//            ->action(trans('notification.view_ticket'), $this->url);
     }
 
     public function toCustom($notifiable)

+ 14 - 7
app/Services/OrderService.php

@@ -6,6 +6,7 @@ use App\Components\Helpers;
 use App\Models\Order;
 use App\Models\ReferralLog;
 use App\Models\User;
+use Cache;
 use DB;
 use Log;
 
@@ -47,13 +48,21 @@ class OrderService
                 $this->activatePackage();
                 break;
             case 2:// 套餐
-                $this->activatePlan();
+
+                if ($this->dactivatePlan()) {
+                    // 仅在 dactivatePlan 成功执行后,计算佣金
+                    $this->setCommissionExpense(self::$user); // 返利
+                } else {
+                    Log::warning('【处理订单】出现错误');
+                }
+
+
 //                if (Order::userActivePlan(self::$user->id)->where('id', '<>', self::$order->id)->exists()) {// 判断套餐是否直接激活
 //                    $this->setPrepaidPlan();
 //                } else {
 //                    $this->activatePlan();
 //                }
-                $this->setCommissionExpense(self::$user); // 返利
+
                 break;
             default:
                 Log::warning('【处理订单】出现错误-未知套餐类型');
@@ -105,7 +114,7 @@ class OrderService
     }
 
     // 激活套餐
-    private function activatePlan(): bool
+    private function dactivatePlan(): bool
     {
 
 
@@ -217,9 +226,7 @@ class OrderService
             }
             // 按照返利模式进行返利判断
             if ($referralType == 2 || $referral) {
-                // 可以考虑将此操作移至数据库事务中,以便在出错时回滚
-
-                return $this->addReferralLog(
+                $this->addReferralLog(
                     $user->id,
                     $inviter->id,
                     self::$order->id,
@@ -228,8 +235,8 @@ class OrderService
                 );
             }
         }
-
         return true;
+
     }
 
     /**

+ 1 - 0
routes/api.php

@@ -91,6 +91,7 @@ Route::group(['namespace' => 'Api\Client', 'prefix' => 'client/code'], function
 
 Route::group(['namespace' => 'Api\Client', 'middleware' => 'api', 'prefix' => 'client/v3'], function () {
     Route::post('login', 'V3Controller@login'); // 登陆
+    Route::get('Ping', 'V3Controller@Ping'); // 登陆
     Route::get('SProxy_config', 'V3Controller@ClashConfig')->name('SProxy_config');; // 登陆
     Route::get('authUser', 'V3Controller@authUser'); // 验证用户
     Route::get('refresh', 'V3Controller@refresh'); // 刷新令牌