enterpriseId = $enterpriseId; $this->cache = Factory::cache('activity'); } /**************************************秒杀商品总数量 start********************************************************/ /** * @param $activityId * @param $goodsId * @return string */ public function createListKey($activityId, $goodsId,$skuId) { return $this->enterpriseId . '_' . $activityId . '_' . $goodsId . '_' .$skuId.'_'. self::$goodsLimitKey; } /** * 插入链表d * @param $activityId * @param $goodsId * @param array $value * @return mixed */ public function lPush($activityId, $goodsId, $skuId,array $value) { $key = self::createListKey($activityId, $goodsId,$skuId); $dbResult = false; foreach ($value as $val) { $dbResult = $this->cache->push($key, $val, 'start'); } return $dbResult; } /** * 减商品限购数量 * @param $activityId * @param $goodsId * @param int $number * @return array */ public function rPop($activityId, $goodsId, $skuId,$number = 1) { $key = self::createListKey($activityId, $goodsId,$skuId); $result = []; for ($i = 0; $i < $number; $i++) { if ($value = $this->cache->pop($key, 'end')) { $result[] = $value; } } return $result; } /** * 秒杀活动商品剩余数量 * @param $activityId * @param $goodsId * @param $skuId * @return mixed */ public function getLen($activityId, $goodsId,$skuId) { $key = self::createListKey($activityId, $goodsId,$skuId); return $this->cache->llen($key); } /** * 删除key * @param $activityId * @param $goodsId * @return mixed */ public function delKey($activityId, $goodsId,$skuId) { $key = self::createListKey($activityId, $goodsId,$skuId); return $this->cache->del($key); } /**************************************秒杀商品总数量 end********************************************************/ /**************************************用户活动商品限购数量 start******************************************************/ /** * 用户限购表 * @param $activityId * @return string */ public function createTableKey($activityId) { return $this->enterpriseId . '_' . $activityId . '_' . self::$userLimitTable; } /** * 活动商品购买记录 * @param $activityId * @param $goodsId * @param $skuId * @param $userCenterId * @param int $number * @return mixed */ public function writeLimit($activityId, $goodsId, $skuId, $userCenterId, $number = 1) { $table = self::createTableKey($activityId); return $this->cache->hset($table, $goodsId . '_' . $skuId . '_' . $userCenterId, $number); } /** * 缓存活动数据 * @param $activityId * @param $goodsId * @param $value * @return mixed */ public function writeActivity($activityId, $value) { $table = self::createTableKey($activityId); return $this->cache->hset($table, self::$activityDetails, json_encode($value)); } /** * 获取活动详情 * @param $activityId * @return mixed */ public function getActivity($activityId) { $table = self::createTableKey($activityId); $result = $this->cache->hget($table, self::$activityDetails); if (!empty($result)) { $result = json_decode($result, true); } return $result; } /** * 获取用户已购购数量 * @param $activityId * @param $goodsId * @param $skuId * @param $userCenterId * @return mixed */ public function getLimit($activityId, $goodsId, $skuId,$userCenterId) { $table = self::createTableKey($activityId); return $this->cache->hget($table, $goodsId . '_' . $skuId . '_' . $userCenterId); } }