error(__('User center already closed')); } } /** * 获取用户基础数据 */ public function get_user_basic(){ $info = $this->auth->getUserinfo(); $info['hobbies'] = empty($info['hobbies'])?[]: explode(',',$info['hobbies']); //查询下一个级别 $next_level = UserLevel::where('level',$info['level']+1)->find(); if(empty($next_level)){ $next_level_intimacy = $info['intimacy']; }else{ $next_level_intimacy = $next_level['intimacy']; } $info['next_level_intimacy'] = $next_level_intimacy; $info['intimacy_percent'] = round($info['intimacy']/$next_level_intimacy,2)*100; //每日牵绊数据 $UserBondLog = new UserBondLog(); $UserBondConfig = new UserBondConfig(); $info['bond_today_all'] = $UserBondConfig->sum('upper'); $info['bond_today'] = $UserBondLog->where([ 'user_id'=>$this->auth->id, 'createdate'=>date('Y-m-d') ])->sum('intimacy'); $info['bond_today_percent'] = round($info['bond_today']/$info['bond_today_all'],2)*100; if($info['vip_endtime'] < time()){ $info['vip'] = 0; }else{ $info['vip'] = 1; } $info['vip_endtime'] = $info['vip_endtime'] ? date('Y-m-d H:i:s',$info['vip_endtime']) : ''; $info['money'] = (int)$info['money']; $info['wxapp_openid'] = Db::name('third')->where(['user_id'=>$this->auth->id,'platform'=>'wxapp'])->value('openid'); $this->success('获取成功',$info); } /** * 修改用户数据 */ public function set_user_basic(){ $platform = $this->request->post(); if(empty($platform['gender']) || empty($platform['nickname']) || empty($platform['birthday']) || empty($platform['hobbies']) || empty($platform['city'])){ $this->error('请填写完整信息'); } if(count($platform['hobbies'])>3){ $this->error('最多选择3个兴趣标签'); } $res = $this->sanfang_check_text($platform['nickname']); if($res['code'] != 200){ $this->error($res['msg']); } $platform['hobbies'] = implode(',',$platform['hobbies']); $platform['reg_step'] = 2; Db::name('user')->where('id',$this->auth->id)->update($platform); $this->success('修改成功'); } /** * 修改用户数据 */ public function set_user_basic_single(){ $platform = $this->request->post(); $data = []; if(!empty($platform['nickname'])){ $res = $this->sanfang_check_text($platform['nickname']); if($res['code'] != 200){ $this->error($res['msg']); } $data['nickname'] = $platform['nickname']; } if(!empty($platform['hobbies'])){ if(count($platform['hobbies'])>3){ $this->error('最多选择3个兴趣标签'); } $data['hobbies'] = implode(',',$platform['hobbies']); } if(!empty($platform['avatar'])){ $data['avatar'] = $platform['avatar']; } if(empty($data)){ $this->error('请填写信息'); } Db::name('user')->where('id',$this->auth->id)->update($data); $this->success('修改成功'); } /** * 获取兴趣标签 */ public function get_hobbies(){ $hobbies = Db::name('hobbies')->where([ 'user_id'=>0, 'deletetime'=>null ])->order(['weigh'=>'desc'])->select(); $user_hobbies = Db::name('hobbies')->where([ 'deletetime'=>null, 'user_id'=>$this->auth->id ])->order(['createtime'=>'asc'])->select(); //合并数组 $hobbies = array_merge($hobbies,$user_hobbies); $this->success('获取成功',$hobbies); } /** * 自定义兴趣标签 */ public function add_hobbies(){ $hobbies = $this->request->post(); if(empty($hobbies['name'])){ $this->error('请填写标签'); } //验证是否存在 $is_exist = Db::name('hobbies')->where([ 'user_id'=>0, 'deletetime'=>null, 'name'=>$hobbies['name'] ])->order(['weigh'=>'desc'])->select(); $is_exist_user = Db::name('hobbies')->where([ 'deletetime'=>null, 'user_id'=>$this->auth->id, 'name'=>$hobbies['name'] ])->order(['createtime'=>'asc'])->select(); if(!empty($is_exist) || !empty($is_exist_user)){ $this->error('该标签已存在'); } //走微信接口验证是否可用 $res = $this->sanfang_check_text($hobbies['name']); if($res['code'] != 200){ $this->error($res['msg']); } $hobbies['user_id'] = $this->auth->id; $hobbies['createtime'] = time(); $hobbies['updatetime'] = time(); $hobbies['weigh'] = 0; $hobbies['deletetime'] = null; $res = Db::name('hobbies')->insert($hobbies); if($res){ $this->success('添加成功'); }else{ $this->error('添加失败'); } } /** * 会员等级 */ public function get_level_list(){ $user_level = new UserLevel(); $info = $this->auth->getUserinfo(); $list = $user_level->order(['weigh'=>'desc'])->select(); foreach ($list as $k=>$v){ if($v['level'] > $info['level']){ $list[$k]['buttton'] = false; }else{ $list[$k]['buttton'] = true; } } $this->success('获取成功',$list); } /** * 获取每日牵绊 */ public function get_bond(){ $UserBondConfig = new UserBondConfig(); $UserBondLog = new UserBondLog(); $list = $UserBondConfig->order(['weigh'=>'desc'])->select(); foreach($list as $k=>$v){ $list[$k]['intimacy_day'] = $UserBondLog->where([ 'user_id'=>$this->auth->id, 'type'=>$v['type'], 'createdate'=>date('Y-m-d') ])->sum('intimacy'); $list[$k]['intimacy_percent'] = round($list[$k]['intimacy_day']/$v['upper'],2)*100; } $this->success('获取成功',$list); } /** * 增加亲密度,并判断是否达到每日上限,是否升级会员等级 */ public function add_bond(){ $post_data = $this->request->post(); if(empty($post_data['type'])){ $this->error('参数错误'); } if(empty($post_data['num'])){ $this->error('参数错误'); } //查询每日牵绊数据 $UserBondConfig = new UserBondConfig(); $info = $UserBondConfig->where('type',$post_data['type'])->find(); if(empty($info)){ $this->error('参数错误'); } //增加数量 $intimacy = $post_data['num']*$info['single_exp']; $UserBondLog = new UserBondLog(); $user_info = $this->auth->getUserinfo(); $result = $UserBondLog->add_log($post_data['type'],$intimacy,$user_info); $this->success('操作成功',$result); } /** * 余额记录 */ public function money_log(){ $post_data = $this->request->post(); $page = isset($post_data['page']) ? $post_data['page'] : 1; $limit = isset($post_data['limit']) ? $post_data['limit'] : 10; $where = []; if($post_data['type'] == 1){ //充值 $where['money'] = ['>',0]; }else{ //消费 $where['money'] = ['<',0]; } $where['user_id'] = $this->auth->id; $list = Db::name('user_money_log')->where($where)->order('id desc')->page($page,$limit)->select(); foreach($list as $key=>$val){ $list[$key]['createtime'] = date('Y-m-d H:i:s',$val['createtime']); } $this->success('操作成功',$list); } /** * 换装套餐列表 */ public function get_count_package(){ $list = Db::name('count_package')->order(['weigh'=>'desc'])->select(); $this->success('操作成功',$list); } /** * 兑换换装次数 */ public function exchange_count(){ $post_data = $this->request->post(); $package_id = $post_data['count_package_id']; if(empty($package_id)){ $this->error('请选择套餐'); } $package = Db::name('count_package')->where('id',$package_id)->find(); if(!$package){ $this->error('套餐不存在'); } $user = User::get($this->auth->id); if($user['money'] < $package['jinbi']){ $this->error('金币不足'); } Db::startTrans(); try { //扣除金币 User::money($package['jinbi']*-1, $this->auth->id, '兑换换装次数'); //扣除金币 User::clothes_num($package['num'], $this->auth->id, '金币兑换换装次数'); Db::commit(); }catch (\Exception $e){ Db::rollback(); $this->error($e->getMessage()); } $this->success('兑换成功'); } /** * 充值套餐列表 */ public function get_recharge_package(){ $list = Db::name('recharge_package')->order(['weigh'=>'desc'])->select(); $this->success('操作成功',$list); } /** * VIP套餐列表 */ public function get_vip_package(){ $list = Db::name('vip_package')->order(['weigh'=>'desc'])->select(); $this->success('操作成功',$list); } }