| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace addons\Seckill\common\logic;
- use common\enums\AddonsEnum;
- use common\enums\RedisKeyEnum;
- use common\traits\ErrorTrait;
- use Yii;
- use Exception;
- use addons\Seckill\common\models\SeckillActivity;
- class ActivityLogic
- {
- private static function getStockKey($activity_id)
- {
- $key = RedisKeyEnum::suffix(RedisKeyEnum::SECKILL_ACTIVITY_STOCK, $activity_id, true);
- return $key;
- }
- public static function getNowStock($activity_id)
- {
- $key = self::getStockKey($activity_id);
- $redis = Yii::$app->redis;
- $stock = $redis->get($key);
- return $stock;
- }
- /**
- * 设置活动缓存[当缓存不存在时有效]
- * @param $activity_id
- * @param $activity_stock
- * @return
- */
- public static function setStock($activity_id,$activity_stock,$force=false)
- {
- $key = self::getStockKey($activity_id);
- $redis = Yii::$app->redis;
- if($force){
- $res = $redis->set($key,$activity_stock);
- }else{
- $res = $redis->setnx($key,$activity_stock);
- }
- return $res;
- }
- /**
- * 库存减1操作
- * @param $activity_id
- * @return bool
- */
- public static function decrStock($activity_id)
- {
- $key = self::getStockKey($activity_id);
- $redis = Yii::$app->redis;
- $result = $redis->decr($key);
- if($result >= 0){
- return true;
- }
- return false;
- }
- /**
- * 库存减1操作
- * @param $activity_id
- * @return bool
- */
- public static function incrStock($activity_id)
- {
- $key = self::getStockKey($activity_id);
- $redis = Yii::$app->redis;
- $result = $redis->incr($key);
- if($result >= 0){
- return true;
- }
- return false;
- }
- }
|