소스 검색

报名以及申请成为推广人

DESKTOP-2STQMTS\Administrator 3 년 전
부모
커밋
ed1b2bafd6
4개의 변경된 파일232개의 추가작업 그리고 0개의 파일을 삭제
  1. 147 0
      app/Http/Controllers/Api/UserController.php
  2. 39 0
      app/Models/UserModels/WxRecord.php
  3. 39 0
      app/Models/UserModels/WxSignup.php
  4. 7 0
      routes/api/user.php

+ 147 - 0
app/Http/Controllers/Api/UserController.php

@@ -3,6 +3,10 @@
 namespace App\Http\Controllers\Api;
 
 use App\Http\Controllers\FrontController;
+use App\Models\UserModels\WxRecord;
+use App\Models\UserModels\WxSignup;
+use App\Models\UserModels\WxUser;
+use App\Servers\Common\SmsServer;
 use App\Servers\Member\UserServer;
 use App\Servers\WeChat\WeixinServer;
 use App\Servers\Common\CommonServer;
@@ -62,6 +66,149 @@ class UserController extends FrontController
         }
     }
 
+    /**
+     * 获取视频信息
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function getVideo(){
+        $data['one_video'] = 'https://baidu.com';
+        $data['two_video'] = 'https://baidu.com';
+        return $this->apiResponseSuccess('成功',$data);
+    }
+
+    /**
+     * 记录浏览数据
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function setRecord(){
+        $s_code = request()->input('s_code', '');//上级推广码
+        $t_code = request()->input('t_code', '');//浏览者的推广码
+
+        if(empty($s_code) || empty($t_code)) return $this->apiResponseSuccess('完成');
+        //检查上级是否存在
+        $s_user = WxUser::where('invite_code', $s_code)->select(['id'])->first();
+
+        if($s_user){
+            $s_user->increment('pv');//记录pv量
+        }else{
+            return $this->apiResponseSuccess('完成');
+        }
+
+        //检查浏览者是否存在
+        $t_user = WxUser::where('invite_code', $t_code)->select(['id'])->first();
+        if($t_user){
+            //检查这个浏览者是否浏览过这个上级的
+            $info = WxRecord::where('s_code',$s_code)->where('t_code',$t_code)->select(['id'])->first();
+            if(empty($info)){
+                $s_user->increment('uv');//记录uv量
+
+                WxRecord::create([
+                    's_code' => $s_code,
+                    't_code' => $t_code,
+                ]);
+            }
+        }
+
+        return $this->apiResponseSuccess('完成');
+    }
+
+
+    /**
+     * 发送短信
+     * @return \Illuminate\Http\JsonResponse
+     * @throws \End01here\EasySms\Exceptions\CodeErrorException
+     * @throws \End01here\EasySms\Exceptions\GatewayErrorException
+     * @throws \End01here\EasySms\Exceptions\MessageException
+     */
+    function sendSms()
+    {
+        $phone = request()->input('phone', '');
+        $send_type = request()->input('send_type', 'default');
+        if (empty($phone)) {
+            return $this->apiResponseError('请输入手机号码');
+        }
+        $send_server = SmsServer::creatServer();
+        $ret = $send_server->sendCode($phone, $send_type);
+        if (!$ret) {
+            return $this->apiResponseError($send_server->getErrorMsg() ?: '短信发送失败');
+        } else {
+            return $this->apiResponseSuccess('短信发送成功');
+        }
+    }
+
+    /**
+     * 申请成为推广者
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function setApply(){
+        $m_id = request()->input('m_id', '');
+        $name = request()->input('name', '');//名称
+        $phone = request()->input('phone', '');//账号
+        $code = request()->input('code', '');//验证码
+        if (empty($m_id))  return $this->apiResponseError( '必要参数缺失');
+        if (empty($name))  return $this->apiResponseError( '名称必填');
+        if (mb_strlen($name) > 10) return $this->apiResponseError('名称10字以内');
+
+        if (empty($phone))  return $this->apiResponseError( '手机号必填');
+        if (!CommonServer::creatServer()->verifyPhoneNumber($phone)) {
+            return $this->apiResponseError('手机号格式错误');
+        }
 
+        if (empty($code))  return $this->apiResponseError( '验证码必填');
+        $send_server = SmsServer::creatServer();
+        $code_ret = $send_server->verifyCode($phone, $code, 'login');
+        if (empty($code_ret)) {
+            return $this->apiResponseError($send_server->getErrorMsg() ?: '验证码错误');
+        }
+
+        $info = WxUser::where('phone', $phone)->select(['id'])->first();
+        if ($info) {
+            return $this->apiResponseError( '该号码已申请');
+        }
+
+        $res = WxUser::where('id',$m_id)->update(['name'=>$name, 'phone'=>$phone, 'status'=>1]);
+        if($res){
+            return $this->apiResponseSuccess( '申请成功');
+        }else{
+            return $this->apiResponseError( '申请失败');
+        }
+    }
 
+    /**
+     * 报名信息
+     * @return \Illuminate\Http\JsonResponse|void
+     */
+    function setSignUp(){
+        $m_id = request()->input('m_id', '');
+        $name = request()->input('name', '');//名称
+        $phone = request()->input('phone', '');//账号
+        $industry = request()->input('industry', '');//行业
+
+        if (empty($m_id))  return $this->apiResponseError( '必要参数缺失');
+
+        if (empty($name))  return $this->apiResponseError( '名称必填');
+        if (mb_strlen($name) > 10) return $this->apiResponseError('名称10字以内');
+
+        if (empty($phone))  return $this->apiResponseError( '手机号必填');
+        if (!CommonServer::creatServer()->verifyPhoneNumber($phone)) {
+            return $this->apiResponseError('手机号格式错误');
+        }
+
+        //获取用户上级
+        $p_id = WxUser::where('id',$m_id)->value('id');
+
+        $res = WxSignup::create([
+            'p_id' => $p_id,
+            'm_id' => $m_id,
+            'name' => $name,
+            'phone' => $phone,
+            'industry' => $industry,
+        ]);
+
+        if($res){
+            return $this->apiResponseSuccess( '提交成功');
+        }else{
+            return $this->apiResponseError( '提交失败');
+        }
+    }
 }

