cmd) { // case CmdCode::shop_limit_maininfo: // return self::GetLimitMainInfo(); // case CmdCode::shop_limit_buy: // return self::BuyLimitPackage(); // case CmdCode::shop_monthlyVIP_Info: // return self::GetMonthlyVipInfo(); // case CmdCode::shop_monthlyVIP_Buy: // return self::BuyMonthlyVip(); // case CmdCode::shop_getDaliySpecial: // return self::GetDaliySpecial(); // case CmdCode::shop_getRechargeRebate: // return self::GetRechargeRebate(); // case CmdCode::shop_dailyShopBuy: // return self::dailyShopBuy(); // default: // Err(ErrCode::cmd_err); // } // } // // /** // * 购买日常商城 // * @return type // */ // public static function dailyShopBuy() { // $itemid = req()->paras[0]; // // $mo = GameConfig::shop_daily_getItem($itemid); // my_Assert($mo != null, ErrCode::err_const_no); // // if($mo->pricetype == 1){ // my_Assert(ctx()->base(true)->cash >= $mo->price, ErrCode::notenough_cash_msg); // ctx()->base(true)->Consume_Cash($mo->price); // } else if($mo->pricetype == 2){ // my_Assert(ctx()->base(true)->gold >= $mo->price, ErrCode::notenough_gold_msg); // ctx()->base(true)->Consume_Gold($mo->price); // } // // StoreProc::AddMultiItemInStore($mo->goods); // // UserProc::updateUserInfo(); // // return Resp::ok(array("store" => ctx()->store(), "cash" => ctx()->baseInfo->cash,"gold"=> ctx()->base(true)->gold,)); // } // // // /** // * 限购礼包触发条件检测 // */ // public function checkLimitTsRandGiftTrigger($typeId, $para) { // $arr = GameConfig::shop_limitTs_Type_getItemArray($typeId); // my_Assert($arr != null, ErrCode::err_const_no); // $giftId = 0; // // $giftArr = array(); // foreach ($arr as $item) { // if ($item->para <= $para) { // if (!in_array($item->giftId, ctx()->shopdata->limitTsRewardsList)) { // $giftId = $item->giftId; // //$giftArr[] = $giftId; // //没有触发对应的礼包条件 // if ($giftId == 0) { // continue; // } // //已经触发过了但是礼包还没有被领取 // if (count(ctx()->store->triggerLimitTsGift) != 0) { // foreach (ctx()->store->triggerLimitTsGift as $val) { // if ($val->giftId == $giftId) { // continue; // } // } // } // // //触发对应的礼包条件。则将礼包id存储在 // $gift = new Ins_Gift(); // $gift->giftId = $giftId; // $gift->startTs = now(); // $gift->endTs = now() + GameConfig::shop_limit_getItem($giftId)->limit_ts; // ctx()->store->triggerLimitTsGift[] = $gift; // } // } // } // } // // public static function GetRechargeRebate() { // return Resp::ok(array( // "shopdata" => ctx()->shopdata // )); // } // // // // public static function GetDaliySpecial() { // return Resp::ok(array( // "shopdata" => ctx()->shopdata // )); // } // // /* // * 重置每日特惠信息 // */ // // static function resetDaliySpecialPackages() { // if(!StlUtil::dictHasProperty(ctx()->shopdata, 'daliySpecialClear_ts')){ // ctx()->shopdata->daliySpecialClear_ts = now(); // } // // if (ctx()->shopdata->daliySpecialClear_ts == 0) { // ctx()->shopdata->daliySpecialClear_ts = now(); // } // $curDay = TimeUtil::totalDays(); // $lastDay = TimeUtil::totalDays(ctx()->shopdata->daliySpecialClear_ts); // // if ($curDay - $lastDay == 1 && TimeUtil::Hour(now()) > 5) {//TimeUtil::Hour(ctx()->shopdata->daliySpecialClear_ts) < 5 // ctx()->shopdata->daliySpecialClear_ts = now(); // ctx()->shopdata->daliySpecialPackages = array(); // } else if ($curDay - $lastDay > 1) { // ctx()->shopdata->daliySpecialClear_ts = now(); // ctx()->shopdata->daliySpecialPackages = array(); // } // // if (TimeUtil::totalDays(ctx()->shopdata->daliySpecialClear_ts) == TimeUtil::totalDays() # // && TimeUtil::Hour(ctx()->shopdata->daliySpecialClear_ts) < 5 && TimeUtil::Hour(now()) > 5) { // ctx()->shopdata->daliySpecialClear_ts = now(); // ctx()->shopdata->daliySpecialPackages = array(); // } // } // // /** // * 获取月卡信息 // * @return type // */ // public static function GetMonthlyVipInfo() { // return Resp::ok(array( // "shopdata" => ctx()->shopdata // )); // } // // /** // * 购买月卡 // * @return type // */ // public static function BuyMonthlyVip() { // $packageId = req()->paras[0]; # 参数; 礼包id // $shopdata = new Info_UserShop(ctx()->shopdata); // $packageCfg = GameConfig::shop_monthVIP_getItem($packageId); // my_Assert(null != $packageCfg, ErrCode::err_const_no); // if ($packageCfg->subType == 4) { // my_Assert($shopdata->monthlyVIP1_ts + $packageCfg->ExpireTs * 3600 * 24 < now(), ErrCode::shop_monthlyvip_buyed); // } elseif ($packageCfg->subType == 5) { // my_Assert($shopdata->monthlyVIP2_ts + $packageCfg->ExpireTs * 3600 * 24 < now(), ErrCode::shop_monthlyvip_buyed); // } // $err = StoreProc::AddMultiItemInStore($packageCfg->pri_reward); # 发放一次性奖励 // my_Assert(ErrCode::ok == $err, $err); // if ($packageCfg->subType == 4) { // $shopdata->monthlyVIP1_ts = 3600 * 24 * (totalDays() + 1) - 1; // } elseif ($packageCfg->subType == 5) { // $shopdata->monthlyVIP2_ts = 3600 * 24 * (totalDays() + 1) - 1; // } // // EmailProc::SendMonthlyVIPDailyReward(req()->zoneid, req()->uid, $packageCfg->name, $packageCfg->daily_reward); // // ctx()->shopdata = $shopdata; # 回写数据 // UserProc::updateUserInfo(); // $user = ctx(); // return Resp::ok(array( // "reward" => $packageCfg->pri_reward, // "shopdata" => $shopdata, // 'gold' => $user->baseInfo->gold, // 'cash' => $user->baseInfo->cash, // 'tili' => $user->baseInfo->tili, // 'store' => $user->store, // 'hero' => $user->heros // )); // } // // /** // * 【7101】限购礼包主界面 // */ // public static function GetLimitMainInfo() { // return Resp::ok(array( // "shopdata" => ctx()->shopdata // )); // } // // /** // * 【7102】 购买限购礼包 // */ // public static function BuyLimitPackage() { // $packageId = req()->paras[0]; # 参数; 礼包id // $shopdata = new Info_UserShop(ctx()->shopdata); // $packageCfg = GameConfig::shop_limit_getItem($packageId); // my_Assert(null != $packageCfg, ErrCode::err_const_no); // // $arr = array(); // switch ((int) $packageCfg->subType) { // case 1: // $shopdata->purchasedDailyLimitPackages[] = $packageId; // $arr = $shopdata->purchasedDailyLimitPackages; // break; // case 2: // $shopdata->purchasedWeeklyLimitPackages[] = $packageId; // $arr = $shopdata->purchasedWeeklyLimitPackages; // break; // case 3: // $shopdata->purchasedMonthlyLimitPackages[] = $packageId; // $arr = $shopdata->purchasedMonthlyLimitPackages; // break; // default: // Err(ErrCode::err_innerfault); // } // $hasN = count(array_filter($arr, function ($val)use ($packageId) { // return $val == $packageId; // })); // my_Assert($hasN <= $packageCfg->limit_num, ErrCode::shop_limit_max); // $itemid = explode(',', $packageCfg->reward)[0]; # 奖励礼包Id // $itemMO = GameConfig::item_package_getItem($itemid); // my_Assert(null != $itemMO, ErrCode::err_const_no); // $err = StoreProc::AddMultiItemInStore($itemMO->contents); # 发放奖励 // my_Assert(ErrCode::ok == $err, $err); // ctx()->shopdata = $shopdata; # 回写数据 // UserProc::updateUserInfo(); // $user = ctx(); // return Resp::ok(array( // "reward" => $itemMO->contents, // "shopdata" => $shopdata, // 'gold' => $user->baseInfo->gold, // 'cash' => $user->baseInfo->cash, // 'tili' => $user->baseInfo->tili, // 'store' => $user->store, // 'hero' => $user->heros // )); // } // // /** // * 每日检查 // */ // static function DailyCheck() { // CLog::info("shop-每日检查-清除每日/周限量礼包购买记录"); // $zoneid = req()->zoneid; // $uid = req()->uid; // // ctx()->privateState->battleReviveNum = 0; // // $shopdata = new Info_UserShop(ctx()->shopdata); // // // if (TimeUtil::Hour(now()) > 5) { // $shopdata->dayRechargeAmt = 0; //每日每周限购累计金额统计字段重置 // $shopdata->dayRechargeReceived = array(); // // $shopdata->purchasedDailyLimitPackages = array(); # 每天重置 // } // // if (date("N") == 1 && TimeUtil::Hour(now()) > 5) { # 周一重置 // $shopdata->purchasedWeeklyLimitPackages = array(); // $shopdata->weekRechargeAmt = 0; // $shopdata->weekRechargeReceived = array(); // } // if (date("d") == 1 && TimeUtil::Hour(now()) > 5) { # 1号重置 // $shopdata->purchasedMonthlyLimitPackages = array(); // } // // if ($shopdata->monthlyVIP1_ts + 30 * 24 * 3600 > now()) { // $id = 901001; // $card1 = GameConfig::shop_monthVIP_getItem($id); // my_Assert(null != $card1, ErrCode::err_const_no); // EmailProc::SendMonthlyVIPDailyReward($zoneid, $uid, $card1->name, $card1->daily_reward); // } // if ($shopdata->monthlyVIP2_ts + 30 * 24 * 3600 > now()) { // $id = 901002; // $card2 = GameConfig::shop_monthVIP_getItem($id); // my_Assert(null != $card2, ErrCode::err_const_no); // EmailProc::SendMonthlyVIPDailyReward($zoneid, $uid, $card2->name, $card2->daily_reward); // } // // ctx()->shopdata = $shopdata; // } // //}