出价
This commit is contained in:
@@ -11,9 +11,16 @@ class Sign extends BaseCom
|
|||||||
public function sign_coin_list()
|
public function sign_coin_list()
|
||||||
{
|
{
|
||||||
$sign_id = input('sign_id', 0);//场次id
|
$sign_id = input('sign_id', 0);//场次id
|
||||||
$user_id = db::name('vs_room_sign')->where('id', $sign_id)->value('sign_user_id');
|
$room_sign = db::name('vs_room_sign')->where('id', $sign_id)->field('sign_user_id,room_id')->find();
|
||||||
|
//获取出价最高用户
|
||||||
|
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_sign['room_id'],'sign_time' => $sign_id,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find();
|
||||||
|
if($sign_user){
|
||||||
|
$market_value = $sign_user['sign_value'];
|
||||||
|
}else{
|
||||||
//获取当前用户的身价
|
//获取当前用户的身价
|
||||||
$market_value = db::name('user')->where('id', $user_id)->value('market_value');
|
$market_value = db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value');
|
||||||
|
}
|
||||||
|
|
||||||
$sign_market_value = get_system_config_value('sign_market_value');
|
$sign_market_value = get_system_config_value('sign_market_value');
|
||||||
//组个列表
|
//组个列表
|
||||||
$sign_coin_list = [];
|
$sign_coin_list = [];
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ class GiveGift extends Model
|
|||||||
}
|
}
|
||||||
//收礼人认证歌手等级升级
|
//收礼人认证歌手等级升级
|
||||||
model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
|
model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
|
||||||
|
|
||||||
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
|
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
|
||||||
$coin_market_values = explode(',', get_system_config_value('coin_market_value'));
|
$coin_market_values = explode(',', get_system_config_value('coin_market_value'));
|
||||||
$change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1));
|
$change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1));
|
||||||
|
|||||||
@@ -11,14 +11,10 @@ class MarketValue extends Model
|
|||||||
* 身价变化
|
* 身价变化
|
||||||
* @param int $user_id 用户id
|
* @param int $user_id 用户id
|
||||||
* @param int $change_value 身价变化值
|
* @param int $change_value 身价变化值
|
||||||
* @param int $type 0-升值,1-系统降身价,2-使用降身卡
|
* @param int $type 0-收礼升值,1-系统降身价,2-使用降身卡,3-签约溢价 涨身价
|
||||||
* * @return array
|
* * @return array
|
||||||
*/
|
*/
|
||||||
public function change($user_id,$change_value,$type){
|
public function change($user_id,$change_value,$type){
|
||||||
//判断是否为整数
|
|
||||||
// if(!is_int($change_value)){
|
|
||||||
// return ['code' => 0, 'msg' => '身价变化参数错误=》'.$change_value];
|
|
||||||
// }
|
|
||||||
$before = db::name('user')->where('id',$user_id)->value('market_value');
|
$before = db::name('user')->where('id',$user_id)->value('market_value');
|
||||||
if($type == 0){
|
if($type == 0){
|
||||||
$result = db::name('user')->where('id',$user_id)->setInc('market_value',$change_value);
|
$result = db::name('user')->where('id',$user_id)->setInc('market_value',$change_value);
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ class Sign extends Model
|
|||||||
if($user_coin < $sign_value){
|
if($user_coin < $sign_value){
|
||||||
return ['code' => 0, 'msg' => '金币不足','data' => null];
|
return ['code' => 0, 'msg' => '金币不足','data' => null];
|
||||||
}
|
}
|
||||||
|
|
||||||
//开启事务
|
//开启事务
|
||||||
db::startTrans();
|
db::startTrans();
|
||||||
//扣除用户金币并记录日志
|
//扣除用户金币并记录日志
|
||||||
@@ -82,12 +83,6 @@ class Sign extends Model
|
|||||||
Db::rollback();
|
Db::rollback();
|
||||||
return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null];
|
return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null];
|
||||||
}
|
}
|
||||||
//用户财富等级更新
|
|
||||||
$user_level = model('Level')->user_level_data_update($user_id,$sign_value,1,$room_id);
|
|
||||||
if(!$user_level){
|
|
||||||
Db::rollback();
|
|
||||||
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
|
|
||||||
}
|
|
||||||
|
|
||||||
//记录签约出价
|
//记录签约出价
|
||||||
$data = [
|
$data = [
|
||||||
@@ -103,13 +98,6 @@ class Sign extends Model
|
|||||||
db::rollback();
|
db::rollback();
|
||||||
return ['code' => 0, 'msg' => '网络错误,请重试!','data' => null];
|
return ['code' => 0, 'msg' => '网络错误,请重试!','data' => null];
|
||||||
}
|
}
|
||||||
//记录房间流水及明细
|
|
||||||
//收礼记录行为日志
|
|
||||||
$give_gift = model('api/GiveGift') -> change_user_give_gift_log($user_id,0,$sign_value,0,0,2,1,$room_id,0);
|
|
||||||
if(!$give_gift){
|
|
||||||
Db::rollback();
|
|
||||||
return ['code' => 0, 'msg' => '出价失败', 'data' => null];
|
|
||||||
}
|
|
||||||
|
|
||||||
//增加房间火热值hot_value
|
//增加房间火热值hot_value
|
||||||
$gift_totalaa = $sign_value * get_system_config_value('coin_charm_exp');
|
$gift_totalaa = $sign_value * get_system_config_value('coin_charm_exp');
|
||||||
@@ -117,12 +105,7 @@ class Sign extends Model
|
|||||||
|
|
||||||
//获取出价最高用户
|
//获取出价最高用户
|
||||||
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find();
|
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find();
|
||||||
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
|
|
||||||
$dd = model('api/MarketValue')->change($sign_user_id,$sign_user['sign_value'],0);
|
|
||||||
if($dd['code'] != 1){
|
|
||||||
Db::rollback();
|
|
||||||
return ['code' => 0, 'msg' => $dd['msg'], 'data' => null];
|
|
||||||
}
|
|
||||||
//其他的出价退回到用户的钱包
|
//其他的出价退回到用户的钱包
|
||||||
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
|
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
|
||||||
if($refund){
|
if($refund){
|
||||||
@@ -155,10 +138,19 @@ class Sign extends Model
|
|||||||
if($isSinnger){
|
if($isSinnger){
|
||||||
$FromUserInfo['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标
|
$FromUserInfo['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//组个列表
|
||||||
|
$sign_market_value = get_system_config_value('sign_market_value');
|
||||||
|
$sign_coin_list = [];
|
||||||
|
$first_value = $sign_user['sign_value'] + $sign_market_value; // 第一个值是身价加上sign_market_value
|
||||||
|
for ($i = 0; $i < 8; $i++) {
|
||||||
|
$sign_coin_list[] = (string)($first_value + $i); // 每个值在第一个值的基础上加i(0到7)
|
||||||
|
}
|
||||||
$text['text'] = '签约出价最高用户';
|
$text['text'] = '签约出价最高用户';
|
||||||
$text['FromUserInfo'] = $FromUserInfo;
|
$text['FromUserInfo'] = $FromUserInfo;
|
||||||
$text['sign_value'] = $sign_user['sign_value'];
|
$text['sign_value'] = $sign_user['sign_value'];
|
||||||
$text['sign_id'] = $sign_time;
|
$text['sign_id'] = $sign_time;
|
||||||
|
$text['sign_coin_list'] = $sign_coin_list;
|
||||||
model('api/Chat')->sendMsg(1091,$room_id,$text);
|
model('api/Chat')->sendMsg(1091,$room_id,$text);
|
||||||
return ['code' => 1, 'msg' => '成功','data' => null];
|
return ['code' => 1, 'msg' => '成功','data' => null];
|
||||||
}
|
}
|
||||||
@@ -364,6 +356,22 @@ class Sign extends Model
|
|||||||
db::rollback();
|
db::rollback();
|
||||||
return ['code' => 0, 'msg' => '网络错误,请重试.!', 'data' => null];
|
return ['code' => 0, 'msg' => '网络错误,请重试.!', 'data' => null];
|
||||||
}
|
}
|
||||||
|
//用户财富等级更新
|
||||||
|
$user_level = model('Level')->user_level_data_update($max_sign_user['user_id'],$max_sign_user['sign_value'],1,$room_id);
|
||||||
|
if(!$user_level){
|
||||||
|
Db::rollback();
|
||||||
|
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取用户的身价
|
||||||
|
$market_value = db::name('user')->where('id',$sign_user_id)->value('market_value');
|
||||||
|
$sign_values = $max_sign_user['sign_value'] - $market_value;
|
||||||
|
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
|
||||||
|
$dd = model('api/MarketValue')->change($sign_user_id,$sign_values,3);
|
||||||
|
if($dd['code'] != 1){
|
||||||
|
Db::rollback();
|
||||||
|
return ['code' => 0, 'msg' => $dd['msg'], 'data' => null];
|
||||||
|
}
|
||||||
db::commit();
|
db::commit();
|
||||||
//给前端推送
|
//给前端推送
|
||||||
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();
|
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();
|
||||||
|
|||||||
Reference in New Issue
Block a user