任务功能提交-联调-提交
This commit is contained in:
@@ -112,6 +112,26 @@ class Tasks extends Model
|
||||
->order('sort asc')->select();
|
||||
foreach ($data as $k => $v) {
|
||||
//完成进度
|
||||
$v['from_id'] = 0;
|
||||
$v['is_time'] = 0;
|
||||
//奖励详情
|
||||
$v['reward_str'] = "";
|
||||
$reward_info = db::name('vs_gift_bag_detail')->where('gift_bag_id',$v['tasks_bag_id'])->select();
|
||||
foreach ($reward_info as $key => $value) {
|
||||
if($value['type'] == 1){
|
||||
$reward_name = $value['quantity'].$value['name'];
|
||||
}elseif($value['type'] == 2){
|
||||
$reward_name = $value['name'].'x'.$value['quantity'];
|
||||
}elseif($value['type'] == 3){
|
||||
$reward_name = $value['name'].'x'.$value['days'].'天';
|
||||
}else{
|
||||
$reward_name = $value['quantity'].$value['name'];
|
||||
}
|
||||
$v['reward_str'] =$v['reward_str'].$reward_name." ";
|
||||
if($v['task_id'] == 24){
|
||||
$v['reward_str'] = $v['gold_reward']."钻石";
|
||||
}
|
||||
}
|
||||
if(in_array($v['task_type'],[1,2])){
|
||||
//今日完成进度
|
||||
$user_daily_tasks = Db::name('vs_tasks_user_daily')
|
||||
@@ -119,6 +139,31 @@ class Tasks extends Model
|
||||
->where('task_id',$v['task_id'])
|
||||
->whereTime('createtime', 'today')
|
||||
->find();
|
||||
}elseif(in_array($v['task_id'],[21,22,23])){
|
||||
$first_sign_student_list = db::name('vs_tasks_student')
|
||||
->where('user_id',$user_id)
|
||||
->where('task_id',$v['task_id'])
|
||||
->where('delete_time', 0)
|
||||
->select();
|
||||
if(empty($first_sign_student_list)){
|
||||
continue;
|
||||
}else{
|
||||
//徒弟列表
|
||||
foreach ($first_sign_student_list as $key => $value) {
|
||||
if($v['task_id'] = 21){
|
||||
$title = "拍卖房停留({$value['value']} / {$v['target_quantity']})分钟";
|
||||
}elseif($v['task_id'] = 22){
|
||||
$title = "点唱房点歌({$value['value']} / {$v['target_quantity']})首";
|
||||
}elseif($v['task_id'] = 23){
|
||||
$title = "交友房停留({$value['value']} / {$v['target_quantity']})分钟";
|
||||
}
|
||||
$v['sign_student_list']['task_id'] = $v['task_id'];
|
||||
$v['sign_student_list']['student_id'] = $value['student_id'];
|
||||
$v['sign_student_list']['student_nickname'] = db::name('vs_user')->where('id',$value['student_id'])->value('nickname');
|
||||
$v['sign_student_list']['task_name'] = '邀请'.$v['sign_student_list']['student_nickname']."徒弟在{$title},并送给徒弟特殊礼物";
|
||||
$v['sign_student_list']['reward_str'] = $v['reward_str'];
|
||||
}
|
||||
}
|
||||
}elseif($v['task_id'] == 24){
|
||||
//师徒任务
|
||||
//师傅签约返还
|
||||
@@ -127,18 +172,22 @@ class Tasks extends Model
|
||||
continue;
|
||||
}
|
||||
$v['gold_reward'] = $user_sign_task['value'];
|
||||
}else{
|
||||
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find();
|
||||
}
|
||||
$progress = isset($user_daily_tasks['current_progress']) ? $user_daily_tasks['current_progress'] : 0;
|
||||
if($v['task_id'] == 24){
|
||||
$v['target_quantity'] = $v['target_quantity'] * 60;
|
||||
$v['is_time'] = 1;
|
||||
if($user_sign_task['status']==1){
|
||||
$progress = $user_sign_task['times'] ?? 0;
|
||||
}else{
|
||||
$progress = $user_sign_task['times']-1 ?? 0;
|
||||
}
|
||||
|
||||
}else{
|
||||
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find();
|
||||
if($v['jump_type']==4){
|
||||
//跳转的房间路径
|
||||
$v['from_id'] = model('api/Room')->task_jump_room_recommend($v['task_id']);
|
||||
}
|
||||
}
|
||||
$progress = isset($user_daily_tasks['current_progress']) ? $user_daily_tasks['current_progress'] : 0;
|
||||
$v['is_time'] = 0;
|
||||
$quantity_str = "";
|
||||
if($v['target_quantity']!=1){
|
||||
$quantity_str= "({$progress}/{$v['target_quantity']})";
|
||||
@@ -166,41 +215,13 @@ class Tasks extends Model
|
||||
}
|
||||
}
|
||||
$v['jump_type_str'] = $this->jump_type[$v['jump_type']];
|
||||
$v['from_id'] = 0;
|
||||
$v['is_time'] = 0;
|
||||
if(in_array($v['task_id'],[18,19,20])){
|
||||
$v['processing_type'] = 2;
|
||||
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
|
||||
//跳转的房间路径
|
||||
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6],'apply_status'=>2])->orderRaw('rand()')->value('id');
|
||||
$v['target_quantity'] = $v['target_quantity'] * 60;
|
||||
$v['is_time'] = 1;
|
||||
} else{
|
||||
$v['processing_type'] = 9;
|
||||
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
|
||||
}
|
||||
//奖励详情
|
||||
$v['reward_str'] = "";
|
||||
$reward_info = db::name('vs_gift_bag_detail')->where('gift_bag_id',$v['tasks_bag_id'])->select();
|
||||
foreach ($reward_info as $key => $value) {
|
||||
if($value['type'] == 1){
|
||||
$reward_name = $value['quantity'].$value['name'];
|
||||
}elseif($value['type'] == 2){
|
||||
$reward_name = $value['name'].'x'.$value['quantity'];
|
||||
}elseif($value['type'] == 3){
|
||||
$reward_name = $value['name'].'x'.$value['days'].'天';
|
||||
}else{
|
||||
$reward_name = $value['quantity'].$value['name'];
|
||||
}
|
||||
$v['reward_str'] =$v['reward_str'].$reward_name." ";
|
||||
}
|
||||
//返回任务列表
|
||||
$reslut['tasks'][$v['task_type']-1]['task_list'][] = $v;
|
||||
}
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $reslut];
|
||||
}
|
||||
//完成每日任务
|
||||
public function tasks_complete($user_id,$task_id,$ext_value=''){
|
||||
public function tasks_complete($user_id,$task_id,$ext_value='',$student_id = 0){
|
||||
if($task_id ==15){
|
||||
$current_progress = $ext_value!='' ? $ext_value : 1;
|
||||
}else{
|
||||
@@ -220,41 +241,54 @@ class Tasks extends Model
|
||||
if ($user_daily_tasks && $user_daily_tasks['is_completed'] == 1) {
|
||||
return ['code' => 0, 'msg' => '您已完成该任务','data' => null];
|
||||
}
|
||||
if ($user_daily_tasks) {
|
||||
$current_progress = $user_daily_tasks['current_progress'] +$current_progress;
|
||||
$is_completed = 0;
|
||||
if(in_array($task_id,[21,22,23])){
|
||||
if($ext_value==2){
|
||||
$current_progress = $user_daily_tasks['current_progress'];
|
||||
}
|
||||
if($task_info['target_quantity']==$user_daily_tasks['current_progress'] && $ext_value==2){
|
||||
$is_completed = 1;
|
||||
}
|
||||
}else{
|
||||
if($task_info['target_quantity']==$current_progress){
|
||||
$is_completed = 1;
|
||||
}
|
||||
if(in_array($task_id,[21,22,23])){
|
||||
$task_student_data =[];
|
||||
$task_student = Db::name('vs_tasks_student')->where(['user_id'=>$user_id,'task_id'=>$task_id,'student_id'=>$student_id,'status'=>0,'delete_time'=>0])->find();
|
||||
if(empty($task_student)){
|
||||
return ['code' => 0, 'msg' => '任务不存在或已删除','data' => null];
|
||||
}
|
||||
$reslut = Db::name('vs_tasks_user_daily')->where('id',$user_daily_tasks['id'])->update([
|
||||
'current_progress' => $current_progress,
|
||||
'is_completed'=> $is_completed,
|
||||
'ext' => $ext_value,
|
||||
]);
|
||||
if($ext_value==1){
|
||||
$current_progress = $task_student['value']+1;
|
||||
if($task_info['target_quantity']==$current_progress && $task_student['is_reward']==1){
|
||||
$task_student_data['status'] = 1;
|
||||
}
|
||||
$task_student_data['value'] = $current_progress;
|
||||
}else{
|
||||
$current_progress = $task_student['value'];
|
||||
if($task_info['target_quantity']==$current_progress){
|
||||
$task_student_data['status'] = 1;
|
||||
}
|
||||
$task_student_data['is_reward'] = 1;
|
||||
}
|
||||
$reslut = Db::name('vs_tasks_student')->where('id',$task_student['id'])->update($task_student_data);
|
||||
}else{
|
||||
$is_completed = 0;
|
||||
if($task_info['target_quantity'] == 1){
|
||||
if($task_info['target_quantity']==$current_progress){
|
||||
$is_completed = 1;
|
||||
}
|
||||
$reslut = Db::name('vs_tasks_user_daily')->insert([
|
||||
'user_id' => $user_id,
|
||||
'task_id' => $task_id,
|
||||
'current_progress' => $current_progress,
|
||||
'tasks_bag_id' => $task_info['tasks_bag_id'],
|
||||
'is_completed' => $is_completed,
|
||||
'ext' => $ext_value,
|
||||
'createtime' => time(),
|
||||
]);
|
||||
if ($user_daily_tasks) {
|
||||
$current_progress = $user_daily_tasks['current_progress'] +$current_progress;
|
||||
$reslut = Db::name('vs_tasks_user_daily')->where('id',$user_daily_tasks['id'])->update([
|
||||
'current_progress' => $current_progress,
|
||||
'is_completed'=> $is_completed,
|
||||
'ext' => $ext_value,
|
||||
]);
|
||||
}else{
|
||||
if($task_info['target_quantity'] == 1){
|
||||
$is_completed = 1;
|
||||
}
|
||||
$reslut = Db::name('vs_tasks_user_daily')->insert([
|
||||
'user_id' => $user_id,
|
||||
'task_id' => $task_id,
|
||||
'current_progress' => $current_progress,
|
||||
'tasks_bag_id' => $task_info['tasks_bag_id'],
|
||||
'is_completed' => $is_completed,
|
||||
'ext' => $ext_value,
|
||||
'createtime' => time(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($reslut) {
|
||||
if($is_completed==1){
|
||||
return ['code' => 1, 'msg' => '操作成功','data' => ['is_completed'=>1]];
|
||||
@@ -267,7 +301,7 @@ class Tasks extends Model
|
||||
}
|
||||
|
||||
//领取每日任务奖励
|
||||
public function daily_tasks_receive($user_id,$task_id){
|
||||
public function daily_tasks_receive($user_id,$task_id,$student_id = 0){
|
||||
//查询是否实名认证
|
||||
$is_real = model('UserData')->real_name_info($user_id);
|
||||
if($is_real['code']==0){
|
||||
@@ -291,6 +325,15 @@ class Tasks extends Model
|
||||
if($user_sign_task['status']==1){
|
||||
return ['code' => 0, 'msg' => '您已领取该奖励','data' => null];
|
||||
}
|
||||
}elseif(in_array($task_id,[21,22,23])){
|
||||
if($student_id){
|
||||
$task_student = Db::name('vs_tasks_student')->where(['user_id'=>$user_id,'task_id'=>$task_id,'student_id'=>$student_id,'status'=>1,'delete_time'=>0])->find();
|
||||
if (!$task_student) {
|
||||
return ['code' => 0, 'msg' => '任务不存在或已结束','data' => null];
|
||||
}
|
||||
}else{
|
||||
return ['code' => 0, 'msg' => '任务不存在','data' => null];
|
||||
}
|
||||
}else{
|
||||
if($task_info['task_type']==2){
|
||||
$user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find();
|
||||
@@ -318,7 +361,13 @@ class Tasks extends Model
|
||||
Db::rollback();
|
||||
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
|
||||
}
|
||||
}else{
|
||||
}elseif(in_array($task_id,[21,22,23])){
|
||||
$reslut = Db::name('vs_tasks_student')->where('id',$task_student['id'])->update([
|
||||
'status' => 2,
|
||||
'updatetime' => time(),
|
||||
]);
|
||||
}
|
||||
else{
|
||||
$reslut = Db::name('vs_user_daily_tasks')->where('id',$user_daily_tasks['id'])->update([
|
||||
'is_claimed' => 1,
|
||||
'updatetime' => time(),
|
||||
@@ -524,7 +573,7 @@ class Tasks extends Model
|
||||
if($continuous>1){
|
||||
//连续签到任务送金币
|
||||
//连续签到7天 【完成任务】
|
||||
//$this->tasks_complete($user_id,2);
|
||||
$this->tasks_complete($user_id,2);
|
||||
//连续签到任务抽礼包【完成任务】
|
||||
//连续签到7天 【完成任务】
|
||||
//$this->tasks_complete($user_id,7);
|
||||
|
||||
Reference in New Issue
Block a user