feat : check
This commit is contained in:
@@ -166,8 +166,6 @@ class OrderGoodStockConsumer extends ConsumerMessage
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return Result::ACK;
|
||||
} catch (Exception $e) {
|
||||
if (!empty($this->rollbackStockCache)) {
|
||||
|
||||
@@ -114,6 +114,15 @@ class AdminRedisKey
|
||||
return 'catering:meal:is:cycle_id:'.$cycleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $cycleId
|
||||
* @return string
|
||||
*/
|
||||
public static function mealIsCateringBySkuId(string $cycleId): string
|
||||
{
|
||||
return 'catering:meal:sku:cycle_id:'.$cycleId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 套餐配餐点位顺序
|
||||
|
||||
@@ -17,13 +17,18 @@ use App\Model\Order;
|
||||
use App\Model\OrderGood;
|
||||
use App\Model\OrderMealCateringLog;
|
||||
use App\Service\Admin\Catering\CateringBaseService;
|
||||
use App\Service\ServiceTrait\Admin\Catering\PrintTrait;
|
||||
use Exception;
|
||||
use Hyperf\DbConnection\Db;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
|
||||
class CheckService extends CateringBaseService
|
||||
{
|
||||
|
||||
use PrintTrait;
|
||||
|
||||
/**
|
||||
* @var OrderMealCateringLog
|
||||
*/
|
||||
@@ -49,6 +54,8 @@ class CheckService extends CateringBaseService
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function handle(): array
|
||||
{
|
||||
@@ -67,7 +74,7 @@ class CheckService extends CateringBaseService
|
||||
->where('quantity','>',0)
|
||||
->first();
|
||||
|
||||
if (!empty($todayLog)) return $this->return->success();
|
||||
if (!empty($todayLog)) return $this->closeSku();
|
||||
|
||||
$orderIds = $this->orderModel
|
||||
->where('cycle_id', $this->cycleId)
|
||||
@@ -88,6 +95,18 @@ class CheckService extends CateringBaseService
|
||||
return $this->return->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
private function closeSku(): array
|
||||
{
|
||||
$this->closeMealSku((int)$this->request->input('sku_id'), $this->cycleId);
|
||||
|
||||
return $this->return->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
|
||||
@@ -342,4 +342,38 @@ trait PrintTrait
|
||||
|
||||
return CateringCode::REDIS_FINISH_VALUE == $this->redis->hGet($this->stopMealOrderKey, (string)$siteId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $skuId
|
||||
* @param int $cycleId
|
||||
* @return void
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
protected function closeMealSku(int $skuId, int $cycleId): void
|
||||
{
|
||||
$key = AdminRedisKey::mealIsCateringBySkuId($cycleId);
|
||||
|
||||
$hashKey = (string)$skuId;
|
||||
|
||||
if (CateringCode::REDIS_FINISH_VALUE == $this->redis->hGet($key, $hashKey)) return;
|
||||
|
||||
$this->redis->hSet($key, $hashKey, CateringCode::REDIS_FINISH_VALUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $skuId
|
||||
* @param int $cycleId
|
||||
* @return bool
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
protected function checkSkuMeal(int $skuId, int $cycleId): bool
|
||||
{
|
||||
$key = AdminRedisKey::mealIsCateringBySkuId($cycleId);
|
||||
|
||||
$hashKey = (string)$skuId;
|
||||
|
||||
return CateringCode::REDIS_FINISH_VALUE == $this->redis->hGet($key, $hashKey);
|
||||
}
|
||||
}
|
||||
@@ -112,6 +112,8 @@ trait OrderTrait
|
||||
if ($this->orderType != OrderCode::ORDER_TYPE_MEAL) return;
|
||||
|
||||
if ($this->isMealCateringByCache($this->siteId, $key, $this->cycleId)) throw new ErrException('该点位的套餐'.$this->skuArr[$key]['title'].'已配餐截单,请选择其他套餐');
|
||||
|
||||
if ($this->checkSkuMeal($key, $this->cycleId)) throw new ErrException('该套餐'.$this->skuArr[$key]['title'].'已配餐截单,请选择其他套餐');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user