Преглед изворни кода

使用验证器,移除用户积分日志

admin пре 6 година
родитељ
комит
5a80ca0375

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

@@ -30,7 +30,6 @@ use App\Http\Models\UserBalanceLog;
 use App\Http\Models\UserBanLog;
 use App\Http\Models\UserLabel;
 use App\Http\Models\UserLoginLog;
-use App\Http\Models\UserScoreLog;
 use App\Http\Models\UserSubscribe;
 use App\Http\Models\UserTrafficDaily;
 use App\Http\Models\UserTrafficHourly;
@@ -256,7 +255,6 @@ class AdminController extends Controller
             $user->usage = $request->get('usage');
             $user->pay_way = $request->get('pay_way');
             $user->balance = 0;
-            $user->score = 0;
             $user->enable_time = empty($request->get('enable_time')) ? date('Y-m-d') : $request->get('enable_time');
             $user->expire_time = empty($request->get('expire_time')) ? date('Y-m-d', strtotime("+365 days")) : $request->get('expire_time');
             $user->remark = str_replace("eval", "", str_replace("atob", "", $request->get('remark')));
@@ -518,7 +516,6 @@ class AdminController extends Controller
             UserSubscribe::query()->where('user_id', $id)->delete();
             UserBanLog::query()->where('user_id', $id)->delete();
             UserLabel::query()->where('user_id', $id)->delete();
-            UserScoreLog::query()->where('user_id', $id)->delete();
             UserBalanceLog::query()->where('user_id', $id)->delete();
             UserTrafficModifyLog::query()->where('user_id', $id)->delete();
             UserLoginLog::query()->where('user_id', $id)->delete();
