where('end_time' , '>', time())->where('is_now', 1)->find(); if($reslut){ $data = [ 'countdown' => $config['headline_time'],//倒计时时间 单位分钟 'now_money' => $reslut['money'], 'next_money' => $config['headline_incremental_money'] + $reslut['money'], ]; }else{ $data = [ 'countdown' => $config['headline_time'],//倒计时时间 单位分钟 'now_money' => 0, 'next_money' => $config['headline_money'],//初始金额 ]; } return $data; } //发布头条 public function send_headline($uid, $money, $content,$room_id) { //维禁判断 if(!empty($content)) { $result = model('Tencent')->content_moderation('Text', $content); if($result['code'] != 1) { return ['code' => 0, 'msg' => '内容存在违禁词!', 'data' => null]; } } //检测用户余额 $user_coin = model('UserWallet')->where('user_id' ,$uid)->value('coin'); if($user_coin < $money) { return ['code' => 0, 'msg' => '余额不足!', 'data' => null]; } //开启事务 Db::startTrans(); //发布头条 查询当前头条 $res = db::name('vs_headline')->where('end_time' , '>', time())->where('is_now', 1)->find(); if($res) { //判断当前头条是不是自己刚才抢的那一条 价格判断 if(($res['money'] + get_system_config_value('headline_incremental_money')) != $money) { Db::rollback(); return ['code' => 0, 'msg' => '手慢了,请重新抢!', 'data' => null]; } //修改当前头条 $res1 = db::name('vs_headline')->where('id', $res['id'])->update([ 'is_now' => 2, 'end_time' => time(), ]); if(!$res1) { Db::rollback(); return ['code' => 0, 'msg' => '修改当前头条失败!', 'data' => null]; } } //新增头条 $res3 = $this->save([ 'user_id' => $uid, 'money' => $money, 'content' => $content, 'room_id' => $room_id, 'is_now' => 1, 'createtime' => time(), 'end_time' => time() + get_system_config_value('headline_time') * 60, ]); if(!$res3) { Db::rollback(); return ['code' => 0, 'msg' => '抢头条失败!', 'data' => null]; } //扣除用户余额 $res4 = model('UserWallet')->where('user_id' ,$uid)->setDec('coin', $money); if(!$res4) { Db::rollback(); return ['code' => 0, 'msg' => '扣除用户余额失败!', 'data' => null]; } //记录扣除用户余额 $res5 =db::name('vs_user_money_log')->insert([ 'user_id' => $uid, 'change_type' => 20, 'money_type' => 1, 'change_value' => $money, 'from_id' => $res3, 'remarks' => '发布头条扣除余额', 'createtime' => time(), ]); if(!$res5) { Db::rollback(); return ['code' => 0, 'msg' => '记录扣除用户余额失败!', 'data' => null]; } //给所有直播间发送消息 这个接口是要钱的 需要购买 暂时先藏起来 $ToUserInfo = Db::name('user')->where(['id' => $uid])->field('id as user_id,nickname,avatar,sex')->find(); $text = [ 'type' => 1, 'content' => $content, 'user_id' => $ToUserInfo['user_id'], 'nickname' => $ToUserInfo['nickname'], 'avatar' => $ToUserInfo['avatar'], 'sex' => $ToUserInfo['sex'], 'room_id' => $room_id, 'end_time'=> time() + get_system_config_value('headline_time') * 60 ]; model('Tencent')->send_broadcast_msg(json_encode($text)); Db::commit(); return ['code' => 1, 'msg' => '发布成功!', 'data' => null]; } }