$goodsMeta['goods_id'], 'goods_meta' => self::goodsMetaToInfo($goodsMeta), 'bought_times' => 0, 'free_num' => 0, ); array_push($goodsList, $goodsDto); switch ($goodsMeta['limit_type']) { case mt\HashRateShop::DAILY_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsMeta['goods_id']); $goodsDto['bought_times'] = $buyRecord ? $buyRecord['this_day_buy_times'] : 0; } break; case mt\HashRateShop::WEEKLY_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsMeta['goods_id']); $goodsDto['bought_times'] = $buyRecord ? $buyRecord['this_week_buy_times'] : 0; } break; case mt\HashRateShop::MONTH_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsMeta['goods_id']); $goodsDto['bought_times'] = $buyRecord ? $buyRecord['this_week_buy_times'] : 0; } break; case mt\HashRateShop::TOTAL_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsMeta['goods_id']); $goodsDto['bought_times'] = $buyRecord ? $buyRecord['total_buy_times'] : 0; } break; default: { } break; } } return $goodsList; } public static function buyLimitCheck($goodsMeta, $goodsNum, &$errCode, &$errMsg) { $errCode = 0; $errMsg = ''; $buyRecordHash = ShopBuyRecord::allToHash(); $boughtTimes = 1; $goodsId = $goodsMeta['goods_id']; { switch ($goodsMeta['limit_type']) { case mt\HashRateShop::DAILY_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsId); $boughtTimes = $buyRecord ? $buyRecord['this_day_buy_times'] + $goodsNum : 1; if ($buyRecord && getXVal($buyRecord, 'this_day_buy_times', 0) >= $goodsMeta['limit_num']) { $errCode = 2; $errMsg = 'Daily purchase limit'; return false; } } break; case mt\HashRateShop::WEEKLY_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsId); $boughtTimes = $buyRecord ? $buyRecord['this_week_buy_times'] + $goodsNum : 1; if ($buyRecord && getXVal($buyRecord, 'this_week_buy_times', 0) >= $goodsMeta['limit_num']) { $errCode = 2; $errMsg = 'Weekly purchase limit reached'; return false; } } break; case mt\HashRateShop::MONTH_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsId); $boughtTimes = $buyRecord ? $buyRecord['this_month_buy_times'] + $goodsNum : 1; if ($buyRecord && getXVal($buyRecord, 'this_month_buy_times', 0) >= $goodsMeta['limit_num']) { $errCode = 2; $errMsg = 'month purchase limit reached'; return false; } } break; case mt\HashRateShop::TOTAL_BUY_LIMIT: { $buyRecord = getXVal($buyRecordHash, $goodsId); $boughtTimes = $buyRecord ? $buyRecord['total_buy_times'] + $goodsNum : 1; if ($buyRecord && getXVal($buyRecord, 'total_buy_times', 0) >= $goodsMeta['limit_num']) { $errCode = 2; $errMsg = 'Purchase limit reached'; return false; } } break; default: { } break; } } return true; } }