wesley.chen 7 år sedan
förälder
incheckning
c0afb1d203

+ 1 - 1
app/Http/Controllers/Api/V1/Controller.php

xqd
@@ -21,7 +21,7 @@ class Controller extends BaseController
         $this->middleware('auth:api', [
             'except' => [
                 'upload', 'getCode', 'reset', 'login', 'get', 'register', 'alipayNotify', 'wechatpayNotify',
-                'get', 'area', 'get_province', 'get_city', 'get_county', 'test','getIntroduction','getBaseData','getQueried','agreeIntroduction'
+                'get', 'area', 'get_province', 'get_city', 'get_county', 'test','getIntroduction','getBaseData','getQueried','agreeIntroduction','getPaidMajors'
 
             ]
         ]);

+ 154 - 41
app/Http/Controllers/Api/V1/HomeController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -1,8 +1,11 @@
 <?php
+
 namespace App\Http\Controllers\Api\V1;
 
 use App\Models\IntroductionInfoModel;
 use App\Models\MajorInfoModel;
+use App\Models\PaidSettingModel;
+use App\Models\QueryInfoModel;
 use App\Models\StudentCountModel;
 use App\Models\UserInfoModel;
 use Carbon\Carbon;
@@ -12,7 +15,8 @@ use Validator, Response;
 use EasyWeChat\Factory;
 
 
