zz il y a 6 ans
Parent
commit
8207cad000

+ 4 - 3
app/Http/Controllers/Wap/Pay/OrdersController.php

@@ -606,6 +606,7 @@ class OrdersController extends Controller
         if (substr_count($url, '?') > 1) {
             $url = str_replace_last('?', '&', $url);
         }
+        $from = 'pay';
         $order_info = OrderService::getByTradeNo($order);
         $uid = $order_info->uid;
         $bind_info = UserBindPhoneService::bindInfo($uid);
@@ -624,7 +625,7 @@ class OrdersController extends Controller
                     $url = sprintf('%s://%s/reader?%s', $url_info['scheme'], $url_info['host'], http_build_query($path));
                 }
                 if(!$bind_info){
-                    return view('pay.order.bindPhone', compact('order', 'url'));
+                    return view('pay.order.bindPhone', compact('order', 'url','from'));
                 }else{
                     return redirect($url);
                 }
@@ -634,12 +635,12 @@ class OrdersController extends Controller
             $url = sprintf('%s://%s/recent', $url_info['scheme'], $url_info['host']);
             //return redirect($url);
             if(!$bind_info){
-                return view('pay.order.bindPhone', compact('order', 'url'));
+                return view('pay.order.bindPhone', compact('order', 'url','from'));
             }else{
                 return redirect($url);
             }
         }
-        return view($page, compact('order', 'url'));
+        return view($page, compact('order', 'url','from'));
     }
 
     private function isNewUserSecondCharge($charge_type, $product_id, $uid)

+ 27 - 2
app/Http/Controllers/Wap/User/UserController.php

@@ -11,6 +11,7 @@ use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\User\Services\ForceGuidePersonAccountService;
 use App\Modules\User\Services\ReadRecordService;
 use App\Modules\User\Services\UserBindPhoneService;
+use App\Modules\User\Services\UserWealthyOperateRecordService;
 use App\Modules\User\Services\WapReaderPageFissionService;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Wap\BaseController;
@@ -77,6 +78,14 @@ class UserController extends BaseController
         }
 
         $data = UserService::getById($this->uid);
+        $bind_info = UserBindPhoneService::bindInfo($this->uid);
+        if($bind_info){
+            $data['bind'] = 1;
+            $data['bind_phone'] = $bind_info->phone;
+        }else{
+            $data['bind'] = 0;
+            $data['bind_phone'] = '';
+        }
 
         $data['is_vip'] = 0;
         $data['vip_days'] = 0;
@@ -448,8 +457,17 @@ class UserController extends BaseController
                 return response()->error();
             }
             try{
-                UserBindPhoneService::bind($this->uid,$user_info->openid,$phone);
-                UserService::addBalance($this->uid,100,0,100);
+                $result = UserBindPhoneService::bind($this->uid,$user_info->openid,$phone);
+                if($result == 0){
+                    UserService::addBalance($this->uid,100,0,100);
+                    UserWealthyOperateRecordService::create($this->uid,100,$this->distribution_channel_id,'bind_phone');
+                }
+                if($result == -1){
+                    return response()->error('WAP_BIND_PHONE_EXIST');
+                }
+                if($result == -2){
+                    return response()->error('WAP_SEND_OPENID_EXIST');
+                }
             }catch (\Exception $e){}
             return response()->success();
         }else{
@@ -457,6 +475,13 @@ class UserController extends BaseController
         }
     }
 
+    public function bindPhoneView(Request $request){
+        $from = 'personal';
+        $order = '';
+        $url = '/personal';
+        return view('pay.order.bindPhone', compact('order', 'url','from'));
+    }
+
     public function guidePersonalAccount(Request $request){
         $bid = $request->get('bid');
         $cid = $request->get('cid');

+ 2 - 0
app/Http/Routes/Wap/WapRoutes.php

@@ -146,6 +146,8 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
         Route::post('bindphone/sendcode','User\UserController@sendCode');
         Route::post('bindphone/bind','User\UserController@bindPhone');
 
+        Route::get('bindphone/bind','User\UserController@bindPhoneView');
+
         // 测试登录
 //         Route::any('user/test_add_user_login_cookie','User\UserController@test_add_user_login_cookie');
         

+ 11 - 0
app/Modules/User/Models/UserWealthyOperateRecord.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Modules\User\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class UserWealthyOperateRecord extends Model
+{
+    protected $table = 'user_wealthy_operate_record';
+    protected $fillable = ['operator','uid','coin_num','endtime','channel_id','type'];
+}

+ 9 - 0
app/Modules/User/Services/UserBindPhoneService.php

@@ -23,9 +23,18 @@ class UserBindPhoneService
 
     public static function bind($uid,$openid,$phone){
         $model = new UserBindPhone();
+        $info = $model->where('phone',$phone)->select('id')->first();
+        if($info){
+            return -1;
+        }
+        $info2 = $model->where('openid',$openid)->select('id')->first();
+        if($info2){
+            return -2;
+        }
         $model->uid = $uid;
         $model->openid = $openid;
         $model->phone = $phone;
         $model->save();
+        return 0;
     }
 }