@@ -2025,8 +2022,8 @@ EOF;
         if (env('APP_DEMO')) {
             $denyConfig = [
                 'website_url',
-                'min_rand_score',
-                'max_rand_score',
+                'min_rand_traffic',
+                'max_rand_traffic',
                 'push_bear_send_key',
                 'push_bear_qrcode',
                 'youzan_client_id',

+ 0 - 26
app/Http/Controllers/Controller.php

@@ -5,8 +5,6 @@ namespace App\Http\Controllers;
 use App\Http\Models\ReferralLog;
 use App\Http\Models\SensitiveWords;
 use App\Http\Models\UserBalanceLog;
-use App\Http\Models\UserScoreLog;
-use App\Http\Models\UserSubscribe;
 use Illuminate\Foundation\Bus\DispatchesJobs;
 use Illuminate\Routing\Controller as BaseController;
 use Illuminate\Foundation\Validation\ValidatesRequests;
@@ -134,30 +132,6 @@ class Controller extends BaseController
         return $log->save();
     }
 
-    /**
-     * 添加积分日志
-     *
-     * @param int    $userId 用户ID
-     * @param int    $before 记录前余额
-     * @param int    $after  记录后余额
-     * @param int    $score  发生值
-     * @param string $desc   描述
-     *
-     * @return int
-     */
-    public function addUserScoreLog($userId, $before, $after, $score, $desc = '')
-    {
-        $log = new UserScoreLog();
-        $log->user_id = $userId;
-        $log->before = $before;
-        $log->after = $after;
-        $log->score = $score;
-        $log->desc = $desc;
-        $log->created_at = date('Y-m-d H:i:s');
-
-        return $log->save();
-    }
-
     // 获取敏感词
     public function sensitiveWords()
     {

+ 45 - 38
app/Http/Controllers/CouponController.php

@@ -33,26 +33,39 @@ class CouponController extends Controller
     public function addCoupon(Request $request)
     {
         if ($request->isMethod('POST')) {
-            $name = $request->get('name');
-            $type = $request->get('type', 1);
-            $usage = $request->get('usage', 1);
-            $num = $request->get('num', 1);
-            $amount = $request->get('amount');
-            $discount = $request->get('discount');
-            $available_start = $request->get('available_start');
-            $available_end = $request->get('available_end');
-
-            if (empty($num) || (empty($amount) && empty($discount)) || empty($available_start) || empty($available_end)) {
-                Session::flash('errorMsg', '请填写完整');
-
-                return Redirect::back()->withInput();
-            }
-
-            if (strtotime($available_start) > strtotime($available_end)) {
-                Session::flash('errorMsg', '有效期范围错误');
-
-                return Redirect::back()->withInput();
-            }
+            $this->validate($request, [
+                'name'            => 'required',
+                'type'            => 'required|integer|between:1,3',
+                'usage'           => 'required|integer|between:1,2',
+                'num'             => 'required|integer|min:1',
+                'amount'          => 'required_unless:type,2|numeric|min:0.01|nullable',
+                'discount'        => 'required_if:type,2|numeric|between:1,9.9|nullable',
+                'available_start' => 'required|date|before_or_equal:available_end',
+                'available_end'   => 'required|date|after_or_equal:available_start',
+            ], [
+                'name.required'                   => '请填入卡券名称',
+                'type.required'                   => '请选择卡券类型',
+                'type.integer'                    => '卡券类型不合法,请重选',
+                'type.between'                    => '卡券类型不合法,请重选',
+                'usage.required'                  => '请选择卡券用途',
+                'usage.integer'                   => '卡券用途不合法,请重选',
+                'usage.between'                   => '卡券用途不合法,请重选',
+                'num.required'                    => '请填写卡券数量',
+                'num.integer'                     => '卡券数量不合法',
+                'num.min'                         => '卡券数量不合法,最小1',
+                'amount.required_unless'          => '请填入卡券面值',
+                'amount.numeric'                  => '卡券金额不合法',
+                'amount.min'                      => '卡券金额不合法,最小0.01',
+                'discount.required_if'            => '请填入卡券折扣',
+                'discount.numeric'                => '卡券折扣不合法',
+                'discount.between'                => '卡券折扣不合法,有效范围:1 ~ 9.9',
+                'available_start.required'        => '请填入有效期',
+                'available_start.date'            => '有效期不合法',
+                'available_start.before_or_equal' => '有效期不合法',
+                'available_end.required'          => '请填入有效期',
+                'available_end.date'              => '有效期不合法',
+                'available_end.after_or_equal'    => '有效期不合法'
+            ]);
 
             // 商品LOGO
             $logo = '';
@@ -62,9 +75,7 @@ class CouponController extends Controller
 
                 // 验证文件合法性
                 if (!in_array($fileType, ['jpg', 'png', 'jpeg', 'bmp'])) {
-                    Session::flash('errorMsg', 'LOGO不合法');
-
-                    return Redirect::back()->withInput();
+                    return Redirect::back()->withInput()->withErrors('LOGO不合法');
                 }
 
                 $logoName = date('YmdHis') . mt_rand(1000, 2000) . '.' . $fileType;
@@ -74,33 +85,31 @@ class CouponController extends Controller
 
             DB::beginTransaction();
             try {
-                for ($i = 0; $i < $num; $i++) {
+                for ($i = 0; $i < $request->num; $i++) {
                     $obj = new Coupon();
-                    $obj->name = $name;
+                    $obj->name = $request->name;
                     $obj->sn = strtoupper(makeRandStr(7));
                     $obj->logo = $logo;
-                    $obj->type = $type;
-                    $obj->usage = $usage;
-                    $obj->amount = empty($amount) ? 0 : $amount;
-                    $obj->discount = empty($discount) ? 0 : $discount;
-                    $obj->available_start = strtotime(date('Y-m-d 00:00:00', strtotime($available_start)));
-                    $obj->available_end = strtotime(date('Y-m-d 23:59:59', strtotime($available_end)));
+                    $obj->type = $request->type;
+                    $obj->usage = $request->usage;
+                    $obj->amount = empty($request->amount) ? 0 : $request->amount;
+                    $obj->discount = empty($request->discount) ? 0 : $request->discount;
+                    $obj->available_start = strtotime(date('Y-m-d 00:00:00', strtotime($request->available_start)));
+                    $obj->available_end = strtotime(date('Y-m-d 23:59:59', strtotime($request->available_end)));
                     $obj->status = 0;
                     $obj->save();
                 }
 
                 DB::commit();
 
-                Session::flash('successMsg', '生成成功');
+                return Redirect::back()->with('successMsg', '生成成功');
             } catch (\Exception $e) {
                 DB::rollBack();
 
                 Log::error('生成优惠券失败:' . $e->getMessage());
 
-                Session::flash('errorMsg', '生成失败:' . $e->getMessage());
+                return Redirect::back()->withInput()->withErrors('生成失败:' . $e->getMessage());
             }
-
-            return Redirect::to('coupon/addCoupon');
         } else {
             return Response::view('coupon.addCoupon');
         }
@@ -109,9 +118,7 @@ class CouponController extends Controller
     // 删除优惠券
     public function delCoupon(Request $request)
     {
-        $id = $request->get('id');
-
-        Coupon::query()->where('id', $id)->delete();
+        Coupon::query()->where('id', $request->id)->delete();
 
         return Response::json(['status' => 'success', 'data' => '', 'message' => '删除成功']);
     }

+ 15 - 35
app/Http/Controllers/PaymentController.php

@@ -13,10 +13,10 @@ use App\Http\Models\PaymentCallback;
 use Illuminate\Http\Request;
 use Payment\Client\Charge;
 use Response;
-use Redirect;
 use Log;
 use DB;
 use Auth;
+use Validator;
 
 /**
  * 支付控制器
@@ -223,8 +223,7 @@ class PaymentController extends Controller
 
             DB::commit();
 
-            if (self::$systemConfig['is_alipay']) {
-                // Alipay返回支付信息
+            if (self::$systemConfig['is_alipay']) { // Alipay返回支付信息
                 return Response::json(['status' => 'success', 'data' => $result, 'message' => '创建订单成功,正在转到付款页面,请稍后']);
             } else {
                 return Response::json(['status' => 'success', 'data' => $sn, 'message' => '创建订单成功,正在转到付款页面,请稍后']);
@@ -241,29 +240,7 @@ class PaymentController extends Controller
     // 支付单详情
     public function detail(Request $request, $sn)
     {
-        if (empty($sn)) {
-            return Redirect::to('services');
-        }
-
-        $payment = Payment::uid()->with(['order', 'order.goods'])->where('sn', $sn)->first();
-        if (!$payment) {
-            return Redirect::to('services');
-        }
-
-        $order = Order::query()->where('oid', $payment->oid)->first();
-        if (!$order) {
-            \Session::flash('errorMsg', '订单不存在');
-
-            return Response::view('payment/' . $sn);
-        }
-
-        $view['payment'] = $payment;
-        $view['website_logo'] = self::$systemConfig['website_logo'];
-        $view['website_analytics'] = self::$systemConfig['website_analytics'];
-        $view['website_customer_service'] = self::$systemConfig['website_customer_service'];
-        $view['is_alipay'] = self::$systemConfig['is_alipay'];
-        $view['is_f2fpay'] = self::$systemConfig['is_f2fpay'];
-        $view['is_youzan'] = self::$systemConfig['is_youzan'];
+        $view['payment'] = Payment::uid()->with(['order', 'order.goods'])->where('sn', $sn)->firstOrFail();
 
         return Response::view('payment.detail', $view);
     }
@@ -271,16 +248,19 @@ class PaymentController extends Controller
     // 获取订单支付状态
     public function getStatus(Request $request)
     {
-        $sn = $request->get('sn');
-
-        if (empty($sn)) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '请求失败']);
+        $validator = Validator::make($request->all(), [
+            'sn' => 'required|exists:payment,sn'
+        ], [
+            'sn.required' => '请求失败:缺少sn',
+            'sn.exists'   => '支付失败:支付单不存在'
+        ]);
+
+        if ($validator->fails()) {
+            return Response::json(['status' => 'error', 'data' => '', 'message' => $validator->getMessageBag()->first()]);
         }
 
-        $payment = Payment::uid()->where('sn', $sn)->first();
-        if (!$payment) {
-            return Response::json(['status' => 'error', 'data' => '', 'message' => '支付失败']);
-        } elseif ($payment->status > 0) {
+        $payment = Payment::uid()->where('sn', $request->sn)->first();
+        if ($payment->status > 0) {
             return Response::json(['status' => 'success', 'data' => '', 'message' => '支付成功']);
         } elseif ($payment->status < 0) {
             return Response::json(['status' => 'error', 'data' => '', 'message' => '订单超时未支付,已自动关闭']);
@@ -289,7 +269,7 @@ class PaymentController extends Controller
         }
     }
 
-    // 有赞云回调日志
+    // 回调日志
     public function callbackList(Request $request)
     {
         $status = $request->get('status', 0);

+ 15 - 15
app/Http/Controllers/SensitiveWordsController.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
 use App\Http\Models\SensitiveWords;
 use Illuminate\Http\Request;
 use Response;
+use Validator;
 
 /**
  * 敏感词管理控制器
@@ -18,7 +19,7 @@ class SensitiveWordsController extends Controller
     // 敏感词列表
     public function sensitiveWordsList(Request $request)
     {
-        $view['list'] = SensitiveWords::query()->paginate(15);
+        $view['list'] = SensitiveWords::query()->orderBy('id', 'desc')->paginate(15);
 
         return Response::view('sensitiveWords.sensitiveWordsList', $view);
     }
@@ -26,20 +27,21 @@ class SensitiveWordsController extends Controller
     // 添加敏感词
     public function addSensitiveWords(Request $request)
     {
-        $words = trim($request->input('words'));
-
-        if (empty($words)) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '添加失败:请填写敏感词']);
-        }
-
-        if (SensitiveWords::query()->where('words', $words)->exists()) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '添加失败:敏感词已存在']);
+        $validator = Validator::make($request->all(), [
+            'words' => 'required|unique:sensitive_words'
+        ], [
+            'words.required' => '添加失败:请填写敏感词',
+            'words.unique'   => '添加失败:敏感词已存在'
+        ]);
+
+        if ($validator->fails()) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => $validator->getMessageBag()->first()]);
         }
 
         $obj = new SensitiveWords();
-        $obj->words = strtolower($words);
-        $result = $obj->save();
-        if ($result) {
+        $obj->words = strtolower($request->words);
+        $obj->save();
+        if ($obj->id) {
             return Response::json(['status' => 'success', 'data' => '', 'message' => '添加成功']);
         } else {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '添加失败']);
@@ -49,9 +51,7 @@ class SensitiveWordsController extends Controller
     // 删除敏感词
     public function delSensitiveWords(Request $request)
     {
-        $id = intval($request->get('id'));
-
-        $result = SensitiveWords::query()->where('id', $id)->delete();
+        $result = SensitiveWords::query()->where('id', $request->id)->delete();
         if ($result) {
             return Response::json(['status' => 'success', 'data' => '', 'message' => '删除成功']);
         } else {

+ 42 - 55
app/Http/Controllers/ShopController.php

@@ -6,6 +6,7 @@ use App\Http\Models\Goods;
 use App\Http\Models\GoodsLabel;
 use App\Http\Models\Label;
 use Illuminate\Http\Request;
+use Log;
 use Response;
 use Redirect;
 use Session;
@@ -32,45 +33,34 @@ class ShopController extends Controller
     public function addGoods(Request $request)
     {
         if ($request->isMethod('POST')) {
-            $name = $request->get('name');
-            $desc = $request->get('desc', '');
-            $traffic = $request->get('traffic');
-            $price = round($request->get('price'), 2);
-            $score = intval($request->get('score', 0));
-            $type = intval($request->get('type', 1));
-            $days = intval($request->get('days', 90));
-            $color = trim($request->get('color', 0));
-            $sort = intval($request->get('sort', 0));
-            $is_hot = intval($request->get('is_hot', 0));
-            $is_limit = intval($request->get('is_limit', 0));
-            $labels = $request->get('labels');
-            $status = $request->get('status');
-
-            if (empty($name) || empty($traffic)) {
-                Session::flash('errorMsg', '请填写完整');
-
-                return Redirect::back()->withInput();
-            }
+            $this->validate($request, [
+                'name'    => 'required',
+                'traffic' => 'required_unless:type,3|integer|min:1024|max:10240000|nullable',
+                'price'   => 'required|numeric|min:0',
+                'type'    => 'required',
+                'days'    => 'required|integer',
+            ], [
+                'name.required'           => '请填入名称',
+                'traffic.required_unless' => '请填入流量',
+                'traffic.integer'         => '内含流量必须是整数值',
+                'traffic.min'             => '内含流量不能低于1MB',
+                'traffic.max'             => '内含流量不能超过10TB',
+                'price.required'          => '请填入价格',
+                'price.numeric'           => '价格不合法',
+                'price.min'               => '价格最低0',
+                'type.required'           => '请选择类型',
+                'days.required'           => '请填入有效期',
+                'days.integer'            => '有效期不合法',
+            ]);
 
             // 套餐必须有价格
-            if ($type == 2 && $price <= 0) {
-                Session::flash('errorMsg', '套餐价格必须大于0');
-
-                return Redirect::back()->withInput();
+            if ($request->type == 2 && $request->price <= 0) {
+                return Redirect::back()->withInput()->withErrors('套餐价格必须大于0');
             }
 
             // 套餐有效天数必须大于90天
-            if ($type == 2 && $days < 90) {
-                Session::flash('errorMsg', '套餐有效天数必须不能少于90天');
-
-                return Redirect::back()->withInput();
-            }
-
-            // 流量不能超过10TB
-            if (in_array($type, [1, 2]) && $traffic > 10240000) {
-                Session::flash('errorMsg', '内含流量不能超过10TB');
-
-                return Redirect::back()->withInput();
+            if ($request->type == 2 && $request->days < 90) {
+                return Redirect::back()->withInput()->withErrors('套餐有效天数必须不能少于90天');
             }
 
             // 商品LOGO
@@ -81,9 +71,7 @@ class ShopController extends Controller
 
                 // 验证文件合法性
                 if (!in_array($fileType, ['jpg', 'png', 'jpeg', 'bmp'])) {
-                    Session::flash('errorMsg', 'LOGO不合法');
-
-                    return Redirect::back()->withInput();
+                    return Redirect::back()->withInput()->withErrors('LOGO不合法');
                 }
 
                 $logoName = date('YmdHis') . mt_rand(1000, 2000) . '.' . $fileType;
@@ -94,19 +82,18 @@ class ShopController extends Controller
             DB::beginTransaction();
             try {
                 $goods = new Goods();
-                $goods->name = $name;
-                $goods->desc = $desc;
+                $goods->name = $request->name;
+                $goods->desc = $request->desc;
                 $goods->logo = $logo;
-                $goods->traffic = $traffic;
-                $goods->price = $price;
-                $goods->score = $score;
-                $goods->type = $type;
-                $goods->days = $days;
-                $goods->color = $color;
-                $goods->sort = $sort;
-                $goods->is_hot = $is_hot;
-                $goods->is_limit = $is_limit;
-                $goods->status = $status;
+                $goods->traffic = $request->traffic;
+                $goods->price = round($request->price, 2);
+                $goods->type = $request->type;
+                $goods->days = $request->days;
+                $goods->color = $request->color;
+                $goods->sort = intval($request->sort);
+                $goods->is_hot = intval($request->is_hot);
+                $goods->is_limit = intval($request->is_limit);
+                $goods->status = $request->status;
                 $goods->save();
 
                 // 生成SKU
@@ -114,6 +101,7 @@ class ShopController extends Controller
                 $goods->save();
 
                 // 生成商品标签
+                $labels = $request->get('labels');
                 if (!empty($labels)) {
                     foreach ($labels as $label) {
                         $goodsLabel = new GoodsLabel();
@@ -123,16 +111,15 @@ class ShopController extends Controller
                     }
                 }
 
-                Session::flash('successMsg', '添加成功');
-
                 DB::commit();
-            } catch (\Exception $e) {
-                Session::flash('errorMsg', '添加失败');
 
+                return Redirect::back()->with('successMsg', '添加成功');
+            } catch (\Exception $e) {
                 DB::rollBack();
-            }
+                Log::info($e);
 
-            return Redirect::to('shop/addGoods');
+                return Redirect::back()->withInput()->withErrors('添加失败');
+            }
         } else {
             $view['label_list'] = Label::query()->orderBy('sort', 'desc')->orderBy('id', 'asc')->get();
 

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

@@ -90,7 +90,7 @@ class UserController extends Controller
         $view['trafficDaily'] = "'" . implode("','", $dailyData) . "'";
         $view['trafficHourly'] = "'" . implode("','", $hourlyData) . "'";
         $view['monthDays'] = "'" . implode("','", $monthDays) . "'";
-        $view['notice'] = Article::query()->where('type', 2)->orderBy('id', 'desc')->first(); // 公告
+        $view['notice'] = Article::type(2)->orderBy('id', 'desc')->first(); // 公告
 
         return Response::view('user.index', $view);
     }
@@ -108,20 +108,20 @@ class UserController extends Controller
             return Response::json(['status' => 'fail', 'message' => '已经签到过了,明天再来吧']);
         }
 
-        $score = mt_rand(self::$systemConfig['min_rand_traffic'], self::$systemConfig['max_rand_traffic']);
-        $ret = User::uid()->increment('transfer_enable', $score * 1048576);
+        $traffic = mt_rand(self::$systemConfig['min_rand_traffic'], self::$systemConfig['max_rand_traffic']);
+        $ret = User::uid()->increment('transfer_enable', $traffic * 1048576);
         if (!$ret) {
             return Response::json(['status' => 'fail', 'message' => '签到失败,系统异常']);
         }
 
         // 写入用户流量变动记录
-        Helpers::addUserTrafficModifyLog(Auth::user()->id, 0, Auth::user()->transfer_enable, Auth::user()->transfer_enable + $score * 1048576, '[签到]');
+        Helpers::addUserTrafficModifyLog(Auth::user()->id, 0, Auth::user()->transfer_enable, Auth::user()->transfer_enable + $traffic * 1048576, '[签到]');
 
         // 多久后可以再签到
         $ttl = self::$systemConfig['traffic_limit_time'] ? self::$systemConfig['traffic_limit_time'] : 1440;
         Cache::put('userCheckIn_' . Auth::user()->id, '1', $ttl);
 
-        return Response::json(['status' => 'success', 'message' => '签到成功,系统送您 ' . $score . 'M 流量']);
+        return Response::json(['status' => 'success', 'message' => '签到成功,系统送您 ' . $traffic . 'M 流量']);
     }
 
     // 节点列表
@@ -252,12 +252,12 @@ class UserController extends Controller
         $view['nodeList'] = $nodeList;
 
         // 使用教程
-        $view['tutorial1'] = Article::query()->where('type', 4)->where('sort', 1)->orderBy('id', 'desc')->first();
-        $view['tutorial2'] = Article::query()->where('type', 4)->where('sort', 2)->orderBy('id', 'desc')->first();
-        $view['tutorial3'] = Article::query()->where('type', 4)->where('sort', 3)->orderBy('id', 'desc')->first();
-        $view['tutorial4'] = Article::query()->where('type', 4)->where('sort', 4)->orderBy('id', 'desc')->first();
-        $view['tutorial5'] = Article::query()->where('type', 4)->where('sort', 5)->orderBy('id', 'desc')->first();
-        $view['tutorial6'] = Article::query()->where('type', 4)->where('sort', 6)->orderBy('id', 'desc')->first();
+        $view['tutorial1'] = Article::type(4)->where('sort', 1)->orderBy('id', 'desc')->first();
+        $view['tutorial2'] = Article::type(4)->where('sort', 2)->orderBy('id', 'desc')->first();
+        $view['tutorial3'] = Article::type(4)->where('sort', 3)->orderBy('id', 'desc')->first();
+        $view['tutorial4'] = Article::type(4)->where('sort', 4)->orderBy('id', 'desc')->first();
+        $view['tutorial5'] = Article::type(4)->where('sort', 5)->orderBy('id', 'desc')->first();
+        $view['tutorial6'] = Article::type(4)->where('sort', 6)->orderBy('id', 'desc')->first();
 
         return Response::view('user.nodeList', $view);
     }
@@ -265,12 +265,7 @@ class UserController extends Controller
     // 公告详情
     public function article(Request $request)
     {
-        $id = $request->get('id');
-
-        $view['info'] = Article::query()->where('id', $id)->first();
-        if (empty($view['info'])) {
-            return Redirect::to('/');
-        }
+        $view['info'] = Article::query()->findOrFail($request->id);
 
         return Response::view('user.article', $view);
     }
@@ -340,16 +335,16 @@ class UserController extends Controller
     public function services(Request $request)
     {
         // 余额充值商品,只取10个
-        $view['chargeGoodsList'] = Goods::query()->where('status', 1)->where('type', 3)->orderBy('sort', 'desc')->orderBy('price', 'asc')->limit(10)->get();
+        $view['chargeGoodsList'] = Goods::type(3)->orderBy('price', 'asc')->limit(10)->get();
 
         // 套餐列表
-        $view['packageList'] = Goods::query()->where('status', 1)->where('type', 2)->orderBy('sort', 'desc')->limit(12)->get();
+        $view['packageList'] = Goods::type(2)->limit(12)->get();
 
         // 流量包列表
-        $view['trafficList'] = Goods::query()->where('status', 1)->where('type', 1)->orderBy('sort', 'desc')->limit(12)->get();
+        $view['trafficList'] = Goods::type(1)->limit(12)->get();
 
         // 购买说明
-        $view['direction'] = Article::query()->where('type', 3)->orderBy('id', 'desc')->first();
+        $view['direction'] = Article::type(3)->orderBy('id', 'desc')->first();
 
         return Response::view('user.services', $view);
     }
@@ -828,7 +823,7 @@ class UserController extends Controller
     // 帮助中心
     public function help(Request $request)
     {
-        $view['articleList'] = Article::query()->where('type', 1)->orderBy('sort', 'desc')->orderBy('id', 'desc')->limit(10)->paginate(5);
+        $view['articleList'] = Article::type(1)->orderBy('sort', 'desc')->orderBy('id', 'desc')->limit(10)->paginate(5);
 
         return Response::view('user.help', $view);
     }

+ 5 - 0
app/Http/Models/Article.php

@@ -20,4 +20,9 @@ class Article extends Model
     protected $primaryKey = 'id';
     protected $dates = ['deleted_at'];
 
+    // 筛选类型
+    function scopeType($query, $type)
+    {
+        return $query->where('type', $type);
+    }
 }

+ 5 - 0
app/Http/Models/Goods.php

@@ -19,6 +19,11 @@ class Goods extends Model
     protected $primaryKey = 'id';
     protected $dates = ['deleted_at'];
 
+    function scopeType($query, $type)
+    {
+        return $query->where('type', $type)->where('status', 1)->orderBy('sort', 'desc');
+    }
+
     function label()
     {
         return $this->hasMany(GoodsLabel::class, 'goods_id', 'id');

+ 0 - 24
app/Http/Models/UserScoreLog.php

@@ -1,24 +0,0 @@
-<?php
-
-namespace App\Http\Models;
-
-use Illuminate\Database\Eloquent\Model;
-
-/**
- * 账号积分操作日志
- * Class UserScoreLog
- *
- * @package App\Http\Models
- * @mixin \Eloquent
- */
-class UserScoreLog extends Model
-{
-    protected $table = 'user_score_log';
-    protected $primaryKey = 'id';
-    public $timestamps = false;
-
-    function user()
-    {
-        return $this->hasOne(User::class, 'id', 'user_id');
-    }
-}

+ 4 - 3
config/captcha.php

@@ -2,14 +2,15 @@
 
 return [
 
-    'characters' => '2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ',
+    'characters' => '123467890',
+    //'characters' => '2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ',
 
     'default' => [
-        'length'  => 9,
+        'length'  => 4, // 启用科学计算后要改为 9
         'width'   => 90,
         'height'  => 43,
         'quality' => 90,
-        'math'    => true,
+        'math'    => false, // 改为true,启用科学计算
     ],
 
     'flat' => [

+ 0 - 15
resources/views/admin/editUser.blade.php

@@ -112,19 +112,6 @@
                                                     </div>
                                                 </div>
                                             </div>
-                                            <!--
-                                            <div class="form-group">
-                                                <label for="score" class="col-md-3 control-label">积分</label>
-                                                <div class="col-md-5">
-                                                    <p class="form-control-static"> {{$user->score}} </p>
-                                                </div>
-                                                <div class="col-md-3">
-                                                    <div style="float:right;">
-                                                        <button type="button" class="btn btn-sm btn-danger">操作</button>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                            -->
                                             <div class="form-group">
                                                 <label class="col-md-3 control-label">有效期</label>
                                                 <div class="col-md-8">
@@ -458,7 +445,6 @@
             var password = $('#password').val();
             var pay_way = $("input:radio[name='pay_way']:checked").val();
             var balance = $('#balance').val();
-            var score = $('#score').val();
             var status = $("input:radio[name='status']:checked").val();
             var labels = $('#labels').val();
             var enable_time = $('#enable_time').val();
@@ -503,7 +489,6 @@
                     usage:usage,
                     pay_way:pay_way,
                     balance:balance,
-                    score:score,
                     status:status,
                     labels:labels,
                     enable_time:enable_time,

+ 3 - 4
resources/views/coupon/addCoupon.blade.php

@@ -14,10 +14,9 @@
                         {{Session::get('successMsg')}}
                     </div>
                 @endif
-                @if (Session::has('errorMsg'))
+                @if($errors->any())
                     <div class="alert alert-danger">
-                        <button class="close" data-close="alert"></button>
-                        <strong>错误:</strong> {{Session::get('errorMsg')}}
+                        <span> {{$errors->first()}} </span>
                     </div>
                 @endif
                 <!-- BEGIN PORTLET-->
@@ -35,7 +34,7 @@
                                 <div class="form-group">
                                     <label class="control-label col-md-3">卡券名称</label>
                                     <div class="col-md-4">
-                                        <input type="text" class="form-control" name="name" value="" id="name" autocomplete="off" required>
+                                        <input type="text" class="form-control" name="name" value="{{Request::old('name')}}" id="name" autocomplete="off" required>
                                         <input type="hidden" name="_token" value="{{csrf_token()}}" />
                                     </div>
                                 </div>

+ 2 - 2
resources/views/payment/detail.blade.php

@@ -8,7 +8,7 @@
         <div class="portlet light bordered">
             <div class="portlet-body">
                 <div class="alert alert-info" style="text-align: center;">
-                    请使用<strong style="color:red;">支付宝@if($is_youzan==1)、微信@endif</strong>扫描如下二维码
+                    请使用<strong style="color:red;">支付宝@if(\App\Components\Helpers::systemConfig()['is_youzan'])、微信@endif</strong>扫描如下二维码
                 </div>
                 <div class="row" style="text-align: center; font-size: 1.05em;">
                     <div class="col-md-12">
@@ -55,7 +55,7 @@
         // 每800毫秒查询一次订单状态
         $(document).ready(function(){
             // 支付宝直接跳转支付
-            @if($is_alipay)
+            @if(\App\Components\Helpers::systemConfig()['is_alipay'])
                 document.body.innerHTML += unescapeHTML("{{$payment->qr_code}}");
                 document.forms['alipaysubmit'].submit();
             @endif

+ 0 - 2
resources/views/sensitiveWords/sensitiveWordsList.blade.php

@@ -106,8 +106,6 @@
                     }
                 });
             });
-
-            layer.close(index);
         }
 
         // 删除敏感词

+ 2 - 12
resources/views/shop/addGoods.blade.php

@@ -16,10 +16,9 @@
                         {{Session::get('successMsg')}}
                     </div>
                 @endif
-                @if (Session::has('errorMsg'))
+                @if($errors->any())
                     <div class="alert alert-danger">
-                        <button class="close" data-close="alert"></button>
-                        <strong>错误:</strong> {{Session::get('errorMsg')}}
+                        <span> {{$errors->first()}} </span>
                     </div>
                 @endif
                 <div class="note note-danger">
@@ -122,15 +121,6 @@
                                         <span class="help-block"> 自动给购买此商品的用户打上相应的标签 </span>
                                     </div>
                                 </div>
-                                <!--
-                                <div class="form-group package-money">
-                                    <label class="control-label col-md-3">所需积分</label>
-                                    <div class="col-md-6">
-                                        <input type="text" class="form-control" name="score" value="0" id="score" placeholder="" required>
-                                        <span class="help-block">换购该商品需要的积分值</span>
-                                    </div>
-                                </div>
-                                -->
                                 <div class="form-group package-money">
                                     <label class="control-label col-md-3">有效期</label>
                                     <div class="col-md-6">

+ 0 - 9
resources/views/shop/editGoods.blade.php

@@ -125,15 +125,6 @@
                                         <span class="help-block"> 自动给购买此商品的用户打上相应的标签 </span>
                                     </div>
                                 </div>
-                                <!--
-                                <div class="form-group">
-                                    <label class="control-label col-md-3">所需积分</label>
-                                    <div class="col-md-6">
-                                        <input type="text" class="form-control" name="score" value="{{$goods->score}}" id="score" placeholder="" required>
-                                        <span class="help-block">换购该商品需要的积分值</span>
-                                    </div>
-                                </div>
-                                -->
                                 <div class="form-group">
                                     <label class="control-label col-md-3">有效期</label>
                                     <div class="col-md-6">

+ 0 - 1
resources/views/shop/goodsList.blade.php

@@ -68,7 +68,6 @@
                                             <!-- <td> @if($goods->logo) <a href="{{$goods->logo}}" class="fancybox"><img src="{{$goods->logo}}"/></a> @endif </td> -->
                                             <td> {{$goods->type == 3 ? '' : $goods->traffic_label}} </td>
                                             <td> {{$goods->price}}元 </td>
-                                            <!-- <td> {{$goods->score}} </td> -->
                                             <td> {{$goods->sort}} </td>
                                             <td>
                                                 @if($goods->is_hot)

+ 1 - 1
routes/web.php

@@ -97,7 +97,7 @@ Route::group(['middleware' => ['isForbidden', 'isLogin', 'isAdmin']], function (
     Route::get('admin/trafficLog', 'AdminController@trafficLog'); // 流量日志
     Route::get('admin/analysis', 'AdminController@analysis'); // 日志分析
     Route::get('admin/emailLog', 'AdminController@emailLog'); // 邮件发送日志
-    Route::get("payment/callbackList", "PaymentController@callbackList"); // 有赞云支付回调日志
+    Route::get("payment/callbackList", "PaymentController@callbackList"); // 支付回调日志
     Route::get("sensitiveWords/list", "SensitiveWordsController@sensitiveWordslist"); // 敏感词列表
     Route::post("sensitiveWords/add", "SensitiveWordsController@addSensitiveWords"); // 添加敏感词
     Route::post("sensitiveWords/del", "SensitiveWordsController@delSensitiveWords"); // 删除敏感词

+ 1 - 19
sql/db.sql

@@ -142,7 +142,6 @@ CREATE TABLE `user` (
   `usage` VARCHAR(10) NOT NULL DEFAULT '4' COMMENT '用途:1-手机、2-电脑、3-路由器、4-其他',
   `pay_way` tinyint(4) NOT NULL DEFAULT '0' COMMENT '付费方式:0-免费、1-季付、2-月付、3-半年付、4-年付',
   `balance` int(11) NOT NULL DEFAULT '0' COMMENT '余额,单位分',
-  `score` int(11) NOT NULL DEFAULT '0' COMMENT '积分,暂无用',
   `enable_time` date DEFAULT NULL COMMENT '开通日期',
   `expire_time` date NOT NULL DEFAULT '2099-01-01' COMMENT '过期时间',
   `ban_time` int(11) NOT NULL DEFAULT '0' COMMENT '封禁到期时间',
@@ -506,8 +505,7 @@ CREATE TABLE `goods` (
   `sku` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商品服务SKU',
   `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商品名称',
   `logo` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商品图片地址',
-  `traffic` bigint(20) NOT NULL DEFAULT '0' COMMENT '商品内含多少流量,单位Mib',
-  `score` int(11) NOT NULL DEFAULT '0' COMMENT '商品价值多少积分',
+  `traffic` bigint(20) NOT NULL DEFAULT '0' COMMENT '商品内含多少流量,单位MiB',
   `type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '商品类型:1-流量包、2-套餐、3-余额充值',
   `price` int(11) NOT NULL DEFAULT '0' COMMENT '商品售价,单位分',
   `desc` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '商品描述',
@@ -632,22 +630,6 @@ CREATE TABLE `ticket_reply` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工单回复';
 
 
--- ----------------------------
--- Table structure for `user_score_log`
--- ----------------------------
-CREATE TABLE `user_score_log` (
-  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
-  `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '账号ID',
-  `before` int(11) NOT NULL DEFAULT '0' COMMENT '发生前积分',
-  `after` int(11) NOT NULL DEFAULT '0' COMMENT '发生后积分',
-  `score` int(11) NOT NULL DEFAULT '0' COMMENT '发生积分',
-  `desc` varchar(50) DEFAULT '' COMMENT '描述',
-  `created_at` datetime DEFAULT NULL COMMENT '创建日期',
-  PRIMARY KEY (`id`),
-  INDEX `idx` (`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户积分变动日志';
-
-
 -- ----------------------------
 -- Table structure for `user_balance_log`
 -- ----------------------------