Browse Source

Fix 图片上传路径问题,个别系统设置不更新问题 & 规范提示小窗口

兔姬桑 4 years ago
parent
commit
c183c4d506
32 changed files with 163 additions and 179 deletions
  1. 28 19
      app/Http/Controllers/Admin/ArticleController.php
  2. 1 1
      app/Http/Controllers/Admin/Config/EmailFilterController.php
  3. 2 2
      app/Http/Controllers/Admin/Config/LevelController.php
  4. 5 3
      app/Http/Controllers/Admin/CouponController.php
  5. 33 19
      app/Http/Controllers/Admin/ShopController.php
  6. 30 49
      app/Http/Controllers/Admin/SystemController.php
  7. 0 1
      app/Http/Controllers/Admin/TicketController.php
  8. 6 18
      app/Http/Controllers/Admin/ToolsController.php
  9. 0 3
      app/Http/Controllers/AdminController.php
  10. 5 14
      app/Http/Controllers/AuthController.php
  11. 0 2
      app/Http/Controllers/PaymentController.php
  12. 0 2
      app/Http/Controllers/User/AffiliateController.php
  13. 1 4
      app/Http/Controllers/UserController.php
  14. 1 1
      app/Http/Middleware/Affiliate.php
  15. 1 0
      app/Http/Requests/Admin/CouponRequest.php
  16. 1 0
      app/Http/Requests/Admin/ShopStoreRequest.php
  17. 1 0
      app/Http/Requests/Admin/ShopUpdateRequest.php
  18. 0 1
      app/Services/OrderService.php
  19. 12 0
      database/migrations/2020_11_10_075555_improve_table.php
  20. 0 3
      resources/views/admin/article/create.blade.php
  21. 0 3
      resources/views/admin/article/edit.blade.php
  22. 27 19
      resources/views/admin/config/system.blade.php
  23. 1 1
      resources/views/admin/coupon/index.blade.php
  24. 1 1
      resources/views/admin/inviteList.blade.php
  25. 1 1
      resources/views/admin/layouts.blade.php
  26. 1 1
      resources/views/admin/shop/index.blade.php
  27. 0 3
      resources/views/admin/shop/info.blade.php
  28. 1 4
      resources/views/admin/tools/import.blade.php
  29. 1 1
      resources/views/auth/layouts.blade.php
  30. 1 1
      resources/views/user/invoiceDetail.blade.php
  31. 1 1
      resources/views/user/layouts.blade.php
  32. 1 1
      routes/admin.php

+ 28 - 19
app/Http/Controllers/Admin/ArticleController.php

@@ -9,10 +9,10 @@ use Exception;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
+use Illuminate\Http\UploadedFile;
 use Log;
 use Redirect;
 use Response;
-use Session;
 
 class ArticleController extends Controller
 {
@@ -36,22 +36,33 @@ class ArticleController extends Controller
         $data = $request->except('_method', '_token');
         // LOGO
         if ($request->input('type') !== '4' && $request->hasFile('logo')) {
-            $data['logo'] = 'upload/'.$request->file('logo')->store('images');
-            if (! $data['logo']) {
-                Session::flash('errorMsg', 'LOGO不合法');
-
-                return Redirect::back()->withInput();
+            $path = $this->fileUpload($request->file('logo'));
+            if (is_string($path)) {
+                $data['logo'] = $path;
+            } else {
+                return $path;
             }
         }
 
         $article = Article::create($data);
         if ($article->id) {
-            Session::flash('successMsg', '添加成功');
-        } else {
-            Session::flash('errorMsg', '添加失败');
+            return Redirect::route('admin.article.edit', $article->id)->with('successMsg', '添加成功');
+        }
+
+        return Redirect::back()->withInput()->withErrors('添加失败');
+    }
+
+    // 图片上传
+    public function fileUpload(UploadedFile $file)
+    {
+        $fileName = Str::random(8).time().'.'.$file->getClientOriginalExtension();
+        $path = $file->storeAs('public', $fileName);
+
+        if (! $path) {
+            return Redirect::back()->withInput()->withErrors('Logo存储失败');
         }
 
-        return Redirect::to(route('admin.article.edit', $article->id));
+        return 'upload/'.$fileName;
     }
 
     // 文章页面
@@ -77,21 +88,19 @@ class ArticleController extends Controller
         $data['logo'] = $data['logo'] ?? null;
         // LOGO
         if ($request->input('type') != 4 && $request->hasFile('logo')) {
-            $data['logo'] = 'upload/'.$request->file('logo')->store('images');
-            if (! $data['logo']) {
-                Session::flash('errorMsg', 'LOGO不合法');
-
-                return Redirect::back()->withInput();
+            $path = $this->fileUpload($request->file('logo'));
+            if (is_string($path)) {
+                $data['logo'] = $path;
+            } else {
+                return $path;
             }
         }
 
         if (Article::find($id)->update($data)) {
-            Session::flash('successMsg', '编辑成功');
-        } else {
-            Session::flash('errorMsg', '编辑失败');
+            return Redirect::back()->with('successMsg', '编辑成功');
         }
 
-        return Redirect::to(route('admin.article.edit', $id));
+        return Redirect::back()->withErrors('编辑失败');
     }
 
     // 删除文章

+ 1 - 1
app/Http/Controllers/Admin/Config/EmailFilterController.php

@@ -29,7 +29,7 @@ class EmailFilterController extends Controller
         ]);
 
         if ($validator->fails()) {
-            return Response::json(['status' => 'fail', 'message' => $validator->errors()->first()]);
+            return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
         }
 
         try {

+ 2 - 2
app/Http/Controllers/Admin/Config/LevelController.php

@@ -23,7 +23,7 @@ class LevelController extends Controller
         ]);
 
         if ($validator->fails()) {
-            return Response::json(['status' => 'fail', 'message' => $validator->errors()->first()]);
+            return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
         }
 
         $obj = new Level();
