仓库初始化
This commit is contained in:
120
application/api/model/HeadLine.php
Normal file
120
application/api/model/HeadLine.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class HeadLine extends Model
|
||||
{
|
||||
protected $table = 'fa_vs_headline';
|
||||
//当前发(抢)头条需要的数据
|
||||
public function current_headline()
|
||||
{
|
||||
$config = get_system_config();
|
||||
|
||||
$reslut = db::name('vs_headline')->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];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user