任务功能提交-每日签到功能开发

This commit is contained in:
2025-12-12 10:32:25 +08:00
parent cb90a2c6a2
commit 38fb2eb501
2 changed files with 36 additions and 24 deletions

View File

@@ -109,7 +109,7 @@ class Tasks extends Model
->field('id as task_id,icon,task_name,target_quantity,task_type,jump_type,tasks_bag_id')
->where('delete_time',0)
->where('is_active',1)
->order('sort asc')->select();
->order('sort desc,id asc')->select();
foreach ($data as $k => $v) {
//完成进度
$v['from_id'] = 0;
@@ -223,7 +223,7 @@ class Tasks extends Model
$v['task_type_str'] = "已领取";
}
if($v['task_id']==1){//每日签到处理
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'sign_in_date'=>date('Y-m-d')])->find();
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'sign_in_date'=>date('Y-m-d'),'delete_time'=>0])->find();
if ($sign_in_info) {
$v['task_status'] =3;
$v['task_type_str'] = "已签到";
@@ -585,7 +585,7 @@ class Tasks extends Model
* 用户签到
*/
public function sign_in($user_id){
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'sign_in_date'=>date('Y-m-d')])->find();
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'sign_in_date'=>date('Y-m-d'),'delete_time'=>0])->find();
if ($sign_in_info) {
return ['code' => 0, 'msg' => '今天已经签到过了','data' => null];
}
@@ -595,22 +595,17 @@ class Tasks extends Model
$this->tasks_complete($user_id,1);
//判断连续签到
$continuous = 1;
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id])->order('id desc')->find();
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'delete_time'=>0])->order('id desc')->find();
if ($sign_in_info) {
if ($sign_in_info['sign_in_date'] == date('Y-m-d',strtotime('-1 day'))) {
$continuous = $sign_in_info['continuous'] + 1;
} else {
db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'delete_time'=>0])->update([
'delete_time' => time()
]);
$continuous = 1;
}
}
if($continuous>1){
//连续签到任务送金币
//连续签到7天 【完成任务】
$this->tasks_complete($user_id,2);
//连续签到任务抽礼包【完成任务】
//连续签到7天 【完成任务】
//$this->tasks_complete($user_id,7);
}
$reslut = Db::name('vs_user_tasks_sign_in')->insert([
'user_id' => $user_id,
'sign_in_date' => date('Y-m-d'),
@@ -636,11 +631,28 @@ class Tasks extends Model
* 今日签到状态
*/
public function daily_tasks_sign_in_status($user_id){
$sign_in_info = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'sign_in_date'=>date('Y-m-d')])->find();
//礼包
$detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>18])->select();
$detail_list = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>18])->limit(7)->select();
$list= [];
foreach ($detail as $k=>$v){
foreach ($detail_list as $k=>$v){
$day = $k+1;
$list[$k]['day'] = $day;
$sign_in = Db::name('vs_user_tasks_sign_in')->where(['user_id'=>$user_id,'continuous'=>$day,'delete_time'=>0])->find();
if($sign_in){
$list[$k]['sign_in_date'] = $sign_in['sign_in_date'];
$list[$k]['sign_in_status'] = 1;
$list[$k]['sign_in_status_str'] = "已签到";
}else{
if($k==0){
$list[$k]['sign_in_date'] = date('Y-m-d');
}else{
$list[$k]['sign_in_date'] = date('Y-m-d',strtotime($list[$k-1]['sign_in_date'])+86400);
}
$list[$k]['sign_in_status'] = 0;
$list[$k]['sign_in_status_str'] = "未签到";
}
//是否是当天
$list[$k]['is_today'] = $list[$k]['sign_in_date'] == date('Y-m-d') ? 1 : 0;
if($v['type'] == 1){
$list[$k]['gift_name'] = "金币";
$list[$k]['num'] = $v['gold'];
@@ -672,13 +684,6 @@ class Tasks extends Model
}
$result = [];
$result['gift_bag'] = $list;
if ($sign_in_info) {
$result['status'] = 1;
$result['status_str'] = "已签到";
}else{
$result['status'] = 0;
$result['status_str'] = "未签到";
}
return ['code' => 1, 'msg' => '成功','data' => $result];
}