签约 流拍处理

This commit is contained in:
2026-01-19 14:38:51 +08:00
parent 49e620d9aa
commit d34b947a91
4 changed files with 73 additions and 7 deletions

View File

@@ -11,17 +11,21 @@ class Sign extends BaseCom
public function sign_coin_list()
{
$sign_id = input('sign_id', 0);//场次id
$room_sign = db::name('vs_room_sign')->where('id', $sign_id)->field('sign_user_id,room_id')->find();
$room_sign = db::name('vs_room_sign')->where('id', $sign_id)->field('sign_user_id,room_id,market_value')->find();
if (!$room_sign) {
return v(0, '参数错误');
}
//获取出价最高用户
$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();
$sign_user = db::name('vs_user_sign_auction')
->field('id,user_id,sign_value')
->where(['room_id' => $room_sign['room_id'],'sign_time' => $sign_id,'type' => 0])
->order('sign_value desc')
->find();
if($sign_user){
$market_value = $sign_user['sign_value'];
}else{
//获取当前用户的身价
$market_value = db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value');
$market_value = $room_sign['market_value'];
}
$sign_market_value = get_system_config_value('sign_market_value');

View File

@@ -150,6 +150,39 @@ class GiveGiftBases extends Model
}
/**
* 房间送礼统计总数
*/
public function getRoomStatistics_total($fromId, $startTime, $endTime)
{
if (!$fromId) {
$this->error('房间ID不能为空');
}
$where = ['from_id' => $fromId];
$options = [
'start_time' => $startTime,
'end_time' => $endTime,
];
// 统计房间总数据
$totalStats = $this->giftModel->getGiftStatistics($where, $options);
$result = [
'room_id' => $fromId,
'time_range' => [
'start_time' => $startTime,
'end_time' => $endTime,
'start_date' => date('Y-m-d H:i:s', $startTime),
'end_date' => date('Y-m-d H:i:s', $endTime),
],
'total_stats' => $totalStats,
];
// $this->success('获取成功', $result);
return $result;
}
/**
* 用户送礼统计
*/

View File

@@ -540,7 +540,7 @@ class Room extends Model
$params['end_time'] = $etime;
$params['page'] = $page;
$params['limit'] = $page_limit;
$res = model('GiveGiftBases')->getGiftRecords($params);
$res = model('api/GiveGiftBases')->getGiftRecords($params);
$list = $res['data'];
$list_data = [];
@@ -576,7 +576,9 @@ class Room extends Model
}
//房间总流水2026年以后的
$total_amount = model('api/RoomDailyIncome')->getIncomeByPeriod($room_id, $stime, $etime);
// $total_amount = model('api/RoomDailyIncome')->getIncomeByPeriod($room_id, $stime, $etime);
$total_amount = model('api/GiveGiftBases')->getRoomStatistics_total($room_id, strtotime($stime), strtotime($etime));
var_dump($total_amount);exit;
}
//房主总收益

View File

@@ -117,7 +117,11 @@ class Sign extends Model
db::name('vs_room')->where(['id' => $room_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update();
//获取出价最高用户
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc,id asc')->field('id,user_id,sign_value')->find();
$sign_user = db::name('vs_user_sign_auction')
->field('id,user_id,sign_value')
->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])
->order('sign_value desc,id asc')
->find();
//其他的出价退回到用户的钱包
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
@@ -185,7 +189,10 @@ class Sign extends Model
return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null];
}
//获取签约出价最高的
$max_sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc,id asc')->find();
$max_sign_user = db::name('vs_user_sign_auction')
->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])
->order('sign_value desc,id asc')
->find();
if($max_sign_user && $max_sign_user['sign_value'] > $sign['market_value']){
$before_sign_user = null;
$is_sign = null;
@@ -435,17 +442,37 @@ class Sign extends Model
$text['sign_value'] = $max_sign_user['sign_value'];
model('api/Chat')->sendMsg(1092,$room_id,$text);
}else{
//出价用户退
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
if($refund){
foreach ($refund as $k => $v){
//给用户退回签约金额记录行为日志
$result2[$k] = model('api/UserWallet')->change_user_cion_log($v['user_id'],$v['sign_value'],$room_id,51,'签约失败退款');
if(!$result2[$k]){
db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
}
$result3[$k] = db::name('vs_user_sign_auction')->where('id',$v['id'])->update(['type' => 2,'refundtime' => time()]);
if(!$result3[$k]){
db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
}
}
}
//修改房间信息
db::name('vs_room')->where('id',$room_id)->update([
'sign_type' => 0,
'updatetime' => time()
]);
//修改房间签约信息
db::name('vs_room_sign')->where(['id' => $sign_time])
->update([
'sign_type' => 0,
'end_time' => time()
]);
$text['text'] = '流拍';
$text['FromUserInfo'] = null;
$text['ToUserInfo'] = null;