Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -30,12 +30,12 @@ class SingerSong extends adminApi
|
||||
$where['ss.createtime'] = ['between', [strtotime($start_time), strtotime($end_time)]];
|
||||
$wheres['createtime'] = ['between', [strtotime($start_time), strtotime($end_time)]];
|
||||
}
|
||||
if(isset($status)){
|
||||
if($status){
|
||||
$where['ss.status'] = $status;
|
||||
$wheres['status'] = $status;
|
||||
}else{
|
||||
$where['ss.status'] = 0;
|
||||
$wheres['status'] = 0;
|
||||
$where = [];
|
||||
$wheres = [];
|
||||
}
|
||||
|
||||
$count = db::name('vs_singer')->where($wheres)->count();
|
||||
@@ -90,8 +90,8 @@ class SingerSong extends adminApi
|
||||
$count = db::name('vs_singer_song')->where($where)->count();
|
||||
$list = db::name('vs_singer_song')
|
||||
->alias('o')
|
||||
->join('user u', 'o.user_id=u.id')
|
||||
->join('vs_gift g', 'o.gift_id=g.gid')
|
||||
->join('user u', 'o.user_id=u.id', 'left')
|
||||
->join('vs_gift g', 'o.gift_id=g.gid', 'left')
|
||||
->field('o.*,u.nickname,u.user_code,g.gift_name,g.gift_price')
|
||||
->where($where)
|
||||
->page($page, $page_limit)
|
||||
@@ -179,21 +179,21 @@ class SingerSong extends adminApi
|
||||
return V(0, '请填写房间ID');
|
||||
}
|
||||
if($type==1){
|
||||
$where['createtime'] = ['between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d', strtotime('+1 day')))]];
|
||||
$where['o.createtime'] = ['between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d', strtotime('+1 day')))]];
|
||||
}elseif($type==2){
|
||||
$where['createtime'] = ['between', [strtotime(date('Y-m-d', strtotime('-7 day'))), strtotime(date('Y-m-d'))]];
|
||||
$where['o.createtime'] = ['between', [strtotime(date('Y-m-d', strtotime('-7 day'))), strtotime(date('Y-m-d'))]];
|
||||
}elseif($type==3){
|
||||
$where['createtime'] = ['between', [strtotime(date('Y-m-01')), strtotime(date('Y-m-t', strtotime(date('Y-m-01'))))]];
|
||||
$where['o.createtime'] = ['between', [strtotime(date('Y-m-01')), strtotime(date('Y-m-t', strtotime(date('Y-m-01'))))]];
|
||||
}elseif($type==4){
|
||||
$where['createtime'] = ['between', [strtotime(date('Y-m-d', strtotime('-1 day'))), strtotime(date('Y-m-d'))]];
|
||||
$where['o.createtime'] = ['between', [strtotime(date('Y-m-d', strtotime('-1 day'))), strtotime(date('Y-m-d'))]];
|
||||
}
|
||||
$count = db::name('vs_song_log')->where($where)->count();
|
||||
$count = db::name('vs_song_log')->alias('o')->where($where)->count();
|
||||
$list = db::name('vs_song_log')
|
||||
->alias('o')
|
||||
->join('user u', 'o.user_id=u.id')
|
||||
->join('vs_singer_song r', 'o.singer_song_id=r.id')
|
||||
->join('user uu', 'r.user_id=u.id')
|
||||
->join('vs_gift g', 'r.gift_id=g.gid')
|
||||
->join('user u', 'o.user_id=u.id', 'left')
|
||||
->join('vs_singer_song r', 'o.singer_song_id=r.id', 'left')
|
||||
->join('user uu', 'r.user_id=u.id', 'left')
|
||||
->join('vs_gift g', 'r.gift_id=g.gid', 'left')
|
||||
->field('o.*,u.nickname boss_nickname,u.user_code boss_user_code,r.song_name,r.gift_num,uu.nickname singer_nickname,uu.user_code singer_user_code,g.gift_name,g.gift_price')
|
||||
->where($where)
|
||||
->page($page, $page_limit)
|
||||
|
||||
@@ -96,7 +96,8 @@ class SingerSong extends BaseCom
|
||||
if (!$room_id && !$user_id) {
|
||||
return V(0, '请选择房间或歌手');
|
||||
}
|
||||
$reslut = model('SingerSong')->getSong($user_id, $room_id, $page, $page_limit);
|
||||
|
||||
$reslut = model('SingerSong')->getSong($this->uid, $user_id, $room_id, $page, $page_limit);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
@@ -132,6 +133,18 @@ class SingerSong extends BaseCom
|
||||
}
|
||||
|
||||
|
||||
//点歌各类型各个总数
|
||||
public function singerSongCount()
|
||||
{
|
||||
$room_id = input('room_id', 0);
|
||||
if (!$room_id) {
|
||||
return V(0, '请选择房间');
|
||||
}
|
||||
$reslut = model('SingerSong')->singerSongCount($room_id);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//歌曲置顶
|
||||
public function singerSongTop()
|
||||
{
|
||||
|
||||
18
application/api/controller/UserCp.php
Normal file
18
application/api/controller/UserCp.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\common\controller\BaseCom;
|
||||
use think\Db;
|
||||
|
||||
class UserCp extends BaseCom
|
||||
{
|
||||
|
||||
//Cp 空间
|
||||
public function cpZone()
|
||||
{
|
||||
$reslut = model('UserCp')->cpZone($this->uid);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -128,6 +128,12 @@ class Chat extends Model
|
||||
//歌曲发生变化
|
||||
// SongChange = 1070,
|
||||
|
||||
//CP房间推送信息
|
||||
// CP房间表达心动信号
|
||||
// CPRoomExpression = 1080,
|
||||
// CP组建成功
|
||||
// CPRoomBuildSuccess = 1081,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -551,6 +551,8 @@ class GiveGift extends Model
|
||||
//直播间送礼物 每日任务
|
||||
model('DailyTasks')->tasks_complete($uid,3);
|
||||
}
|
||||
//cp检测
|
||||
model('api/UserCp')->checkGift($uid, $give_gift, $to_id, $from_id);
|
||||
}
|
||||
|
||||
//增加房间火热值hot_value
|
||||
@@ -859,6 +861,8 @@ class GiveGift extends Model
|
||||
//直播间送礼物 每日任务
|
||||
model('DailyTasks')->tasks_complete($uid,3);
|
||||
}
|
||||
//cp检测
|
||||
model('api/UserCp')->checkGift($uid, $give_gift, $to_id, $from_id);
|
||||
}
|
||||
|
||||
//增加房间火热值hot_value
|
||||
|
||||
@@ -69,6 +69,11 @@ class SingerSong extends Model
|
||||
*/
|
||||
public function singerAddSong($user_id, $song_name, $gift_id, $gift_num)
|
||||
{
|
||||
//查询是否是认证歌手
|
||||
$res = db::name('vs_singer')->where(['user_id' => $user_id])->find();
|
||||
if (!$res || $res['status'] != 1) {
|
||||
return ['code' => 0, 'msg' => '请先认证歌手', 'data' => null];
|
||||
}
|
||||
//查询是否提交过歌曲
|
||||
$res = db::name('vs_singer_song')->where(['user_id' => $user_id, 'song_name' => $song_name])->find();
|
||||
if ($res) {
|
||||
@@ -95,7 +100,7 @@ class SingerSong extends Model
|
||||
* @param room_id 房间id
|
||||
* @param user_id 用户id
|
||||
*/
|
||||
public function getSong($user_id, $room_id, $page, $page_limit)
|
||||
public function getSong($uid, $user_id, $room_id, $page, $page_limit)
|
||||
{
|
||||
if($user_id > 0){
|
||||
$count = db::name('vs_singer_song')->where(['user_id' => $user_id])->count();
|
||||
@@ -104,6 +109,8 @@ class SingerSong extends Model
|
||||
//查询当前房间内麦位上的歌手
|
||||
$room_singer = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => ['<',9]])->column('user_id');
|
||||
if ($room_singer) {
|
||||
//$uid 是当前自己,有自己就去除自己
|
||||
$room_singer = array_diff($room_singer, [$uid]);
|
||||
$count = db::name('vs_singer_song')->where(['user_id' => ['in', $room_singer]])->count();
|
||||
$res = db::name('vs_singer_song')->where(['user_id' => ['in', $room_singer]])->page($page, $page_limit)->select();
|
||||
}else{
|
||||
@@ -138,6 +145,10 @@ class SingerSong extends Model
|
||||
if (!$song) {
|
||||
return ['code' => 0, 'msg' => '歌曲不存在', 'data' => null];
|
||||
}
|
||||
//查询歌曲是否是自己的
|
||||
if ($song['user_id'] == $user_id) {
|
||||
return ['code' => 0, 'msg' => '不能点自己歌曲', 'data' => null];
|
||||
}
|
||||
//查询用户余额
|
||||
$user_money = db::name('user_wallet')->where(['user_id' => $user_id])->value('coin');
|
||||
$gift_price = db::name('vs_gift')->where(['gid' => $song['gift_id']])->value('gift_price');
|
||||
@@ -204,6 +215,7 @@ class SingerSong extends Model
|
||||
break;
|
||||
}
|
||||
$res = db::name('vs_song_log')->where($where)->order('sort desc')->page($page,$page_limit)->select();
|
||||
$count = db::name('vs_song_log')->where($where)->count();
|
||||
if ($res) {
|
||||
foreach ($res as $k => $v) {
|
||||
$res[$k]['boss_nickname'] = db::name('user')->where(['id' => $v['user_id']])->value('nickname');
|
||||
@@ -215,7 +227,29 @@ class SingerSong extends Model
|
||||
$res[$k]['nickname'] = db::name('user')->where(['id' => db::name('vs_singer_song')->where(['id' => $v['singer_song_id']])->value('user_id')])->value('nickname');
|
||||
}
|
||||
}
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $res];
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => ['count' => $count, 'lists' =>$res]];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 点歌各类型各个总数
|
||||
* @param type 类型 1:已点列表,2:今日列表,3:昨日列表,4:本周列表,5:本月列表
|
||||
* @param room_id 房间id
|
||||
*/
|
||||
public function singerSongCount($room_id)
|
||||
{
|
||||
$where = [
|
||||
'room_id' => $room_id
|
||||
];
|
||||
$res = [
|
||||
'already' => db::name('vs_song_log')->where($where)->where(['status' => ['in','1,0']])->count(),
|
||||
'total' => db::name('vs_song_log')->where($where)->count(),
|
||||
'today' => db::name('vs_song_log')->where($where)->where('createtime', 'between time', [strtotime(date('Y-m-d')), time()])->count(),
|
||||
'yesterday' => db::name('vs_song_log')->where($where)->where('createtime', 'between time', [strtotime(date('Y-m-d', strtotime("-1 day"))), strtotime(date('Y-m-d'))])->count(),
|
||||
'week' => db::name('vs_song_log')->where($where)->where('createtime', 'between time', [strtotime(date('Y-m-d', strtotime("-1 week"))), time()])->count(),
|
||||
'month' => db::name('vs_song_log')->where($where)->where('createtime', 'between time', [strtotime(date('Y-m-01')), strtotime(date('Y-m-t'))])->count()
|
||||
];
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
@@ -233,7 +267,7 @@ class SingerSong extends Model
|
||||
$exp_coin = round($coin / get_system_config_value('singer_coin_exp'), 2);
|
||||
$exps = $exp + $exp_coin;
|
||||
//查询等级
|
||||
$level = db::name('vs_singer_level')->where(['exp' => ['<=', $exps]])->order('exp desc')->find();
|
||||
$level = db::name('vs_singer_level')->where(['change_value' => ['<=', $exps]])->order('change_value desc')->find();
|
||||
if ($level) {
|
||||
db::name('vs_singer')->where(['id' => $is_singer['id']])->update(['exp' => $exps,'level' => $level['level']]);
|
||||
}
|
||||
|
||||
@@ -2,13 +2,194 @@
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class UserCp extends Model
|
||||
{
|
||||
//用户关系卡(亲密拍)、关系位(真爱拍 ->有电影房)
|
||||
public function user_cp_list($uid,$user_id)
|
||||
{
|
||||
|
||||
/*
|
||||
* 检测是否赠送的Cp礼物
|
||||
* @param $from_user_id 送礼用户ID
|
||||
* @param $gift_id 礼物ID
|
||||
* @param $to_user_id 接收用户ID
|
||||
* @param $room_id 房间ID
|
||||
*/
|
||||
public function checkGift($from_user_id, $gift_id, $to_user_id, $room_id)
|
||||
{
|
||||
$cp_gift_id = explode(',', get_system_config_value('cp_gift_id'));
|
||||
if(!in_array($gift_id, $cp_gift_id)){
|
||||
return false;
|
||||
}
|
||||
|
||||
$rees = Db::name('user_cp_zone')->where(['user_id1' => $from_user_id,'user_id2' => $to_user_id,'status' => 1])->find();
|
||||
if(!$rees){
|
||||
$rees = Db::name('user_cp_zone')->where(['user_id1' => $to_user_id,'user_id2' => $from_user_id,'status' => 1])->find();
|
||||
}
|
||||
if($rees){
|
||||
$this->addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $rees['id']);
|
||||
return true;
|
||||
}
|
||||
|
||||
//查询收礼人有没有给送礼人送过cp礼物
|
||||
$res = Db::name('user_cp_find')->where(['from_user_id' => $to_user_id, 'to_user_id' => $from_user_id,'status' => 0])->find();
|
||||
if($res){
|
||||
//创建推送信息1:回应送礼 并创建Cp空间,
|
||||
$data = [
|
||||
'from_user_id' => $from_user_id,
|
||||
'to_user_id' => $to_user_id,
|
||||
'gift_id' => $gift_id,
|
||||
'createtime' => time(),
|
||||
'status' => 1
|
||||
];
|
||||
Db::name('user_cp_find')->insert($data);
|
||||
//修改状态
|
||||
Db::name('user_cp_find')->where(['id' => $res['id']])->update(['status' => 1]);
|
||||
//创建Cp空间
|
||||
|
||||
$data = [
|
||||
'user_id1' => $from_user_id,
|
||||
'user_id2' => $to_user_id,
|
||||
'createtime' => time(),
|
||||
'status' => 1,//1-已建立Cp空间,2-已取消
|
||||
'level' => 1,
|
||||
//经验值
|
||||
'exp' => 0,
|
||||
];
|
||||
Db::name('user_cp_zone')->insert($data);
|
||||
|
||||
//给前端推送
|
||||
$text = [
|
||||
'text' => '组建Cp'
|
||||
];
|
||||
//聊天室推送系统消息
|
||||
model('Chat')->sendMsg(1081,$room_id,$text);
|
||||
}else{//创建推送信息2:表达心动信号
|
||||
//查询是否有相应的Cp空间
|
||||
$ress = Db::name('user_cp_find')
|
||||
->where(['status' => ['in',[0,1]]])
|
||||
->whereOr(['from_user_id' => $from_user_id])
|
||||
->whereOr(['to_user_id' => $from_user_id])
|
||||
->select();
|
||||
if($ress){
|
||||
//把状态改为2 status:0-待回应,1-建交成功,2-已取消,
|
||||
foreach ($ress as $v){
|
||||
Db::name('user_cp_find')->where(['id' => $v['id']])->update(['status' => 2]);
|
||||
}
|
||||
}
|
||||
$rees = Db::name('user_cp_zone')->where(['user_id1' => $from_user_id,'user_id2' => $to_user_id,'status' => 1])->find();
|
||||
if(!$rees){
|
||||
$rees = Db::name('user_cp_zone')->where(['user_id1' => $to_user_id,'user_id2' => $from_user_id,'status' => 1])->find();
|
||||
}
|
||||
if($rees){
|
||||
//修改状态
|
||||
Db::name('user_cp_zone')->where(['id' => $rees['id']])->update(['status' => 2]);
|
||||
}
|
||||
|
||||
$data = [
|
||||
'from_user_id' => $from_user_id,
|
||||
'to_user_id' => $to_user_id,
|
||||
'gift_id' => $gift_id,
|
||||
'createtime' => time(),
|
||||
];
|
||||
Db::name('user_cp_find')->insert($data);
|
||||
//给前端推送
|
||||
$text = [
|
||||
'text' => '有心动信号'
|
||||
];
|
||||
//聊天室推送系统消息
|
||||
model('Chat')->sendMsg(1080,$room_id,$text);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 送Cp礼物 增加Cp 经验 判断是否升级
|
||||
* @param $from_user_id 送礼用户ID
|
||||
* @param $to_user_id 接收用户ID
|
||||
* @param $gift_id 礼物ID
|
||||
* @param $room_id 房间ID
|
||||
* @param $cp_zone_id Cp空间ID
|
||||
*/
|
||||
public function addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $cp_zone_id)
|
||||
{
|
||||
$jinbi_arr = explode(',', get_system_config_value('cp_exp_rate'));
|
||||
$jinbi = $jinbi_arr[0];
|
||||
$jinyan = $jinbi_arr[1];
|
||||
$exp = round(db::name('vs_gift')->where(['gid' => $gift_id])->value('gift_price') / $jinbi * $jinyan, 2);
|
||||
$yuan_exp = Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->value('exp');
|
||||
|
||||
//添加一个记录
|
||||
$datas = [
|
||||
'room_id' => $room_id,
|
||||
'from_user_id' => $from_user_id,
|
||||
'to_user_id' => $to_user_id,
|
||||
'gift_id' => $gift_id,
|
||||
'cp_zone_id' => $cp_zone_id,
|
||||
'exp' => $exp,
|
||||
'exp_total' => $yuan_exp + $exp,
|
||||
'createtime' => time(),
|
||||
];
|
||||
Db::name('user_cp_gift_log')->insert($datas);
|
||||
//判断是否升级
|
||||
$level = Db::name('user_cp_level')->where(['exp' => ['<=', $yuan_exp + $exp]])->order('exp desc')->value('level');
|
||||
if($level){
|
||||
//修改Cp空间等级
|
||||
$data['level'] = $level;
|
||||
}
|
||||
$data['exp'] = $yuan_exp + $exp;
|
||||
Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->update($data);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Cp空间
|
||||
* @param $user_id 用户ID
|
||||
*/
|
||||
public function cpZone($user_id)
|
||||
{
|
||||
$res = Db::name('user_cp_zone')->where(['user_id1' => $user_id,'status' => 1])->select();
|
||||
if(!$res){
|
||||
$res = Db::name('user_cp_zone')->where(['user_id2' => $user_id,'status' => 1])->select();
|
||||
}
|
||||
if($res){
|
||||
$res['user_info1'] = Db::name('user')->where(['id' => $res['user_id1']])->field('id user_id,nickname,avatar')->find();
|
||||
$res['user_info2'] = Db::name('user')->where(['id' => $res['user_id2']])->field('id user_id,nickname,avatar')->find();
|
||||
//升下一级所需经验值
|
||||
$next_level_exp = Db::name('user_cp_level')->where(['level' => ['>',$res['level']]])->order('level asc')->value('exp');
|
||||
$res['next_level_exp'] = $next_level_exp - $res['exp'];
|
||||
//送礼记录
|
||||
$res['gift_log'] = Db::name('user_cp_gift_log')->where(['cp_zone_id' => $res['id']])->select();
|
||||
foreach ($res['gift_log'] as &$v){
|
||||
$v['gift_name'] = Db::name('vs_gift')->where(['gid' => $v['gift_id']])->value('gift_name');
|
||||
$v['from_user_info'] = Db::name('user')->where(['id' => $v['from_user_id']])->field('id user_id,nickname,avatar')->find();
|
||||
$v['to_user_info'] = Db::name('user')->where(['id' => $v['to_user_id']])->field('id user_id,nickname,avatar')->find();
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $res ];
|
||||
}else{
|
||||
return ['code' => 0, 'msg' => '暂无Cp空间', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 用户的Cp空间
|
||||
* @param $user_id 用户ID
|
||||
*/
|
||||
public function userCpZone($user_id)
|
||||
{
|
||||
$res = Db::name('user_cp_zone')->where(['user_id1' => $user_id,'status' => 1])->select();
|
||||
if(!$res){
|
||||
$res = Db::name('user_cp_zone')->where(['user_id2' => $user_id,'status' => 1])->select();
|
||||
}
|
||||
if($res){
|
||||
$res['user_info1'] = Db::name('user')->where(['id' => $res['user_id1']])->field('id user_id,nickname,avatar')->find();
|
||||
$res['user_info2'] = Db::name('user')->where(['id' => $res['user_id2']])->field('id user_id,nickname,avatar')->find();
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $res ];
|
||||
}else{
|
||||
return ['code' => 0, 'msg' => '暂无Cp空间', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user