diff --git a/app/Service/v3/Implementations/GoodsActivityService.php b/app/Service/v3/Implementations/GoodsActivityService.php index 2eeb762..5fdb515 100644 --- a/app/Service/v3/Implementations/GoodsActivityService.php +++ b/app/Service/v3/Implementations/GoodsActivityService.php @@ -2,21 +2,28 @@ namespace App\Service\v3\Implementations; +use App\Commons\Log; use App\Constants\v3\ActivityType; use App\Constants\v3\ErrorCode; +use App\Constants\v3\LogLabel; use App\Constants\v3\SsdbKeys; -use App\Exception\ErrorCodeException; use App\Service\v3\Interfaces\GoodsActivityServiceInterface; use App\TaskWorker\SSDBTask; -use App\Constants\v3\Store; -use App\Constants\v3\Goods; use App\Model\v3\GoodsActivity; use App\Model\v3\GoodsActivityBanner; use Hyperf\Redis\Redis; use Hyperf\Utils\ApplicationContext; +use Hyperf\Di\Annotation\Inject; class GoodsActivityService implements GoodsActivityServiceInterface { + + /** + * @Inject + * @var Log + */ + protected $log; + public function do($goodsId) { @@ -29,21 +36,29 @@ class GoodsActivityService implements GoodsActivityServiceInterface $inventoryKey = 'goods_inventory_sold_2_'.$goods->id; // 拼接activity_type和goods_id if (empty($goods)) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_NOT_EXISTS); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_NOT_EXISTS; } // 活动是否已经结束 if ($goods->expire_time < time()) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_EXPIRED); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_EXPIRED; } // 商户歇业 if($goods->store->is_rest == 1){ + $message = ErrorCode::getMessage(ErrorCode::STORE_REST); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::STORE_REST; } // 商品下架或已删除 if($goods->on_sale == 0 || !is_null($goods->deleted_at)){ + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_ON_SALE_NO); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_ON_SALE_NO; } @@ -52,11 +67,15 @@ class GoodsActivityService implements GoodsActivityServiceInterface $inventoryFrozen = (int)$redis->get($inventoryKey); // $inventoryFrozen = 0; if($goods->is_infinite != 1 && $goods->inventory < ($num+$inventoryFrozen)){ + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_INVENTORY_ERROR); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'inventoryKey' => $inventoryKey, 'inventoryFrozen' => $inventoryFrozen, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_INVENTORY_ERROR; } // 是否超过限购数量 if ($goods->restrict_num != 0 && $goods->restrict_num < $num) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_RESTRICT_LIMIT); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_RESTRICT_LIMIT; } @@ -64,6 +83,8 @@ class GoodsActivityService implements GoodsActivityServiceInterface $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); $hasBuy = $ssdb->exec('get', SsdbKeys::ACTIVITY_GOODS_BUY_RECORD.$userId.'_'.$goods->type.'_'.$goods->id); if ($hasBuy && $hasBuy >= $goods->time_limit_num) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_ACTIVITY_BUY); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'has_buy' => $hasBuy, 'ssdb_key' => SsdbKeys::ACTIVITY_GOODS_BUY_RECORD.$userId.'_'.$goods->type.'_'.$goods->id, 'buy_num' => $num, 'user_id' => $userId, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ACTIVITY_BUY; } diff --git a/app/Service/v3/Implementations/GoodsService.php b/app/Service/v3/Implementations/GoodsService.php index 986f6e7..2848be5 100644 --- a/app/Service/v3/Implementations/GoodsService.php +++ b/app/Service/v3/Implementations/GoodsService.php @@ -2,19 +2,26 @@ namespace App\Service\v3\Implementations; +use App\Commons\Log; use App\Constants\v3\ErrorCode; +use App\Constants\v3\LogLabel; use App\Exception\ErrorCodeException; use App\Service\v3\Interfaces\GoodsServiceInterface; -use Hyperf\DbConnection\Db; use App\Model\v3\Goods; use App\Model\v3\GoodsBanner; -use App\Constants\v3\Store; -use App\Constants\v3\goods as goodsConstants; use Hyperf\Redis\Redis; use Hyperf\Utils\ApplicationContext; +use Hyperf\Di\Annotation\Inject; class GoodsService implements GoodsServiceInterface { + + /** + * @Inject + * @var Log + */ + protected $log; + public function do($goodsId) { @@ -27,15 +34,21 @@ class GoodsService implements GoodsServiceInterface $inventoryKey = 'goods_inventory_sold_1_'.$goods->id; // 拼接activity_type和goods_id if (empty($goods)) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_NOT_EXISTS); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_NOT_EXISTS; } // 商户歇业 if($goods->store->is_rest == 1){ + $message = ErrorCode::getMessage(ErrorCode::STORE_REST); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'logData' => json_encode($goods)]); return ErrorCode::STORE_REST; } // 商品下架或已删除 if($goods->on_sale == 0 || !is_null($goods->deleted_at)){ + $message = ErrorCode::getMessage(ErrorCode::GOODS_ON_SALE_NO); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_ON_SALE_NO; } // 商品库存不足 @@ -43,11 +56,15 @@ class GoodsService implements GoodsServiceInterface //$inventoryFrozen = (int)$redis->get($inventoryKey); $inventoryFrozen = 0; if($goods->is_infinite != 1 && $goods->inventory < ($num+$inventoryFrozen)){ + $message = ErrorCode::getMessage(ErrorCode::GOODS_INVENTORY_ERROR); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'inventoryFrozen' => $inventoryFrozen, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_INVENTORY_ERROR; } // 是否超过限购数量 if ($goods->restrict_num != 0 && $goods->restrict_num < $num) { + $message = ErrorCode::getMessage(ErrorCode::GOODS_RESTRICT_LIMIT); + $this->log->event(LogLabel::ERROR_CODE_EXCEPTION_LOG_DATA, ['message' => $message, 'buy_num' => $num, 'logData' => json_encode($goods)]); return ErrorCode::GOODS_RESTRICT_LIMIT; }