zilong 4 years ago
parent
commit
512575b8ac

+ 22 - 0
app/Http/Controllers/Api/AuthController.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-9-23
+ * Time: 上午11:34
+ */
+
+namespace App\Http\Controllers\Api;
+
+use App\Http\Controllers\Controller;
+use App\Models\User;
+
+class AuthController extends Controller
+{
+    protected $user = null;
+
+    public function __construct()
+    {
+        $this->user = User::getUserByToken();
+    }
+}

+ 136 - 0
app/Http/Controllers/Api/V1/CommonController.php

@@ -0,0 +1,136 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-9-23
+ * Time: 上午11:26
+ */
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Http\Controllers\Controller;
+use App\Models\User;
+use EasyWeChat\Factory;
+
+class CommonController extends Controller
+{
+    public function wxLogin()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'wechat_code' => 'required',
+            'nickname|昵称' => 'max:50',
+            'avatar|头像' => 'url',
+        ]);
+        $app = Factory::miniProgram(config('config.wechat_small_program'));
+
+        $data = $app->auth->session($req['wechat_code']);
+
+        if (!empty($data['openid'])){
+            $req['openid'] = $data['openid'];
+            $req['register_time'] = time();
+        }
+        else {
+            trace(['微信登录获取openid异常' => $data], 'error');
+            return out(null, 10001, '微信登录code错误');
+        }
+
+        $user = User::select(['id', 'status', 'phone', 'nickname', 'avatar','realname','promoter_type'])->where('openid', $req['openid'])->first();
+        if (empty($user)){
+            $req['partner_id'] = 1;//默认总部
+            $req['province_id'] = 2;//默认总部
+            $req['city_id'] = 37;//默认总部
+            $res = User::create($req);
+            if ($res){
+                $user = User::select(['id', 'status', 'phone', 'nickname', 'avatar','realname','promoter_type'])->where('openid', $req['openid'])->first();
+                $token = aes_encrypt(['id' => $user['id'], 'time' => time()]);
+                return out(['token' => $token, 'is_auth' => 1, 'avatar' => $user['avatar'], 'nickname' => $user['nickname'],'realname' => $user['realname'],'promoter_type'=>$user['promoter_type']]);
+            }
+            return out(['token' => '', 'is_auth' => 0, 'avatar' => '', 'nickname' => '']);
+        }
+        else {
+            if ($user['status'] == 0){
+                return out(null, 10001, '账号已被冻结');
+            }
+            if (!empty($data['session_key'])){
+                $req['session_key']=$data['session_key'];
+                $user->fill($req)->save();
+            }
+
+            $token = aes_encrypt(['id' => $user['id'], 'time' => time()]);
+
+            return out(['token' => $token, 'is_auth' => 1, 'avatar' => $user['avatar'], 'nickname' => $user['nickname'],'realname' => $user['realname'],'promoter_type'=>$user['promoter_type']]);
+        }
+    }
+
+    public function uploadImg()
+    {
+        $file = request()->file('file');
+        if (!empty($file)) {
+            $path = $file->store('uploads');
+            $file_url = request()->getScheme().'://'.request()->getHost().'/'.$path;
+
+            return out(['file_url' => $file_url]);
+        }
+
+        return out(null, 10001, '文件不能为空');
+    }
+
+    public function getPhoneNumber()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'iv' => 'required',
+            'encryptData' => 'required',
+        ]);
+
+        $user = User::getUserByToken();
+        $session_key = $user['session_key'];
+
+        $app = Factory::miniProgram(config('config.wechat_small_program'));
+
+        try {
+            $decryptedData = $app->encryptor->decryptData($session_key, $req['iv'], $req['encryptData']);
+        } catch (\Exception $e) {
+            return out(null, 10001, '获取手机失败');
+        }
+
+        return out($decryptedData);
+    }
+
+    public function doc()
+    {
+        $database = 'juyin';
+        $prefix = 'xcx_';
+        $map1 = [
+            'users' => 'user(用户表)',
+            'user_reports' => 'user_report(用户上传的报告表)',
+            'payments' => 'payment(支付表)',
+            'user_promotes' => 'user_promote(用户推广信息表)',
+        ];
+
+        $data1 = array();
+        foreach ($map1 as $k => $v){
+            $sql = "select COLUMN_NAME name, DATA_TYPE type, COLUMN_COMMENT comment from INFORMATION_SCHEMA.COLUMNS where table_schema = '".$database."' AND table_name = '".$prefix.$k."'";
+            $comment = \DB::select($sql);
+            $data1[$v] = $comment;
+        }
+
+        $map2 = [
+            'orders' => 'order(订单表)',
+            'order_projects' => 'order_project(订单项目表)',
+            'assessment_reports' => 'assessment_reports(评估报告表)',
+            'user_withdraw_records' => 'user_withdraw_record(用户提现记录表)',
+            'user_balance_logs' => 'user_balance_log(用户资金日志表)'
+        ];
+
+        $data2 = array();
+        foreach ($map2 as $k => $v){
+            $sql = "select COLUMN_NAME name, DATA_TYPE type, COLUMN_COMMENT comment from INFORMATION_SCHEMA.COLUMNS where table_schema = '".$database."' AND table_name = '".$prefix.$k."'";
+            $comment = \DB::select($sql);
+            $data2[$v] = $comment;
+        }
+
+        return view('doc', ['data1' => $data1, 'data2' => $data2]);
+    }
+}

+ 21 - 0
app/Http/Controllers/Api/V1/UserController.php

@@ -0,0 +1,21 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-9-23
+ * Time: 上午11:36
+ */
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Http\Controllers\Api\AuthController;
+
+class UserController extends AuthController
+{
+    public function UserInfo()
+    {
+        $user = $this->user;
+
+        return out($user);
+    }
+}

+ 2 - 1
composer.json

@@ -12,7 +12,8 @@
         "encore/laravel-admin": "^2.0",
         "encore/laravel-admin": "^2.0",
         "fideloper/proxy": "^4.0",
         "fideloper/proxy": "^4.0",
         "laravel/framework": "^6.0",
         "laravel/framework": "^6.0",
-        "laravel/tinker": "^1.0"
+        "laravel/tinker": "^1.0",
+        "overtrue/wechat": "^4.0"
     },
     },
     "require-dev": {
     "require-dev": {
         "filp/whoops": "^2.0",
         "filp/whoops": "^2.0",

File diff suppressed because it is too large
+ 918 - 26
composer.lock


+ 25 - 0
config/config.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-9-23
+ * Time: 上午11:41
+ */
+
+return [
+    //token加密的key和iv
+    'aes_key' => 'bEJwbf2w8Abbhr1g',
+    'aes_iv' => 'sfX2ReOCcY22CEUF',
+
+    'wechat_small_program' => [
+        'app_id' => 'wxcb8cf16641d45bea',
+        'secret' => 'bec57a111c85846e245db4b88147581c',
+    ],
+
+    'wechat_pay' => [
+        'app_id' => 'wxcb8cf16641d45bea',
+        'mch_id' => '1592541921',
+        'key' => 'weixinzhifujuyinzhengxin66666666',
+        'notify_url' => env('API_HOST', '').'/api/payCallback/wechatPayNotify'
+    ],
+];

Some files were not shown because too many files changed in this diff