Browse Source

商品check日志

master
weigang 5 years ago
parent
commit
7d531d62b1
  1. 27
      app/Service/v3/Implementations/GoodsActivityService.php
  2. 23
      app/Service/v3/Implementations/GoodsService.php

27
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;
}

23
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;
}

Loading…
Cancel
Save