diff --git a/application/adminapi/controller/SingerSong.php b/application/adminapi/controller/SingerSong.php index 4251d9b..268c792 100644 --- a/application/adminapi/controller/SingerSong.php +++ b/application/adminapi/controller/SingerSong.php @@ -139,6 +139,8 @@ class SingerSong extends adminApi 'image' => input('image', ''), 'change_value' => input('change_value', ''), 'rights_icon' => input('rights_icon', ''), + 'bg_image' => input('bg_image', ''), + 'color' => input('color', ''), 'createtime' => time(), ]; $res = db::name('vs_singer_level')->insert($data); @@ -154,6 +156,8 @@ class SingerSong extends adminApi 'image' => input('image', ''), 'change_value' => input('change_value', ''), 'rights_icon' => input('rights_icon', ''), + 'bg_image' => input('bg_image', ''), + 'color' => input('color', ''), ]; $res = db::name('vs_singer_level')->where('id', $id)->update($data); if($res){ diff --git a/application/api/controller/Level.php b/application/api/controller/Level.php index 7b56c67..125d4c2 100644 --- a/application/api/controller/Level.php +++ b/application/api/controller/Level.php @@ -36,4 +36,27 @@ class Level extends BaseCom return V($reslut['code'],$reslut['msg'], $reslut['data']); } + //歌手等级 + public function get_singer_level(){ + $uid = $this->uid; + $reslut = model('Level')->get_singer_level($uid); + return V($reslut['code'],$reslut['msg'], $reslut['data']); + } + //是否歌手 + public function is_singer(){ + $uid = $this->uid; + $singer = model('api/SingerSong')->singerAuthStatus($uid); + if($singer['status'] == 1){ + $data = [ + 'status' => 1, + 'level' => $singer['level'], + ]; + }else{ + $data = [ + 'status' => 0, + 'level' => 0, + ]; + } + return V(1,'成功', $data); + } } diff --git a/application/api/model/Level.php b/application/api/model/Level.php index ac422f0..b955b5c 100644 --- a/application/api/model/Level.php +++ b/application/api/model/Level.php @@ -459,4 +459,92 @@ class Level extends Model } return $return; } + + //歌手等级 + public function get_singer_level($uid){ + //用户信息 + $user = model('User')->get_user_info($uid); + //用户头像 + $return['user']['user_avatar'] = $user['avatar']; + //当前用户等级信息 + $singer = db::name('vs_singer')->where(['user_id' => $uid])->find(); + if($singer['status'] !=1){ + return ['code' => 0, 'msg' => "当前用户非歌手", 'data' => null]; + } + $user_level = Db::name('vs_singer_level')->where(['level' => $singer['level']])->find(); + // 获取最后等级 + $level_last = Db::name('vs_singer_level') + ->where('deletetime',0) + ->order('level', 'desc') + ->value('level'); + //用户当前经验 + $return['user']['level'] = $singer['level']; + $return['user']['level_str'] = 'Lv.'.$singer['level']; + $return['user']['exp'] = $singer['exp']; + $return['user']['rights_icon'] = $user_level['rights_icon']; + if($singer['level'] ==$level_last ){ + //距离下个等级需要的经验 + $return['user']['next_level'] = 0; + $return['user']['next_level_str'] = "满级"; + $return['user']['next_exp'] = 0; + $return['user']['next_rights_icon'] = ""; + }else{ + //距离下个等级需要的经验 + $return['user']['next_level'] = $user_level['level']+1; + $return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level']; + $next_exp = $user_level['change_value'] - $singer['exp']; + $return['user']['next_exp'] = $next_exp <= 0 ? 0 : $next_exp; + $return['user']['next_rights_icon'] = $user_level['rights_icon']; + } + + //获取等级 + // 获取用户当前等级 + $currentUserLevel = $singer['level']; + if($currentUserLevel == 0){ + $level = Db::name('vs_singer_level') + ->where('deletetime',0) + ->order('level', 'asc') + ->limit(3) + ->select(); + }elseif($currentUserLevel == $level_last){ + $level = Db::name('vs_singer_level') + ->where('deletetime',0) + ->order('level', 'asc') + ->limit($level_last-2,3) + ->select(); + }else{ + $level = Db::name('vs_singer_level') + ->where('deletetime',0) + ->where('level', 'in', [$currentUserLevel - 1, $currentUserLevel, $currentUserLevel + 1]) + ->order('level', 'asc') + ->select(); + } + $return['level'] = []; + if($level) { + foreach ($level as $key => $value) { + $return['level'][$key]['level'] = $value['level']; + $return['level'][$key]['image'] = $value['image']; + $return['level'][$key]['bg_image'] = $value['bg_image']; + $return['level'][$key]['color'] = $value['color']; + $return['level'][$key]['name'] = $value['name']; + $return['level'][$key]['change_value'] = $value['change_value']; + //当前用户距离当前段位的距离 + $return['level'][$key]['distance'] = $value['change_value'] - $singer['exp']; + $return['level'][$key]['rights_icon'] = $value['rights_icon']; + } + } + $level_list = Db::name('vs_singer_level') + ->where('deletetime',0) + ->order('level', 'asc') + ->select(); + $return['level_list'] = []; + $exp_s = 0; + foreach ($level_list as $key => $value) { + $return['level_list'][$key]['level'] = 'LV.'.$value['level']; + $return['level_list'][$key]['exp_str'] = $exp_s.'-'.$value['change_value']; + $return['level_list'][$key]['image'] = $value['image']; + $exp_s = $value['change_value']; + } + return ['code' => 1, 'msg' => '成功', 'data' => $return]; + } }