@@ -49,7 +49,7 @@ class LevelController extends Controller
         ]);
 
         if ($validator->fails()) {
-            return Response::json(['status' => 'fail', 'message' => $validator->errors()->first()]);
+            return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
         }
         // 校验该等级下是否存在关联账号
         $levelCheck = Level::where('id', '<>', $id)->whereLevel($level)->exists();

+ 5 - 3
app/Http/Controllers/Admin/CouponController.php

@@ -60,11 +60,14 @@ class CouponController extends Controller
         // 优惠卷LOGO
         $logo = null;
         if ($request->hasFile('logo')) {
-            $logo = 'upload/'.$request->file('logo')->store('images');
+            $file = $request->file('logo');
+            $fileName = Str::random(8).time().'.'.$file->getClientOriginalExtension();
+            $path = $file->storeAs('public', $fileName);
 
-            if (! $logo) {
+            if (! $path) {
                 return Redirect::back()->withInput()->withErrors('LOGO不合法');
             }
+            $logo = 'upload/'.$fileName;
         }
         try {
             $num = (int) $request->input('num');
@@ -80,7 +83,6 @@ class CouponController extends Controller
                 $obj->rule = $request->input('rule');
                 $obj->start_time = strtotime($request->input('start_time'));
                 $obj->end_time = strtotime($request->input('end_time'));
-                $obj->status = 0;
                 $obj->save();
             }
 

+ 33 - 19
app/Http/Controllers/Admin/ShopController.php

@@ -11,10 +11,11 @@ use Exception;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
+use Illuminate\Http\UploadedFile;
 use Log;
 use Redirect;
 use Response;
-use Session;
+use Str;
 
 /**
  * 商店控制器.
@@ -55,22 +56,21 @@ class ShopController extends Controller
     // 添加商品
     public function store(ShopStoreRequest $request): RedirectResponse
     {
-        // 商品LOGO
-        if ($request->hasFile('logo')) {
-            $logo = 'upload/'.$request->file('logo')->store('images');
-
-            if (! $logo) {
-                return Redirect::back()->withInput()->withErrors('LOGO不合法');
-            }
-        }
-
         try {
             $data = $request->except('_token', 'logo', 'traffic', 'traffic_unit');
             $data['traffic'] = $request->input('traffic') * $request->input('traffic_unit') ?? 1;
-            $data['logo'] = $logo ?? null;
             $data['is_hot'] = $request->input('is_hot') ? 1 : 0;
             $data['status'] = $request->input('status') ? 1 : 0;
 
+            // 商品LOGO
+            if ($request->hasFile('logo')) {
+                $path = $this->fileUpload($request->file('logo'));
+                if (is_string($path)) {
+                    $data['logo'] = $path;
+                } else {
+                    return $path;
+                }
+            }
             $good = Goods::create($data);
 
             if ($good) {
@@ -85,6 +85,19 @@ class ShopController extends Controller
         return Redirect::back()->withInput()->withErrors('添加商品信息失败');
     }
 
+    // 图片上传
+    public function fileUpload(UploadedFile $file)
+    {
+        $fileName = Str::random(8).time().'.'.$file->getClientOriginalExtension();
+        $path = $file->storeAs('public', $fileName);
+
+        if (! $path) {
+            return Redirect::back()->withInput()->withErrors('Logo存储失败');
+        }
+
+        return 'upload/'.$fileName;
+    }
+
     // 编辑商品页面
     public function edit($id)
     {
@@ -101,12 +114,12 @@ class ShopController extends Controller
         $data = $request->except('_token', '_method', 'logo');
         // 商品LOGO
         if ($request->hasFile('logo')) {
-            $logo = 'upload/'.$request->file('logo')->store('images');
-
-            if (! $logo) {
-                return Redirect::back()->withInput()->withErrors('LOGO不合法');
+            $path = $this->fileUpload($request->file('logo'));
+            if (is_string($path)) {
+                $data['logo'] = $path;
+            } else {
+                return $path;
             }
-            $data['logo'] = $logo;
         }
 
         try {
@@ -114,14 +127,15 @@ class ShopController extends Controller
             $data['status'] = $request->input('status') ? 1 : 0;
 
             if ($goods->update($data)) {
-                Session::flash('successMsg', '编辑成功');
+                return Redirect::back()->with('successMsg', '编辑成功');
             }
         } catch (Exception $e) {
             Log::error('编辑商品信息失败:'.$e->getMessage());
-            Session::flash('errorMsg', '编辑商品信息失败:'.$e->getMessage());
+
+            return Redirect::back()->withErrors('编辑商品信息失败:'.$e->getMessage());
         }
 
-        return Redirect::back();
+        return Redirect::back()->withInput()->withErrors('编辑失败');
     }
 
     // 删除商品

+ 30 - 49
app/Http/Controllers/Admin/SystemController.php

@@ -6,72 +6,53 @@ use App\Components\PushNotification;
 use App\Http\Controllers\Controller;
 use App\Models\Config;
 use App\Models\Label;
-use DB;
-use Exception;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
-use Redirect;
 use Response;
-use Session;
 
 class SystemController extends Controller
 {
-    // 设置系统扩展信息,例如客服、统计代码
-    public function setExtend(Request $request): ?RedirectResponse
+    // 系统设置
+    public function index()
     {
-        $websiteAnalytics = $request->input('website_analytics');
-        $websiteCustomerService = $request->input('website_customer_service');
+        $view = Config::pluck('value', 'name')->toArray();
+        $view['labelList'] = Label::orderByDesc('sort')->orderBy('id')->get();
 
-        try {
-            DB::beginTransaction();
+        return view('admin.config.system', $view);
+    }
 
-            // 首页LOGO
-            if ($request->hasFile('website_home_logo')) {
-                $ret = 'upload/'.$request->file('website_home_logo')->store('images');
-                if (! $ret) {
-                    Session::flash('errorMsg', 'LOGO不合法');
+    // 设置系统扩展信息,例如客服、统计代码
+    public function setExtend(Request $request): RedirectResponse
+    {
+        if ($request->hasFile('website_home_logo')) {
+            $validator = validator()->make($request->all(), ['website_home_logo' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048']);
 
-                    return Redirect::back();
-                }
-                Config::find('website_home_logo')->update(['value' => $ret]);
+            if ($validator->fails()) {
+                return redirect()->route('admin.system.index', '#other')->withErrors($validator->errors());
             }
-
-            // 站内LOGO
-            if ($request->hasFile('website_logo')) {
-                $ret = 'upload/'.$request->file('website_logo')->store('images');
-                if (! $ret) {
-                    Session::flash('errorMsg', 'LOGO不合法');
-
-                    return Redirect::back();
-                }
-                Config::find('website_logo')->update(['value' => $ret]);
+            $file = $request->file('website_home_logo');
+            $ret = $file->move('uploads/logo', $file->getClientOriginalName());
+            if ($ret && Config::find('website_home_logo')->update(['value' => 'uploads/logo/'.$file->getClientOriginalName()])) {
+                return redirect()->route('admin.system.index', '#other')->with('successMsg', '更新成功');
             }
+        }
 
-            Config::find('website_analytics')->update(['value' => $websiteAnalytics]);
-            Config::find('website_customer_service')->update(['value' => $websiteCustomerService]);
-
-            Session::flash('successMsg', '更新成功');
-
-            DB::commit();
-
-            return Redirect::back();
-        } catch (Exception $e) {
-            DB::rollBack();
-
-            Session::flash('errorMsg', '更新失败');
+        // 站内LOGO
+        if ($request->hasFile('website_logo')) {
+            $validator = validator()->make($request->all(), ['website_logo' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048']);
 
-            return Redirect::back();
+            if ($validator->fails()) {
+                return redirect()->route('admin.system.index', '#other')->withErrors($validator->errors());
+            }
+            $file = $request->file('website_logo');
+            $ret = $file->move('uploads/logo', $file->getClientOriginalName());
+            if ($ret && Config::find('website_logo')->update(['value' => 'uploads/logo/'.$file->getClientOriginalName()])) {
+                return redirect()->route('admin.system.index', '#other')->with('successMsg', '更新成功');
+            }
         }
-    }
 
-    // 系统设置
-    public function index()
-    {
-        $view = Config::pluck('value', 'name')->toArray();
-        $view['labelList'] = Label::orderByDesc('sort')->orderBy('id')->get();
-
-        return view('admin.config.system', $view);
+        return redirect()->route('admin.system.index', '#other')->withErrors('更新失败');
     }
 
     // 设置某个配置项

+ 0 - 1
app/Http/Controllers/Admin/TicketController.php

@@ -67,7 +67,6 @@ class TicketController extends Controller
         $obj->admin_id = Auth::id();
         $obj->title = $title;
         $obj->content = $content;
-        $obj->status = 0;
 
         if ($obj->save()) {
             return Response::json(['status' => 'success', 'message' => '工单创建成功']);

+ 6 - 18
app/Http/Controllers/Admin/ToolsController.php

@@ -127,24 +127,18 @@ class ToolsController extends Controller
     {
         if ($request->isMethod('POST')) {
             if (! $request->hasFile('uploadFile')) {
-                Session::flash('errorMsg', '请选择要上传的文件');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('请选择要上传的文件');
             }
 
             $file = $request->file('uploadFile');
 
             // 只能上传JSON文件
             if ($file->getClientMimeType() !== 'application/json' || $file->getClientOriginalExtension() !== 'json') {
-                Session::flash('errorMsg', '只允许上传JSON文件');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('只允许上传JSON文件');
             }
 
             if (! $file->isValid()) {
-                Session::flash('errorMsg', '产生未知错误,请重新上传');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('产生未知错误,请重新上传');
             }
 
             $save_path = realpath(storage_path('uploads'));
@@ -155,9 +149,7 @@ class ToolsController extends Controller
             $data = file_get_contents($save_path.'/'.$new_name);
             $data = json_decode($data, true);
             if (! $data) {
-                Session::flash('errorMsg', '内容格式解析异常,请上传符合SSR(R)配置规范的JSON文件');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('内容格式解析异常,请上传符合SSR(R)配置规范的JSON文件');
             }
 
             try {
@@ -185,14 +177,10 @@ class ToolsController extends Controller
             } catch (Exception $e) {
                 DB::rollBack();
 
-                Session::flash('errorMsg', '出错了,可能是导入的配置中有端口已经存在了');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('出错了,可能是导入的配置中有端口已经存在了');
             }
 
-            Session::flash('successMsg', '导入成功');
-
-            return Redirect::back();
+            return Redirect::back()->with('successMsg', '导入成功');
         }
 
         return view('admin.tools.import');

+ 0 - 3
app/Http/Controllers/AdminController.php

@@ -84,10 +84,7 @@ class AdminController extends Controller
     {
         for ($i = 0; $i < 10; $i++) {
             $obj = new Invite();
-            $obj->inviter_id = 0;
-            $obj->invitee_id = 0;
             $obj->code = strtoupper(substr(md5(microtime().Str::random(6)), 8, 12));
-            $obj->status = 0;
             $obj->dateline = date('Y-m-d H:i:s', strtotime('+'.sysConfig('admin_invite_days').' days'));
             $obj->save();
         }

+ 5 - 14
app/Http/Controllers/AuthController.php

@@ -418,11 +418,11 @@ class AuthController extends Controller
         // 没有用邀请码或者邀请码是管理员生成的,则检查cookie或者url链接
         if (! $data['inviter_id']) {
             // 检查一下cookie里有没有aff
-            $cookieAff = \Request::hasCookie('register_aff') ? \Request::cookie('register_aff') : 0;
+            $cookieAff = \Request::hasCookie('register_aff');
             if ($cookieAff) {
-                $data['inviter_id'] = User::find($cookieAff) ? $cookieAff : 0;
+                $data['inviter_id'] = User::find($cookieAff) ? $cookieAff : null;
             } elseif ($aff) { // 如果cookie里没有aff,就再检查一下请求的url里有没有aff,因为有些人的浏览器会禁用了cookie,比如chrome开了隐私模式
-                $data['inviter_id'] = User::find($aff) ? $aff : 0;
+                $data['inviter_id'] = User::find($aff) ? $aff : null;
             }
         }
 
@@ -434,10 +434,8 @@ class AuthController extends Controller
     {
         $token = md5(sysConfig('website_name').$email.microtime());
         $verify = new Verify();
-        $verify->type = 1;
         $verify->user_id = $uid;
         $verify->token = $token;
-        $verify->status = 0;
         $verify->save();
 
         return $token;
@@ -642,13 +640,7 @@ class AuthController extends Controller
             return Redirect::route('login');
         }
 
-        if (empty($user)) {
-            Session::flash('errorMsg', trans('auth.overtime'));
-
-            return view('auth.active');
-        }
-
-        if ($verify->status > 0) {
+        if (empty($user) || $verify->status > 0) {
             Session::flash('errorMsg', trans('auth.overtime'));
 
             return view('auth.active');
@@ -741,12 +733,11 @@ class AuthController extends Controller
     }
 
     // 生成注册验证码
-    private function addVerifyCode($email, $code): void
+    private function addVerifyCode(string $email, string $code): void
     {
         $verify = new VerifyCode();
         $verify->address = $email;
         $verify->code = $code;
-        $verify->status = 0;
         $verify->save();
     }
 

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

@@ -173,10 +173,8 @@ class PaymentController extends Controller
             $order->coupon_id = $coupon->id ?? 0;
             $order->origin_amount = $credit ?: $goods->price;
             $order->amount = $amount;
-            $order->is_expire = 0;
             $order->pay_type = $pay_type;
             $order->pay_way = self::$method;
-            $order->status = 0;
             $order->save();
 
             // 使用优惠券,减少可使用次数

+ 0 - 2
app/Http/Controllers/User/AffiliateController.php

@@ -55,10 +55,8 @@ class AffiliateController extends Controller
         $ref = new ReferralApply();
         $ref->user_id = Auth::id();
         $ref->before = $commission;
-        $ref->after = 0;
         $ref->amount = $commission;
         $ref->link_logs = ReferralLog::uid()->whereStatus(0)->pluck('id')->toArray();
-        $ref->status = 0;
         if ($ref->save()) {
             return Response::json(['status' => 'success', 'message' => '申请成功,请等待管理员审核']);
         }

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

@@ -310,7 +310,6 @@ class UserController extends Controller
         $obj->user_id = $user->id;
         $obj->title = $title;
         $obj->content = $content;
-        $obj->status = 0;
 
         if ($obj->save()) {
             $emailTitle = '新工单提醒';
@@ -426,9 +425,7 @@ class UserController extends Controller
 
         $obj = new Invite();
         $obj->inviter_id = $user->id;
-        $obj->invitee_id = 0;
         $obj->code = strtoupper(mb_substr(md5(microtime().Str::random()), 8, 12));
-        $obj->status = 0;
         $obj->dateline = date('Y-m-d H:i:s', strtotime('+'.sysConfig('user_invite_days').' days'));
         $obj->save();
         if ($obj) {
@@ -594,7 +591,7 @@ class UserController extends Controller
         ], ['coupon_sn.required' => '券码不能为空', 'coupon_sn.exists' => '该券不可用']);
 
         if ($validator->fails()) {
-            return Response::json(['status' => 'fail', 'message' => $validator->getMessageBag()->first()]);
+            return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
         }
 
         $coupon = Coupon::whereSn($request->input('coupon_sn'))->firstOrFail();

+ 1 - 1
app/Http/Middleware/Affiliate.php

@@ -18,7 +18,7 @@ class Affiliate
      */
     public function handle(Request $request, Closure $next)
     {
-        $aff = $request->input('aff', 0);
+        $aff = $request->input('aff');
         if ($aff) {
             Cookie::queue('register_aff', $aff, 129600);
         }

+ 1 - 0
app/Http/Requests/Admin/CouponRequest.php

@@ -11,6 +11,7 @@ class CouponRequest extends FormRequest
         return [
             'name' => 'required',
             'sn' => 'unique:coupon',
+            'logo' => 'nullable|image',
             'type' => 'required|integer|between:1,3',
             'usable_times' => 'integer|nullable',
             'num' => 'required|integer|min:1',

+ 1 - 0
app/Http/Requests/Admin/ShopStoreRequest.php

@@ -15,6 +15,7 @@ class ShopStoreRequest extends FormRequest
             'type' => 'required',
             'renew' => 'required_unless:type,2|min:0',
             'days' => 'required|integer',
+            'logo' => 'nullable|image',
         ];
     }
 }

