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