123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkAdmin
- // +----------------------------------------------------------------------
- // | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
- // +----------------------------------------------------------------------
- // | 官方网站: http://demo.thinkadmin.top
- // +----------------------------------------------------------------------
- // | 开源协议 ( https://mit-license.org )
- // +----------------------------------------------------------------------
- // | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
- // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
- // +----------------------------------------------------------------------
- namespace app\api\controller;
- use app\api\controller\Base;
- use app\api\model\Member as MemberModel;
- use think\Db;
- use think\db\Query;
- use think\Model;
- use app\api\controller\Login;
- /**
- * @title 会员管理
- * @controller Member
- * @group base
- */
- class Member extends Base
- {
- function initialize()
- {
- $this->check_login();
- }
- /**
- * @title 个人信息
- * @desc 个人信息
- * @author QGF
- * @url /api/Member/member_info
- * @method GET
- * @tag 个人信息
- * @header name:Authorization require:1 desc:Token
- * @return name:phone type:int default:-- desc:手机号
- * @return name:name type:string default:-- desc:姓名
- * @return name:headimg type:string default:-- desc:头像地址
- * @return name:openid_app type:string default:-- desc:微信openid(APP端)
- * @return name:hx_username type:string default:-- desc:环信注册的用户名
- * @return name:hx_password type:string default:-- desc:环信注册的密码
- * @return name:hx_uid type:string default:-- desc:环信注册的ID
- * @return name:is_anchor type:string default:-- desc:是不是主播(0:不是,1:是)
- * @return name:not_start_broadcast type:string default:-- desc:是否有未开播的直播间(0:没有,1:有(只要主播该字段可能为1,有未开播的直播间就不能再创建新的直播间了))
- */
- public function member_info(){
- $uid = $this->uid;
- $field = 'phone,name,headimg,status,openid_app,is_anchor,hx_username,hx_password,hx_uid';
- $user_info = Db::name('store_member')->field($field)->where('id',$uid)->find();
- if(empty($user_info)){
- $this->error('用户信息不正确');
- }
- if($user_info['status'] == 0){
- $this->error('该用户已被禁用');
- }
- //如果是主播查看是否有待开播的直播间
- $user_info['not_start_broadcast'] = 0;
- if($user_info['is_anchor']){
- $broadcast_id = Db::name('store_broadcast_room')->where('user_id',$uid)->where('status',0)->value('id');
- $user_info['not_start_broadcast'] = $broadcast_id?1:0;
- }
- unset($user_info['status']);
- $this->success('获取成功',$user_info);
- }
- /**
- * @title 编辑个人信息
- * @desc 编辑个人信息
- * @author QGF
- * @url /api/Member/edit_member_info
- * @method POST
- * @tag 编辑信息
- * @header name:Authorization require:1 desc:Token
- * @param name:headimg type:string require:0 default:-- desc:头像地址
- * @param name:name type:string require:0 default:-- desc:姓名
- * @param name:phone type:string require:0 default:-- desc:手机号
- */
- public function edit_member_info(){
- $uid = $this->uid;
- $headimg = input('headimg');
- $name = input('name');
- $phone = input('phone');
- if(empty($headimg) && empty($name) && empty($phone)){
- $this->error('参数错误');
- }
- $member_info = Db::name('store_member')->field('phone,name,headimg')->where('id',$uid)->find();
- if($member_info['headimg'] == $headimg && $member_info['name'] == $name && $member_info['phone'] == $phone){
- $this->error('没有要修改的信息');
- }
- $updata = array();
- if($headimg){
- $updata['headimg'] = $headimg;
- }
- if($name){
- $updata['name'] = $name;
- }
- if($phone){
- //查看该手机号是否已注册
- $member_id = Db::name('store_member')->where('phone',$phone)->where('id','<>',$uid)->value('id');
- if($member_id){
- $this->error('改手机号已被注册');
- }
- $updata['phone'] = $phone;
- }
- Db::name('store_member')->where('id',$uid)->update($updata);
- $this->success('编辑成功');
- }
- /**
- * @title 验证手机号
- * @desc 验证手机号
- * @author QGF
- * @url /api/Member/verify_phone
- * @method POST
- * @tag 验证手机号
- * @header name:Authorization require:1 desc:Token
- * @param name:phone type:string require:1 default:-- desc:手机号
- * @param name:code type:string require:1 default:-- desc:验证码
- */
- public function verify_phone(){
- $phone = input('phone');
- $code = input('code');
- if(empty($phone) || empty($code)){
- $this->error('参数错误');
- }
- $login_obj = new Login();
- $sms_id = $login_obj->verify_sms($phone,$code);
- if(empty($sms_id)){
- $this->error('验证码不正确');
- }
- Db::name('store_member_sms')->where('id',$sms_id)->update(array('used'=>1));
- $this->success('验证成功');
- }
- /**
- * @title 修改登录密码
- * @desc 修改登录密码
- * @author QGF
- * @url /api/Member/update_password
- * @method POST
- * @tag 修改登录密码
- * @header name:Authorization require:1 desc:Token
- * @param name:password_old type:string require:0 default:-- desc:原密码
- * @param name:password type:string require:1 default:-- desc:修改的密码
- * @param name:password_again type:string require:1 default:-- desc:修改的密码(重复)
- */
- public function update_password(){
- $uid = $this->uid;
- $password = input('password');
- $password_again = input('password_again');
- $password_old = input('password_old');
- if(empty($password_old) ||empty($password) || empty($password_again)){
- $this ->error('参数错误');
- }
- if($password != $password_again){
- $this ->error('两次密码不一致');
- }
- $member_password = Db::name('store_member')->where('id',$uid)->value('decode_password');
- if($password_old != $member_password){
- $this ->error('原密码不正确');
- }
- if($password == $member_password){
- $this ->error('要修改的密码和原密码一致,无需修改');
- }
- $update_data = array(
- 'password'=>md5($password),
- 'decode_password'=>$password
- );
- Db::name('store_member')->where('id',$uid)->update($update_data);
- $this->success('设置成功');
- }
- /**
- * @title 绑定微信(app)
- * @desc 绑定微信
- * @author QGF
- * @url /api/Member/bind_we_chat
- * @method POST
- * @tag 绑定微信
- * @param name:code type:int require:1 default:-- desc:code值
- */
- public function bind_we_chat(){
- $uid = $this->uid;
- $code = input('code');
- if(empty($code)){
- $this->error('参数错误');
- }
- $res = requestGet('https://api.weixin.qq.com/sns/oauth2/access_token?appid='.config('app_program')['app_id'].'&secret='.config('app_program')['secret'].'&code='.$code.'&grant_type=authorization_code');
- $res = json_decode($res,true);
- $user_info = requestGet('https://api.weixin.qq.com/sns/userinfo?access_token='.$res['access_token'].'&openid='.$res['openid']);
- $user_info = json_decode($user_info,true);
- $data['openid'] = $user_info['openid'];
- $openid_app = Db::name('store_member')->where('id',$uid)->value('openid_app');
- if($openid_app){
- $this->error('你已经绑定微信了');
- }
- $member_id = Db::name('store_member')->where('openid_app',$data['openid'])->value('id');
- if($member_id){
- $this->error('该微信已被其他账号绑定');
- }else{
- Db::name('store_member')->where('openid_app',$data['openid'])->update(array('openid_app'=>$data['openid']));
- $this->success('绑定成功');
- }
- }
- /**
- * @title 我的课程列表
- * @desc 我的课程列表
- * @author QGF
- * @url /api/Member/my_course_list
- * @method GET
- * @tag 我的课程列表
- * @param name:page type:int require:0 default:1 desc:页数(默认为1)
- * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
- * @param name:type type:int require:1 default:1 desc:类型(1:付费课程(默认),2:直播课程)
- * @return name:-- type:array default:-- desc:课程信息(goods_id:课程ID,goods_name:课程名称,goods_cover:封面图片地址)
- */
- public function my_course_list(){
- $uid = $this->uid;
- $type = input('type',1);
- $page = input('page',1);
- $pageSize = input('page_size',10);
- if($type == 1){
- $list = Db::name('store_order')->field('goods_id')->where('type',1)->where('user_id',$uid)->where('status','in',[1,2])->order('id desc')->page($page,$pageSize)->select();
- if($list){
- foreach ($list as &$value){
- $goods_info = Db::name('store_goods')->field('name,cover')->where('id',$value['goods_id'])->find();
- $value['goods_name'] = $goods_info['name'];
- $value['goods_cover'] = $goods_info['cover'];
- }
- }
- }else{
- $list = Db::name('store_order_live')->field('course_id')->where('user_id',$uid)->where('status','in',[1,2])->order('id desc')->page($page,$pageSize)->select();
- if($list){
- foreach ($list as &$value){
- $value['goods_id'] = $value['course_id'];
- $goods_info = Db::name('store_live_course')->field('title,image')->where('id',$value['course_id'])->find();
- $value['goods_name'] = $goods_info['title'];
- $value['goods_cover'] = $goods_info['image'];
- unset($value['course_id']);
- }
- }
- }
- $this->success('获取成功',$list);
- }
- /**
- * @title 获取配置信息
- * @desc 获取配置信息
- * @author QGF
- * @url /api/Member/information
- * @method GET
- * @tag 信息
- * @header name:Authorization require:1 desc:Token
- * @return name:wx_service_code type:string default:-- desc:微信客服二维码地址
- * @return name:service_phone_two type:string default:-- desc:QQ客服二维码地址
- * @return name:we_chat_one type:string default:-- desc:客服手机号
- */
- public function information(){
- $data = array(
- 'wx_service_code' => sysconf('wx_service_code'),
- 'qq_service_code' => sysconf('qq_service_code'),
- 'serve_phone' => sysconf('serve_phone'),
- );
- $this->success('获取成功',$data);
- }
- }
|