Explorar o código

用户流量变动记录

admin %!s(int64=7) %!d(string=hai) anos
pai
achega
be5c23fa25

+ 2 - 2
app/Http/Controllers/AdminController.php

@@ -316,7 +316,7 @@ class AdminController extends Controller
                 }
 
                 // 写入用户流量变动记录
-                Helpers::addUserTrafficModifyLog($user->id, 0, 0, toGB($request->get('transfer_enable', 0)), '后台批量生成用户');
+                Helpers::addUserTrafficModifyLog($user->id, 0, 0, toGB(1000), '后台批量生成用户');
             }
 
             DB::commit();
@@ -2208,7 +2208,7 @@ EOF;
     {
         $username = trim($request->get('username'));
 
-        $query = UserTrafficModifyLog::query()->with(['user', 'order'])->orderBy('id', 'desc');
+        $query = UserTrafficModifyLog::query()->with(['user', 'order', 'order.goods'])->orderBy('id', 'desc');
 
         if ($username) {
             $query->whereHas('user', function ($q) use ($username) {

+ 11 - 0
app/Http/Controllers/Api/YzyController.php

@@ -193,14 +193,25 @@ class YzyController extends Controller
 
                         // 先判断,防止手动扣减过流量的用户流量被扣成负数
                         if ($order->user->transfer_enable - $vo->goods->traffic * 1048576 <= 0) {
+                            // 写入用户流量变动记录
+                            Helpers::addUserTrafficModifyLog($order->user_id, $order->oid, 0, 0, '[在线支付]用户购买套餐,先扣减之前套餐的流量(扣完)');
+
                             User::query()->where('id', $order->user_id)->update(['u' => 0, 'd' => 0, 'transfer_enable' => 0]);
                         } else {
+                            // 写入用户流量变动记录
+                            $user = User::query()->where('id', $order->user_id)->first(); // 重新取出user信息
+                            Helpers::addUserTrafficModifyLog($order->user_id, $order->oid, $user->transfer_enable, ($user->transfer_enable - $vo->goods->traffic * 1048576), '[在线支付]用户购买套餐,先扣减之前套餐的流量(未扣完)');
+
                             User::query()->where('id', $order->user_id)->update(['u' => 0, 'd' => 0]);
                             User::query()->where('id', $order->user_id)->decrement('transfer_enable', $vo->goods->traffic * 1048576);
                         }
                     }
                 }
 
+                // 写入用户流量变动记录
+                $user = User::query()->where('id', $order->user_id)->first(); // 重新取出user信息
+                Helpers::addUserTrafficModifyLog($order->user_id, $order->oid, $user->transfer_enable, ($user->transfer_enable + $goods->traffic * 1048576), '[在线支付]用户购买商品,加上流量');
+
                 // 把商品的流量加到账号上
                 User::query()->where('id', $order->user_id)->increment('transfer_enable', $goods->traffic * 1048576);
 

+ 17 - 6
app/Http/Controllers/UserController.php

@@ -373,11 +373,11 @@ class UserController extends Controller
     }
 
     // 商品列表
-    public function goodsList(Request $request)
+    public function services(Request $request)
     {
         $view['goodsList'] = Goods::query()->where('status', 1)->where('is_del', 0)->where('type', '<=', '2')->orderBy('type', 'desc')->orderBy('sort', 'desc')->paginate(10)->appends($request->except('page'));
 
-        return Response::view('user.goodsList', $view);
+        return Response::view('user.services', $view);
     }
 
     // 工单
@@ -389,19 +389,19 @@ class UserController extends Controller
     }
 
     // 订单
-    public function orderList(Request $request)
+    public function invoices(Request $request)
     {
         $view['orderList'] = Order::query()->with(['user', 'goods', 'coupon', 'payment'])->where('user_id', Auth::user()->id)->orderBy('oid', 'desc')->paginate(10)->appends($request->except('page'));
 
-        return Response::view('user.orderList', $view);
+        return Response::view('user.invoices', $view);
     }
 
     // 订单明细
-    public function orderDetail(Request $request, $sn)
+    public function invoiceDetail(Request $request, $sn)
     {
         $view['order'] = Order::query()->with(['goods', 'coupon', 'payment'])->where('order_sn', $sn)->firstOrFail();
 
-        return Response::view('user.orderDetail', $view);
+        return Response::view('user.invoiceDetail', $view);
     }
 
     // 添加工单
@@ -712,14 +712,25 @@ class UserController extends Controller
 
                         // 先判断,防止手动扣减过流量的用户流量被扣成负数
                         if ($order->user->transfer_enable - $vo->goods->traffic * 1048576 <= 0) {
+                            // 写入用户流量变动记录
+                            Helpers::addUserTrafficModifyLog($user->id, $order->oid, 0, 0, '[余额支付]用户购买套餐,先扣减之前套餐的流量(扣完)');
+
                             User::query()->where('id', $order->user_id)->update(['u' => 0, 'd' => 0, 'transfer_enable' => 0]);
                         } else {
+                            // 写入用户流量变动记录
+                            $user = User::query()->where('id', $user->id)->first(); // 重新取出user信息
+                            Helpers::addUserTrafficModifyLog($user->id, $order->oid, $user->transfer_enable, ($user->transfer_enable - $vo->goods->traffic * 1048576), '[余额支付]用户购买套餐,先扣减之前套餐的流量(未扣完)');
+
                             User::query()->where('id', $order->user_id)->update(['u' => 0, 'd' => 0]);
                             User::query()->where('id', $order->user_id)->decrement('transfer_enable', $vo->goods->traffic * 1048576);
                         }
                     }
                 }
 
