diff --git a/application/api/model/DailyTasks.php b/application/api/model/DailyTasks.php index fd28f48..5cf6f0f 100644 --- a/application/api/model/DailyTasks.php +++ b/application/api/model/DailyTasks.php @@ -85,6 +85,7 @@ class DailyTasks extends Model $reslut['tasks']['daily_tasks'] = [];//每日任务1 $reslut['tasks']['daily_tasks_special'] = [];//每日特殊任务2 $reslut['tasks']['usual_tasks'] = [];//平台常规任务3 + $reslut['tasks']['teacher_tasks'] = [];//师徒任务4 $data = db::name('vs_daily_tasks') ->field('task_id,icon,task_name,gold_reward,target_quantity,task_type') ->where('delete_time',0) @@ -99,10 +100,22 @@ class DailyTasks extends Model ->where('task_id',$v['task_id']) ->whereTime('createtime', 'today') ->find(); + }elseif($v['task_id'] == 17){ + //师徒任务 + //师傅签约返还 + $user_sign_task = Db::name('vs_user_sign_task')->where(['user_id'=>$user_id,'day'=>date('Y-m-d')])->find(); + if(empty($user_sign_task)){ + continue; + } }else{ $user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find(); + $v['gold_reward'] = $user_daily_tasks['value']; + $v['gold_reward'] = $user_daily_tasks['value']; } $progress = isset($user_daily_tasks['current_progress']) ? $user_daily_tasks['current_progress'] : 0; + if($v['task_id'] == 17){ + $progress = $user_sign_task['times'] ?? 0; + } $quantity_str = ""; if($v['target_quantity']!=1){ $quantity_str= "({$progress}/{$v['target_quantity']})"; @@ -129,6 +142,15 @@ class DailyTasks extends Model $v['task_type_str'] = "去签到"; } } + if($v['task_id'] == 17){ + if($user_sign_task['status'] == 0){ + $v['task_status'] = 2; + $v['task_type_str'] = "领取金币"; + }else{ + $v['task_status'] = 3; + $v['task_type_str'] = "已领取"; + } + } $v['from_id'] = 0; $v['is_time'] = 0; if(in_array($v['task_id'],[8,9])){ @@ -152,10 +174,11 @@ class DailyTasks extends Model $reslut['tasks']['daily_tasks'][] = $v; }elseif ($v['task_type']==2) { $reslut['tasks']['daily_tasks_special'][] = $v; - }else{ + }elseif ($v['task_type']==3) { $reslut['tasks']['usual_tasks'][] = $v; + }elseif ($v['task_type']==4) { + $reslut['tasks']['teacher_tasks'][] = $v; } - } return ['code' => 1, 'msg' => '获取成功', 'data' => $reslut]; } @@ -233,37 +256,68 @@ class DailyTasks extends Model if (!$task_info) { return ['code' => 0, 'msg' => '任务不存在','data' => null]; } - if($task_info['task_type']==3){ - $user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$task_id)->find(); + if($task_id!=17){ + if($task_info['task_type']==3){ + $user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$task_id)->find(); + }else{ + $user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find(); + } + if (!$user_daily_tasks) { + return ['code' => 0, 'msg' => '请完成该任务','data' => null]; + } + if ($user_daily_tasks['is_completed'] == 0) { + return ['code' => 0, 'msg' => '请完成该任务','data' => null]; + } + if ($user_daily_tasks['is_claimed'] == 1) { + return ['code' => 0, 'msg' => '您已领取该奖励','data' => null]; + } }else{ - $user_daily_tasks = Db::name('vs_user_daily_tasks')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find(); - } - - if (!$user_daily_tasks) { - return ['code' => 0, 'msg' => '请完成该任务','data' => null]; - } - if ($user_daily_tasks['is_completed'] == 0) { - return ['code' => 0, 'msg' => '请完成该任务','data' => null]; - } - if ($user_daily_tasks['is_claimed'] == 1) { - return ['code' => 0, 'msg' => '您已领取该奖励','data' => null]; + //师徒任务 + //师傅签约返还 + $user_sign_task = Db::name('vs_user_sign_task')->where(['user_id'=>$user_id,'day'=>date('Y-m-d')])->find(); + if (!$user_sign_task) { + return ['code' => 0, 'msg' => '任务不存在或已结束','data' => null]; + } + if($user_sign_task['status']==1){ + return ['code' => 0, 'msg' => '您已领取该奖励','data' => null]; + } } Db::startTrans(); try { - $reslut = Db::name('vs_user_daily_tasks')->where('id',$user_daily_tasks['id'])->update([ - 'is_claimed' => 1, - 'updatetime' => time(), - ]); - if ($reslut) { - //操作用户金币 - $res = model('common/UserWallet')->change_user_money($user_id, $user_daily_tasks['gold_reward'], model('common/UserWallet')::MONEYTYPECOIN, model('common/UserWallet')::DAILY_TASKS_REWARD,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::DAILY_TASKS_REWARD)."( ".$task_info['task_name'].")"); - if ($res['code'] != 1) { + if($task_id==17){ + //师徒任务 + $reslut = Db::name('vs_user_sign_task')->where('id',$user_sign_task['id'])->update([ + 'status' => 1 + ]); + if ($reslut) { + //操作用户钻石 + if ($reslut) { + $res = model('common/UserWallet')->change_user_money($user_id, $user_sign_task['value'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::SIGN_MASTER_DAILY_RETURN,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::SIGN_MASTER_DAILY_RETURN)." 第".$user_sign_task['times']."天"); + if ($res['code'] != 1) { + Db::rollback(); + return ['code' => 0, 'msg' => $reslut['msg'], 'data' => null]; + } + } else { + Db::rollback(); + return ['code' => 0, 'msg' => '操作失败', 'data' => null]; + } + } + }else{ + $reslut = Db::name('vs_user_daily_tasks')->where('id',$user_daily_tasks['id'])->update([ + 'is_claimed' => 1, + 'updatetime' => time(), + ]); + if ($reslut) { + //操作用户金币 + $res = model('common/UserWallet')->change_user_money($user_id, $user_daily_tasks['gold_reward'], model('common/UserWallet')::MONEYTYPECOIN, model('common/UserWallet')::DAILY_TASKS_REWARD,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::DAILY_TASKS_REWARD)."( ".$task_info['task_name'].")"); + if ($res['code'] != 1) { + Db::rollback(); + return ['code' => 0, 'msg' => $reslut['msg'], 'data' => null]; + } + } else { Db::rollback(); - return ['code' => 0, 'msg' => $reslut['msg'], 'data' => null]; + return ['code' => 0, 'msg' => '操作失败', 'data' => null]; } - } else { - Db::rollback(); - return ['code' => 0, 'msg' => '操作失败', 'data' => null]; } // 提交事务 Db::commit(); diff --git a/application/common/model/UserWallet.php b/application/common/model/UserWallet.php index a1e870c..160d7f0 100644 --- a/application/common/model/UserWallet.php +++ b/application/common/model/UserWallet.php @@ -98,6 +98,8 @@ class UserWallet extends Model const SIGN_FAILURE = 51; //首次被签约收入 const FIRST_SIGN_INCOME = 52; + //签约师傅每日返还 + const SIGN_MASTER_DAILY_RETURN = 53; //金币支出类型数组