+ 1 - 0
app/Http/Requests/Admin/ShopUpdateRequest.php

@@ -12,6 +12,7 @@ class ShopUpdateRequest extends FormRequest
             'name' => 'required',
             'price' => 'required|numeric|min:0',
             'renew' => 'required_unless:type,2|min:0',
+            'logo' => 'nullable|image',
         ];
     }
 }

+ 0 - 1
app/Services/OrderService.php

@@ -201,7 +201,6 @@ class OrderService
         $log->order_id = $oid;
         $log->amount = $amount;
         $log->commission = $commission;
-        $log->status = 0;
 
         return $log->save();
     }

+ 12 - 0
database/migrations/2020_11_10_075555_improve_table.php

@@ -1,8 +1,10 @@
 <?php
 
 use App\Models\CouponLog;
+use App\Models\Invite;
 use App\Models\Ticket;
 use App\Models\TicketReply;
+use App\Models\User;
 use App\Models\UserCreditLog;
 use App\Models\UserDailyDataFlow;
 use App\Models\UserDataModifyLog;
@@ -35,6 +37,8 @@ class ImproveTable extends Migration
         });
 
         Schema::table('invite', function (Blueprint $table) {
+            $table->unsignedInteger('inviter_id')->default(null)->nullable()->change();
+            $table->unsignedInteger('invitee_id')->default(null)->nullable()->change();
             $table->foreign('inviter_id')->references('id')->on('user')->cascadeOnDelete();
             $table->foreign('invitee_id')->references('id')->on('user')->nullOnDelete();
         });