+                // 写入用户流量变动记录
+                $user = User::query()->where('id', $user->id)->first(); // 重新取出user信息
+                Helpers::addUserTrafficModifyLog($user->id, $order->oid, $user->transfer_enable, ($user->transfer_enable + $goods->traffic * 1048576), '[余额支付]用户购买商品,加上流量');
+
                 // 把商品的流量加到账号上
                 User::query()->where('id', $user->id)->increment('transfer_enable', $goods->traffic * 1048576);
 

+ 10 - 0
app/Http/Models/UserTrafficModifyLog.php

@@ -30,4 +30,14 @@ class UserTrafficModifyLog extends Model
         return $this->hasOne(Order::class, 'oid', 'order_id');
     }
 
+    function getBeforeAttribute($value)
+    {
+        return $this->attributes['before'] = flowAutoShow($value);
+    }
+
+    function getAfterAttribute($value)
+    {
+        return $this->attributes['after'] = flowAutoShow($value);
+    }
+
 }

+ 3 - 4
resources/views/admin/userTrafficLogList.blade.php

@@ -51,10 +51,9 @@
                                             <tr class="odd gradeX">
                                                 <td> {{$vo->id}} </td>
                                                 <td> {!! empty($vo->user) ? '【账号已删除】' : '<a href="/admin/userTrafficLogList?username=' . $vo->user->username . '">' . $vo->user->username . '</a>' !!} </td>
-                                                <td> {{$vo->order_id}} </td>
-                                                <td> {{$vo->before}} </td>
-                                                <td> {{$vo->amount}} </td>
-                                                <td> {{$vo->after}} </td>
+                                                <td> {{$vo->order_id ? $vo->order->goods->name : ''}} </td>
+                                                <td> <span class="label label-danger"> {{$vo->before}} </span> </td>
+                                                <td> <span class="label label-danger"> {{$vo->after}} </span> </td>
                                                 <td> {{$vo->desc}} </td>
                                                 <td> {{$vo->created_at}} </td>
                                             </tr>

+ 0 - 0
resources/views/user/orderDetail.blade.php → resources/views/user/invoiceDetail.blade.php


+ 0 - 0
resources/views/user/orderList.blade.php → resources/views/user/invoices.blade.php


+ 0 - 0
resources/views/user/goodsList.blade.php → resources/views/user/services.blade.php


+ 3 - 3
routes/web.php

@@ -107,14 +107,14 @@ Route::group(['middleware' => ['isForbidden', 'isLogin']], function () {
     Route::any('/', 'UserController@index'); // 用户首页
     Route::any('article', 'UserController@article'); // 文章详情
     Route::post('exchangeSubscribe', 'UserController@exchangeSubscribe'); // 更换节点订阅地址
-    Route::get('services', 'UserController@goodsList'); // 商品列表
+    Route::get('services', 'UserController@services'); // 商品列表
     Route::get('trafficLog', 'UserController@trafficLog'); // 流量日志
     Route::get('tickets', 'UserController@ticketList'); // 工单
     Route::post('addTicket', 'UserController@addTicket'); // 快速添加工单
     Route::any('replyTicket', 'UserController@replyTicket'); // 回复工单
     Route::post('closeTicket', 'UserController@closeTicket'); // 关闭工单
-    Route::get('invoices', 'UserController@orderList'); // 订单列表
-    Route::get('invoice/{sn}', 'UserController@orderDetail'); // 订单明细
+    Route::get('invoices', 'UserController@invoices'); // 订单列表
+    Route::get('invoice/{sn}', 'UserController@invoiceDetail'); // 订单明细
     Route::any('buy/{id}', 'UserController@buy'); // 购买商品
     Route::post('redeemCoupon', 'UserController@redeemCoupon'); // 使用优惠券
     Route::get('invite', 'UserController@invite'); // 邀请码

+ 2 - 2
sql/db.sql

@@ -640,8 +640,8 @@ CREATE TABLE `user_traffic_modify_log` (
 	`id` INT(11) NOT NULL AUTO_INCREMENT,
 	`user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
 	`order_id` INT(11) NOT NULL DEFAULT '0' COMMENT '发生的订单ID',
-	`before` INT(11) NOT NULL DEFAULT '0',
-	`after` INT(11) NOT NULL DEFAULT '0',
+	`before` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '操作前流量',
+	`after` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '操作后流量',
 	`desc` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '描述',
 	`created_at` DATETIME NOT NULL,
 	`updated_at` DATETIME NOT NULL,

+ 4 - 0
sql/update/20181121.sql

@@ -0,0 +1,4 @@
+-- 用户流量变动记录
+ALTER TABLE `user_traffic_modify_log`
+	CHANGE COLUMN `before` `before` BIGINT NOT NULL DEFAULT '0' COMMENT '操作前流量' AFTER `order_id`,
+	CHANGE COLUMN `after` `after` BIGINT NOT NULL DEFAULT '0' COMMENT '操作后流量' AFTER `before`;