<?php namespace app\api\controller; use app\common\controller\Api; use app\common\library\Ems; use app\common\library\Sms; use fast\Random; use think\Db; use think\Validate; use fast\Http; /** * 个人中心 */ class User extends Api { protected $noNeedLogin = ['login','index','type','mine','car']; protected $noNeedRight = '*'; protected $uid = ''; public function _initialize() { parent::_initialize(); $this->uid = $this->auth->getUserId(); } /** * @ApiTitle (小程序登录) * @ApiSummary (小程序登录) * @ApiMethod (POST) * @ApiRoute (/api/user/login) * @ApiParams (name="code", type="string", required=true, description="小程序code") * @ApiParams (name="nickname", type="string", required=true, description="小程序昵称") * @ApiParams (name="avatar", type="string", required=true, description="小程序头像") * @ApiReturn({ "code": 1, "msg": "登录成功", "time": "1553839125", "data": { "token": "677afb39-1a4f-4492-84d3-0bcf32016b8a",//token "user_id": 27,//用户id "createtime": 1553839125,//登录时间 "expiretime": 1556431125,//token失效时间 "expires_in": 2592000//token失效剩余时间(单位s) "openid": 1485212522522//openid }) */ public function login(){ if($this->request->isPost()){ //小程序配置 $config = config('verify.raw'); //小程序传递数据,包含昵称,头像,code $raw_data = $this->request->post(); //验证表数据 $rule = config('verify.user'); $validate = new Validate($rule['rule'],$rule['msg']); if (!$validate->check($raw_data)) { $this->error($validate->getError()); } $params = [ 'appid' => $config['app_id'], 'secret' => $config['secret'], 'js_code' => $raw_data['code'], 'grant_type' => 'authorization_code' ]; $result = Http::sendRequest("https://api.weixin.qq.com/sns/jscode2session", $params, 'GET'); if ($result['ret']) { $json = (array)json_decode($result['msg'], true); if (isset($json['openid'])) { $result = [ 'openid' => $json['openid'], 'nickname' => $raw_data['nickname'], 'avatar' => $raw_data['avatar'] ]; $ret = $this->auth->login($result); if ($ret) { $data = $this->auth->getUserinfo(); $this->success('登录成功', $data); }else { $this->error($this->auth->getError()); } } else { $this->error("登录失败",$json); } } }else{ $this->error('请求方式错误'); } } /** * @ApiTitle (首页视频、图片、精美大片入口) * @ApiSummary (首页视频、图片、精美大片入口) * @ApiMethod (POST) * @ApiRoute (/api/user/index) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "time": "1571492001", "data": { "video_thumbnail": http://mapwww.baidu.com 视频封面图地址 "pic_thumbnail": http://mapwww.baidu.com 图片地址 "wonderful_thumbnail": http://mapwww.baidu.com 精美大片地址 } }) */ public function index() { $rule = config('verify.path'); $data = Db::name('video') ->field('id,thumbnail') ->order('id desc') ->limit('1') ->find(); $pic = Db::name('pic') ->field('id,thumbnail') ->order('id desc') ->limit('1') ->find(); $wonderful = Db::name('wonderful') ->field('id,thumbnail') ->where('is_top',1) ->order('createtime desc,id desc') ->limit('1') ->select(); // $res['wonderful_thumbnail'] = []; // foreach ($wonderful as &$v){ // $v['thumbnail'] = $rule.$v['thumbnail']; // array_push($res['wonderful_thumbnail'],$v['thumbnail']); // } $this->auth; $res['video_thumbnail'] = $rule.$data['thumbnail']; $res['pic_thumbnail'] = $rule.$pic['thumbnail']; $res['wonderful_thumbnail'] = $rule.$wonderful['thumbnail']; $this->success('SUCCESS',$res); } /** * @ApiTitle (地区分类) * @ApiSummary (地区分类) * @ApiMethod (POST) * @ApiRoute (/api/user/type) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//分类id "area_name": //分类名称 "thumbnail": //图片 } }) */ public function type() { $rule = config('verify.path'); $data = Db::name('type') ->field('id,area_name,thumbnail') ->order('id desc') ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; } $this->success('SUCCESS',$data); } /** * @ApiTitle (搜索页) * @ApiSummary (搜索页) * @ApiMethod (POST) * @ApiRoute (/api/user/search) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="type_id", type="inter", required=false, description="视频/图片 (视频为1 图片为2 精美大片为3)") * @ApiParams (name="keyword", type="string", required=true, description="关键字") * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//视频id/图片id, "thumbnail": //视频封面图地址/图片地址, "video": //视频路径/精美大片视频路径, } }) */ public function search() { $user_id = $this->uid; $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $rule = config('verify.path'); $type_id = $this->request->post('type_id'); if(empty($type_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $keyword = $this->request->post('keyword'); if(!empty($keyword)){ $param['user_id'] = $user_id; $param['title'] = $keyword; Db::name('history') ->insert($param); } if(!empty($keyword)){ if($type_id == 1){ $data = Db::name('video') ->where('keyword','like',"%$keyword%") ->whereOr('title','like',"%$keyword%") ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); }elseif($type_id == 2){ $data = Db::name('pic') ->where('keyword','like',"%$keyword%") ->whereOr('title','like',"%$keyword%") ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; } $this->success('SUCCESS',$data); }else{ $data = Db::name('wonderful') ->where('title','like',"%$keyword%") ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); } }else{ $this->error(['code'=>2,'msg'=>'请输入关键字']); } } /** * @ApiTitle (图片列表) * @ApiSummary (图片列表) * @ApiMethod (POST) * @ApiRoute (/api/user/pic) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="type_id", type="inter", required=false, description="地区ID") * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//图片id, "thumbnail": //缩略图, } }) */ public function pic() { $rule = config('verify.path'); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $type_id = $this->request->post('type_id'); if(empty($type_id)){ $data = Db::name('pic') ->field('id,thumbnail,title') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; } $this->success('SUCCESS',$data); }else{ $type = ','.$type_id.','; $where['type_ids'] = ['like',"%$type%"]; $data = Db::name('pic') ->where($where) ->field('id,thumbnail,title') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; } $this->success('SUCCESS',$data); } } /** * @ApiTitle (分类下的图片视频) * @ApiSummary (分类下的图片视频) * @ApiMethod (POST) * @ApiRoute (/api/user/pic_video) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="type_id", type="inter", required=true, description="地区ID") * @ApiParams (name="type", type="inter", required=false, description="类型ID(图片为1 视频为2)") * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//图片id, "thumbnail": //缩略图, } }) */ public function pic_video() { $rule = config('verify.path'); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $type_id = $this->request->post('type_id'); $type = $this->request->post('type'); if($type == 1){ $type = ','.$type_id.','; $where['type_ids'] = ['like',"%$type%"]; $data = Db::name('pic') ->where($where) ->field('id,thumbnail,title') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; } $this->success('SUCCESS',$data); }else{ $type = ','.$type_id.','; $where['type_ids'] = ['like',"%$type%"]; $data = Db::name('video') ->where($where) ->field('id,thumbnail,video,title') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); } } /** * @ApiTitle (视频列表) * @ApiSummary (视频列表) * @ApiMethod (POST) * @ApiRoute (/api/user/video) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiParams (name="type_id", type="inter", required=false, description="地区ID") * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": //图片id, "thumbnail": //视频封面, "video"://视频地址 } }) */ public function video() { $rule = config('verify.path'); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $type_id = $this->request->post('type_id'); if(empty($type_id)){ $data = Db::name('video') ->field('id,thumbnail,video') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); }else{ $type = ','.$type_id.','; $where['type_ids'] = ['like',"%$type%"]; $data = Db::name('video') ->where($where) ->field('id,thumbnail,video') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); } } /** * @ApiTitle (精美大片列表) * @ApiSummary (精美大片列表) * @ApiMethod (POST) * @ApiRoute (/api/user/won) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": //图片id, "thumbnail": //视频封面, "video"://视频地址 } }) */ public function won() { $rule = config('verify.path'); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $data = Db::name('wonderful') ->field('id,thumbnail,video') ->order('id desc') ->page($page,$pageNum) ->select(); foreach ($data as &$v){ $v['thumbnail'] = $rule.$v['thumbnail']; $v['video'] = $rule.$v['video']; } $this->success('SUCCESS',$data); } /** * @ApiTitle (图片详情) * @ApiSummary (图片详情) * @ApiMethod (POST) * @ApiRoute (/api/user/picdetail) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="pic_id", type="inter", required=true, description="图片ID") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//图片id, "title"://标题 "thumbnail": //缩略图, "water_url": //小样带水印的图片地址, "price"://正常价格, "vip_price"://vip价格, "content"://图片介绍, "is_vip"://是否为会员(0否 1是) } }) */ public function picdetail() { $uid = $this->uid; $rule = config('verify.path'); $res = Db::name('user') ->where('id',$uid) ->field('id,is_vip') ->find(); if($res['is_vip'] == 0){ $pic_id = $this->request->post('pic_id'); if(empty($pic_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('pic') ->field('id,title,thumbnail,price,water_url,url,code,content,click_num') ->where('id',$pic_id) ->find(); if(empty($data)){ $this->error(['code'=>2,'msg'=>'参数错误']); } $click_num = $data['click_num'] + 1; Db::name('pic')->where('id',$pic_id)->update(['click_num'=>$click_num]); $data['water_url'] = $rule.$data['water_url']; $data['vip_price'] = $data['price'] * 0.75; $data['thumbnail'] = $rule.$data['thumbnail']; $data['content'] = strip_tags($data['content']); $data['is_vip'] = 0; $this->success('SUCCESS',$data); }elseif($res['is_vip'] == 1){ $pic_id = $this->request->post('pic_id'); if(empty($pic_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('pic') ->field('id,title,thumbnail,price,water_url,url,code,content,click_num') ->where('id',$pic_id) ->find(); if(empty($data)){ $this->error(['code'=>2,'msg'=>'参数错误']); } $click_num = $data['click_num'] + 1; Db::name('pic')->where('id',$pic_id)->update(['click_num'=>$click_num]); $data['is_vip'] = 1; $data['water_url'] = $rule.$data['water_url']; $data['vip_price'] = $data['price'] * 0.75; $data['thumbnail'] = $rule.$data['thumbnail']; $data['content'] = strip_tags($data['content']); $this->success('SUCCESS',$data); } } /** * @ApiTitle (视频详情) * @ApiSummary (视频详情) * @ApiMethod (POST) * @ApiRoute (/api/user/videodetail) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="video_id", type="inter", required=true, description="视频ID") * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//视频id, "title"://标题 "thumbnail": //视频封面图, "video": //2K视频地址, "water_url"://小样视频网址 "price"://2K价格, "vip_price"://2Kvip价格, "four_price"://4K价格, "four_vipprice"://4Kvip价格, "eight_price"://8K价格, "eight_vipprice"://8Kvip价格, "content"://图片介绍, "is_vip"://是否为会员(0否 1是) } }) */ public function videodetail() { $uid = $this->uid; $rule = config('verify.path'); $res = Db::name('user') ->where('id',$uid) ->field('id,is_vip') ->find(); if($res['is_vip'] == 0){ $pic_id = $this->request->post('video_id'); if(empty($pic_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('video') ->field('id,click_num,title,thumbnail,video,price,four_price,eight_price,water_url,two_url,four_url,two_code,four_code,eight_code,eight_url,content') ->where('id',$pic_id) ->find(); if(empty($data)){ $this->error(['code'=>2,'msg'=>'参数错误']); } $click_num = $data['click_num']+1; Db::name('video')->where('id',$pic_id)->update(['click_num'=>$click_num]); $data['vip_price'] = $data['price']*0.75; $data['four_vipprice'] = $data['four_price']*0.75; $data['eight_vipprice'] = $data['eight_price']*0.75; $data['thumbnail'] = $rule.$data['thumbnail']; $data['video'] = $rule.$data['video']; $data['content'] = strip_tags($data['content']); $data['is_vip'] = 0; $this->success('SUCCESS',$data); }elseif($res['is_vip'] == 1){ $pic_id = $this->request->post('video_id'); if(empty($pic_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('video') ->field('id,click_num,title,thumbnail,video,price,four_price,eight_price,water_url,two_url,two_code,four_code,eight_code,four_url,eight_url,content') ->where('id',$pic_id) ->find(); if(empty($data)){ $this->error(['code'=>2,'msg'=>'参数错误']); } $click_num = $data['click_num']+1; Db::name('video')->where('id',$pic_id)->update(['click_num'=>$click_num]); $data['is_vip'] = 1; $data['vip_price'] = $data['price']*0.75; $data['four_vipprice'] = $data['four_price']*0.75; $data['eight_vipprice'] = $data['eight_price']*0.75; $data['thumbnail'] = $rule.$data['thumbnail']; $data['video'] = $rule.$data['video']; $data['content'] = strip_tags($data['content']); $this->success('SUCCESS',$data); } } /** * @ApiTitle (历史记录) * @ApiSummary (历史记录) * @ApiMethod (POST) * @ApiRoute (/api/user/history) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": 4,//记录id, "title"://搜索的内容 } }) */ public function history() { $user_id = $this->uid; $data = Db::name('history') ->where('user_id',$user_id) ->order('id desc') ->column('title'); $res = array_unique($data); $res = array_slice($res,0,10); $this->success('SUCCESS',$res); } /** * @ApiTitle (我的) * @ApiSummary (我的) * @ApiMethod (POST) * @ApiRoute (/api/user/mine) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": //用户ID "nickname": //昵称, "avatar": //头像, "money" : //余额 "is_vip": //是否为会员(0否 1是) } }) */ public function mine() { $user_id = $this->uid; $data = Db::name('user') ->where('id',$user_id) ->field('id,nickname,avatar,money,is_vip') ->find(); $this->success('SUCCESS',$data); } /** * @ApiTitle (创建充值订单) * @ApiSummary (创建充值订单) * @ApiMethod (POST) * @ApiRoute (/api/user/toporder) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="money", type="float", required=true, description="充值金额") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "order_id"://订单ID } }) */ public function toporder() { $param['user_id'] = $this->uid; $param['money'] = $this->request->post('money'); if(empty( $param['money'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); }elseif ( $param['money']<=0){ $this->error(['code'=>3,'msg'=>'非法操作']); }else{ $param['createtime'] = time(); $param['num'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); $data = Db::name('toporder') ->insertGetId($param); if(empty($data)){ $this->error(['code'=>2,'msg'=>'sql执行失败']); } $this->success('SUCCESS',['order_id'=>$data]); } } /** * @ApiTitle (创建开通会员订单) * @ApiSummary (创建开通会员订单) * @ApiMethod (POST) * @ApiRoute (/api/user/viporder) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="total", type="float", required=true, description="金额") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "order_id"://订单ID } }) */ public function viporder() { $param['user_id'] = $this->uid; $param['total'] = $this->request->post('total'); if(empty( $param['total'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); }elseif ( $param['total']<=8000){ $this->error(['code'=>3,'msg'=>'开通会员至少需要8000元哦']); }else{ $param['createtime'] = time(); $param['num'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); $data = Db::name('viporder') ->insertGetId($param); if(empty($data)){ $this->error(['code'=>2,'msg'=>'sql执行失败']); } $this->success('SUCCESS',['order_id'=>$data]); } } /** * @ApiTitle (会员介绍) * @ApiSummary (会员介绍) * @ApiMethod (POST) * @ApiRoute (/api/user/vipdesc) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "content": //会员介绍内容 } }) */ public function vipdesc() { $data = Db::name('vip') ->field('content') ->where('id',2) ->find(); $this->success('SUCCESS',$data); } /** * @ApiTitle (会员须知) * @ApiSummary (会员须知) * @ApiMethod (POST) * @ApiRoute (/api/user/vipdetail) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "text": //会员须知内容 } }) */ public function vipdetail() { $data = Db::name('vip') ->field('desc') ->where('id',2) ->find(); $this->success('SUCCESS',$data); } /** * @ApiTitle (购物车列表) * @ApiSummary (购物车列表) * @ApiMethod (POST) * @ApiRoute (/api/user/car) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id"://购物车ID "user_id"://用户ID "pic_id"://图片的ID "video_id"://视频的ID "pic":[ "id"://图片ID "title"://图片标题 "thumbnail"://缩略图 "url"://高清百度云盘地址 "price"://普通价格 "vip_price"://vip价格 ], "video":[ "id"://视频ID "title"://视频标题 "thumbnail"://视频封面图片 "video"://视频地址 "two_url"://2K视频云盘地址 "four_url"://4k视频云盘地址 "eight_url"://8k视频云盘地址 "price"://2k视频原价格 "four_price"://4k视频原价格 "eight_price"://8k视频原价格 "vip_price"://2k会员价格 "four_vipprice"://4k会员价格 "eight_vipprice"://8k会员价格 ] } }) */ public function car() { $user_id = $this->uid; $rule = config('verify.path'); //查询该用户是否为会员 $res = Db::name('user') ->where('id',$user_id) ->field('id,is_vip') ->find(); //判断 if($res['is_vip'] == 0){ //不是会员的情况 $data = Db::name('car') ->where('user_id',$user_id) ->field('id,user_id,pic_id,video_id') ->order('createtime desc,id desc') ->select(); foreach ($data as &$v) { if(!empty($v['pic_id'])){ $v['pic_id'] = Db::name('pic')->field('id,title,thumbnail,url,price')->where('id',$v['pic_id'])->find(); $v['pic_id']['thumbnail'] = $rule.$v['pic_id']['thumbnail']; } if(!empty($v['video_id'])){ $v['video_id'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v['video_id'])->find(); $v['video_id']['thumbnail'] = $rule.$v['video_id']['thumbnail']; $v['video_id']['video'] = $rule.$v['video_id']['video']; } } $this->success('SUCCESS',$data); }else{ //是的情况 $data = Db::name('car') ->where('user_id',$user_id) ->field('id,user_id,pic_id,video_id') ->order('createtime desc,id desc') ->select(); foreach ($data as &$v){ if(!empty($v['pic_id'])){ $v['pic_id'] = Db::name('pic')->field('id,title,thumbnail,url,price')->where('id',$v['pic_id'])->find(); $v['pic_id']['thumbnail'] = $rule.$v['pic_id']['thumbnail']; $v['pic_id']['vipprice'] = $v['pic_id']['price']*0.75; } if(!empty($v['video_id'])){ $v['video_id'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v['video_id'])->find(); $v['video_id']['thumbnail'] = $rule.$v['video_id']['thumbnail']; $v['video_id']['video'] = $rule.$v['video_id']['video']; $v['video_id']['vipprice'] = $v['video_id']['price'] * 0.75; $v['video_id']['four_vipprice'] = $v['video_id']['four_price'] * 0.75; $v['video_id']['eight_vipprice'] = $v['video_id']['eight_price'] * 0.75; } } $this->success('SUCCESS',$data); } } /** * @ApiTitle (加入购物车) * @ApiSummary (加入购物车) * @ApiMethod (POST) * @ApiRoute (/api/user/addcar) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="pic_id", type="inter", required=false, description="图片ID") * @ApiParams (name="video_id", type="inter", required=false, description="视频ID") * * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", }) */ public function addcar() { $user_id = $this->uid; $pic_id = $this->request->param('pic_id'); $video_id = $this->request->param('video_id'); if(empty($pic_id) && empty($video_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } if(empty($pic_id)){ //接受视频ID并判断 $data = Db::name('car') ->field('id') ->where('user_id',$user_id) ->where('video_id',$video_id) ->find(); if(!empty($data)){ $this->error(['code'=>2,'msg'=>'您已经添加过了']); } $param['video_id'] = $video_id; $param['createtime'] = time(); $param['user_id'] = $user_id; $data = Db::name('car') ->insertGetId($param); if($data){ $this->success('SUCCESS'); }else{ $this->error(['code'=>3,'msg'=>'加入购物车失败']); } }elseif (empty($video_id)){ $data = Db::name('car') ->field('id') ->where('user_id',$user_id) ->where('pic_id',$pic_id) ->find(); if(!empty($data)){ $this->error(['code'=>2,'msg'=>'您已经添加过了']); } $param['pic_id'] = $pic_id; $param['createtime'] = time(); $param['user_id'] = $user_id; $data = Db::name('car') ->insertGetId($param); if($data){ $this->success('SUCCESS'); }else{ $this->error(['code'=>3,'msg'=>'加入购物车失败']); } }else{ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } } /** * @ApiTitle (删除购物车商品) * @ApiSummary (删除购物车商品) * @ApiMethod (POST) * @ApiRoute (/api/user/delcar) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="ids[]", type="inter", required=true, description="购物车ID") * * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", }) */ public function delcar() { $user_id = $this->uid; $ids = $this->request->param('ids'); if(empty($ids)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('car') ->where('user_id',$user_id) ->whereIn('id',$ids) ->delete(); if($data){ $this->success('SUCCESS','删除成功'); }else{ $this->error(['code'=>2,'msg'=>'sql运行失败']); } } /** * @ApiTitle (创建图片订单) * @ApiSummary (创建图片订单) * @ApiMethod (POST) * @ApiRoute (/api/user/picorder) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="pic_id", type="inter", required=true, description="图片ID") * @ApiParams (name="total", type="float", required=true, description="价格") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "order_id"://订单ID } }) */ public function picorder() { $param['user_id'] = $this->uid; $param['pic_id'] = $this->request->post('pic_id'); if(empty($param['pic_id'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $param['total'] = $this->request->post('total'); if(empty( $param['total'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); }elseif ( $param['total']<=0){ $this->error(['code'=>3,'msg'=>'非法操作']); }else{ $where['status'] = 2; $where['user_id'] = $param['user_id']; $arr = Db::name('order') ->field('id,pic_id') ->where($where) ->select(); foreach ($arr as &$v){ $v['pic_id'] = explode(',',$v['pic_id']); if(in_array($param['pic_id'],$v['pic_id'])){ $this->error(['code'=>2,'msg'=>'该图片已经购买过了']); } } $param['createtime'] = time(); $param['num'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); $data = Db::name('order') ->insertGetId($param); if(empty($data)){ $this->error(['code'=>2,'msg'=>'sql执行失败']); } $this->success('SUCCESS',['order_id'=>$data]); } } /** * @ApiTitle (创建视频订单) * @ApiSummary (创建视频订单) * @ApiMethod (POST) * @ApiRoute (/api/user/v_order) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="video_id", type="inter", required=true, description="视频ID") * @ApiParams (name="video_attr", type="inter", required=true, description="视频品质属性") * @ApiParams (name="total", type="float", required=true, description="价格") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "order_id"://订单ID } }) */ public function v_order() { $param['user_id'] = $this->uid; //接受视频ID并判断 $video_id = $this->request->post('video_id'); if(empty($video_id)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } //接受视频品质属性并判断 $video_attr = $this->request->post('video_attr'); if(empty($video_attr)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } //接受视频价格并判断 $param['total'] = $this->request->post('total'); if(empty( $param['total'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); }elseif ( $param['total']<=0){ $this->error(['code'=>3,'msg'=>'非法操作']); }else{ $a = []; $a[0]['id'] = $video_id; $a[0]['attr'] = $video_attr; $where['user_id'] = ['eq',$param['user_id']]; $where['status'] = ['eq',2]; $res = Db::name('order') ->field('video_id') ->where($where) ->select(); foreach ($res as &$v){ $v['video_id'] = unserialize($v['video_id']); if(!empty($v['video_id'])){ foreach ($v['video_id'] as $v1){ if($v1['id'] == $video_id && $v1['attr'] == $video_attr){ $this->error(['code'=>2,'msg'=>'该属性的视频已经购买过了','video_id'=>$v1['id'],'attr'=>$v1['attr']]); } } } } $param['video_id'] = serialize($a); $param['createtime'] = time(); $param['num'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); $data = Db::name('order') ->insertGetId($param); if(empty($data)){ $this->error(['code'=>2,'msg'=>'sql执行失败']); } $this->success('SUCCESS',['order_id'=>$data,'video_id'=>$video_id,'attr'=>$video_attr]); } } /** * @ApiTitle (创建组合订单) * @ApiSummary (创建组合订单) * @ApiMethod (POST) * @ApiRoute (/api/user/orders) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="video_id", type="string", required=true, description="视频ID(多个以逗号隔开)") * @ApiParams (name="video_attr", type="string", required=true, description="视频品质属性(多个以逗号隔开)") * @ApiParams (name="pic_id", type="string", required=true, description="图片ID") * @ApiParams (name="total", type="float", required=true, description="总价格") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "order_id"://订单ID } }) */ public function orders() { $param['user_id'] = $this->uid; //接收视频ID加视频属性 $video_ids = $this->request->post('video_id'); $video_attrs = $this->request->post('video_attr'); $video_id = explode(',',$video_ids); $video_attr = explode(',',$video_attrs); $key = ['id','attr']; //接收图片的ID $pic_id = explode(',',$this->request->post('pic_id')); $where['user_id'] = ['eq',$param['user_id']]; $where['status'] = ['eq',2]; if(!empty($video_ids) && !empty($video_attrs)){ $a = $this->array_merge_more($key,$video_id,$video_attr); //查询视频ID $res = Db::name('order') ->field('video_id') ->where($where) ->select(); foreach ($res as &$v){ $v['video_id'] = unserialize($v['video_id']); if(!empty($v['video_id']) && !empty($a)){ foreach ($v['video_id'] as $v1){ foreach ($a as &$v2){ if($v1['id'] == $v2['id'] && $v1['attr'] == $v2['attr']){ $this->error(['code'=>2,'msg'=>'该属性的视频已经购买过了','video_id'=>$v2['id']]); } } } } } $param['video_id'] = serialize($a); }else{ //查询图片ID $arr = Db::name('order') ->field('pic_id') ->where($where) ->select(); foreach ($arr as &$v){ $v['pic_id'] = explode(',',$v['pic_id']); if(!empty($v['pic_id'])){ foreach ($pic_id as $v3){ if(in_array($v3,$v['pic_id'])){ $this->error(['code'=>2,'msg'=>'该图片已经购买过了','pic_id'=>$v3]); } } } } } $param['pic_id'] = $this->request->post('pic_id'); $param['total'] = $this->request->post('total'); if(empty( $param['total'])){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); }elseif ( $param['total']<=0){ $this->error(['code'=>3,'msg'=>'非法操作']); }else{ $param['createtime'] = time(); $param['num'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); $data = Db::name('order') ->insertGetId($param); if(empty($data)){ $this->error(['code'=>2,'msg'=>'sql执行失败']); } $this->success('SUCCESS',['order_id'=>$data]); } } //将多个一维数组转为二维数组 public function array_merge_more($keys, ...$arrs){ // 检查参数是否正确 if(!$keys || !is_array($keys) || !$arrs || !is_array($arrs) || count($keys)!=count($arrs)){ return array(); } // 一维数组中最大长度 $max_len = 0; // 整理数据,把所有一维数组转重新索引 for($i=0,$len=count($arrs); $i<$len; $i++){ $arrs[$i] = array_values($arrs[$i]); if(count($arrs[$i])>$max_len){ $max_len = count($arrs[$i]); } } // 合拼数据 $result = array(); for($i=0; $i<$max_len; $i++){ $tmp = array(); foreach($keys as $k=>$v){ if(isset($arrs[$k][$i])){ $tmp[$v] = $arrs[$k][$i]; } } $result[] = $tmp; } return $result; } /** * @ApiTitle (删除订单) * @ApiSummary (删除订单) * @ApiMethod (POST) * @ApiRoute (/api/user/delorder) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="ids[]", type="inter", required=true, description="订单ID") * * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", }) */ public function delorder() { $user_id = $this->uid; $ids = $this->request->param('ids'); if(empty($ids)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('order') ->where('user_id',$user_id) ->whereIn('id',$ids) ->delete(); if($data){ $this->success('SUCCESS','删除成功'); }else{ $this->error(['code'=>2,'msg'=>'sql运行失败']); } } /** * @ApiTitle (我的订单) * @ApiSummary (我的订单) * @ApiMethod (POST) * @ApiRoute (/api/user/myorder) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="type", type="inter", required=false, description="状态(不传默认为全部 1为待支付 2为已完成)") * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "id": //用户ID "pic_id": //图片, "video_id": //视频, "status" : //状态(1待支付 2已完成) "total"://总价格 } }) */ public function myorder() { $user_id = $this->uid; $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $type = $this->request->param('type'); $res = Db::name('user') ->where('id',$user_id) ->field('id,is_vip') ->find(); //确认为会员 if($res['is_vip'] == 1){ //判断状态 if(empty($type)){ //全部 $res = Db::name('order') ->where('user_id',$user_id) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch($res); $this->success('SUCCESS',$res); }elseif ($type == 1){ //待支付 $res = Db::name('order') ->where('user_id',$user_id) ->where('status',1) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch($res); $this->success('SUCCESS',$res); }else{ //已完成 $res = Db::name('order') ->where('user_id',$user_id) ->where('status',2) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch($res); $this->success('SUCCESS',$res); } }else{ //不是会员的状态 //判断状态 if(empty($type)){ $res = Db::name('order') ->where('user_id',$user_id) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch1($res); $this->success('SUCCESS',$res); }elseif ($type == 1){ $res = Db::name('order') ->where('user_id',$user_id) ->where('status',1) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch1($res); $this->success('SUCCESS',$res); }else{ $res = Db::name('order') ->where('user_id',$user_id) ->where('status',2) ->field('id,pic_id,video_id,status,total') ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); $res = $this->fetch1($res); $this->success('SUCCESS',$res); } } } //会员 public function fetch($res) { $rule = config('verify.path'); foreach ($res as &$v){ if(!empty($v['pic_id'])){ $v['pic_id'] = explode(',',$v['pic_id']); foreach ($v['pic_id'] as &$v1){ $v1 = Db::name('pic')->field('id,title,thumbnail,url,code,price')->where('id',$v1)->find(); $v1['thumbnail'] = $rule.$v1['thumbnail']; $v1['vipprice'] = $v1['price']*0.75; } } if(!empty($v['video_id'])){ $v['video_id'] = unserialize($v['video_id']); foreach ($v['video_id'] as &$v2){ $v2['info'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v2['id'])->find(); $v2['info']['attr'] = $v2['attr']; unset($v2['attr']); $v2['info']['thumbnail'] = $rule.$v2['info']['thumbnail']; $v2['info']['vipprice'] = $v2['info']['price']*0.75; $v2['info']['four_vipprice'] = $v2['info']['four_price'] * 0.75; $v2['info']['eight_vipprice'] = $v2['info']['eight_price'] * 0.75; } } } return $res; } //非会员 public function fetch1($res) { $rule = config('verify.path'); foreach ($res as &$v){ if(!empty($v['pic_id'])){ $v['pic_id'] = explode(',',$v['pic_id']); foreach ($v['pic_id'] as &$v1){ $v1 = Db::name('pic')->field('id,title,thumbnail,url,code,price')->where('id',$v1)->find(); $v1['thumbnail'] = $rule.$v1['thumbnail']; } } if(!empty($v['video_id'])){ $v['video_id'] = unserialize($v['video_id']); foreach ($v['video_id'] as &$v2){ $v2['info'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v2['id'])->find(); $v2['info']['attr'] = $v2['attr']; unset($v2['attr']); $v2['info']['thumbnail'] = $rule.$v2['info']['thumbnail']; } } } return $res; } /** * @ApiTitle (消费记录) * @ApiSummary (消费记录) * @ApiMethod (POST) * @ApiRoute (/api/user/payhistory) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data": { "times"://时间分段, "info":[ "id": 4,//id, "user_id"://用户ID "pic_id"://图片ID "video_id"://视频ID ], "total"://总价 } }) */ public function payhistory() { $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $rule = config('verify.path'); $user_id = $this->uid; $res = Db::name('user') ->where('id',$user_id) ->field('id,is_vip') ->find(); $data = Db::name('order') ->field('id,user_id,pic_id,video_id,total,createtime') ->where('user_id',$user_id) ->where('status',2) ->order('createtime desc,id desc') ->page($page,$pageNum) ->select(); //判断该用户是否为会员 if($res['is_vip'] == 1){ //是的情况 foreach ($data as &$v){ $v['createtime'] = date('Y-m-d',$v['createtime']); if(!empty($v['pic_id'])){ $v['pic_id'] = explode(',',$v['pic_id']); foreach ($v['pic_id'] as &$v1){ $v1 = Db::name('pic')->field('id,title,thumbnail,url,code,price')->where('id',$v1)->find(); $v1['thumbnail'] = $rule.$v1['thumbnail']; $v1['vipprice'] = $v1['price']*0.75; } } if(!empty($v['video_id'])){ $v['video_id'] = unserialize($v['video_id']); foreach ($v['video_id'] as &$v2){ $v2['info'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v2['id'])->find(); $v2['info']['attr'] = $v2['attr']; unset($v2['attr']); $v2['info']['thumbnail'] = $rule.$v2['info']['thumbnail']; $v2['info']['vipprice'] = $v2['info']['price']*0.75; $v2['info']['four_vipprice'] = $v2['info']['four_price'] * 0.75; $v2['info']['eight_vipprice'] = $v2['info']['eight_price'] * 0.75; } } } }else{ //否的情况 foreach ($data as &$v){ $v['createtime'] = date('Y-m-d',$v['createtime']); if(!empty($v['pic_id'])){ $v['pic_id'] = explode(',',$v['pic_id']); foreach ($v['pic_id'] as &$v1){ $v1 = Db::name('pic')->field('id,title,thumbnail,url,code,price')->where('id',$v1)->find(); $v1['thumbnail'] = $rule.$v1['thumbnail']; } } if(!empty($v['video_id'])){ $v['video_id'] = unserialize($v['video_id']); foreach ($v['video_id'] as &$v2){ $v2['info'] = Db::name('video')->field('keyword,type_ids,content,is_recommend,buy_num,click_num,createtime,updatetime',true)->where('id',$v2['id'])->find(); $v2['info']['attr'] = $v2['attr']; unset($v2['attr']); $v2['info']['thumbnail'] = $rule.$v2['info']['thumbnail']; } } } } //将用户购买时间数据分段 $times = array_values(array_unique(array_column($data,'createtime'))); rsort($times); //将数据放到对应的时间分段 $arr = []; foreach ($times as $t_k=> $t_v){ $arr[$t_k]['times'] = $t_v; $k = 0; foreach ($data as $value){ $k+=0; if($t_v == $value['createtime']){ $arr[$t_k]['info'][$k] = $value; $k++; } } } $this->success('SUCCESS',$arr); } /** * @ApiTitle (获取sessionkey) * @ApiSummary (获取sessionkey) * @ApiMethod (POST) * @ApiRoute (/api/user/getSessionKey) * * @ApiParams (name="code", type="string", required=true, description="code") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data":[ "session_key"://session_key ] }) */ public function getSessionKey(){ $rule = config('verify.raw'); $validate = new Validate([ 'code' => 'require', ]); $validate->message([ 'code.require' => '缺少参数code!', ]); $data = $this->request->param(); if (!$validate->check($data)) { $this->error(['code'=>'40003','msg'=>$validate->getError()]); } $code = $data['code']; $appId = $rule['app_id']; $appSecret = $rule['secret']; $response = "https://api.weixin.qq.com/sns/jscode2session?appid=$appId&secret=$appSecret&js_code=$code&grant_type=authorization_code"; $response = $this->http_get($response); $response = json_decode($response, true); if (!empty($response['errcode'])) { $this->error(['code'=>'2','msg'=>'操作失败:'.$response['errcode']]); } $this->success('获取成功',$response); } //curl get请求 public function http_get($url){ $curl = curl_init();//启动一个CURL会话 curl_setopt($curl, CURLOPT_URL,$url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, false);//不开启header curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 $result = curl_exec($curl); //执行操作 curl_close($curl); return $result; } /** * @ApiTitle (获取用户手机号) * @ApiSummary (获取用户手机号) * @ApiMethod (POST) * @ApiRoute (/api/user/getMobile) * * @ApiParams (name="sessionKey", type="string", required=true, description="sessionkey") * @ApiParams (name="encryptedData", type="string", required=true, description="encryptedDate") * @ApiParams (name="iv", type="string", required=true, description="iv") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", "data":[ "phoneNumber"://手机号 ] }) */ public function getMobile() { $appid = 'wx4300d933e5abd5ba'; $sessionKey = $this->request->param('sessionKey'); $encryptedData = $this->request->param('encryptedData'); $iv = $this->request->param('iv'); $errCode = $this->decryptData($appid,$sessionKey,$encryptedData, $iv, $data ); if ($errCode == 0) { $return['tel'] = $data->phoneNumber; $return['tel'] = json_encode($return['tel']); $return['tel'] = json_decode($return['tel'],true); } else { $return['code'] = 301; $return['data'] = $errCode; $return['code'] = json_encode($return['code']); $return['code'] = json_decode($return['code'],true); $return['data'] = json_encode($return['data']); $return['data'] = json_decode($return['data'],true); } $this->success('SUCCESS',$return); } private function decryptData( $appid,$sessionKey,$encryptedData, $iv, &$data ) { if (strlen($sessionKey) != 24) { return -41001; } $aesKey=base64_decode($sessionKey); if (strlen($iv) != 24) { return -41002; } $aesIV=base64_decode($iv); $aesCipher=base64_decode($encryptedData); $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV); $dataObj=json_decode( $result ); if( $dataObj == NULL ) { return -41003; } if( $dataObj->watermark->appid != $appid ) { return -41004; } $data = $dataObj; return 0; } /** * @ApiTitle (绑定用户手机号) * @ApiSummary (绑定用户手机号) * @ApiMethod (POST) * @ApiRoute (/api/user/phone) * * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * * @ApiParams (name="phone", type="string", required=true, description="手机号") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1571492001", }) */ public function phone() { $user_id = $this->uid; $phone = $this->request->post('phone'); if(empty($phone)){ $this->error(['code'=>2,'msg'=>'缺少必要参数']); } $data = Db::name('user') ->where('id',$user_id) ->update(['mobile'=>$phone]); if(!empty($data)){ $this->success('SUCCESS',$data); }else{ $this->error(['code'=>2,'msg'=>'sql运行失败']); } } }