@@ -199,6 +203,9 @@ class ImproveTable extends Migration
         UserHourlyDataFlow::whereNodeId(0)->update(['node_id' => null]);
         UserDailyDataFlow::whereNodeId(0)->update(['node_id' => null]);
         UserDataModifyLog::whereOrderId(0)->update(['order_id' => null]);
+        Invite::whereInviterId(0)->update(['inviter_id' => null]);
+        Invite::whereInviteeId(0)->update(['invitee_id' => null]);
+        User::whereInviterId(0)->update(['inviter_id' => null]);
 
         Schema::enableForeignKeyConstraints();
     }
@@ -221,6 +228,7 @@ class ImproveTable extends Migration
         UserHourlyDataFlow::whereNodeId(null)->update(['node_id' => 0]);
         UserDailyDataFlow::whereNodeId(null)->update(['node_id' => 0]);
         UserDataModifyLog::whereOrderId(null)->update(['order_id' => 0]);
+        Invite::whereInviterId(null)->update(['inviter_id' => 0]);
 
         Schema::table('coupon_log', function (Blueprint $table) {
             $table->dropForeign(['coupon_id']);
@@ -248,6 +256,10 @@ class ImproveTable extends Migration
             $table->dropIndex('invite_invitee_id_foreign');
         });
 
