admin 7 лет назад
Родитель
Сommit
9188e2ee48

+ 80 - 74
app/Http/Controllers/Api/YzyController.php

@@ -9,6 +9,8 @@ use App\Http\Models\GoodsLabel;
 use App\Http\Models\Order;
 use App\Http\Models\Payment;
 use App\Http\Models\PaymentCallback;
+use App\Http\Models\SsNode;
+use App\Http\Models\SsNodeLabel;
 use App\Http\Models\User;
 use App\Http\Models\UserLabel;
 use App\Mail\sendUserInfo;
@@ -31,7 +33,7 @@ class YzyController extends Controller
     {
         self::$systemConfig = Helpers::systemConfig();
     }
-    
+
     // 接收GET请求
     public function index(Request $request)
     {
@@ -166,95 +168,93 @@ class YzyController extends Controller
             $order->status = 2;
             $order->save();
 
-            // 如果买的是套餐,则先将之前购买的所有套餐置都无效,并扣掉之前所有套餐的流量
             $goods = Goods::query()->where('id', $order->goods_id)->first();
-            if ($goods->type == 2) {
-                $existOrderList = Order::query()
-                    ->with(['goods'])
-                    ->whereHas('goods', function ($q) {
-                        $q->where('type', 2);
-                    })
-                    ->where('user_id', $order->user_id)
-                    ->where('oid', '<>', $order->oid)
-                    ->where('is_expire', 0)
-                    ->where('status', 2)
-                    ->get();
-
-                foreach ($existOrderList as $vo) {
-                    Order::query()->where('oid', $vo->oid)->update(['is_expire' => 1]);
-                    User::query()->where('id', $order->user_id)->decrement('transfer_enable', $vo->goods->traffic * 1048576);
-                }
-            }
 
-            // 把商品的流量加到账号上
+            // 商品为流量或者套餐
             if ($goods->type <= 2) {
-            User::query()->where('id', $order->user_id)->increment('transfer_enable', $goods->traffic * 1048576);
-            }
+                // 如果买的是套餐,则先将之前购买的所有套餐置都无效,并扣掉之前所有套餐的流量
+                if ($goods->type == 2) {
+                    $existOrderList = Order::query()
+                        ->with(['goods'])
+                        ->whereHas('goods', function ($q) {
+                            $q->where('type', 2);
+                        })
+                        ->where('user_id', $order->user_id)
+                        ->where('oid', '<>', $order->oid)
+                        ->where('is_expire', 0)
+                        ->where('status', 2)
+                        ->get();
+
+                    foreach ($existOrderList as $vo) {
+                        Order::query()->where('oid', $vo->oid)->update(['is_expire' => 1]);
+                        User::query()->where('id', $order->user_id)->decrement('transfer_enable', $vo->goods->traffic * 1048576);
+                    }
+                }
 
-            // 计算账号过期时间
-            if ($order->user->expire_time < date('Y-m-d', strtotime("+" . $goods->days . " days"))) {
-                $expireTime = date('Y-m-d', strtotime("+" . $goods->days . " days"));
-            } else {
-                $expireTime = $order->user->expire_time;
-            }
+                // 把商品的流量加到账号上
+                User::query()->where('id', $order->user_id)->increment('transfer_enable', $goods->traffic * 1048576);
 
-            // 套餐就改流量重置日,流量包不改
-            if ($goods->type == 2) {
-                if (date('m') == 2 && date('d') == 29) {
-                    $traffic_reset_day = 28;
+                // 计算账号过期时间
+                if ($order->user->expire_time < date('Y-m-d', strtotime("+" . $goods->days . " days"))) {
+                    $expireTime = date('Y-m-d', strtotime("+" . $goods->days . " days"));
                 } else {
-                    $traffic_reset_day = date('d') == 31 ? 30 : abs(date('d'));
+                    $expireTime = $order->user->expire_time;
                 }
-                User::query()->where('id', $order->user_id)->update(['traffic_reset_day' => $traffic_reset_day, 'expire_time' => $expireTime, 'enable' => 1]);
-            } else {
-                User::query()->where('id', $order->user_id)->update(['expire_time' => $expireTime, 'enable' => 1]);
-            }
 
-            // 写入用户标签
-            if ($goods->type <= 2) {
-            if ($goods->label) {
-                // 用户默认标签
-                $defaultLabels = [];
-                if (self::$systemConfig['initial_labels_for_user']) {
-                    $defaultLabels = explode(',', self::$systemConfig['initial_labels_for_user']);
+                // 套餐就改流量重置日,流量包不改
+                if ($goods->type == 2) {
+                    if (date('m') == 2 && date('d') == 29) {
+                        $traffic_reset_day = 28;
+                    } else {
+                        $traffic_reset_day = date('d') == 31 ? 30 : abs(date('d'));
+                    }
+                    User::query()->where('id', $order->user_id)->update(['traffic_reset_day' => $traffic_reset_day, 'expire_time' => $expireTime, 'enable' => 1]);
+                } else {
+                    User::query()->where('id', $order->user_id)->update(['expire_time' => $expireTime, 'enable' => 1]);
                 }
 
-                // 取出现有的标签
-                $userLabels = UserLabel::query()->where('user_id', $order->user_id)->pluck('label_id')->toArray();
-                $goodsLabels = GoodsLabel::query()->where('goods_id', $order->goods_id)->pluck('label_id')->toArray();
-
-                // 标签去重
-                $newUserLabels = array_values(array_unique(array_merge($userLabels, $goodsLabels, $defaultLabels)));
-
-                // 删除用户所有标签
-                UserLabel::query()->where('user_id', $order->user_id)->delete();
+                // 写入用户标签
+                if ($goods->label) {
+                    // 用户默认标签
+                    $defaultLabels = [];
+                    if (self::$systemConfig['initial_labels_for_user']) {
+                        $defaultLabels = explode(',', self::$systemConfig['initial_labels_for_user']);
+                    }
+
+                    // 取出现有的标签
+                    $userLabels = UserLabel::query()->where('user_id', $order->user_id)->pluck('label_id')->toArray();
+                    $goodsLabels = GoodsLabel::query()->where('goods_id', $order->goods_id)->pluck('label_id')->toArray();
+
+                    // 标签去重
+                    $newUserLabels = array_values(array_unique(array_merge($userLabels, $goodsLabels, $defaultLabels)));
+
+                    // 删除用户所有标签
+                    UserLabel::query()->where('user_id', $order->user_id)->delete();
+
+                    // 生成标签
+                    foreach ($newUserLabels as $vo) {
+                        $obj = new UserLabel();
+                        $obj->user_id = $order->user_id;
+                        $obj->label_id = $vo;
+                        $obj->save();
+                    }
+                }
 
-                // 生成标签
-                foreach ($newUserLabels as $vo) {
-                    $obj = new UserLabel();
-                    $obj->user_id = $order->user_id;
-                    $obj->label_id = $vo;
-                    $obj->save();
+                // 写入返利日志
+                if ($order->user->referral_uid) {
+                    $this->addReferralLog($order->user_id, $order->user->referral_uid, $order->oid, $order->amount, $order->amount * self::$systemConfig['referral_percent']);
                 }
-            }
-            }
-          
-            // 在线充值
-            if ($goods->type == 3) {
+
+                // 取消重复返利
+                User::query()->where('id', $order->user_id)->update(['referral_uid' => 0]);
+            } elseif ($goods->type == 3) { // 商品为在线充值
                 User::query()->where('id', $order->user_id)->increment('balance', $goods->price * 100);
-            // 余额变动记录日志
-                $this->addUserBalanceLog($order->user_id,  $order->oid, $order->user->balance, $order->user->balance + $goods->price, +$goods->price, '用户在线充值' );
-            }
 
-            // 写入返利日志
-            if ($order->user->referral_uid) {
-                $this->addReferralLog($order->user_id, $order->user->referral_uid, $order->oid, $order->amount, $order->amount * self::$systemConfig['referral_percent']);
+                // 余额变动记录日志
+                $this->addUserBalanceLog($order->user_id, $order->oid, $order->user->balance, $order->user->balance + $goods->price, +$goods->price, '用户在线充值');
             }
 
-            // 取消重复返利
-            User::query()->where('id', $order->user_id)->update(['referral_uid' => 0]);
-
-            // 如果order的email值不为空
+            // 自动提号机:如果order的email值不为空
             if ($order->email) {
                 $title = '【' . self::$systemConfig['website_name'] . '】您的账号信息';
                 $content = [
@@ -272,6 +272,12 @@ class YzyController extends Controller
                     'expire_at'     => $order->expire_at
                 ];
 
+                // 获取可用节点列表
+                $labels = UserLabel::query()->where('user_id', $order->user_id)->get()->pluck('label_id');
+                $nodeIds = SsNodeLabel::query()->whereIn('label_id', $labels)->get()->pluck('node_id');
+                $nodeList = SsNode::query()->whereIn('id', $nodeIds)->orderBy('sort', 'desc')->orderBy('id', 'desc')->get();
+                $content['serverList'] = $nodeList;
+
                 try {
                     Mail::to($order->email)->send(new sendUserInfo(self::$systemConfig['website_name'], $content));
                     $this->sendEmailLog($order->user_id, $title, json_encode($content));

+ 1 - 1
app/Http/Controllers/ShopController.php

@@ -73,7 +73,7 @@ class ShopController extends Controller
             }
 
             // 流量不能超过10TB
-            if ($traffic > 10240000) {
+            if (in_array($type, [1, 2]) && $traffic > 10240000) {
                 Session::flash('errorMsg', '内含流量不能超过10TB');
 
                 return Redirect::back()->withInput();

+ 1 - 1
app/Http/Controllers/UserController.php

@@ -68,7 +68,7 @@ class UserController extends Controller
         $view['website_customer_service'] = self::$systemConfig['website_customer_service'];
         $view['is_push_bear'] = self::$systemConfig['is_push_bear'];
         $view['push_bear_qrcode'] = self::$systemConfig['push_bear_qrcode'];
-        $view['goodsList'] = Goods::query()->where('type', 3)->where('is_del', 0)->orderBy('price', 'asc')->paginate(20);
+        $view['goodsList'] = Goods::query()->where('type', 3)->where('is_del', 0)->orderBy('sort', 'desc')->orderBy('price', 'asc')->limit(10)->get(); // 余额充值商品,只取10个
 
         // 推广返利是否可见
         if (!Session::has('referral_status')) {

+ 1 - 0
resources/lang/en/home.php

@@ -96,6 +96,7 @@ return [
     'redeem_coupon'                   => 'Redeem',
     'service_type_1'                  => 'Flow Packet',
     'service_type_2'                  => 'Flow Plans',
+    'service_type_3'                  => 'Balance',
 
     // 流量日志
     'traffic_log_tips'                => 'Tips: The update of the flow chart will be delayed.',

+ 1 - 0
resources/lang/ja/home.php

@@ -96,6 +96,7 @@ return [
     'redeem_coupon'                   => '使用する',
     'service_type_1'                  => '流量包',
     'service_type_2'                  => 'コース',
+    'service_type_3'                  => '残高',
 
     // 流量日志
     'traffic_log_tips'                => '注意:データの更新が遅れている',

+ 1 - 0
resources/lang/ko/home.php

@@ -94,6 +94,7 @@ return [
     'redeem_coupon'                   => '사용',
     'service_type_1'                  => '유량용 가방',
     'service_type_2'                  => '세트',
+    'service_type_3'                  => '잔액',
 
     // 流量日志
     'traffic_log_tips'                => '메모:데이터 갱신 지연.',

+ 1 - 0
resources/lang/zh-CN/home.php

@@ -96,6 +96,7 @@ return [
     'redeem_coupon'                   => '使用',
     'service_type_1'                  => '流量包',
     'service_type_2'                  => '套餐',
+    'service_type_3'                  => '余额',
 
     // 流量日志
     'traffic_log_tips'                => '提示:流量统计更新会有延迟。按天统计于次日更新,按小时统计于次小时更新。',

+ 1 - 0
resources/lang/zh-tw/home.php

@@ -96,6 +96,7 @@ return [
     'redeem_coupon'                   => '使用',
     'service_type_1'                  => '流量包',
     'service_type_2'                  => '套餐',
+    'service_type_3'                  => '餘額',
 
     // 流量日志
     'traffic_log_tips'                => '提示:流量統計更新會有延遲。按天統計于次日更新,按小時統計圖于次小時更新。',

+ 6 - 6
resources/views/admin/system.blade.php

@@ -99,12 +99,12 @@
                                                         <div class="col-md-6">
                                                             <label for="is_invite_register" class="col-md-3 control-label">邀请注册</label>
                                                             <div class="col-md-9">
-                                                              <select id="is_invite_register" class="form-control select2" name="is_invite_register">
-                                                                <option value="0" @if($is_invite_register == '0') selected @endif>关闭</option>
-                                                                <option value="1" @if($is_invite_register == '1') selected @endif>可选</option>
-                                                                <option value="2" @if($is_invite_register == '2') selected @endif>必须</option>
-                                                              </select>
-                                                              <span class="help-block"> 启用后必须使用邀请码进行注册 </span>
+                                                                <select id="is_invite_register" class="form-control select2" name="is_invite_register">
+                                                                    <option value="0" @if($is_invite_register == '0') selected @endif>关闭</option>
+                                                                    <option value="1" @if($is_invite_register == '1') selected @endif>可选</option>
+                                                                    <option value="2" @if($is_invite_register == '2') selected @endif>必须</option>
+                                                                </select>
+                                                                <span class="help-block"> 启用后必须使用邀请码进行注册 </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">

+ 18 - 7
resources/views/emails/sendUserInfo.blade.php

@@ -69,9 +69,9 @@
                                     <th style="Margin:0;color:#333;font-family:Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;line-height:19px;margin:0;padding:0;text-align:left">
                                         <div class="release" style="padding-top:5px;padding-left:20px;padding-bottom:20px;">
                                             <table>
-                                                <th>
-                                                    <td colspan="2">您的账号信息如下</td>
-                                                </th>
+                                                <tr>
+                                                    <td colspan="2" style="text-align: left;">您的账号信息如下</td>
+                                                </tr>
                                                 <tr>
                                                     <td>订单编号</td>
                                                     <td>{{$content['order_sn']}}</td>
@@ -84,10 +84,6 @@
                                                     <td>流量</td>
                                                     <td>{{$content['goods_traffic']}}</td>
                                                 </tr>
-                                                <tr>
-                                                    <td>节点列表</td>
-                                                    <td>{{$content['server_list']}}</td>
-                                                </tr>
                                                 <tr>
                                                     <td>端口</td>
                                                     <td>{{$content['port']}}</td>
@@ -108,6 +104,21 @@
                                                     <td>过期时间</td>
                                                     <td>{{$content['expire_at']}}</td>
                                                 </tr>
+                                                @if($content['serverList'])
+                                                    <tr>
+                                                        <td colspan="2" style="text-align: left;">节点列表</td>
+                                                    </tr>
+                                                    <tr>
+                                                        <th>节点名称</th>
+                                                        <th>节点地址</th>
+                                                    </tr>
+                                                    @foreach($content['serverList'] as $vo)
+                                                        <tr>
+                                                            <td>{{$vo['name']}}</td>
+                                                            <td>{{$vo['server'] ? $vo['server'] : $vo['ip']}}</td>
+                                                        </tr>
+                                                    @endforeach
+                                                @endif
                                             </table>
                                         </div>
                                     </th>

+ 1 - 1
resources/views/user/buy.blade.php

@@ -23,7 +23,7 @@
                                 <tr>
                                     <td style="padding: 10px;">
                                         <h2>{{$goods->name}}</h2>
-                                        添加帐户余额{{$goods->price}}元
+                                        充值金额:{{$goods->price}}元
                                         </td>
                                     <td class="text-center"> ¥{{$goods->price}} </td>
                                 </tr>

+ 9 - 1
resources/views/user/goodsList.blade.php

@@ -47,7 +47,15 @@
                                                 <span style="color: #000;">{{trans('home.service_days')}}:{{$goods->days}} {{trans('home.day')}}</span>
                                             </td>
                                             <td style="width: 20%; text-align: center;"> {{$goods->desc}} </td>
-                                            <td style="width: 20%; text-align: center;"> {{$goods->type == '1' ? trans('home.service_type_1') : trans('home.service_type_2')}} </td>
+                                            <td style="width: 20%; text-align: center;">
+                                                @if($goods->type == 1)
+                                                    {{trans('home.service_type_1')}}
+                                                @elseif($goods->type == 2)
+                                                    {{trans('home.service_type_2')}}
+                                                @else
+                                                    {{trans('home.service_type_3')}}
+                                                @endif
+                                            </td>
                                             <td style="width: 20%; text-align: center;"> ¥{{$goods->price}} </td>
                                             <td style="width: 20%; text-align: center;">
                                                 <a href="javascript:buy('{{$goods->id}}');" class="btn blue"> {{trans('home.service_buy_button')}} </a>

+ 22 - 20
resources/views/user/index.blade.php

@@ -291,24 +291,24 @@
                                     <div class="col-md-6">
                                         <select class="form-control" name="charge_type" id="charge_type">
                                             <option value="1" selected>{{trans('home.coupon_code')}}</option>
-                                            <option value="2" selected >{{trans('home.online_pay')}}</option>
+                                            @if(!$goodsList->isEmpty())
+                                                <option value="2">{{trans('home.online_pay')}}</option>
+                                            @endif
                                         </select>
                                     </div>
                                 </div>
-                                <div class="form-group">
-                                    <label for="online_pay" class="col-md-4 control-label">充值金额</label>
-                                    <div class="col-md-6">
-                                        <select class="form-control" name="online_pay" id="online_pay">
-                                            @if($goodsList->isEmpty())
-                                                <option value = "0" >尚未开通在线支付充值</option>
-                                            @else
+                                @if(!$goodsList->isEmpty())
+                                    <div class="form-group" id="charge_balance" style="display: none;">
+                                        <label for="online_pay" class="col-md-4 control-label">充值金额</label>
+                                        <div class="col-md-6">
+                                            <select class="form-control" name="online_pay" id="online_pay">
                                                 @foreach($goodsList as $key => $goods)
-                                                    <option value = "{{$goods->id}}" >充值{{$goods->price}}元</option>
+                                                    <option value="{{$goods->id}}">充值{{$goods->price}}元</option>
                                                 @endforeach
-                                            @endif
-                                        </select>
+                                            </select>
+                                        </div>
                                     </div>
-                                </div>
+                                @endif
                                 <div class="form-group">
                                     <label for="charge_coupon" class="col-md-4 control-label"> {{trans('home.coupon_code')}} </label>
                                     <div class="col-md-6">
@@ -415,18 +415,20 @@
     <script src="/js/layer/layer.js" type="text/javascript"></script>
 
     <script type="text/javascript">
+        // 切换充值方式
+        $("#charge_type").change(function(){
+            if ($(this).val() == 2) {
+                $("#charge_balance").show();
+            } else {
+                $("#charge_balance").hide();
+            }
+        });
+
         // 充值
         function charge() {
-            var _token = '{{csrf_token()}}';
             var charge_type = $("#charge_type").val();
             var charge_coupon = $("#charge_coupon").val();
             var online_pay = $("#online_pay").val();
-            
-            if (charge_type == '2' && (online_pay == '0')) {
-                $("#charge_msg").show().html("本站尚未开通在线支付充值");
-                window.location.href = '/';
-                return false;
-            }
 
             if (charge_type == '2') {
                 $("#charge_msg").show().html("正在跳转支付界面");
@@ -443,7 +445,7 @@
             $.ajax({
                 url:'{{url('charge')}}',
                 type:"POST",
-                data:{_token:_token, coupon_sn:charge_coupon},
+                data:{_token:'{{csrf_token()}}', coupon_sn:charge_coupon},
                 beforeSend:function(){
                     $("#charge_msg").show().html("{{trans('home.recharging')}}");
                 },