歌手等级接口提交
This commit is contained in:
@@ -139,6 +139,8 @@ class SingerSong extends adminApi
|
|||||||
'image' => input('image', ''),
|
'image' => input('image', ''),
|
||||||
'change_value' => input('change_value', ''),
|
'change_value' => input('change_value', ''),
|
||||||
'rights_icon' => input('rights_icon', ''),
|
'rights_icon' => input('rights_icon', ''),
|
||||||
|
'bg_image' => input('bg_image', ''),
|
||||||
|
'color' => input('color', ''),
|
||||||
'createtime' => time(),
|
'createtime' => time(),
|
||||||
];
|
];
|
||||||
$res = db::name('vs_singer_level')->insert($data);
|
$res = db::name('vs_singer_level')->insert($data);
|
||||||
@@ -154,6 +156,8 @@ class SingerSong extends adminApi
|
|||||||
'image' => input('image', ''),
|
'image' => input('image', ''),
|
||||||
'change_value' => input('change_value', ''),
|
'change_value' => input('change_value', ''),
|
||||||
'rights_icon' => input('rights_icon', ''),
|
'rights_icon' => input('rights_icon', ''),
|
||||||
|
'bg_image' => input('bg_image', ''),
|
||||||
|
'color' => input('color', ''),
|
||||||
];
|
];
|
||||||
$res = db::name('vs_singer_level')->where('id', $id)->update($data);
|
$res = db::name('vs_singer_level')->where('id', $id)->update($data);
|
||||||
if($res){
|
if($res){
|
||||||
|
|||||||
@@ -36,4 +36,27 @@ class Level extends BaseCom
|
|||||||
return V($reslut['code'],$reslut['msg'], $reslut['data']);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -459,4 +459,92 @@ class Level extends Model
|
|||||||
}
|
}
|
||||||
return $return;
|
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];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user