-class HomeController extends Controller{
+class HomeController extends Controller
+{
 
     protected $app;
 
@@ -66,17 +70,18 @@ class HomeController extends Controller{
      * 可能出现的错误代码:
      *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
      */
-    public function login(Request $request){
+    public function login(Request $request)
+    {
         $code = $request->get('code');
         $session = $this->app->auth->session($code);
 
         $openid = $session['openid'];
 
-        $userinfo = UserInfoModel::where('openid',$openid)->first(['id','nickname','openid','has_agreed']);
+        $userinfo = UserInfoModel::where('openid', $openid)->first(['id', 'nickname', 'openid', 'has_agreed']);
 
-        if($userinfo){
+        if ($userinfo) {
             return $this->api(compact('userinfo'));
-        }else{
+        } else {
             $data['openid'] = $openid;
             $data['nickname'] = $request->get('nickName');
             $data['avatar'] = $request->get('avatar');
@@ -119,8 +124,9 @@ class HomeController extends Controller{
      * 可能出现的错误代码:
      *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
      */
-    public function getIntroduction(){
-        $list = IntroductionInfoModel::get(['title','content','type']);
+    public function getIntroduction()
+    {
+        $list = IntroductionInfoModel::get(['title', 'content', 'type']);
 
         return $this->api(compact('list'));
     }
@@ -157,12 +163,13 @@ class HomeController extends Controller{
      * 可能出现的错误代码:
      *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
      */
-    public function agreeIntroduction(Request $request){
+    public function agreeIntroduction(Request $request)
+    {
         $userid = $request->get('userid');
-        $data['has_agreed'] =1;
-        $res = UserInfoModel::where('id',$userid)->update($data);
-        if($res){
-            $userinfo = UserInfoModel::where('id',$userid)->first(['id','nickname','openid','has_agreed']);
+        $data['has_agreed'] = 1;
+        $res = UserInfoModel::where('id', $userid)->update($data);
+        if ($res) {
+            $userinfo = UserInfoModel::where('id', $userid)->first(['id', 'nickname', 'openid', 'has_agreed']);
         }
 
         return $this->api(compact('userinfo'));
@@ -203,14 +210,15 @@ class HomeController extends Controller{
      * 可能出现的错误代码:
      *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
      */
-    public function getBaseData(){
+    public function getBaseData()
+    {
         $batchs = MajorInfoModel::groupBy('batch')->pluck('batch');
 
         $provinces = [
-            "全部省份","安徽","澳门","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","四川","台湾","天津","西藏","香港","新疆","云南","浙江"
+            "全部省份", "安徽", "澳门", "北京", "重庆", "福建", "甘肃", "广东", "广西", "贵州", "海南", "河北", "河南", "黑龙江", "湖北", "湖南", "吉林", "江苏", "江西", "辽宁", "内蒙古", "宁夏", "青海", "山东", "山西", "陕西", "上海", "四川", "台湾", "天津", "西藏", "香港", "新疆", "云南", "浙江"
         ];
 
-        return $this->api(compact('batchs','provinces'));
+        return $this->api(compact('batchs', 'provinces'));
     }
 
 
@@ -252,19 +260,20 @@ class HomeController extends Controller{
      * 可能出现的错误代码:
      *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
      */
-    public function getQueried(Request $request){
+    public function getQueried(Request $request)
+    {
         $validator = Validator::make($request->all(),
             [
-                'cnumber'         => 'required',
-                'username'         => 'required',
-                'grade'         => 'required|integer',
+                'cnumber' => 'required',
+                'username' => 'required',
+                'grade' => 'required|integer',
             ],
             [
-                'cnumber.required'      => '考号不能为空!',
-                'username.required'    => '姓名不能为空!',
-                'username.required'    => '姓名不能为空!',
-                'grade.required'    => '成绩不能为空!',
-                'grade.integer'    => '请输入正确格式的成绩!',
+                'cnumber.required' => '考号不能为空!',
+                'username.required' => '姓名不能为空!',
+                'username.required' => '姓名不能为空!',
+                'grade.required' => '成绩不能为空!',
+                'grade.integer' => '请输入正确格式的成绩!',
             ]
         );
 
@@ -276,42 +285,147 @@ class HomeController extends Controller{
         /*更新用户的信息*/
         $this->updateUserinfo();
 
-        $year = 2015;
+        $year = date('Y');
         $grade = $request->get('grade');
         $batch = $request->get('batch');
         $class = $request->get('class');
         $province = $request->get('province');
 
-        $maxgrade = StudentCountModel::where('year',$year)->orderBy('grade','desc')->first()->grade;
-        if($grade >$maxgrade){
+        $maxgrade = StudentCountModel::where('year', $year)->orderBy('grade', 'desc')->first()->grade;
+        if ($grade > $maxgrade) {
             $rank = "前10";
-        }else{
-            $rank = StudentCountModel::where('year',$year)->where('grade',$grade)->first(['total'])->total;
+        } else {
+            $rank = StudentCountModel::where('year', $year)->where('grade', $grade)->first(['total'])->total;
         }
 
-        if($province == "全部省份"){
-            $college = MajorInfoModel::where('year',$year)->where('batch',$batch)->where('class',$class)->where('min_grade',"<=",$grade)->groupBy('college')->get();
-        }else{
-            $college = MajorInfoModel::where('year',$year)->where('batch',$batch)->where('class',$class)->where('province','like','%'.$province.'%')->where('min_grade',"<=",$grade)->groupBy('college')->get();
+        if ($province == "全部省份") {
+            $college = MajorInfoModel::where('year', $year)->where('batch', $batch)->where('class', $class)->where('min_grade', "<=", $grade)->groupBy('college')->get();
+        } else {
+            $college = MajorInfoModel::where('year', $year)->where('batch', $batch)->where('class', $class)->where('province', 'like', '%' . $province . '%')->where('min_grade', "<=", $grade)->groupBy('college')->get();
         }
 
         $college_count = count($college);
 
         /*创建查询记录*/
         $user = UserInfoModel::find(request('userid'));
-        $this-$this->createQueryInfo($user);
+        $this - $this->createQueryInfo($user);
 
-        return $this->api(compact('rank','grade','college_count'));
+        return $this->api(compact('rank', 'grade', 'province', 'college_count', 'batch'));
     }
 
 
+    /**
+     * @api {post} /api/home/getpaidmajors   查询付费信息
+     * @apiDescription 查询付费信息
+     * @apiGroup 高考助手
+     * @apiPermission none
+     * @apiVersion 0.1.0
+     * @apiParam {int}    [userid]   用户ID(必填)
+     * @apiParam {string}    [username]   考生姓名(必填)
+     * @apiParam {string}    [batch]   批次(必填)
+     * @apiParam {string}    [province]   省份(必填)
+     * @apiParam {string}    [class]   科类(必填)
+     * @apiSuccessExample {json} Success-Response:
+     * HTTP/1.1 200 OK 已付费查看过,显示匹配信息
+     * {
+     *     "status": true,
+     *     "status_code": 0,
+     *     "message": "",
+     *     "data": {
+     *         "count": ""
+     *         "major":[
+     *      ]
+     *
+     *     }
+     * }
+     *
+     *HTTP/1.1 200 OK 未曾付费,跳转到支付页面
+     * {
+     *     "status": true,
+     *     "status_code": 0,
+     *     "message": "",
+     *     "data": {
+     *              "msg": "need to pay",
+     *              "price": ""
+     *      }
+     * }
+     * @apiErrorExample {json} Error-Response:
+     * HTTP/1.1 400 Bad Request
+     * {
+     *     "state": false,
+     *     "code": 1000,
+     *     "message": "传入参数不正确",
+     *     "data": null or []
+     * }
+     * 可能出现的错误代码:
+     *    1000    CLIENT_WRONG_PARAMS             传入参数不正确
+     */
+    public function getPaidMajors(Request $request)
+    {
+
+        $validator = Validator::make($request->all(),
+            [
+                'userid' => 'required',
+                'batch' => 'required',
+                'province' => 'required',
+                'class' => 'required'
+            ],
+            [
+                'userid.required' => 'userid不能为空!',
+                'batch.required' => 'batch不能为空!',
+                'province.required' => 'province不能为空!',
+                'class.required' => 'class不能为空!',
+
+            ]
+        );
+
 
+        if ($validator->fails()) {
+            return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
+        }
 
-    public function getPaidMajors(){
+        if ($this->checkPaid()) {
+            $year = date('Y');
+            $batch = $request->get('batch');
+            $province = $request->get('province');
 
+            $userid = request('userid');
+            $_user = UserInfoModel::find($userid);
+            $grade = $_user->grade;
+            $class = $_user->class;
+
+
+            if ($province == "全部省份") {
+                $major = MajorInfoModel::where('year', $year)->where('batch', $batch)->where('class', $class)->where('min_grade', "<=", $grade)->get();
+            } else {
+                $major = MajorInfoModel::where('year', $year)->where('batch', $batch)->where('class', $class)->where('province', 'like', '%' . $province . '%')->where('min_grade', "<=", $grade)->get();
+            }
+
+            $count = count($major);
+
+            return $this->api(compact('count', 'major'));
+        } else {
+            $price = PaidSettingModel::first();
+
+            $msg = 'need to pay';
+            $price = $price->price;
+
+            return $this->api(compact('msg', 'price'));
+        }
     }
 
-    public function updateUserinfo(){
+    public function checkPaid()
+    {
+        $userid = request('userid');
+        $_user = UserInfoModel::find($userid);
+
+        $hasPaid = QueryInfoModel::where('user_id', $_user->id)->where('grade', $_user->grade)->where('is_paid', 1)->count();
+
+        return $hasPaid;
+    }
+
+    public function updateUserinfo()
+    {
         $userid = request('userid');
 
         $data['username'] = request('username');
@@ -319,11 +433,12 @@ class HomeController extends Controller{
         $data['grade'] = request('grade');
         $data['code'] = request('code');
 
-        $res = UserInfoModel::where('id',$userid)->update($data);
+        $res = UserInfoModel::where('id', $userid)->update($data);
 
     }
 
-    public function createQueryInfo($userinfo){
+    public function createQueryInfo($userinfo)
+    {
         $data['is_paid'] = 0;
         $data['cnumber'] = $userinfo->cnumber;
         $data['grade'] = $userinfo->grade;
@@ -332,6 +447,4 @@ class HomeController extends Controller{
     }
 
 
-
-
 }

+ 75 - 0
public/apidoc/api_data.js

xqd
@@ -262,6 +262,81 @@ define({ "api": [
     "groupTitle": "____",
     "name": "PostApiHomeAgreeintroduction"
   },
+  {
+    "type": "post",
+    "url": "/api/home/getpaidmajors",
+    "title": "查询付费信息",
+    "description": "<p>查询付费信息</p>",
+    "group": "____",
+    "permission": [
+      {
+        "name": "none"
+      }
+    ],
+    "version": "0.1.0",
+    "parameter": {
+      "fields": {
+        "Parameter": [
+          {
+            "group": "Parameter",
+            "type": "int",
+            "optional": true,
+            "field": "userid",
+            "description": "<p>用户ID(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "username",
+            "description": "<p>考生姓名(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "batch",
+            "description": "<p>批次(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "province",
+            "description": "<p>省份(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "class",
+            "description": "<p>科类(必填)</p>"
+          }
+        ]
+      }
+    },
+    "success": {
+      "examples": [
+        {
+          "title": "Success-Response:",
+          "content": "HTTP/1.1 200 OK 已付费查看过\n{\n    \"status\": true,\n    \"status_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"count\": \"\"\n        \"major\":[\n     ]\n\n    }\n}\n\n* HTTP/1.1 200 OK 未曾付费,跳转到支付页面\n{\n    \"status\": true,\n    \"status_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n             \"msg\": \"need to pay\",\n             \"price\": \"\"\n     }\n}",
+          "type": "json"
+        }
+      ]
+    },
+    "error": {
+      "examples": [
+        {
+          "title": "Error-Response:",
+          "content": "HTTP/1.1 400 Bad Request\n{\n    \"state\": false,\n    \"code\": 1000,\n    \"message\": \"传入参数不正确\",\n    \"data\": null or []\n}\n可能出现的错误代码:\n   1000    CLIENT_WRONG_PARAMS             传入参数不正确",
+          "type": "json"
+        }
+      ]
+    },
+    "filename": "app/Http/Controllers/Api/V1/HomeController.php",
+    "groupTitle": "____",
+    "name": "PostApiHomeGetpaidmajors"
+  },
   {
     "type": "post",
     "url": "/api/home/getqueried",

+ 75 - 0
public/apidoc/api_data.json

xqd
@@ -262,6 +262,81 @@
     "groupTitle": "____",
     "name": "PostApiHomeAgreeintroduction"
   },
+  {
+    "type": "post",
+    "url": "/api/home/getpaidmajors",
+    "title": "查询付费信息",
+    "description": "<p>查询付费信息</p>",
+    "group": "____",
+    "permission": [
+      {
+        "name": "none"
+      }
+    ],
+    "version": "0.1.0",
+    "parameter": {
+      "fields": {
+        "Parameter": [
+          {
+            "group": "Parameter",
+            "type": "int",
+            "optional": true,
+            "field": "userid",
+            "description": "<p>用户ID(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "username",
+            "description": "<p>考生姓名(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "batch",
+            "description": "<p>批次(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "province",
+            "description": "<p>省份(必填)</p>"
+          },
+          {
+            "group": "Parameter",
+            "type": "string",
+            "optional": true,
+            "field": "class",
+            "description": "<p>科类(必填)</p>"
+          }
+        ]
+      }
+    },
+    "success": {
+      "examples": [
+        {
+          "title": "Success-Response:",
+          "content": "HTTP/1.1 200 OK 已付费查看过\n{\n    \"status\": true,\n    \"status_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"count\": \"\"\n        \"major\":[\n     ]\n\n    }\n}\n\n* HTTP/1.1 200 OK 未曾付费,跳转到支付页面\n{\n    \"status\": true,\n    \"status_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n             \"msg\": \"need to pay\",\n             \"price\": \"\"\n     }\n}",
+          "type": "json"
+        }
+      ]
+    },
+    "error": {
+      "examples": [
+        {
+          "title": "Error-Response:",
+          "content": "HTTP/1.1 400 Bad Request\n{\n    \"state\": false,\n    \"code\": 1000,\n    \"message\": \"传入参数不正确\",\n    \"data\": null or []\n}\n可能出现的错误代码:\n   1000    CLIENT_WRONG_PARAMS             传入参数不正确",
+          "type": "json"
+        }
+      ]
+    },
+    "filename": "app/Http/Controllers/Api/V1/HomeController.php",
+    "groupTitle": "____",
+    "name": "PostApiHomeGetpaidmajors"
+  },
   {
     "type": "post",
     "url": "/api/home/getqueried",

+ 1 - 1
public/apidoc/api_project.js

xqd
@@ -7,7 +7,7 @@ define({
   "apidoc": "0.3.0",
   "generator": {
     "name": "apidoc",
-    "time": "2018-06-09T02:56:52.250Z",
+    "time": "2018-06-09T07:34:11.297Z",
     "url": "http://apidocjs.com",
     "version": "0.17.6"
   }

+ 1 - 1
public/apidoc/api_project.json

xqd
@@ -7,7 +7,7 @@
   "apidoc": "0.3.0",
   "generator": {
     "name": "apidoc",
-    "time": "2018-06-09T02:56:52.250Z",
+    "time": "2018-06-09T07:34:11.297Z",
     "url": "http://apidocjs.com",
     "version": "0.17.6"
   }

+ 5 - 0
routes/api.php

xqd
@@ -89,4 +89,9 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1'], function ($a
         'uses' => 'HomeController@agreeIntroduction',
     ]);
 
+    $api->post('home/getpaidmajors', [
+        'as' => 'home.getpaidmajors',
+        'uses' => 'HomeController@getPaidMajors',
+    ]);
+
 });