+ 39 - 0
app/Models/UserModels/WxRecord.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Models\UserModels;
+
+use App\Models\Traits\Timestamp;
+use Illuminate\Database\Eloquent\Model;
+
+class WxRecord extends Model
+{
+    use Timestamp;
+    /**
+     * 表名。
+     *
+     * @var string
+     */
+    protected $table = 'wx_records';
+
+    /**
+     * 与表关联的主键。
+     *
+     * @var string
+     */
+    protected $primaryKey = 'id';
+
+    /**
+     * 是否主动维护时间戳
+     *
+     * @var bool
+     */
+    public $timestamps = true;
+
+    /**
+     * 不能被批量赋值的属性
+     *
+     * @var array
+     */
+    protected $guarded = ['id', 'updated_at', 'created_at'];
+
+}

+ 39 - 0
app/Models/UserModels/WxSignup.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Models\UserModels;
+
+use App\Models\Traits\Timestamp;
+use Illuminate\Database\Eloquent\Model;
+
+class WxSignup extends Model
+{
+    use Timestamp;
+    /**
+     * 表名。
+     *
+     * @var string
+     */
+    protected $table = 'wx_signups';
+
+    /**
+     * 与表关联的主键。
+     *
+     * @var string
+     */
+    protected $primaryKey = 'id';
+
+    /**
+     * 是否主动维护时间戳
+     *
+     * @var bool
+     */
+    public $timestamps = true;
+
+    /**
+     * 不能被批量赋值的属性
+     *
+     * @var array
+     */
+    protected $guarded = ['id', 'updated_at', 'created_at'];
+
+}

+ 7 - 0
routes/api/user.php

@@ -8,4 +8,11 @@ Route::group(['domain' => env('APP_HOST_WEB'), 'prefix' => 'user'],function (){
     Route::match(['get','post'],'cs', 'UserController@index')->name('user.index');
     Route::match(['get','post'],'wx_info', 'UserController@getWxInfo')->name('user.wx_info');//获取用户信息
 
+
+    Route::match(['get','post'],'video', 'UserController@getVideo')->name('user.video');//获取视频信息
+    Route::match(['get','post'],'record', 'UserController@setRecord')->name('user.record');//上报浏览数据
+
+    Route::match(['get','post'],'apply', 'UserController@setApply')->name('user.apply');//申请成为推广人
+    Route::match(['get','post'],'sign_up', 'UserController@setSignUp')->name('user.sign_up');//报名
+
 });