+        Schema::table('invite', function (Blueprint $table) {
+            $table->unsignedInteger('inviter_id')->default(0)->nullable(false)->change();
+        });
+
         Schema::table('node_auth', function (Blueprint $table) {
             $table->dropForeign(['node_id']);
             $table->dropIndex('node_auth_node_id_foreign');

+ 0 - 3
resources/views/admin/article/create.blade.php

@@ -15,9 +15,6 @@
             @if (Session::has('successMsg'))
                 <x-alert type="success" :message="Session::get('successMsg')"/>
             @endif
-            @if (Session::has('errorMsg'))
-                <x-alert type="danger" :message="Session::get('errorMsg')"/>
-            @endif
             <div class="panel-body">
                 <form action="{{route('admin.article.store')}}" class="form-horizontal" enctype="multipart/form-data" method="post">@csrf
                     <div class="form-group row">

+ 0 - 3
resources/views/admin/article/edit.blade.php

@@ -15,9 +15,6 @@
             @if (Session::has('successMsg'))
                 <x-alert type="success" :message="Session::get('successMsg')"/>
             @endif
-            @if (Session::has('errorMsg'))
-                <x-alert type="danger" :message="Session::get('errorMsg')"/>
-            @endif
             <div class="panel-body">
                 <form action="{{route('admin.article.update', $article->id)}}" method="POST" enctype="multipart/form-data" class="form-horizontal">@method('PUT')@csrf
                     <div class="form-group row">

+ 27 - 19
resources/views/admin/config/system.blade.php

@@ -1152,13 +1152,20 @@
                             </form>
                         </div>
                         <div class="tab-pane" id="other" role="tabpanel">
-                            <form action="{{route('admin.system.extend')}}" method="post" enctype="multipart/form-data" class="upload-form" role="form" id="setExtend">@csrf
-                                <div class="form-row">
+                            @if($errors->any())
+                                <x-alert type="danger" :message="$errors->all()"/>
+                            @endif
+                            @if (Session::has('successMsg'))
+                                <x-alert type="success" :message="Session::get('successMsg')"/>
+                            @endif
+                            <div class="form-row">
+                                <form action="{{route('admin.system.extend')}}" method="post" enctype="multipart/form-data" class="upload-form col-lg-12 row" role="form"
+                                      id="setExtend">@csrf
                                     <div class="form-group col-lg-6">
                                         <div class="row">
                                             <label class="col-form-label col-md-3" for="website_home_logo">首页LOGO</label>
                                             <div class="col-md-9">
-                                                <input type="file" id="website_home_logo" data-plugin="dropify"
+                                                <input type="file" id="website_home_logo" name="website_home_logo" data-plugin="dropify"
                                                        data-default-file="{{asset($website_home_logo ?? '/assets/images/default.png')}}"/>
                                                 <button type="submit" class="btn btn-success float-right mt-10"> 提 交</button>
                                             </div>
@@ -1168,32 +1175,33 @@
                                         <div class="row">
                                             <label class="col-form-label col-md-3" for="website_logo">站内LOGO</label>
                                             <div class="col-md-9">
-                                                <input type="file" id="website_logo" data-plugin="dropify"
+                                                <input type="file" id="website_logo" name="website_logo" data-plugin="dropify"
                                                        data-default-file="{{asset($website_logo ?? '/assets/images/default.png')}}"/>
                                                 <button type="submit" class="btn btn-success float-right mt-10"> 提 交</button>
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="form-group col-lg-6">
-                                        <div class="row">
-                                            <label class="col-form-label col-md-3" for="website_analytics">统计代码</label>
-                                            <div class="col-md-9">
-                                                <textarea class="form-control" rows="10" id="website_analytics">{{$website_analytics}}</textarea>
-                                                <button type="submit" class="btn btn-success float-right mt-10"> 提 交</button>
-                                            </div>
+                                </form>
+                                <div class="form-group col-lg-6">
+                                    <div class="row">
+                                        <label class="col-form-label col-md-3" for="website_analytics">统计代码</label>
+                                        <div class="col-md-9">
+                                            <textarea class="form-control" rows="10" id="website_analytics" name="website_analytics">{{$website_analytics}}</textarea>
+                                            <button class="btn btn-success float-right mt-10" type="button" onclick="update('website_analytics')">修改</button>
                                         </div>
                                     </div>
-                                    <div class="form-group col-lg-6">
-                                        <div class="row">
-                                            <label class="col-form-label col-md-3" for="website_customer_service">客服代码</label>
-                                            <div class="col-md-9">
-                                                <textarea class="form-control" rows="10" id="website_customer_service">{{$website_customer_service}}</textarea>
-                                                <button type="submit" class="btn btn-success float-right mt-10"> 提 交</button>
-                                            </div>
+                                </div>
+                                <div class="form-group col-lg-6">
+                                    <div class="row">
+                                        <label class="col-form-label col-md-3" for="website_customer_service">客服代码</label>
+                                        <div class="col-md-9">
+                                                <textarea class="form-control" rows="10" id="website_customer_service"
+                                                          name="website_customer_service">{{$website_customer_service}}</textarea>
+                                            <button class="btn btn-success float-right mt-10" type="button" onclick="update('website_customer_service')">修改</button>
                                         </div>
                                     </div>
                                 </div>
-                            </form>
+                            </div>
                         </div>
                         <div class="tab-pane" id="payment" role="tabpanel">
                             <div class="tab-content pb-100">

+ 1 - 1
resources/views/admin/coupon/index.blade.php

@@ -65,7 +65,7 @@
                             <td> {{$coupon->id}} </td>
                             <td> {{$coupon->name}} </td>
                             <td> {{$coupon->sn}} </td>
-                            <td> @if($coupon->logo) <img src="{{$coupon->logo}}" alt="优惠码logo"/> @endif </td>
+                            <td> @if($coupon->logo) <img src="{{asset($coupon->logo)}}" class="h-50" alt="优惠码logo"/> @endif </td>
                             <td>
                                 @if($coupon->type === 1)
                                     抵用券

+ 1 - 1
resources/views/admin/inviteList.blade.php

@@ -54,7 +54,7 @@
                                     </td>
                                     <td> {{$invite->dateline}} </td>
                                     <td>
-                                        {{$invite->inviter_id === 0 ? '系统生成' : ($invite->inviter->email ?? '【账号已删除】')}}
+                                        {{$invite->inviter_id === null ? '系统生成' : ($invite->inviter->email ?? '【账号已删除】')}}
                                     </td>
                                     <td>
                                         {!!$invite->status_label!!}

+ 1 - 1
resources/views/admin/layouts.blade.php

@@ -15,7 +15,7 @@
                 <i class="icon wb-more-horizontal" aria-hidden="true"></i>
             </button>
             <div class="navbar-brand navbar-brand-center">
-                <img src="{{sysConfig('website_logo')? :'/assets/images/logo64.png'}}" class="navbar-brand-logo" alt="logo"/>
+                <img src="{{sysConfig('website_logo')? asset(sysConfig('website_logo')) :'/assets/images/logo64.png'}}" class="navbar-brand-logo" alt="logo"/>
                 <span class="navbar-brand-text hidden-xs-down"> {{sysConfig('website_name')}}</span>
             </div>
         </div>

+ 1 - 1
resources/views/admin/shop/index.blade.php

@@ -67,7 +67,7 @@
                             <td>
                                 @if($goods->logo)
                                     <a href="{{asset($goods->logo)}}" target="_blank">
-                                        <img src="{{asset($goods->logo)}}" alt="logo" class="h-50"/>
+                                        <img src="{{asset($goods->logo)}}" class="h-50" alt="logo"/>
                                     </a>
                                 @endif
                             </td>

+ 0 - 3
resources/views/admin/shop/info.blade.php

@@ -23,9 +23,6 @@
             @if($errors->any())
                 <x-alert type="danger" :message="$errors->all()"/>
             @endif
-            @if (Session::has('errorMsg'))
-                <x-alert type="danger" :message="Session::get('errorMsg')"/>
-            @endif
             <div class="panel-body">
                 <form action=@isset($goods){{route('admin.goods.update', $goods->id)}} @else {{route('admin.goods.store')}} @endisset method="post"
                       enctype="multipart/form-data" class="form-horizontal" role="form">@csrf

+ 1 - 4
resources/views/admin/tools/import.blade.php

@@ -9,10 +9,7 @@
                 <h2 class="panel-title">数据导入</h2>
             </div>
             @if (Session::has('successMsg'))
-                <div class="alert alert-success" role="alert">
-                    <button class="close" data-close="alert"></button>
-                    {{Session::get('successMsg')}}
-                </div>
+                <x-alert type="success" :message="Session::get('successMsg')"/>
             @endif
             @if($errors->any())
                 <x-alert type="danger" :message="$errors->all()"/>

+ 1 - 1
resources/views/auth/layouts.blade.php

@@ -36,7 +36,7 @@
                     <div class="panel-heading">
                         <div class="panel-title">
                             <div class="brand">
-                                <img src="{{sysConfig('website_home_logo')? :'/assets/images/logo64.png'}}" class="brand-img" alt="logo"/>
+                                <img src="{{sysConfig('website_home_logo')? asset(sysConfig('website_home_logo')) :'/assets/images/logo64.png'}}" class="brand-img" alt="logo"/>
                                 <h3 class="brand-text">{{sysConfig('website_name')}}</h3>
                             </div>
                         </div>

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

@@ -9,7 +9,7 @@
                 <div class="row">
                     <div class="col-lg-3">
                         <h3>
-                            <img src="{{sysConfig('website_logo')? :'/assets/images/logo64.png'}}" class="navbar-brand-logo" alt="logo">
+                            <img src="{{sysConfig('website_logo')? asset(sysConfig('website_logo')) :'/assets/images/logo64.png'}}" class="navbar-brand-logo" alt="logo">
                             {{sysConfig('website_name')}}
                         </h3>
                     </div>

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

@@ -18,7 +18,7 @@
                 <i class="icon wb-more-horizontal" aria-hidden="true"></i>
             </button>
             <div class="navbar-brand navbar-brand-center">
-                <img src="{{sysConfig('website_logo') ?: '/assets/images/logo64.png'}}"
+                <img src="{{sysConfig('website_logo') ? asset(sysConfig('website_logo')) : '/assets/images/logo64.png'}}"
                      class="navbar-brand-logo" alt="logo"/>
                 <span
                         class="navbar-brand-text hidden-xs-down"> {{sysConfig('website_name')}}</span>

+ 1 - 1
routes/admin.php

@@ -110,7 +110,7 @@ Route::prefix('admin')->name('admin.')->group(function () {
         Route::resource('role', 'RoleController')->except('show');
 
         Route::get('system', 'SystemController@index')->name('system.index'); // 系统设置
-        Route::post('setExtend', 'SystemController@setExtend')->name('system.extend'); // 设置客服、统计代码
+        Route::post('setExtend', 'SystemController@setExtend')->name('system.extend'); // 设置logo图片文件
         Route::post('setConfig', 'SystemController@setConfig')->name('system.update'); // 设置某个配置项
         Route::post('sendTestNotification', 'SystemController@sendTestNotification')->name('test.notify'); //推送通知测试
     });