cmd) { case CmdCode::active_day7_drawreward: # 6101 签到 return ActiveProc::Day7_DrawReward(); case CmdCode::active_day7_accumulateDrawreward: # 6102 7日累充 return ActiveProc::Day7__accumulateDrawreward(); default: Err(ErrCode::cmd_err); } } /** * 7日累充领奖 */ public static function Day7__accumulateDrawreward() { list($type,$typeId) = req()->paras; # 参数: 领取第x天的奖励 $user = ctx(); if($type == Enum_TaskType::Day7_Sign){ my_Assert($user->privateState->day7_accumulate >= $typeId, ErrCode::active_day7_expired); my_Assert(!in_array($typeId, $user->privateState->day7_accumulateDrawed), ErrCode::active_hasgetted); $day_rwd = GameConfig::active_day7_accumulate_getItem($typeId); # 查询奖励数据 my_Assert(null != $day_rwd, ErrCode::err_const_no); # 防御找不到配置 StoreProc::AddMultiItemInStore($day_rwd->reward); # 发放奖励 $user->privateState->day7_accumulateDrawed[] = $typeId; } elseif (Enum_TaskType::DailyTask) { my_Assert($user->task->dailyTaskAccumulate >= $typeId, ErrCode::active_day7_expired); my_Assert(!in_array($typeId, $user->task->dailyTaskAccumulateDrawed), ErrCode::active_hasgetted); $day_rwd = GameConfig::task_accumulate_daily_getItem($typeId); # 查询奖励数据 my_Assert(null != $day_rwd, ErrCode::err_const_no); # 防御找不到配置 StoreProc::AddMultiItemInStore($day_rwd->reward); # 发放奖励 $user->task->dailyTaskAccumulateDrawed[] = $typeId; } elseif (Enum_TaskType::WeekTask) { my_Assert($user->task->weekTaskAccumulate >= $typeId, ErrCode::active_day7_expired); my_Assert(!in_array($typeId, $user->task->weekTaskAccumulateDrawed), ErrCode::active_hasgetted); $day_rwd = GameConfig::task_accumulate_week_getItem($typeId); # 查询奖励数据 my_Assert(null != $day_rwd, ErrCode::err_const_no); # 防御找不到配置 StoreProc::AddMultiItemInStore($day_rwd->reward); # 发放奖励 $user->task->weekTaskAccumulateDrawed[] = $typeId; } ctx($user); UserProc::updateUserInfo(); # 回存 return Resp::ok(array( 'gold' => $user->baseInfo->gold, 'cash' => $user->baseInfo->cash, 'tili' => $user->baseInfo->tili, 'store' => $user->store, )); } /** * 7日签到 数据更新 */ public static function DailyResetDay7Task() { if(count(ctx()->privateState->LoginDays) >= 7){ ctx()->privateState->LoginDays = array(); ctx()->privateState->day7_drawed = array(); } $index = count(ctx()->privateState->LoginDays)+1; ctx()->privateState->LoginDays[] = $index; ctx()->privateState->day7_accumulate += 1; } /** * 7日签到 * @return type */ public static function Day7_DrawReward() { list($day) = req()->paras; # 参数: 领取第x天的奖励 $user = ctx(); my_Assert(in_array($day,$user->privateState->LoginDays), ErrCode::active_day7_expired); my_Assert(!in_array($day, $user->privateState->day7_drawed), ErrCode::active_hasgetted); $day_rwd = GameConfig::activity_day7_getItem($day); # 查询奖励数据 my_Assert(null != $day_rwd, ErrCode::err_const_no); # 防御找不到配置 StoreProc::AddMultiItemInStore($day_rwd->reward); # 发放奖励 $user->privateState->day7_drawed[] = $day; # 添加领取记录 ctx($user); UserProc::updateUserInfo(); # 回存 return Resp::ok(array( 'gold' => $user->baseInfo->gold, 'cash' => $user->baseInfo->cash, 'tili' => $user->baseInfo->tili, 'store' => $user->store, )); } }