任务功能提交-联调-提交
This commit is contained in:
@@ -112,6 +112,26 @@ class Tasks extends Model
|
|||||||
->order('sort asc')->select();
|
->order('sort asc')->select();
|
||||||
foreach ($data as $k => $v) {
|
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])){
|
if(in_array($v['task_type'],[1,2])){
|
||||||
//今日完成进度
|
//今日完成进度
|
||||||
$user_daily_tasks = Db::name('vs_tasks_user_daily')
|
$user_daily_tasks = Db::name('vs_tasks_user_daily')
|
||||||
@@ -119,6 +139,31 @@ class Tasks extends Model
|
|||||||
->where('task_id',$v['task_id'])
|
->where('task_id',$v['task_id'])
|
||||||
->whereTime('createtime', 'today')
|
->whereTime('createtime', 'today')
|
||||||
->find();
|
->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){
|
}elseif($v['task_id'] == 24){
|
||||||
//师徒任务
|
//师徒任务
|
||||||
//师傅签约返还
|
//师傅签约返还
|
||||||
@@ -127,18 +172,22 @@ class Tasks extends Model
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$v['gold_reward'] = $user_sign_task['value'];
|
$v['gold_reward'] = $user_sign_task['value'];
|
||||||
}else{
|
$v['target_quantity'] = $v['target_quantity'] * 60;
|
||||||
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find();
|
$v['is_time'] = 1;
|
||||||
}
|
|
||||||
$progress = isset($user_daily_tasks['current_progress']) ? $user_daily_tasks['current_progress'] : 0;
|
|
||||||
if($v['task_id'] == 24){
|
|
||||||
if($user_sign_task['status']==1){
|
if($user_sign_task['status']==1){
|
||||||
$progress = $user_sign_task['times'] ?? 0;
|
$progress = $user_sign_task['times'] ?? 0;
|
||||||
}else{
|
}else{
|
||||||
$progress = $user_sign_task['times']-1 ?? 0;
|
$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 = "";
|
$quantity_str = "";
|
||||||
if($v['target_quantity']!=1){
|
if($v['target_quantity']!=1){
|
||||||
$quantity_str= "({$progress}/{$v['target_quantity']})";
|
$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['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;
|
$reslut['tasks'][$v['task_type']-1]['task_list'][] = $v;
|
||||||
}
|
}
|
||||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $reslut];
|
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){
|
if($task_id ==15){
|
||||||
$current_progress = $ext_value!='' ? $ext_value : 1;
|
$current_progress = $ext_value!='' ? $ext_value : 1;
|
||||||
}else{
|
}else{
|
||||||
@@ -220,28 +241,39 @@ class Tasks extends Model
|
|||||||
if ($user_daily_tasks && $user_daily_tasks['is_completed'] == 1) {
|
if ($user_daily_tasks && $user_daily_tasks['is_completed'] == 1) {
|
||||||
return ['code' => 0, 'msg' => '您已完成该任务','data' => null];
|
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(in_array($task_id,[21,22,23])){
|
||||||
if($ext_value==2){
|
$task_student_data =[];
|
||||||
$current_progress = $user_daily_tasks['current_progress'];
|
$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];
|
||||||
}
|
}
|
||||||
if($task_info['target_quantity']==$user_daily_tasks['current_progress'] && $ext_value==2){
|
if($ext_value==1){
|
||||||
$is_completed = 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{
|
}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']==$current_progress){
|
if($task_info['target_quantity']==$current_progress){
|
||||||
$is_completed = 1;
|
$is_completed = 1;
|
||||||
}
|
}
|
||||||
}
|
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([
|
$reslut = Db::name('vs_tasks_user_daily')->where('id',$user_daily_tasks['id'])->update([
|
||||||
'current_progress' => $current_progress,
|
'current_progress' => $current_progress,
|
||||||
'is_completed'=> $is_completed,
|
'is_completed'=> $is_completed,
|
||||||
'ext' => $ext_value,
|
'ext' => $ext_value,
|
||||||
]);
|
]);
|
||||||
}else{
|
}else{
|
||||||
$is_completed = 0;
|
|
||||||
if($task_info['target_quantity'] == 1){
|
if($task_info['target_quantity'] == 1){
|
||||||
$is_completed = 1;
|
$is_completed = 1;
|
||||||
}
|
}
|
||||||
@@ -255,6 +287,8 @@ class Tasks extends Model
|
|||||||
'createtime' => time(),
|
'createtime' => time(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($reslut) {
|
if ($reslut) {
|
||||||
if($is_completed==1){
|
if($is_completed==1){
|
||||||
return ['code' => 1, 'msg' => '操作成功','data' => ['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);
|
$is_real = model('UserData')->real_name_info($user_id);
|
||||||
if($is_real['code']==0){
|
if($is_real['code']==0){
|
||||||
@@ -291,6 +325,15 @@ class Tasks extends Model
|
|||||||
if($user_sign_task['status']==1){
|
if($user_sign_task['status']==1){
|
||||||
return ['code' => 0, 'msg' => '您已领取该奖励','data' => null];
|
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{
|
}else{
|
||||||
if($task_info['task_type']==2){
|
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();
|
$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();
|
Db::rollback();
|
||||||
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
|
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([
|
$reslut = Db::name('vs_user_daily_tasks')->where('id',$user_daily_tasks['id'])->update([
|
||||||
'is_claimed' => 1,
|
'is_claimed' => 1,
|
||||||
'updatetime' => time(),
|
'updatetime' => time(),
|
||||||
@@ -524,7 +573,7 @@ class Tasks extends Model
|
|||||||
if($continuous>1){
|
if($continuous>1){
|
||||||
//连续签到任务送金币
|
//连续签到任务送金币
|
||||||
//连续签到7天 【完成任务】
|
//连续签到7天 【完成任务】
|
||||||
//$this->tasks_complete($user_id,2);
|
$this->tasks_complete($user_id,2);
|
||||||
//连续签到任务抽礼包【完成任务】
|
//连续签到任务抽礼包【完成任务】
|
||||||
//连续签到7天 【完成任务】
|
//连续签到7天 【完成任务】
|
||||||
//$this->tasks_complete($user_id,7);
|
//$this->tasks_complete($user_id,7);
|
||||||
|
|||||||
Reference in New Issue
Block a user