Parcourir la source

Merge branch 'master' of http://git.9026.com/roobe/miao

YanaDH il y a 7 ans
Parent
commit
0ba699d597

+ 1 - 1
miaomiao/www/chcp.json

xqd
@@ -1,5 +1,5 @@
 {
   "update": "now",
   "content_url": "http://i.9026.com/miaomiao",
-  "release": "2017.09.07-17.38.36"
+  "release": "2017.09.18-06.36.32"
 }

+ 6 - 6
miaomiao/www/chcp.manifest

xqd xqd xqd xqd xqd
@@ -393,7 +393,7 @@
   },
   {
     "file": "js/config/config.js",
-    "hash": "2912f063f9c6351bd7e3b88951b73c84"
+    "hash": "8f4884a65c00024ae26f0202ed33cb3a"
   },
   {
     "file": "js/config/router.js",
@@ -401,7 +401,7 @@
   },
   {
     "file": "js/controllers/account.js",
-    "hash": "ef71142cb9f2f470ee59161a288255f1"
+    "hash": "b9a5eca13912f29565f888f3fb336ac5"
   },
   {
     "file": "js/controllers/add.js",
@@ -409,11 +409,11 @@
   },
   {
     "file": "js/controllers/home.js",
-    "hash": "4290ab91f4e497f337fae2c96aa6c489"
+    "hash": "721aa65c208fc8a66efd0c11269a4393"
   },
   {
     "file": "js/controllers/my.js",
-    "hash": "709bb690c3c5f1969a2a97956dcad43f"
+    "hash": "f563da76770811778e9c6ef07cb959ec"
   },
   {
     "file": "js/controllers/tabs.js",
@@ -761,7 +761,7 @@
   },
   {
     "file": "templates/home/dream-detail.html",
-    "hash": "26c5298868fb29a0c4cbaa39b041d083"
+    "hash": "0a887fd7ed02075003177ce30f813865"
   },
   {
     "file": "templates/home/index.html",
@@ -837,7 +837,7 @@
   },
   {
     "file": "templates/my/my-recharge.html",
-    "hash": "86c981f7df6d974c65459e522be7f9b3"
+    "hash": "146fefb366afd60a07bd1f8701857669"
   },
   {
     "file": "templates/my/my-setting.html",

+ 4 - 4
miaomiao/www/js/config/config.js

xqd
@@ -1,12 +1,12 @@
 (function (app) {
     //全局配置 
     app.constant("config", {
-         server: 'http://q8.9026.com/',
-         imgServer: 'http://q8.9026.com/attachment/'
+         // server: 'http://q8.9026.com/',
+         // imgServer: 'http://q8.9026.com/attachment/'
         //server: 'http://localhost:8092/',
         //imgServer: 'http://localhost:8092/attachment/'
 
-        // server: 'http://miao.beiyuesi.com/',
-        // imgServer: 'http://miao.beiyuesi.com/attachment/'
+        server: 'http://miao.beiyuesi.com/',
+        imgServer: 'http://miao.beiyuesi.com/attachment/'
     });
 })(angular.module('app'));

+ 4 - 4
miaomiao/www/js/controllers/account.js

xqd xqd
@@ -1,9 +1,9 @@
 (function (app) {
     app.controller('wechatLoginCtrl', ["$scope","userService","$ionicNavBarDelegate", "storage", "$state", "msg", "$http", "util",
         function ($scope,userService,$ionicNavBarDelegate, storage, $state, msg, $http, util) {
-             //$ionicNavBarDelegate.showBackButton(false);
+            //$ionicNavBarDelegate.showBackButton(false);
             $scope.wechat_login = function(){
-                /*var scope = "snsapi_userinfo", state = "_" + (+new Date());
+                var scope = "snsapi_userinfo", state = "_" + (+new Date());
                  Wechat.auth(scope, state, function (response) {
                      // alert("response:"+JSON.stringify(response));
                      // var response={code:1231};
@@ -29,8 +29,8 @@
                     }
                  }, function (error) {
                     console.log("Failed: " + JSON.stringify(error));
-                 })*/
-                $state.go("loginAccount",{wechat:1231});
+                 })
+                //$state.go("loginAccount",{wechat:1231});
             }
     }]);
     app.controller('loginCtrl', ["$scope", "userService","$stateParams","$ionicNavBarDelegate", "storage", "$state", "msg", "$http", "util","$timeout",

+ 7 - 4
miaomiao/www/js/controllers/my.js

xqd xqd xqd xqd
@@ -360,7 +360,7 @@
           myService.charge(number,2).then(function (result) {
               //todo:result需要返回支付宝或者微信的签名信息
               console.log("result: " + JSON.stringify(result));
-              var payInfo = result.data;
+              var payInfo = result.data.data;
               if ($scope.vm.payType == 1) { //支付宝
                   cordova.plugins.AliPay.pay(payInfo, function success(e) {
                       //e.resultStatus  状态代码  e.result  本次操作返回的结果数据 e.memo 提示信息
@@ -383,7 +383,9 @@
                   });
               }
               if ($scope.vm.payType == 2) { //微信
-                  var obj = JSON.parse(payInfo);
+                  // var obj = JSON.parse(payInfo);
+                  var obj = payInfo.orderString;
+              // console.log("obj: " + JSON.stringify(obj));
                   var params = {
                       partnerid: obj.partnerid, // merchant id
                       prepayid: obj.prepayid, // prepay id
@@ -391,6 +393,7 @@
                       timestamp: obj.timestamp, // timestamp
                       sign: obj.sign, // signed string
                   };
+              // console.log("result: " + JSON.stringify(params));
                   Wechat.sendPaymentRequest(params, function (r) {
                       $scope.clicksub = false;
                       courseService.orderStatus(orderID, $scope.paytype).then(function (result) {
@@ -398,11 +401,11 @@
                           //支付成功
                         //  $state.go('app.my');
                       }, function (erro) {
-                          msg.alert("支付反馈失败:" + JSON.stringify(erro));
+                          // msg.alert("支付反馈失败:" + JSON.stringify(erro));
                       });
                   }, function (reason) {
                       $scope.clicksub = false;
-                      msg.alert("支付失败:" + JSON.stringify(reason));
+                      // msg.alert("支付失败:" + JSON.stringify(reason));
                   });
               }
              // msg.text("充值成功");

+ 1 - 1
miaomiao/www/templates/my/my-recharge.html

xqd
@@ -39,7 +39,7 @@
             </ion-list>
         </div>
         <div class="padding">
-            <button  class="button button-block button-calm" ng-click="testcharge(vm.number)">
+            <button  class="button button-block button-calm" ng-click="charge(vm.number)">
                 支付
             </button>
         </div>

+ 2 - 4
server/app/Helper/PayHelper.php

xqd xqd xqd
@@ -27,9 +27,7 @@ trait PayHelper
         $order = new OrderInfoModel();
         $order->code            = $data['code'];
         $order->transaction_id  = $data['transaction_id'];
-        $order->user_type       = $data['user_type'];
         $order->user_id         = $data['user_id'];
-        $order->goods_type      = $data['goods'];
         $order->goods_id        = $data['goods_id'];
         $order->price           = $data['price'];
         $order->number          = $data['number'];
@@ -63,7 +61,7 @@ trait PayHelper
 
         $goodsTypes = OrderInfoModel::getAllGoodsTypes();
         if (!isset($data['subject'])) {
-            $data['subject'] = sprintf("甲象联合%s充值%d", $goodsTypes[$data['goods']], $data['number']);
+            $data['subject'] = sprintf("瞄喵%s充值%d", $goodsTypes[$data['goods']], $data['number']);
         }
         if (!isset($data['goods_id'])) {
             $data['goods_id'] = 0;
@@ -137,7 +135,7 @@ trait PayHelper
 
         $goodsTypes = OrderInfoModel::getAllGoodsTypes();
         if (!isset($data['subject'])) {
-            $data['subject'] = sprintf("甲象联合%s充值%d", $goodsTypes[$data['goods']], $data['number']);
+            $data['subject'] = sprintf("瞄喵%s充值%d", $goodsTypes[$data['goods']], $data['number']);
         }
         if (!isset($data['goods_id'])) {
             $data['goods_id'] = 0;

+ 14 - 0
server/app/Http/Controllers/Admin/Dream/InfoController.php

xqd xqd
@@ -12,13 +12,16 @@ use App\Models\BaseAttachmentModel;
 use App\Models\BaseSettingsModel;
 use App\Models\DreamImages;
 use App\Models\DreamInfoModel;
+use App\Models\SystemInfoModel;
 use Illuminate\Http\Request;
 use App\Repositories\Base\Criteria\OrderBy;
 use App\Repositories\Dream\Criteria\MultiWhere;
 use App\Repositories\Dream\InfoRepository;
+use App\Helper\JpushHelper;
 
 class InfoController extends Controller
 {
+    use JpushHelper;
     private $repository;
 
     public function __construct(InfoRepository $repository) {
@@ -161,6 +164,17 @@ class InfoController extends Controller
             DreamImages::insert($arr);
         }
         $ok = $this->repository->update(request('id'),$data);
+        if ($data['status'] == 1) {   //审核通过
+            $message = '你的梦想《'.$data['name'].'》已被批准,离你实现梦想又更进一步啦~ ';
+            $info = [
+                'user_id' => $data['user_id'],
+                'message' => $message,
+            ];
+            SystemInfoModel::create($info);
+
+//            长连接
+            $this->jPush($message,'',$data['user_id']);
+        }
         if($ok) {
             $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表');
             return $this->showMessage('操作成功',urldecode(request('_referer')));

+ 11 - 2
server/app/Http/Controllers/Admin/User/BanksController.php

xqd xqd
@@ -8,6 +8,7 @@
  */
 namespace App\Http\Controllers\Admin\User;
 use App\Http\Controllers\Admin\Controller;
+use App\Models\UserBanksModel;
 use Illuminate\Http\Request;
 use App\Repositories\Base\Criteria\OrderBy;
 use App\Repositories\User\Criteria\MultiWhere;
@@ -23,8 +24,16 @@ class BanksController extends Controller
 
     function index(Request $reqeust) {
         $search['keyword'] = $reqeust->input('keyword');
-        $query = $this->repository->pushCriteria(new MultiWhere($search));
-
+        $query = new UserBanksModel();
+        if(isset($search['keyword']) && $search['keyword']) {
+            $query = $query->where('bank_name','like','%'.$search['keyword'].'%')
+                ->orWhere('bank_number','like','%'.$search['keyword'].'%')
+                ->orWhere('bank_phone','like','%'.$search['keyword'].'%')
+                ->orWhereHas('user', function ($que) use ($search) {
+                    $que->where('nickname','like','%'.$search['keyword'].'%');
+                })
+            ;
+        }
         if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
         $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
         }

+ 12 - 11
server/app/Http/Controllers/Api/V1/AuthController.php

xqd xqd xqd
@@ -89,13 +89,13 @@ class AuthController extends Controller
         $phone = $request->phone;
         $wechat = $request->wechat;
 
-        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxc5181c0d406023e6&secret=c349515d0079ccbc71f4a4f191c1621e&code=".$wechat."&grant_type=authorization_code";
-        $res = file_get_contents($url);     //file_get_contents获取指定路由返回的数据
-        \Log::info($res);
-        $arr = json_decode($res, true);
-        $openid='';
-        if(!$arr['errcode'])$openid = $arr['openid'];
-        \Log::info('openid: ' . $openid);
+//        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxc5181c0d406023e6&secret=82d15bf4c5c5baaad1e5a521cfdcf96c&code=".$wechat."&grant_type=authorization_code";
+//        $res = file_get_contents($url);     //file_get_contents获取指定路由返回的数据
+//        \Log::info($res);
+//        $arr = json_decode($res, true);
+//        $openid='';
+//        if(!$arr['errcode'])$openid = $arr['openid'];
+        \Log::info('openid: ' . $wechat);
 
         $jpush = $request->jpush;
         $key = $this->keySmsCode . $phone;
@@ -106,7 +106,7 @@ class AuthController extends Controller
         if (empty($user)) {
             $user = UserInfoModel::create([
                 'phone'=>$phone,
-                'wechat'=>$openid,
+                'wechat'=>$wechat,
                 'jpush'=>$jpush,
                 'nickname'=>'瞄喵',
                 'status'=>1,
@@ -181,19 +181,20 @@ class AuthController extends Controller
             return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
 
 
-        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxc5181c0d406023e6&secret=c349515d0079ccbc71f4a4f191c1621e&code=".$request->wechat."&grant_type=authorization_code";
+        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxc5181c0d406023e6&secret=82d15bf4c5c5baaad1e5a521cfdcf96c&code=".$request->wechat."&grant_type=authorization_code";
         $res = file_get_contents($url);     //file_get_contents获取指定路由返回的数据
         \Log::info($res);
         $arr = json_decode($res, true);
         $openid='';
-        if(!$arr['errcode'])$openid = $arr['openid'];
+        if(!isset($arr['errcode']))$openid = $arr['openid'];
         \Log::info('openid: ' . $openid);
         if($openid!='')$user = UserInfoModel::where('wechat',$openid)->first();
         if (empty($user)) {
 //            return $this->error(ErrorCode::LOGIN_FAILED);
+            return $this->api(compact('openid'));
         }else{
             $token = $user->createToken($user->phone)->accessToken;
-            return $this->api(compact( 'user', 'code','token'));
+            return $this->api(compact( 'user', 'openid','token'));
         }
     }
     /**

+ 17 - 2
server/app/Http/Controllers/Api/V1/DreamController.php

xqd xqd
@@ -404,6 +404,17 @@ class DreamController extends Controller
                 \QrCode::format('png')->size(500)->generate($code_url,$code_path);
                 $code =  env('APP_URL').'/qrcodes/'.$info['code'].'.png';
                 DreamInfoModel::where('id',$dream_id)->update(compact('code'));
+
+
+                $message = '你的梦想《'.$dream->name.'》已结束,点击了解接下来的步骤 ';
+                $info = [
+                    'user_id' => $dream->user_id,
+                    'message' => $message,
+                ];
+                SystemInfoModel::create($info);
+
+//            长连接
+                $this->jPush($message,'',$dream->user_id);
             }
             $data = [
                 'user_id'=>$user->id,
@@ -540,11 +551,15 @@ class DreamController extends Controller
             UserCareUser::create($array);
 //                关注成功发送私信
             $message = BaseSettingsModel::where('category','message')->first();
-            $message = empty($message) ? '' : $message->value;
-            $info2 = [
+            $message = empty($message) ? $user->nickname.'收藏了你的梦想' : $message->value;
+            /*$info2 = [
                 'user_id'=>$request->id,
                 'to_user_id' => $dream->user_id,
                 'message' =>$message
+            ];*/
+            $info2 = [
+                'user_id' => $dream->user_id,
+                'message' => $message,
             ];
             SystemInfoModel::create($info2);
             //            长连接

+ 13 - 0
server/app/Http/Controllers/Api/V1/InteractionController.php

xqd xqd
@@ -5,12 +5,15 @@ namespace App\Http\Controllers\Api\V1;
 use App\Models\CommentInfoModel;
 use App\Models\InteractionInfo;
 use App\Models\ReplyCommentsInfo;
+use App\Models\SystemInfoModel;
 use App\Models\UserCareDream;
 use Illuminate\Http\Request;
 use App\Services\Base\ErrorCode;
+use App\Helper\JpushHelper;
 
 class InteractionController extends Controller
 {
+    use JpushHelper;
     //    发布关于梦想的动态
     /**
      * @api {post} /api/interaction/store 新增动态
@@ -141,6 +144,16 @@ class InteractionController extends Controller
         $data['content'] = $request->content;
         $data['is_read'] = 1;
         $ok = CommentInfoModel::create($data);
+
+        $message = $user->nickname.'在你的互动上留言啦!点击去看看!';
+        $info = [
+            'user_id' => $data['to_user_id'],
+            'message' => $message,
+        ];
+        SystemInfoModel::create($info);
+
+//            长连接
+        $this->jPush($message,'',$data['to_user_id']);
         if ($ok) {
             return $this->api('');
         }else{

+ 14 - 0
server/app/Http/Controllers/Api/V1/MyController.php

xqd xqd
@@ -17,8 +17,11 @@ use App\Models\UserCashOut;
 use App\Models\UserInfoModel;
 use Illuminate\Http\Request;
 use App\Services\Base\ErrorCode;
+use App\Helper\JpushHelper;
+
 class MyController extends Controller
 {
+    use JpushHelper;
     /**
      * @api {get} /api/my/show 个人首页
      * @apiDescription 个人首页
@@ -498,6 +501,17 @@ class MyController extends Controller
         $data['user_id'] = $user->id;
         $data['status'] = 1;
         $ok = UserCashOut::create($data);
+
+        $message = '你提现的¥'.$data["cash"].'已经到账啦,去实现梦想吧!喵~ ';
+        $info = [
+            'user_id' => $user->id,
+            'message' => $message,
+        ];
+        SystemInfoModel::create($info);
+
+//            长连接
+        $this->jPush($message,'',$user->id);
+
         if ($ok) {
             return $this->api(ErrorCode::verify);
         }else{

+ 16 - 63
server/app/Http/Controllers/Api/V1/PayController.php

xqd xqd xqd xqd xqd xqd
@@ -2,8 +2,11 @@
 
 namespace App\Http\Controllers\Api\V1;
 
+use Omnipay\Omnipay;
+use App\Helper\LogHelper;
 use App\Helper\PayHelper;
-use App\UserInfoModel;
+use App\Helper\JpushHelper;
+use App\Models\UserInfoModel;
 use App\Models\OrderInfoModel;
 use App\Models\AccountLog;
 use App\Services\Base\ErrorCode;
@@ -12,8 +15,7 @@ use Config, Auth, DB ,Validator;
 
 class PayController extends Controller
 {
-    use PayHelper;
-
+    use PayHelper, LogHelper,JpushHelper;
 
     public function alipayNotify() {
         $rawInfo = Request::all();
@@ -93,17 +95,11 @@ class PayController extends Controller
 
                     //记日志
                     $amount = $rawInfo['total_amount'] * 100;
-                    if (empty($extInfo)) {
-                        $this->logAccount($tp, $u->id, $u->name,
+
+                    $this->logAccount($tp, $u->id, $u->name,
                             AccountLog::OP_CHARGE, $cType, $master_amount,
                             AccountLog::DIRECTION_INC, $cType == AccountLog::TYPE_BALANCE ? $u->balance : $u->credit, AccountLog::CHANNEL_ALIPAY);
-                    } else {
-                        //续消费
 
-                        $this->logAccount($tp, $u->id, $u->name,
-                            AccountLog::OP_CC, $cType, $master_amount,
-                            AccountLog::DIRECTION_INC, $cType == AccountLog::TYPE_BALANCE ? $u->balance : $u->credit, AccountLog::CHANNEL_ALIPAY);
-                    }
                     \Log::info('支付完成');
 
                 } else {
@@ -111,7 +107,6 @@ class PayController extends Controller
                     \Log::error('保存数据失败');
                 }
 
-
                 DB::commit();
 
                 return 'success';
@@ -151,70 +146,30 @@ class PayController extends Controller
                 \Log::info('支付成功');
 
                 $out_trade_no = $rawInfo['out_trade_no'];
-                $order = Order::where('transaction_id', '=', $out_trade_no)->first();
+                $order = OrderInfoModel::where('transaction_id', '=', $out_trade_no)->first();
                 if (!$order) {
                     \Log::error('找不到订单' . $out_trade_no);
                     return 'fail';
                 }
-                $master_amount =  $order->number;
-                $slave_amount = 0;
-                if (!empty($order->ext_info)) {
-                    $extInfo = json_decode($order->ext_info, true);
-                    if ($extInfo !== null) {
-                        $cc = $extInfo['cc_bonus'];
-                        $master_amount = round(($cc / 100) * $order->number);
-                        $slave_amount = $order->number - $master_amount;
-                    }
-                }
-                $tp = '';
-//                $u = null;
-                if ($order->user_type == Order::USER_TYPE_MERCHANT) {
-                    $tp = 'Merchant';
-//                    $u = Merchant::find($order->user_id);
-                } elseif ($order->user_type == Order::USER_TYPE_MEMBER) {
-                    $tp = 'Member';
-                    //Not handled here
-                }
                 $u = UserInfoModel::find($order->user_id);
                 if (!$u) {
-                    \Log::error('用户不存在' . $order->user_type . ', ' . $order->user_id);
+                    \Log::error('用户不存在' . $order->user_id . ', ' . $order->user_id);
                     return 'success';
                 }
 
                 DB::beginTransaction();
-
-                if ($order->goods_type == Order::GOODS_TYPE_BALANCE||$order->goods_type == Order::GOODS_TYPE_COSUME) {
-                    $cType = AccountLog::TYPE_BALANCE;
-//                    $u->account_balance += $order->number;
-                    $u->balance += $master_amount;
-                } elseif ($order->goods_type == Order::GOODS_TYPE_CREDIT) {
-                    $cType = AccountLog::TYPE_CREDIT;
-//                    $u->credit_balance += $order->number;
-                    $u->credit += $master_amount;
-                } else {
-                    \Log::error('商品不存在' . $order->goods_type);
-                    return 'success';
-                }
-                //测试
-                \Log::info('支付金额 '.$master_amount);
+                $cType = AccountLog::TYPE_COIN;
+                $u->coin += $order->number;
                 if ($u->save()) {
 
                     //更新订单状态
-                    $order->status = Order::STATUS_FINISHED;
+                    $order->status = OrderInfoModel::STATUS_FINISHED;
                     $order->save();
 
                     //记日志
-                    $amount = $rawInfo['total_fee'] * 100;
-                    if (empty($extInfo)) {
-                        $this->logAccount($tp, $u->id, $u->name,
-                            AccountLog::OP_CHARGE, $cType, $master_amount,
-                            AccountLog::DIRECTION_INC, $cType == AccountLog::TYPE_BALANCE ? $u->balance : $u->credit, AccountLog::CHANNEL_WECHATPAY);
-                    } else {
-
-                        $this->logAccount($tp, $u->id, $u->name,
-                            AccountLog::OP_CC, $cType, $master_amount,
-                            AccountLog::DIRECTION_INC, $cType == AccountLog::TYPE_BALANCE ? $u->balance : $u->credit, AccountLog::CHANNEL_WECHATPAY);
-                    }
+//                    $this->logAccount($tp, $u->id, $u->name,
+//                        AccountLog::OP_CHARGE, $cType, $master_amount,
+//                        AccountLog::DIRECTION_INC, $cType == AccountLog::TYPE_BALANCE ? $u->balance : $u->credit, AccountLog::CHANNEL_WECHATPAY);
 
                     \Log::info('支付完成');
 
@@ -311,12 +266,10 @@ class PayController extends Controller
         }
 
         $user = Auth::user();
-        $data['goods_id'] = 0;
+        $data['goods_id'] = 1;
         if (!isset($data['goods'])) {//默认充余额
             $data['goods'] = OrderInfoModel::GOODS_TYPE_COIN;
         }
-
-        $data['user_type'] = OrderInfoModel::USER_TYPE_USER;
         $data['user_id'] = $user->id;
         if ($data['type'] == OrderInfoModel::PAY_TYPE_ALIPAY) {
             $result = $this->createAlipayCharge($data);

+ 4 - 4
server/app/Models/OrderInfoModel.php

xqd
@@ -11,12 +11,12 @@ class OrderInfoModel extends Model
     protected $primaryKey = 'id';
 
     //用户类型定义
-    const USER_TYPE_USER    = 1;
+//    const USER_TYPE_USER    = 1;
 
     //用户类型枚举
-    private static $_user_types = [
-        self::USER_TYPE_USER    => '会员',
-    ];
+//    private static $_user_types = [
+//        self::USER_TYPE_USER    => '会员',
+//    ];
 
     //商品类型定义
     const GOODS_TYPE_COIN  = 1;

+ 2 - 6
server/app/Repositories/User/Criteria/MultiWhere.php

xqd
@@ -36,12 +36,8 @@ class MultiWhere extends Criteria {
     public function apply($model, Repository $repository)
     {
         if(isset($this->search['keyword']) && $this->search['keyword']) {
-              $model = $model->where('bank_name','like','%'.$this->search['keyword'].'%')
-              ->orWhere('bank_number','like','%'.$this->search['keyword'].'%')
-              ->orWhere('bank_phone','like','%'.$this->search['keyword'].'%')
-              ->orWhereHas('user', function ($query) {
-                  $query->where('nickname','like','%'.$this->search['keyword'].'%');
-              })
+              $model = $model->where('id','like','%'.$this->search['keyword'].'%')
+              ->orWhere('nickname','like','%'.$this->search['keyword'].'%')
               ;
           }
          return $model;

+ 3 - 3
server/config/laravel-omnipay.php

xqd
@@ -10,9 +10,9 @@ $alipay_options = [
 ];
 
 $wechatpay_options = [
-    'appid'         => 'wx768e4862b2125a3a',
-    'apikey'        => 'a1891122765718911227657189112276',
-    'merchant_id'   => '1408696902',
+    'appid'         => 'wxc5181c0d406023e6',
+    'apikey'        => '1miaomiao1weixin1account1number1',
+    'merchant_id'   => '1486206722',
     'notify_url'    => env('APP_URL') . '/api/pay/wechatpay/notify',
 ];
 

+ 24 - 24
server/config/wechat_pay/apiclient_cert.pem

xqd
@@ -1,26 +1,26 @@
 -----BEGIN CERTIFICATE-----
-MIIEYjCCA8ugAwIBAgIDUasfMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD
-TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE
-ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w
-HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTAyMDE0NDAwMloX
-DTI2MTAxODE0NDAwMlowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv
-bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL
-EwVNTVBheTEnMCUGA1UEAxQe5YyX5Lqs6YeR5Y2D5ZWG6LS45pyJ6ZmQ5YWs5Y+4
-MREwDwYDVQQEEwgxNTExNDg3NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAKs+LuWakOIt+hLzO44ujlthHNbagpIGTc5vvmAttyHpmVHpw+TVDxZnqUKS
-otPZKew2KGGdPJl8Mkt0fg4x3dfGZZWtyt656Fmliz4gSyyao40xJOeT9bEhb8KN
-vRHZP10ZgQEjxwu9YL5lliShYOI9gsyl0MNOIBu2DsIjFZWqM8MvpozA/Zdm560O
-nIs7ESuEiur0BAIyIC3tdnEMxBBaYJRPCm6i9Maza381XfOPUsE/oRdMiTLKv5Oy
-r+tHaezXgoAQx9pOp4claD4yr77W3jym0HQa8d9DwKXk4WC3jugsDbu58COJh/Eo
-vusETzx0qMnqpowtogUeKm1q5+0CAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ
-YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud
-DgQWBBTOMusf73XcumFV5xsjOLlAjQKtIDCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0
-FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1
-YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK
-BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ
-bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV
-HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAavxzgTWEw0MLE
-iMGQadly0gv7P4Fhg9sNJUAnlVItFpkjqGtMmqkX9IZAzaKxg8PYONMRNdNVWIHt
-AtcO43+9U1HoKGmmerHGwoh+JjPt71eknDeOBTABkvWNhx1YUrVCMh6l7yO71jKu
-qJA/CWKLw/xXThuLIqqc39xgj4Pgqw==
+MIIEZjCCA8+gAwIBAgIEAWEd8TANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
+Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV
+BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf
+MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA3MjcxMTAwMjZa
+Fw0yNzA3MjUxMTAwMjZaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk
+b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE
+CxMFTU1QYXkxKjAoBgNVBAMUIea3seWcs+W4gueehOWWteenkeaKgOaciemZkOWF
+rOWPuDERMA8GA1UEBBMIMzcwMDE0NTgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDWJAQq5zPWCvPoTv183e1/0wK28SplGCXGMfSQjWaszrfNrUBHD4N+
+GjGalFeZ4JDXhcUuD6Ddzl7kWElWWCZ6bN/TJyl/YARd1HukxZ/QxkS3zk+ID5AN
+lrTAhiS1DJG3kelxM+yUjf15btea6wn1rFGhL8c9um/AYOZZk/GOErnELdEfi2jU
+saxqV3Gz8OR0vfu/gJ90UKmYg/I6b+Vlgp9sSNdXq1Af66yKXNjIu0kEPR29U+U1
+DuZDgpMtndnxpDxmu5qAVyCKgnUHt8fZIvnqe/AnUYqul18jIgNJqNQCQ17IE8R2
+6XcnKrnNvSpluWZTD7PQP7jQCQJTm4mBAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA
+MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd
+BgNVHQ4EFgQU7yvd/y5Rp0ozD+TZJIeH9WAncr8wgb8GA1UdIwSBtzCBtIAUPgUm
+9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI
+EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50
+MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B
+CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw
+FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAjsze75Cn
+nTUg76g3kzw+MUfHCIPwBygtM/hTdiRuQwz6XMbXHHycbGgU8RYI1+tXf26fvBo6
+17bfWvmfQ3/y8OY/55iOWkZxwND8LIFSal4eZX+licl5Fc79YVU84XaqNT5gqJYa
+841upiIFDCqdur16uKfSGpQq8bTc3h5gqCo=
 -----END CERTIFICATE-----

+ 26 - 26
server/config/wechat_pay/apiclient_key.pem

xqd
@@ -1,28 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCrPi7lmpDiLfoS
-8zuOLo5bYRzW2oKSBk3Ob75gLbch6ZlR6cPk1Q8WZ6lCkqLT2SnsNihhnTyZfDJL
-dH4OMd3XxmWVrcreuehZpYs+IEssmqONMSTnk/WxIW/Cjb0R2T9dGYEBI8cLvWC+
-ZZYkoWDiPYLMpdDDTiAbtg7CIxWVqjPDL6aMwP2XZuetDpyLOxErhIrq9AQCMiAt
-7XZxDMQQWmCUTwpuovTGs2t/NV3zj1LBP6EXTIkyyr+Tsq/rR2ns14KAEMfaTqeH
-JWg+Mq++1t48ptB0GvHfQ8Cl5OFgt47oLA27ufAjiYfxKL7rBE88dKjJ6qaMLaIF
-HiptauftAgMBAAECggEAJZuVfxVwBkxkpG7IwJQW7ZipVcJNdLZvtguyerrvgkIk
-SuoU/JeSJbCEart7iR0jaN4IBlAa8/ZjsVCXMpTfDLlkq/esGzgnADEsIGvFNrmL
-e8G0QiurhMg8HDU2tcnJca/dNhveZgSkT4xN6iOK/ITXygwMiigJQyy7lwVPgzuu
-20uQSASn44JMrZLxnx7eOozuIBiYFTDR7J0j9BdP857TKjESXmXMLUueZvsPz19h
-TogKpRu1ZKS7Ic1RDQ61LfuK/XzDbOMkAdoTTeheKQ438XZFbIZ9135ni/tSpZSE
-f2XKUlmdgLKU1FsnWS8C0xmzDFWUhIfGRY+LsFFkQQKBgQDeP/SMXGQWpey13d+M
-iInkEjwWYxFQ5r+xr2KXUi3ycRum/bLlD6BRphwDCTiPQvPVdWPfh/A62xCNnWyg
-TLzVv/eLtbjCNq1aXIDBUzCEb7XWUHKekFgwi/TVwwUr5WWbNdjKVmUHPQZBRlu1
-83a96ZqkYLwNvs+TRi/sGoC8PQKBgQDFP1CYiIgEoDnAQ1X+WPKSFSdcRQgHuJd/
-GV9EVslCzFr5PuISfcuvSqRlw7S5BK4wTOtek21oW6Ncg/PNKZ4fMxHIxsFfYL45
-WkYULih2TpInEoeiDfOgMIgL+tovFtd5Jk4ubFKnTG1xVoLoDl3Yt2OTJXU6ulSr
-fdp15B8lcQKBgDjxG9/GYCJpWo9yDC9+YA3eGiUGNs6KgDyvGcx5UqpWDmang2kq
-qsGglHa2qxYRalWbYP5JXuRFciVGWylq38rIB011PqQLzDhlkNt3S+vyjx0cuXEk
-vGObyBvofm+zs2ej0SpuHi5PlUWuGBszCI45xtQssKG47IfoKKkOVUNlAoGARR4z
-qs+lAiH3OrUdzBv1HFWHTmDuOG5pv+LvLC5RJjQf6NktNReZqVo5k2Npz6+hLlG1
-5JU6sGf0LbYbV5guzXYC1F05Y6et4MEOb4HhMdvEgSaQGqxS4549/hywGfIiHVTb
-7o6MxA0XCLEs/A4Uup1Aqk5k7uheRR270LXYaDECgYB50fETE6fGapyIDt8NCbpg
-d/ha7anCbIdqf7IQAZ1+2EtcoL5FpVbxzD0CmLjP9VAbCzflymOXuoWn72VmtmTT
-KNjHDQenl/SmWz/rKkZB+zIxwecmtUm+xuYao6/yOmZTjKlr2Ka6Z7+yHvzRgaRx
-2EuDVav7ES2ftD8fgFsjAA==
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDWJAQq5zPWCvPo
+Tv183e1/0wK28SplGCXGMfSQjWaszrfNrUBHD4N+GjGalFeZ4JDXhcUuD6Ddzl7k
+WElWWCZ6bN/TJyl/YARd1HukxZ/QxkS3zk+ID5ANlrTAhiS1DJG3kelxM+yUjf15
+btea6wn1rFGhL8c9um/AYOZZk/GOErnELdEfi2jUsaxqV3Gz8OR0vfu/gJ90UKmY
+g/I6b+Vlgp9sSNdXq1Af66yKXNjIu0kEPR29U+U1DuZDgpMtndnxpDxmu5qAVyCK
+gnUHt8fZIvnqe/AnUYqul18jIgNJqNQCQ17IE8R26XcnKrnNvSpluWZTD7PQP7jQ
+CQJTm4mBAgMBAAECggEAUmmOCQzt0CRq9i7gM5wdeSI2Wz25OSrv7rTvEGq65yqv
+ZkKVCEQaMP/Xs0v/4sKgO7HJzw5ItNRlhK/NmaNXO6qHAXaC6/iB9bJ+200LUofb
+jnmh9hU3NWOYsLdvjRYHRoSrONvo4ss6j+9unrpyHNByofwHS+RiecFRJYxgXHJ3
+32ocjmk5dldhtJ55m7hldg2rcjFMBO2tc/6Afp+r5TJ5Ws55IbvrShLlfV2czeF9
+kntGQm12/6+SIqY0t2Yb+mKK+78Et/rpq8ONAiDMmdgwgRWV86hTsKkqb/uP32UM
+dbGQKuCASNHroZFgcSvW1/Ir7kLYsOIS2Klb+Frk+QKBgQD5yAOX6vbnOprFNROR
+x62kOCRgKJQCKF+yZSoUO6bmwC22RZWSXG1tCh6lEiI2DooBS+edsZ7iFvo1179K
+o5oeSwetP38kCpbiIDAd5bS5xjB6UTTYmZgtEdYO8gMlzNOss0ku9BrsjQ6eQ8Wx
+td0o82MKZF7GnZCsodsFhHjmMwKBgQDbeNiZN8T2iGZbGWl84OURhb+x9hT32ftL
+WKmUS7guZvzIsv5WqQ7IAWCiDKt67LcuytGGKLKpyXc50+Bwsi3sFLt7a0K12I2z
+dO0OoB2pGLmDdos/faoGk8tUhjzEpr4DaTmAzJixKw44pba86vLnkQ+TPqoJCBuD
+ByQiwJJVewKBgE9SITIBP982USgHLuvAiXf5DDQtLrNwttMkJTS/rMTiiqGzf0g3
+adiSuiCZnZulClZXEHqXiWkq+tJWbTz6r1qnYQy3eVyssDWnGyCjbb0BHyv41dtj
+C1xkqaGdYTqDzUSuurLaeiJcuSOxSfqhUlZK1Ezciuxv5R2tWKxr4SjZAoGAIrDE
+U9ub13gR7b5jjSijLJTeiwuhntemv+8gxt79GuCOfk7EowAP5Q9KrfKgvEpkXhIS
+8kjGjM3aeZqC9G1FkvZn+AcpQUMciswlmFU4uvy8fgoj0oJTeLytvAuH2XGdwT5F
+p5UvYXmzwsJ20v+0K2QjeRvDlq/gYWKklJWpy7cCgYEA9QL6umVSBUmgs4WpZSQq
+3jATUGK/hgtFlOelWk4un3Klb4TBXmuDxqO5ku7yD4C6GovSFpFebnGO2iJCzHzu
+9980yMxrVVzrw1QDWX+PT4QsMvjuLLnHokOQwFm6xghW7yI8QODCvgCcQP7zuN39
+dC1Uyk2/5tnkpIZwE8rY1c8=
 -----END PRIVATE KEY-----