+ 27 - 0
app/Modules/User/Services/UserWealthyOperateRecordService.php

@@ -0,0 +1,27 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/7/4
+ * Time: 19:14
+ */
+
+namespace App\Modules\User\Services;
+
+
+use App\Modules\User\Models\UserWealthyOperateRecord;
+
+class UserWealthyOperateRecordService
+{
+    public static function create($uid,$coin_num,$channel_id,$type)
+    {
+        $model = new  UserWealthyOperateRecord();
+        $model->uid = $uid;
+        $model->coin_num = $coin_num;
+        $model->channel_id = $channel_id;
+        $model->type = $type;
+        $model->endtime = date('Y-m-d H:i:s');
+        $model->operator = '10000';
+        $model->save();
+    }
+}

+ 2 - 0
config/error.php

@@ -164,6 +164,8 @@ return [
         'WAP_HAD_ON_SHELF'=>['code'=>10024,'msg'=>'已经在书架上了'],
         //送礼
         'WAP_SEND_GIFT_FAILED'=>['code'=>10028,'msg'=>'送礼失败!请稍后再试!'],
+        'WAP_BIND_PHONE_EXIST'=>['code'=>10029,'msg'=>'手机号码已经被绑定了'],
+        'WAP_SEND_OPENID_EXIST'=>['code'=>10030,'msg'=>'您已经绑定过'],
         //XCX小程序
         'XCX_NOT_LOGIN'=>['code'=>10023,'msg'=>'未登录'],
         'XCX_TOKEN_ERROR'=>['code'=>10023,'msg'=>'token失效'],

+ 30 - 11
resources/views/pay/order/bindPhone.blade.php

@@ -231,7 +231,9 @@
             <div class="submit-wrap">
                 <button class="to-bind" id="bind">立即绑定</button>
                 <!-- 可以点击的时候 多加一个class->to-refuse__enable -->
-                <button class="to-refuse" id="refuse" disabled>残忍拒绝</button>
+                @if($from == 'pay')
+                    <button class="to-refuse" id="refuse" disabled>残忍拒绝</button>
+                @endif
             </div>
         </div>
     </div>
@@ -252,22 +254,25 @@
     var reg = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57]|19[0-9])[0-9]{8}$/;
     var refuseNumber = 10;
     var getPhoneCodeNumber = 60;
+    var order = "{{ $order }}"
 
     // 倒计时
     function countDown(time, cb) {
         var timer = null
         timer = setInterval(function() {
-            $.ajax({
-                url:"/api/order/issuccess",
-                data:{
-                    order:"{{ $order }}"
-                },
-                success:function(res){
-                    if(res['code'] == 0){
-                        time = 1;
+            if(order){
+                $.ajax({
+                    url:"/api/order/issuccess",
+                    data:{
+                        order:"{{ $order }}"
+                    },
+                    success:function(res){
+                        if(res['code'] == 0){
+                            time = 1;
+                        }
                     }
-                }
-            });
+                });
+            }
             if (time === 1) clearInterval(timer);
             time--;
             if (cb) cb(time);
@@ -334,7 +339,21 @@
                 success:function ($res) {
                     if($res.code == 0){
                         $(".dialog-wrap").fadeIn();
+                        return ;
+                    }
+                    if($res.code == 10029){
+                        alert($res.msg);
+                        return ;
+                    }
+                    if($res.code == 10030){
+                        alert($res.msg);
+                        setTimeout(function(){
+                            location.href = "{!! $url !!}";
+                        },50);
+                        return ;
                     }
+                    alert("系统异常");
+                    return ;
                 }
             })
         }