歌手等级接口提交

This commit is contained in:
2025-11-18 11:58:31 +08:00
parent 4bf358de6b
commit 5961d3c21c
3 changed files with 115 additions and 0 deletions

View File

@@ -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){

View File

@@ -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);
}
}

View File

@@ -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];
}
}