zhangjiangbin 8 лет назад
Родитель
Сommit
d2583f49d9

+ 22 - 21
app/Http/Controllers/AdminController.php

@@ -1586,8 +1586,8 @@ class AdminController extends Controller
         $inviteList = Invite::query()->where('status', 0)->orderBy('id', 'asc')->get();
 
         $filename = '邀请码' . date('Ymd');
-        Excel::create($filename, function($excel) use($inviteList) {
-            $excel->sheet('邀请码', function($sheet) use($inviteList) {
+        Excel::create($filename, function ($excel) use ($inviteList) {
+            $excel->sheet('邀请码', function ($sheet) use ($inviteList) {
                 $sheet->row(1, array(
                     '邀请码', '有效期'
                 ));
@@ -1687,24 +1687,6 @@ class AdminController extends Controller
         return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
     }
 
-
-    /**
-     * 以某用户登录
-     * @param  Request $req 请求
-     * @return JSON         响应
-     */
-    public function loginas(Request $req){
-        $id = $req->user_id;
-        $user = User::find($id);
-        if(!$user){
-            return ['errcode'=>-1,'errmsg'=>"用户不存在"];
-        }
-        $req->session()->put('admin',$req->session()->get("user"));
-        $req->session()->put('user', $user->toArray());
-        return ['errcode'=>0,'errmsg'=>"成功!"];
-    }
-}
-
     // 操作用户余额
     public function handleUserBalance(Request $request)
     {
@@ -1773,5 +1755,24 @@ class AdminController extends Controller
 
         return Response::view('admin/userBalanceLogList', $view);
     }
-}
 
+    /**
+     * 以某用户登录
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
+    public function loginas(Request $request)
+    {
+        $id = $request->get('user_id');
+        $user = User::query()->find($id);
+        if (!$user) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => "用户不存在"]);
+        }
+
+        // 存储当前管理员身份信息,并将当前登录信息改成要切换的用户的身份信息
+        $request->session()->put('admin', $request->session()->get("user"));
+        $request->session()->put('user', $user->toArray());
+
+        return Response::json(['status' => 'success', 'data' => '', 'message' => "身份切换成功"]);
+    }
+}

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

@@ -15,6 +15,7 @@ use App\Http\Models\User;
 class Controller extends BaseController
 {
     use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+
     // 生成SS密码
     public function makeRandStr($length = 6)
     {
@@ -66,18 +67,21 @@ class Controller extends BaseController
     public static function toMB($traffic)
     {
         $mb = 1048576;
+
         return $traffic * $mb;
     }
 
     public static function toGB($traffic)
     {
         $gb = 1048576 * 1024;
+
         return $traffic * $gb;
     }
 
     public static function flowToGB($traffic)
     {
         $gb = 1048576 * 1024;
+
         return $traffic / $gb;
     }
 

+ 0 - 21
app/Http/Controllers/DonateController.php

@@ -1,21 +0,0 @@
-<?php
-
-namespace App\Http\Controllers;
-
-use Illuminate\Http\Request;
-use Response;
-
-class DonateController extends BaseController
-{
-    protected static $config;
-
-    function __construct()
-    {
-        self::$config = $this->systemConfig();
-    }
-
-    public function donate(Request $request)
-    {
-        return Response::view('admin/donate');
-    }
-}

+ 18 - 14
app/Http/Controllers/LoginController.php

@@ -31,6 +31,7 @@ class LoginController extends Controller
             $username = trim($request->get('username'));
             $password = trim($request->get('password'));
             $captcha = trim($request->get('captcha'));
+
             if (empty($username) || empty($password)) {
                 $request->session()->flash('errorMsg', '请输入用户名和密码');
 
@@ -60,14 +61,15 @@ class LoginController extends Controller
 
                 return Redirect::back()->withInput();
             }
-            if($request->remember){
-                $rememberme_token = $this->makeRandStr(20);
-                // 更新登录信息
-                User::query()->where('id', $user->id)->update(['last_login' => time(),"rememberme_token"=>$rememberme_token]);
-
-            }else{
-                $rememberme_token = "";
-                // 更新登录信息
+
+            // 更新登录信息
+            $remember_token = "";
+            User::query()->where('id', $user->id)->update(['last_login' => time()]);
+            if ($request->get('remember')) {
+                $remember_token = $this->makeRandStr(20);
+
+                User::query()->where('id', $user->id)->update(['last_login' => time(), "remember_token" => $remember_token]);
+            } else {
                 User::query()->where('id', $user->id)->update(['last_login' => time()]);
             }
 
@@ -101,18 +103,19 @@ class LoginController extends Controller
 
             // 根据权限跳转
             if ($user->is_admin) {
-                return Redirect::to('admin')->cookie('remember',$rememberme_token,36000);
+                return Redirect::to('admin')->cookie('remember', $remember_token, 36000);
             }
 
-            return Redirect::to('user')->cookie('remember',$rememberme_token,36000);
+            return Redirect::to('user')->cookie('remember', $remember_token, 36000);
         } else {
-            if($request->cookie("remember")){
-                $u = User::where("rememberme_token",$request->cookie("remember"))->first();
-                if($u){
+            if ($request->cookie("remember")) {
+                $u = User::query()->where("remember_token", $request->cookie("remember"))->first();
+                if ($u) {
                     $request->session()->put('user', $u->toArray());
                     if ($u->is_admin) {
                         return Redirect::to('admin');
                     }
+
                     return Redirect::to('user');
                 }
             }
@@ -127,7 +130,8 @@ class LoginController extends Controller
     public function logout(Request $request)
     {
         $request->session()->flush();
-        return Redirect::to('login')->cookie('remember',"",36000);;
+
+        return Redirect::to('login')->cookie('remember', "", 36000);
     }
 
 }

+ 122 - 112
app/Http/Controllers/PaymentController.php

@@ -2,42 +2,19 @@
 
 namespace App\Http\Controllers;
 
+use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
-use App\Http\Models\Article;
-use App\Http\Models\Coupon;
-use App\Http\Models\CouponLog;
-use App\Http\Models\Goods;
-use App\Http\Models\Invite;
-use App\Http\Models\Level;
-use App\Http\Models\Order;
-use App\Http\Models\OrderGoods;
-use App\Http\Models\ReferralApply;
-use App\Http\Models\ReferralLog;
-use App\Http\Models\Ticket;
-use App\Http\Models\TicketReply;
 use App\Http\Models\User;
-use App\Http\Models\UserBalanceLog;
-use App\Http\Models\UserScoreLog;
-use App\Http\Models\UserSubscribe;
-use App\Http\Models\UserTrafficDaily;
-use App\Http\Models\UserTrafficHourly;
-use App\Http\Models\Verify;
 use App\Http\Models\Payment;
-use App\Mail\activeUser;
-use App\Mail\resetPassword;
 use Redirect;
 use Response;
-use Cache;
-use Mail;
-use DB;
 use Log;
 
 class PaymentController extends Controller
 {
     protected static $config;
-    /**
-     * 构造函数
-     */
+    protected static $url = 'https://api.daimiyun.cn/v2/';
+
     public function __construct()
     {
         self::$config = $this->systemConfig();
@@ -48,141 +25,174 @@ class PaymentController extends Controller
      * @param  Request $request [description]
      * @return Payment          订单 JSON
      */
-    public function query(Request $request){
-        return Payment::find($request->pid)->toarray();
+    public function query(Request $request)
+    {
+        $pid = $request->get('pid');
+        $payment = Payment::query()->find($pid);
+
+        return Response::json($payment);
     }
+
     /**
      * 发起订单创建请求
      * @param  Request $request 请求
      * @return JSON    订单信息
      */
-    public function new(Request $request){
-        $type = $request->type;
-        $price = $request->price;
-        if(self::$config[$type."_enabled"]==0){
-            return json_encode(['errcode'=>-1,'errmsg'=>"非法的支付方式."]);
-        }
-        if($price <= 0){
-            return json_encode(['errcode'=>-1,'errmsg'=>"非法的金额."]);
+    public function new(Request $request)
+    {
+        $type = $request->get('type');
+        $price = $request->get('price');
+
+        if (empty($type)) {
+            return Response::json(['errcode' => -1, 'errmsg'=> '请选择支付方式']);
+        } else if (self::$config['dmf_' . $type] == 0) {
+            return Response::json(['errcode' => -1, 'errmsg' => '支付方式不合法']);
+        } else if ($price <= 0) {
+            return Response::json(['errcode' => -1, 'errmsg' => '请输入正确的充值金额']);
         }
+
         $user = $request->session()->get('user');
-        $user = User::find($user['id']);
-        $pl = new Payment();
-        $pl->user_id = $user->id;
-        $pl->money = $price;
-        $pl->status=0;
+        $user = User::query()->find($user['id']);
+
+        $payment = new Payment();
+        $payment->user_id = $user->id;
+        $payment->pay_way = '黛米云-' . self::$config['dmf_' . $type];
+        $payment->money = $price * 100;
+        $payment->status = 0;
+        $payment->save();
 
-        $pl->save();
         $settings = [
-            'phone' => self::$config['payment_'.$type."_phone"],
-            'mchid' => self::$config['payment_'.$type."_mchid"],
-            'token' => self::$config['payment_'.$type."_token"],
+            'phone' => self::$config['dmf_' . $type . "_phone"],
+            'mchid' => self::$config['dmf_' . $type . "_mchid"],
+            'token' => self::$config['dmf_' . $type . "_token"],
         ];
+
         $data = [
-            'trade' => $pl->id,
-            'price' => $price,
-            'phone' => $settings['phone'],
-            'mchid' => $settings['mchid'],
-            'subject' => self::$config['website_name']."充值".$price."元",
-            'body' => self::$config['website_name']."充值".$price."元",
+            'trade'   => $payment->id,
+            'price'   => $price,
+            'phone'   => $settings['phone'],
+            'mchid'   => $settings['mchid'],
+            'subject' => '[SSRPanel]' . self::$config['website_name'] . "充值" . $price . "元",
+            'body'    => '[SSRPanel]' . self::$config['website_name'] . "充值" . $price . "元",
         ];
-        $data = DoiAM::sign($data,$settings['token']);
-        $ret = DoiAM::post("https://api.daimiyun.cn/v2/".$type."/create",$data);
-        $result = json_decode($ret,true);
-        if($result and $result['errcode']==0){
-            $result['pid']=$pl->id;
-            return json_Encode($result);
-        }else{
+
+        $data = $this->sign($data, $settings['token']);
+        $ret = $this->post(self::$url . $type . "/create", $data);
+        $result = json_decode($ret, true);
+        if ($result and $result['errcode'] == 0) {
+            $result['pid'] = $payment->id;
+
+            return Response::json($result);
+        } else {
             return json_encode([
-                'errcode'=>-1,
-                'errmsg' => "接口调用失败!".$ret,
+                'errcode' => -1,
+                'errmsg'  => "接口调用失败!" . $ret,
             ]);
         }
+
         return $result;
     }
+
     /**
      * 支付宝接口返回
-     * @param  Request $req  [description]
+     * @param  Request $req [description]
      * @param  [type]  $type [description]
      * @return [type]        [description]
      */
-    public function return(Request $req, $type){
-    $money = $_GET['money'];
-     echo "您已经成功支付 $money 元,正在跳转..";
-     echo <<<HTML
+    public function return (Request $req, $type)
+    {
+        $money = $_GET['money'];
+        echo "您已经成功支付 $money 元,正在跳转..";
+        echo <<<HTML
 <script>
 location.href="/user/payment";
 </script>
 HTML;
-    return;
+
+        return;
     }
+
     /**
      * 回调处理 标记订单状态
-     * @param  Request  $request [description]
+     * @param  Request $request [description]
      * @param  [type]   $type    [description]
      * @return function          [description]
      */
-    public function callback(Request $request, $type){
+    public function callback(Request $request, $type)
+    {
         $order_data = $_POST;
-        $status    = $order_data['status'];         //获取传递过来的交易状态
-        $invoiceid = $order_data['out_trade_no'];     //订单号
-        $transid   = $order_data['trade_no'];       //转账交易号
-        $amount    = $order_data['money'];          //获取递过来的总价格
-        if(!DoiAM::checksign($_POST,self::$config['payment_'.$type."_token"])){
-            return (json_encode(array('errcode'=>2333)));
+        $status = $order_data['status']; // 获取传递过来的交易状态
+        $invoiceid = $order_data['out_trade_no']; // 订单号
+        $transid = $order_data['trade_no']; // 转账交易号
+        $amount = $order_data['money']; // 获取递过来的总价格
+
+        if (!$this->checksign($_POST, self::$config['dmf_' . $type . "_token"])) {
+            return Response::json(['errcode' => 2333]);
         }
+
         if ($status == 'success') {
-            $p=Payment::find($invoiceid);
-            if($p->status==1){
-                return json_encode(['errcode'=>0]);
+            $payment = Payment::query()->find($invoiceid);
+            if ($payment->status == 1) {
+                return Response::json(['errcode' => 0]);
             }
-            $p->status=1;
-            $p->save();
-            $user = User::find($p->user_id);
-            $user->balance += $p->money;
+
+            $payment->status = 1;
+            $payment->save();
+
+            // 用户加余额
+            $user = User::query()->find($payment->user_id);
+            $user->balance += $payment->money * 100;
             $user->save();
-            return json_encode(['errcode'=>0]);
-        }else{
+
+            return json_encode(['errcode' => 0]);
+        } else {
             return '';
         }
     }
-}
-class DoiAM{
-    public static function sort(&$array){
-        ksort($array);
-    }
-    public static function getsign($array,$key){
+
+    private function getSign($array, $key)
+    {
         unset($array['sign']);
-        self::sort($array);
-        $sss=http_build_query($array);
-        $sign=hash("sha256",$sss.$key);
-        $sign=sha1($sign.hash("sha256",$key));
+        ksort($array);
+        $sss = http_build_query($array);
+        $sign = hash("sha256", $sss . $key);
+        $sign = sha1($sign . hash("sha256", $key));
+
         return $sign;
     }
-    public static function sign($array,$key){
-        $array['sign']=self::getSign($array,$key);
+
+    private function sign($array, $key)
+    {
+        $array['sign'] = $this->getSign($array, $key);
+
         return $array;
     }
-    public static function checksign($array,$key){
+
+    private function checkSign($array, $key)
+    {
         $new = $array;
-        $new=self::sign($new,$key);
-        if(!isset($array['sign'])){
+        $new = $this->sign($new, $key);
+        if (!isset($array['sign'])) {
             return false;
         }
-        return $array['sign']==$new['sign'];
+
+        return $array['sign'] == $new['sign'];
     }
-    public static function post($url, $data = null){
-    	$curl = curl_init();
-    	curl_setopt($curl, CURLOPT_URL, $url);
-    	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
-    	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
-    	if (!empty($data)){
-    	curl_setopt($curl, CURLOPT_POST, 1);
-    	curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
-    	}
-    	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
-    	$output = curl_exec($curl);
-    	curl_close($curl);
-    	return $output;
+
+    private function post($url, $data = null)
+    {
+        $curl = curl_init();
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
+        if (!empty($data)) {
+            curl_setopt($curl, CURLOPT_POST, 1);
+            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+        }
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        $output = curl_exec($curl);
+        curl_close($curl);
+
+        return $output;
     }
 }

+ 28 - 19
app/Http/Controllers/UserController.php

@@ -56,7 +56,7 @@ class UserController extends Controller
         $view['articleList'] = Article::query()->where('type', 1)->where('is_del', 0)->orderBy('sort', 'desc')->orderBy('id', 'desc')->paginate(5);
         $view['wechat_qrcode'] = self::$config['wechat_qrcode'];
         $view['alipay_qrcode'] = self::$config['alipay_qrcode'];
-        $view['payment_enabled'] = (self::$config['qqpay_enabled'] or self::$config['wepay_enabled']or self::$config['alipay_enabled']);
+        $view['payment_enabled'] = self::$config['dmf_qqpay'] || self::$config['dmf_wepay'] || self::$config['dmf_alipay'];
 
         // 推广返利是否可见
         if (!$request->session()->has('referral_status')) {
@@ -103,7 +103,7 @@ class UserController extends Controller
             $txt .= "密码:" . ($node->single ? $node->single_passwd : $user->passwd) . "\r\n";
             $txt .= "加密方法:" . ($node->single ? $node->single_method : $user->method) . "\r\n";
             $txt .= "协议:" . ($node->single ? $node->single_protocol : $user->protocol) . "\r\n";
-            $txt .= "协议参数:" . ($node->single ? $user->port.':'.$user->passwd : $user->protocol_param) . "\r\n";
+            $txt .= "协议参数:" . ($node->single ? $user->port . ':' . $user->passwd : $user->protocol_param) . "\r\n";
             $txt .= "混淆方式:" . ($node->single ? 'tls1.2_ticket_auth' : $user->obfs) . "\r\n";
             $txt .= "混淆参数:" . ($node->single ? '' : $user->obfs_param) . "\r\n";
             $txt .= "本地端口:1080\r\n路由:绕过局域网及中国大陆地址";
@@ -371,7 +371,7 @@ class UserController extends Controller
 
         // 已生成的邀请码数量
         $num = Invite::query()->where('uid', $user['id'])->count();
-        
+
         $view['num'] = self::$config['invite_num'] - $num <= 0 ? 0 : self::$config['invite_num'] - $num; // 还可以生成的邀请码数量
         $view['inviteList'] = Invite::query()->where('uid', $user['id'])->with(['generator', 'user'])->paginate(10); // 邀请码列表
 
@@ -963,24 +963,33 @@ class UserController extends Controller
 
     /**
      * 充值余额
-     * @param  Request $req 请求
-     * @return Response     响应
+     * @param Request $request
+     * @return \Illuminate\Http\Response
      */
-    public function payment(Request $req){
-        $v = self::$config;
-        $v['payment'] = Payment::where("status",1)->where("user_id",$req->session()->get('user')['id'])->get();
-        return Response::view("user.payment",$v);
+    public function payment(Request $request)
+    {
+        $view = self::$config;
+        $view['paymentList'] = Payment::query()->where("user_id", $request->session()->get('user')['id'])->get();
+
+        return Response::view("user.payment", $view);
     }
-    /**
-     * 管理员以某用户登录后恢复到管理员权限
-     * @param  Request $req 请求
-     * @return Response     响应
-     */
-    public function loginasadmin(Request $req){
-        if(\Session::get("admin",[]) == User::find(\Session::get("admin",['id'=>0])['id'])->toarray() ){
-            \Session::put('user',\Session::get("admin",[]));
-            return ['errcode'=>0];
+
+    // 管理员切换到用户身份后恢复到管理员权限
+    public function loginasadmin(Request $request)
+    {
+        if (!$request->session()->has('admin') || !$request->session()->has('user')) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => '非法请求']);
+        }
+
+        $admin = $request->session()->get('admin');
+        $user = User::query()->where('id', $admin['id'])->first();
+        if (!$user) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => "非法请求"]);
         }
-        return ['errcode'=>-1,'errmsg'=>"非法的请求."];
+
+        // 管理员信息重新写入user
+        $request->session()->put('user', $request->session()->get('admin'));
+
+        return Response::json(['status' => 'success', 'data' => '', 'message' => "身份切换成功"]);
     }
 }

+ 8 - 6
app/Http/Middleware/User.php

@@ -5,26 +5,28 @@ namespace App\Http\Middleware;
 use Closure;
 use Redirect;
 use App\Http\Models\User as U;
+
 class User
 {
     /**
      * Handle an incoming request.
      *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  \Closure  $next
+     * @param  \Illuminate\Http\Request $request
+     * @param  \Closure $next
      * @return mixed
      */
     public function handle($request, Closure $next)
     {
-        
         if (!$request->session()->has('user')) {
-            if($request->cookie("remember")){
-                $u = U::where("rememberme_token",$request->cookie("remember"))->first();
-                if($u){
+            if ($request->cookie("remember")) {
+                $u = U::query()->where("remember_token", $request->cookie("remember"))->first();
+                if ($u) {
                     $request->session()->put('user', $u->toArray());
+
                     return $next($request);
                 }
             }
+
             return Redirect::to('login');
         }
 

+ 5 - 3
app/Http/Models/Payment.php

@@ -6,8 +6,10 @@ use Illuminate\Database\Eloquent\Model;
 
 class Payment extends Model
 {
-    protected $table = 'user_payment';
-    public function user(){
-        return $this->belongsTo("App\Http\Models\User");
+    protected $table = 'payment';
+
+    public function user()
+    {
+        return $this->belongsTo(User::class, 'user_id', 'id');
     }
 }

+ 4 - 0
app/Http/Models/User.php

@@ -47,4 +47,8 @@ class User extends Model
         'referral_uid',
         'status',
     ];
+
+    function payment() {
+        return $this->hasMany(Payment::class, 'user_id', 'id');
+    }
 }

+ 2 - 1
readme.md

@@ -14,7 +14,7 @@ MYSQL 5.5 (推荐5.6+)
 磁盘空间 10G+
 KVM
 
-PHP必须开启gd、fileinfo组件
+PHP必须开启curl、gd、fileinfo组件
 
 小白建议使用LNMP傻瓜安装出php7.1 + mysql(5.5以上)
 手动编译请看WIKI [编译安装PHP7.1.7环境(CentOS)]
@@ -69,6 +69,7 @@ telegram群组:https://t.me/chatssrpanel
 |曾健|¥10|
 |Lojbk|¥10|
 |Denny Wei|¥100|
+|leon|¥20|
 
 
 这些捐赠的用途:

+ 0 - 34
resources/views/admin/donate.blade.php

@@ -1,34 +0,0 @@
-@extends('admin.layouts')
-
-@section('css')
-    <link href="/assets/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css" rel="stylesheet" type="text/css" />
-@endsection
-@section('title', '控制面板')
-@section('content')
-    <!-- BEGIN CONTENT BODY -->
-    <div class="page-content">
-        <!-- BEGIN PAGE BASE CONTENT -->
-        <div class="row">
-            <div class="col-md-12">
-                <div class="portlet light bordered">
-                    <div class="portlet-body">
-                        <div class="row">
-                            <p>本程序免费、开源、无版权,要是觉得还不错,请打赏一下支持作者持续开发</p>
-                            <p>感恩的心,感谢有你</p>
-                            <p>Telegram频道:<a href="" target="_blank">https://t.me/ssrpanel</a></p>
-                            <p>Telegram群组:<a href="" target="_blank">https://t.me/chatssrpanel</a></p>
-                            <a href="https://github.com/ssrpanel/ssrpanel" target="_blank"><img src="{{asset('assets/images/donate.jpeg')}}" /></a>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!-- END PAGE BASE CONTENT -->
-    </div>
-    <!-- END CONTENT BODY -->
-@endsection
-@section('script')
-    <script type="text/javascript">
-        //
-    </script>
-@endsection

+ 17 - 19
resources/views/admin/editUser.blade.php

@@ -34,7 +34,7 @@
                                                 <div class="row">
                                                     <span class="caption-subject font-dark bold uppercase col-md-4">账号信息</span>
                                                     <div class="text-right col-md-8" style="">
-                                                        <a href="#" id="loginas" class="badge badge-success">以此用户登录</a>
+                                                        <button type="button" class="btn btn-sm btn-danger btn-outline" onclick="loginas()">切换身份</button>
                                                     </div>
                                                 </div>
                                             </div>
@@ -366,28 +366,26 @@
     <script src="/js/layer/layer.js" type="text/javascript"></script>
 
     <script type="text/javascript">
-        // 处理 以某客户登录
-        $("#loginas").click(function(){
+        // 切换用户身份:以某用户的身份登录
+        function loginas() {
             $.ajax({
-                'url':"{{url("/admin/loginas")}}",
-                'data':{
-                    'user_id':{{$user->id}},
-                    '_token':"{{csrf_token()}}"
+                'url': "{{url("/admin/loginas")}}",
+                'data': {
+                    'user_id': '{{$user->id}}',
+                    '_token': '{{csrf_token()}}'
                 },
-                'dataType':"json",
-                'type':"POST",
-                success:function(data){
-                    if(data.errcode==0){
-                        layer.msg("操作成功!",{time:1000});
-                        setTimeout(function(){
-                            window.location.href="/user";
-                        },1000);
-                    }else{
-                        layer.msg("操作失败!"+data.errmsg,{time:5000});
-                    }
+                'dataType': "json",
+                'type': "POST",
+                success: function (ret) {
+                    layer.msg(ret.message, {time: 1000}, function () {
+                        if (ret.status == 'success') {
+                            window.location.href = "/user";
+                        }
+                    });
                 }
             });
-        });
+        }
+
         // 有效期
         $('.input-daterange input').each(function() {
             $(this).datepicker({

+ 0 - 6
resources/views/admin/layouts.blade.php

@@ -270,12 +270,6 @@
                         </li>
                     </ul>
                 </li>
-                <li class="nav-item {{in_array(Request::getRequestUri(), ['/admin/donate']) ? 'active open' : ''}}">
-                    <a href="{{url('admin/donate')}}" class="nav-link nav-toggle">
-                        <i class="icon-question"></i>
-                        <span class="title">捐赠</span>
-                    </a>
-                </li>
             </ul>
             <!-- END SIDEBAR MENU -->
         </div>

+ 148 - 153
resources/views/admin/system.blade.php

@@ -48,9 +48,11 @@
                                         <li>
                                             <a href="#tab_6" data-toggle="tab"> 充值二维码设置 </a>
                                         </li>
+                                        <!--
                                         <li>
-                                            <a href="#tab_7" data-toggle="tab"> 付接口设置 </a>
+                                            <a href="#tab_7" data-toggle="tab"> 黛米付接口设置 </a>
                                         </li>
+                                        -->
                                     </ul>
                                 </div>
                                 <div class="portlet-body">
@@ -515,151 +517,153 @@
                                                 </div>
                                             </form>
                                         </div>
-                                        <div class="tab-pane" id="tab_7" style="height:850px">
+                                        <!--
+                                        <div class="tab-pane" id="tab_7">
                                             <form class="form-horizontal">
                                                 <div class="form-body">
                                                     <div class="portlet-body">
-                                                        <div class="col-md-4">
-                                                            <label for="wepay_enabled" class="col-md-4 control-label">微信支付</label>
-                                                            <div class="col-md-8">
-                                                                <input type="checkbox" id="wepay_enabled" class="make-switch pay_enabled" @if($wepay_enabled) checked @endif data-enabled-type="wepay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"><small> 是否启用 <a href="//www.daimiyun.cn">黛米付</a> 微信支付 </small></span>
-                                                            </div>
+                                                        <div class="alert alert-info">
+                                                            <h4>风险提示:本支付接口为第四方支付接口,请谨慎使用!</h4>
+                                                            使用本支付接口,请先到 <a href="//www.daimiyun.cn" target="_blank">黛米付</a> 签约,并填写下列配置信息,然后到黛米付后台进行域名配置。
+                                                            <br>
+                                                            通知地址: {{$website_url}}/payment/callback/wepay
+                                                            <br>
+                                                            回调地址: {{$website_url}}/payment/return/wepay
                                                         </div>
-                                                        <div class="col-md-4">
-                                                            <label for="alipay_enabled" class="col-md-4 control-label">支付宝</label>
-                                                            <div class="col-md-8">
-                                                                <input type="checkbox" id="alipay_enabled" class="make-switch pay_enabled" @if($alipay_enabled) checked @endif data-enabled-type="alipay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"><small> 是否启用 <a href="//www.daimiyun.cn">黛米付</a> 支付宝支付 </small></span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="dmf_wepay" class="col-md-3 control-label">微信支付</label>
+                                                                <div class="col-md-9">
+                                                                    <input type="checkbox" id="dmf_wepay" class="make-switch pay_enabled" @if($dmf_wepay) checked @endif data-enabled-type="wepay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
+                                                                </div>
                                                             </div>
-                                                        </div>
-                                                        <div class="col-md-4">
-                                                            <label for="qqpay_enabled" class="col-md-4 control-label">QQ支付</label>
-                                                            <div class="col-md-8">
-                                                                <input type="checkbox" id="qqpay_enabled" class="make-switch pay_enabled" @if($qqpay_enabled) checked @endif data-enabled-type="qqpay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"><small> 是否启用 <a href="//www.daimiyun.cn">黛米付</a> QQ支付 </small></span>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="col-md-3 control-label">[微信]商户ID</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_wepay_mchid" value="{{$dmf_wepay_mchid}}" id="dmf_wepay_mchid" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_wepay_mchid">提交</button>
+                                                                        </span>
+                                                                    </div>
+                                                                </div>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">微信支付-商户id</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_wepay_mchid}}" id="payment_wepay_mchid" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_wepay_mchid">提交</button>
-                                                                    </span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[微信]商户手机号</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_wepay_phone" value="{{$dmf_wepay_phone}}" id="dmf_wepay_phone" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_wepay_phone">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
-                                                        </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">微信支付-商户token</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_wepay_token}}" id="payment_wepay_token" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_wepay_token">提交</button>
-                                                                    </span>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[微信]商户TOKEN</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_wepay_token" value="{{$dmf_wepay_token}}" id="dmf_wepay_token" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_wepay_token">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">微信支付-商户手机号</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_wepay_phone}}" id="payment_wepay_phone" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_wepay_phone">提交</button>
-                                                                    </span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="dmf_alipay" class="col-md-3 control-label">支付宝支付</label>
+                                                                <div class="col-md-9">
+                                                                    <input type="checkbox" id="dmf_alipay" class="make-switch pay_enabled" @if($dmf_alipay) checked @endif data-enabled-type="alipay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
-                                                        </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">支付宝-商户id</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_alipay_mchid}}" id="payment_alipay_mchid" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_alipay_mchid">提交</button>
-                                                                    </span>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[支付宝]商户ID</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_alipay_mchid" value="{{$dmf_alipay_mchid}}" id="dmf_alipay_mchid" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_alipay_mchid">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">支付宝-商户token</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_alipay_token}}" id="payment_alipay_token" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_alipay_token">提交</button>
-                                                                    </span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[支付宝]商户TOKEN</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_alipay_token" value="{{$dmf_alipay_token}}" id="dmf_alipay_token" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_alipay_token">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
-                                                        </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">支付宝-商户手机号</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_alipay_phone}}" id="payment_alipay_phone" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_alipay_phone">提交</button>
-                                                                    </span>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[支付宝]商户手机号</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_alipay_phone" value="{{$dmf_alipay_phone}}" id="dmf_alipay_phone" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_alipay_phone">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">QQ支付-商户id</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_qqpay_mchid}}" id="payment_qqpay_mchid" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_qqpay_mchid">提交</button>
-                                                                    </span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="dmf_qqpay" class="col-md-3 control-label">QQ支付</label>
+                                                                <div class="col-md-9">
+                                                                    <input type="checkbox" id="dmf_qqpay" class="make-switch pay_enabled" @if($dmf_qqpay) checked @endif data-enabled-type="qqpay" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
-                                                        </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">QQ支付-商户token</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_qqpay_token}}" id="payment_qqpay_token" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_qqpay_token">提交</button>
-                                                                    </span>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[QQ]商户ID</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_qqpay_mchid" value="{{$dmf_qqpay_mchid}}" id="dmf_qqpay_mchid" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_qqpay_mchid">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-12">
-                                                            <label for="" class="control-label col-md-4">QQ支付-商户手机号</label>
-                                                            <div class="col-md-8">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="traffic_ban_value" value="{{$payment_qqpay_phone}}" id="payment_qqpay_phone" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success payment_commit" type="button" data-for="payment_qqpay_phone">提交</button>
-                                                                    </span>
+                                                        <div class="form-group">
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[QQ]商户TOKEN</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_qqpay_token" value="{{$dmf_qqpay_token}}" id="dmf_qqpay_token" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_qqpay_token">提交</button>
+                                                                        </span>
+                                                                    </div>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-6">
+                                                                <label for="" class="control-label col-md-3">[QQ]商户手机号</label>
+                                                                <div class="col-md-9">
+                                                                    <div class="input-group">
+                                                                        <input class="form-control" type="text" name="dmf_qqpay_phone" value="{{$dmf_qqpay_phone}}" id="dmf_qqpay_phone" />
+                                                                        <span class="input-group-btn">
+                                                                            <button class="btn btn-success payment_commit" type="button" data-for="dmf_qqpay_phone">提交</button>
+                                                                        </span>
+                                                                    </div>
                                                                 </div>
-                                                                <span class="help-block"> 到黛米付后台查看. </span>
                                                             </div>
                                                         </div>
-                                                        <h5>使用支付接口,请先到 <a href="//www.daimiyun.cn">黛米付</a>签约,并将配置信息填写在上方.<br>
-                                                        黛米付后台的域名配置:</h5>
-                                                        <pre>
-通知地址: http://您的域名/payment/callback/wepay
-回调地址: http://您的域名/payment/return/wepay</pre>
-                                                        <h5>如果您使用了https,请一定使用https.</h5>
-                                                        <h5>上面的wepay可替换成alipay和qqpay.</h5>
-                                                        <h5>黛米付:qq群:624692881 <a href="https://t.me/daimifu">TG群</a> </h5>
                                                     </div>
                                                 </div>
                                             </form>
                                         </div>
+                                        -->
                                     </div>
                                 </div>
                             </div>
@@ -680,58 +684,49 @@
 
     <script type="text/javascript">
 
-        $(".payment_commit").click(function(){
+        $(".payment_commit").click(function () {
             var inp;
-            inp = $("#"+$(this).data("for"));
+            inp = $("#" + $(this).data("for"));
             $.ajax({
-                'url':"{{url('admin/setConfig')}}",
-                'data':{
-                    _token:'{{csrf_token()}}',
-                    name:$(this).data("for"),
-                    value:inp.val(),
+                'url': "{{url('admin/setConfig')}}",
+                'data': {
+                    _token: '{{csrf_token()}}',
+                    name: $(this).data("for"),
+                    value: inp.val(),
                 },
-                'type':"POST",
-                'dataType':"json",
-                success:function(data){
+                'type': "POST",
+                'dataType': "json",
+                success: function (data) {
                     console.log(data);
-                    layer.msg("保存成功!", {time:1000});
+                    layer.msg("保存成功!", {time: 1000});
                 },
             });
         });
-        $(".pay_enabled").on(
-            {
-                'switchChange.bootstrapSwitch':function(event,state){
-                    state = state ? 1 : 0;
-                    console.log(state);
-                    console.log($(this).data("enabled-type"))
-                    var type = $(this).data("enabled-type");
-                    $.ajax({
-                        'url':"{{url('admin/setConfig')}}",
-                        'data':{
-                            _token:'{{csrf_token()}}',
-                            name:type+"_enabled",
-                            value:state,
-                        },
-                        success:function(data){
-                            console.log(data);
-                            if(data.status=="success")
-                            layer.msg("保存成功!", {time:1000});
-                        },
-                        'dataType':"JSON",
-                        'type':"POST"
-                    });
-                }
-            }
-        );
-        $('#is_rand_port').on({
-            'switchChange.bootstrapSwitch': function(event, state) {
-                var is_rand_port = state ? 1 : 0;
 
-                $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'is_rand_port', value:is_rand_port}, function (ret) {
-                    console.log(ret);
+        $(".pay_enabled").on({
+            'switchChange.bootstrapSwitch': function (event, state) {
+                state = state ? 1 : 0;
+                console.log(state);
+                console.log($(this).data("enabled-type"))
+                var type = $(this).data("enabled-type");
+                $.ajax({
+                    'url': "{{url('admin/setConfig')}}",
+                    'data': {
+                        _token: '{{csrf_token()}}',
+                        name: "dmf_" + type,
+                        value: state,
+                    },
+                    success: function (data) {
+                        console.log(data);
+                        if (data.status == "success")
+                            layer.msg("保存成功!", {time: 1000});
+                    },
+                    'dataType': "JSON",
+                    'type': "POST"
                 });
             }
         });
+
         // 启用、禁用随机端口
         $('#is_rand_port').on({
             'switchChange.bootstrapSwitch': function(event, state) {

+ 19 - 20
resources/views/user/layouts.blade.php

@@ -144,12 +144,14 @@
                         <span class="title">我的工单</span>
                     </a>
                 </li>
+                <!--
                 <li class="nav-item {{Request::getRequestUri() == '/user/payment' ? 'active open' : ''}}">
                     <a href="{{url('user/payment')}}" class="nav-link nav-toggle">
                         <i class="icon-credit-card" aria-hidden="true"></i>
                         <span class="title">充值余额</span>
                     </a>
                 </li>
+                -->
                 @if(Session::get('referral_status'))
                 <li class="nav-item {{Request::getRequestUri() == '/user/referral' ? 'active open' : ''}}">
                     <a href="{{url('user/referral')}}" class="nav-link nav-toggle">
@@ -169,10 +171,10 @@
         @yield('content')
     </div>
     @if(Session::get("admin"))
-        <div class="portlet light bordered" style="position:fixed;right:20px;bottom:0px;width:200px">
+        <div class="portlet light bordered" style="position:fixed;right:20px;bottom:0px;width:270px;">
             <div class="portlet-body text-right">
-                <button class="btn btn-sm btn-success" id="return_to_admin"> 返回管理页面 </button>
-                <h6>您当前正在以{{Session::get("user")['username']}}用户登录,点击上面按钮返回管理页面</h6>
+                <h5>当前身份:{{Session::get("user")['username']}}</h5>
+                <button class="btn btn-sm btn-danger" id="return_to_admin"> 返回管理页面 </button>
             </div>
         </div>
     @endif
@@ -206,26 +208,23 @@
 @if(Session::get("admin"))
     <script src="/js/layer/layer.js" type="text/javascript"></script>
     <script type="text/javascript">
-        $("#return_to_admin").click(function(){
+        $("#return_to_admin").click(function () {
             $.ajax({
-                'url':"{{url("/user/loginasadmin")}}",
-                'data':{
-                    '_token':"{{csrf_token()}}"
+                'url': "{{url("/user/loginasadmin")}}",
+                'data': {
+                    '_token': "{{csrf_token()}}"
                 },
-                'dataType':"json",
-                'type':"POST",
-                success:function(data){
-                    if(data.errcode==0){
-                        layer.msg("操作成功!",{time:1000});
-                        setTimeout(function(){
-                            window.location.href="/admin";
-                        },1000);
-                    }else{
-                        layer.msg("操作失败!"+data.errmsg,{time:5000});
-                    }
+                'dataType': "json",
+                'type': "POST",
+                success: function (ret) {
+                    layer.msg(ret.message, {time: 1000}, function () {
+                        if (ret.status == 'success') {
+                            window.location.href = "{{url('admin')}}";
+                        }
+                    });
                 },
-                error:function(data){
-                    layer.msg("操作失败!"+data,{time:5000});
+                error: function (ret) {
+                    layer.msg("操作失败:" + ret, {time: 5000});
                 }
             });
         });

+ 154 - 110
resources/views/user/payment.blade.php

@@ -8,167 +8,211 @@
     <div class="page-content" style="padding-top:0;">
         <!-- BEGIN PAGE BASE CONTENT -->
         <div class="row">
-            <div class="portlet light bordered">
-                <div class="portlet-title">
-                    <div class="caption font-dark">
-                        <span class="caption-subject bold uppercase"> 充值余额 </span>
-                    </div>
-                </div>
-                <div class="portlet-body">
-                    <div class="form-group">
-                        <label for="usage" class="col-md-3 control-label">充值方式</label>
-                        <div class="col-md-8">
-                            <div class="mt-radio-inline">
-                                @if($wepay_enabled)
-                                    <label class="mt-radio">
-                                        <input type="radio" class="type" data-type="wepay" name="type">微信
-                                        <span></span>
-                                    </label>
-                                @endif
-                                @if($alipay_enabled)
-                                    <label class="mt-radio">
-                                        <input type="radio"class="type" data-type="alipay" name="type">支付宝
-                                        <span></span>
-                                    </label>
-                                @endif
-                                @if($qqpay_enabled)
-                                    <label class="mt-radio">
-                                        <input type="radio" class="type" data-type="qqpay" name="type">QQ支付
-                                        <span></span>
-                                    </label>
-                                @endif
+            <div class="col-md-4">
+                <div class="tab-pane active">
+                    <div class="portlet light bordered">
+                        <div class="portlet-title">
+                            <div class="caption font-dark">
+                                <span class="caption-subject bold uppercase"> 充值余额 </span>
                             </div>
                         </div>
-                    </div>
-                    <div class="form-group">
-                        <label for="balance" class="col-md-3 control-label">充值金额</label>
-                        <div class="col-md-8">
-                            <input type="text" class="form-control" name="money" value="" id="money" placeholder="88.88" required>
+                        <div class="portlet-body">
+                            <div class="form-group">
+                                <label for="usage" class="col-md-3 control-label">充值方式</label>
+                                <div class="col-md-8">
+                                    <div class="mt-radio-inline">
+                                        @if($dmf_wepay || $dmf_alipay || $dmf_qqpay)
+                                            @if($dmf_wepay)
+                                                <label class="mt-radio">
+                                                    <input type="radio" class="pay_type" data-type="wepay" name="pay_type">微信
+                                                    <span></span> </label>
+                                            @endif
+                                            @if($dmf_alipay)
+                                                <label class="mt-radio">
+                                                    <input type="radio" class="pay_type" data-type="alipay" name="pay_type">支付宝
+                                                    <span></span> </label>
+                                            @endif
+                                            @if($dmf_qqpay)
+                                                <label class="mt-radio">
+                                                    <input type="radio" class="pay_type" data-type="qqpay" name="pay_type">QQ支付
+                                                    <span></span> </label>
+                                            @endif
+                                        @else
+                                            <label class="mt-radio">
+                                                <input type="radio" class="pay_type" data-type="" name="pay_type" disabled>系统未启用在线支付
+                                                <span></span> </label>
+                                        @endif
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="balance" class="col-md-3 control-label">充值金额</label>
+                                <div class="col-md-8">
+                                    @if($dmf_wepay || $dmf_alipay || $dmf_qqpay)
+                                        <input type="text" class="form-control" name="money" value="" id="money" placeholder="88.88">
+                                    @else
+                                        <input type="text" class="form-control" name="money" value="" id="money" placeholder="88.88" disabled>
+                                    @endif
+                                </div>
+                            </div>
+                            <div class="form-actions">
+                                <div class="row">
+                                    <div class="col-md-4" style="padding-left: 30px;">
+                                        @if($dmf_wepay || $dmf_alipay || $dmf_qqpay)
+                                            <button id="submit" class="btn blue"> 支付</button>
+                                        @else
+                                            <button id="submit" class="btn blue" disabled> 支付</button>
+                                        @endif
+                                    </div>
+                                </div>
+                            </div>
                         </div>
                     </div>
-                    <div class="form-actions">
-                        <div class="row">
-                            <div class=" col-md-4">
-                                <button id="submit" class="btn green"> 提 交 </button>
+                </div>
+            </div>
+            <div class="col-md-8">
+                <div class="tab-pane active">
+                    <div class="portlet light bordered">
+                        <div class="portlet-title">
+                            <div class="caption">
+                                <span class="caption-subject font-dark bold uppercase">充值记录</span>
                             </div>
                         </div>
-                    </div>
-                    <h4>充值记录</h4>
-                    <div class="table-scrollable">
-                        <table class="table table-striped table-bordered table-hover table-checkable order-column">
-                            <thead>
-                                <tr>
-                                    <th> ID </th>
-                                    <th> 充值金额 </th>
-                                    <th> 充值时间 </th>
-                                </tr>
-                            </thead>
-                            <tbody>
-                            @if($payment->isEmpty())
-                                <tr>
-                                    <td colspan="4">暂无数据</td>
-                                </tr>
-                            @else
-                                @foreach($payment as $key => $p)
-                                    <tr class="odd gradeX">
-                                        <td> {{$key + 1}} </td>
-                                        <td> {{$p->money}} </td>
-                                        <td>{{$p->created_at}}</td>
+                        <div class="portlet-body">
+                            <div class="table-scrollable table-scrollable-borderless">
+                                <table class="table table-hover table-light">
+                                    <thead>
+                                    <tr>
+                                        <th> ID</th>
+                                        <th> 充值金额</th>
+                                        <th> 充值时间</th>
+                                        <th> 状态</th>
                                     </tr>
-                                @endforeach
-                            @endif
-                            </tbody>
-                        </table>
+                                    </thead>
+                                    <tbody>
+                                    @if($paymentList->isEmpty())
+                                        <tr>
+                                            <td colspan="4">暂无数据</td>
+                                        </tr>
+                                    @else
+                                        @foreach($paymentList as $key => $payment)
+                                            <tr class="odd gradeX">
+                                                <td> {{$key + 1}} </td>
+                                                <td> {{$payment->money}} </td>
+                                                <td> {{$payment->created_at}} </td>
+                                                <td> {{$payment->status > 0 ? '充值成功' : '充值失败'}} </td>
+                                            </tr>
+                                        @endforeach
+                                    @endif
+                                    </tbody>
+                                </table>
+                            </div>
+                        </div>
                     </div>
                 </div>
             </div>
         </div>
-    </div>
-    <div id="charge_modal" class="modal fade" tabindex="-1" data-focus-on="input:first" data-keyboard="false">
-        <div class="modal-dialog">
-            <div class="modal-content">
-                <div class="modal-header">
-                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
-                    <h4 class="modal-title"> 支付 </h4>
-                </div>
-                <div class="modal-body">
-                    <div class="row">
-                        <div class="col-md-4 col-md-offset-3" id="qrcode">
+        <div id="charge_modal" class="modal fade" tabindex="-1" data-focus-on="input:first" data-keyboard="false">
+            <div class="modal-dialog">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
+                        <h4 class="modal-title"> 支付 </h4>
+                    </div>
+                    <div class="modal-body">
+                        <div class="row">
+                            <div class="col-md-4 col-md-offset-3" id="qrcode">
 
+                            </div>
                         </div>
-                    </div>
-                    <div class="row">
-                        <div class="col-md-4 col-md-offset-4 text-center">
-                            <h3>请扫码支付</h3>
+                        <div class="row">
+                            <div class="col-md-4 col-md-offset-4 text-center">
+                                <h3>请扫码支付</h3>
+                            </div>
                         </div>
                     </div>
                 </div>
             </div>
         </div>
+        <!-- END PAGE BASE CONTENT -->
     </div>
+    <!-- END CONTENT BODY -->
 @endsection
 @section('script')
     <script src="/js/layer/layer.js" type="text/javascript"></script>
     <script src="/assets/global/plugins/jquery-qrcode/jquery.qrcode.min.js" type="text/javascript"></script>
     <script type="text/javascript">
-        var type;
+        var pay_type = '';
         var pid = 0;
-        $(".type").click(function(){
-            type = $(this).data("type");
-            console.log(type);
-        });
-        $("#submit").click(function(){
-            $("#submit").button('loading')
+
+        $("#submit").click(function () {
+            var pay_type = $("input:radio[name='pay_type']:checked").data('type');
+            if (pay_type == '' || pay_type == undefined) {
+                layer.msg('请选择支付类型');
+                return ;
+            }
+
+            var money = $("#money").val();
+            if (money == '' || money <= 0 || money == undefined) {
+                layer.msg('充值金额不正确');
+                return ;
+            }
+
             $.ajax({
-                'url':"{{url("user/payment")}}",
-                'data':{
-                    '_token':"{{csrf_token()}}",
-                    'type':type,
-                    'price':$("#money").val(),
+                'url': "{{url("user/payment")}}",
+                'data': {
+                    '_token': "{{csrf_token()}}",
+                    'type': pay_type,
+                    'price': money,
                 },
-                'type':"POST",
-                'dataType':"json",
-                success:function(data){
+                'type': "POST",
+                'dataType': "json",
+                success: function (ret) {
                     $("#submit").button("reset");
-                    console.log(data);
-                    if(data.errcode==0){
-                        pid = data.pid;
-                        if(type != "alipay"){
+                    console.log(ret);
+                    if (ret.errcode == 0) {
+                        pid = ret.pid;
+                        if (type != "alipay") {
                             $("#charge_modal").modal();
-                            $("#qrcode").qrcode(data.code);
+                            $("#qrcode").qrcode(ret.code);
                             setTimeout(f, 1000);
-                        }else{
+                        } else {
                             $("#charge_modal").modal();
                             $(".modal-body").html("跳转中...");
-                            $("body").append(data.code);
+                            $("body").append(ret.code);
                         }
+                    } else {
+                        layer.msg(ret.errmsg);
                     }
                 },
-                error:function(data){
+                error: function (ret) {
+                    console.log(ret);
                     $("#submit").button("reset");
-                },
+                }
             });
         });
-        function f(){
+
+        function f() {
             $.ajax({
                 type: "POST",
                 url: "/payment/query",
                 dataType: "json",
                 data: {
-                    _token:"{{csrf_token()}}",
-                    pid:pid
+                    _token: "{{csrf_token()}}",
+                    pid: pid
                 },
-                success: function (data) {
-                    if (data.status) {
+                success: function (ret) {
+                    if (ret.status) {
                         clearTimeout(tid);
                         $("#result").modal();
                         $(".modal-body").html("充值成功!");
-                        window.setTimeout("location.href=window.location.href",1000);
+
+                        window.setTimeout("location.href=window.location.href", 1000);
                     }
                 }
             });
+
             tid = setTimeout(f, 1000);
         }
-
     </script>
 @endsection

+ 0 - 1
routes/web.php

@@ -78,7 +78,6 @@ Route::group(['middleware' => ['user', 'admin']], function() {
     Route::get('coupon/exportCoupon', 'CouponController@exportCoupon'); // 导出优惠券
     Route::get('emailLog/logList', 'EmailLogController@logList'); // 邮件发送日志
     Route::post("admin/loginas","AdminController@loginas");
-    Route::get('admin/donate', 'DonateController@donate'); // 捐赠
 });
 
 Route::group(['middleware' => ['user']], function() {

+ 23 - 17
sql/db.sql

@@ -122,6 +122,7 @@ CREATE TABLE `user` (
   `referral_uid` int(11) NOT NULL DEFAULT '0' COMMENT '邀请人',
   `traffic_reset_day` tinyint(4) NOT NULL DEFAULT '0' COMMENT '流量自动重置日,0表示不重置',
   `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:-1-禁用、0-未激活、1-正常',
+  `remember_token` varchar(256) DEFAULT '',
   `created_at` datetime DEFAULT NULL,
   `updated_at` datetime DEFAULT NULL,
   PRIMARY KEY (`id`),
@@ -285,7 +286,18 @@ INSERT INTO `config` VALUES ('33', 'is_traffic_ban', 1);
 INSERT INTO `config` VALUES ('34', 'traffic_ban_value', 10);
 INSERT INTO `config` VALUES ('35', 'traffic_ban_time', 60);
 INSERT INTO `config` VALUES ('36', 'is_clear_log', 1);
-
+INSERT INTO `config` VALUES ('37', 'dmf_wepay', '0');
+INSERT INTO `config` VALUES ('38', 'dmf_alipay', '0');
+INSERT INTO `config` VALUES ('39', 'dmf_qqpay', '0');
+INSERT INTO `config` VALUES ('40', 'dmf_wepay_mchid', '');
+INSERT INTO `config` VALUES ('41', 'dmf_alipay_mchid', '');
+INSERT INTO `config` VALUES ('42', 'dmf_qqpay_mchid', '');
+INSERT INTO `config` VALUES ('43', 'dmf_wepay_token', '');
+INSERT INTO `config` VALUES ('44', 'dmf_alipay_token', '');
+INSERT INTO `config` VALUES ('45', 'dmf_qqpay_token', '');
+INSERT INTO `config` VALUES ('46', 'dmf_wepay_phone', '');
+INSERT INTO `config` VALUES ('47', 'dmf_alipay_phone', '');
+INSERT INTO `config` VALUES ('48', 'dmf_qqpay_phone', '');
 
 -- ----------------------------
 -- Table structure for `article`
@@ -761,24 +773,18 @@ INSERT INTO `country` VALUES ('44', '芬兰', 'fi');
 INSERT INTO `country` VALUES ('45', '卢森堡', 'lu');
 INSERT INTO `country` VALUES ('46', '比利时', 'be');
 
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'wepay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'alipay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'qqpay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_phone', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_phone', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_phone', '');
-
-CREATE TABLE `ssrpanel`.`user_payment` ( `id` INT NOT NULL AUTO_INCREMENT , `user_id` INT NOT NULL , `money` FLOAT NOT NULL , `status` INT NOT NULL , PRIMARY KEY (`id`),  `created_at` datetime NOT NULL,
-  `updated_at` datetime NOT NULL) ENGINE = InnoDB;
 
+CREATE TABLE `payment` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `user_id` int(11) NOT NULL,
+  `pay_way` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '支付类型',
+  `money` int(11) NOT NULL DEFAULT '0' COMMENT '充值金额,单位分',
+  `status` int(11) NOT NULL DEFAULT '1' COMMENT '充值状态:1-成功',
+  `created_at` datetime NOT NULL,
+  `updated_at` datetime NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
-ALTER TABLE `user` ADD `rememberme_token` VARCHAR(256) NULL DEFAULT '' AFTER `passwd`;
 
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

+ 0 - 24
sql/update/20171129.sql

@@ -1,27 +1,3 @@
-
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'wepay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'alipay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'qqpay_enabled', '0');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_mchid', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_token', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_wepay_phone', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_alipay_phone', '');
-INSERT INTO `config` (`id`, `name`, `value`) VALUES (NULL, 'payment_qqpay_phone', '');
-
-CREATE TABLE `ssrpanel`.`user_payment` (
-  `id` INT NOT NULL AUTO_INCREMENT ,
-  `user_id` INT NOT NULL ,
-  `money` FLOAT NOT NULL ,
-  `status` INT NOT NULL ,
-  PRIMARY KEY (`id`),
-  `created_at` datetime NOT NULL,
-  `updated_at` datetime NOT NULL
-) ENGINE = InnoDB;
-
 INSERT INTO `country` VALUES ('40', '阿联酋', 'ae');
 INSERT INTO `country` VALUES ('41', '南非', 'za');
 INSERT INTO `country` VALUES ('42', '缅甸', 'mm');

+ 4 - 4
sql/update/20171130.sql

@@ -1,6 +1,3 @@
-
-ALTER TABLE `user` ADD `rememberme_token` VARCHAR(256) NULL DEFAULT '' AFTER `passwd`;
-
 -- 日志表加索引,提升查询速度
 ALTER TABLE `user_traffic_log`
 ADD INDEX `idx_user_node` (`user_id`, `node_id`) USING BTREE ;
@@ -27,4 +24,7 @@ DROP COLUMN `updated_at`;
 -- 去除在线用户表无用字段
 ALTER TABLE `ss_node_online_log`
 DROP COLUMN `created_at`,
-DROP COLUMN `updated_at`;
+DROP COLUMN `updated_at`;
+
+
+

+ 28 - 0
sql/update/20171205.sql

@@ -0,0 +1,28 @@
+INSERT INTO `config` VALUES ('37', 'dmf_wepay', '0');
+INSERT INTO `config` VALUES ('38', 'dmf_alipay', '0');
+INSERT INTO `config` VALUES ('39', 'dmf_qqpay', '0');
+INSERT INTO `config` VALUES ('40', 'dmf_wepay_mchid', '');
+INSERT INTO `config` VALUES ('41', 'dmf_alipay_mchid', '');
+INSERT INTO `config` VALUES ('42', 'dmf_qqpay_mchid', '');
+INSERT INTO `config` VALUES ('43', 'dmf_wepay_token', '');
+INSERT INTO `config` VALUES ('44', 'dmf_alipay_token', '');
+INSERT INTO `config` VALUES ('45', 'dmf_qqpay_token', '');
+INSERT INTO `config` VALUES ('46', 'dmf_wepay_phone', '');
+INSERT INTO `config` VALUES ('47', 'dmf_alipay_phone', '');
+INSERT INTO `config` VALUES ('48', 'dmf_qqpay_phone', '');
+
+CREATE TABLE `payment` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `user_id` int(11) NOT NULL,
+  `pay_way` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '支付类型',
+  `money` int(11) NOT NULL DEFAULT '0' COMMENT '充值金额,单位分',
+  `status` int(11) NOT NULL DEFAULT '1' COMMENT '充值状态:1-成功',
+  `created_at` datetime NOT NULL,
+  `updated_at` datetime NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+
+ALTER TABLE `user` ADD `remember_token` VARCHAR(256) NULL DEFAULT '' AFTER `status`;
+
+