|
|
@@ -61,6 +61,7 @@ class OrderController extends ApiController
|
|
|
$table_number = $commonServer->filtrationStr('table_number');//桌号
|
|
|
$diner_number = $commonServer->filtrationStr('diner_number');//就餐人数
|
|
|
$note = $commonServer->filtrationStr('note');//备注
|
|
|
+ $reserve_time = $commonServer->filtrationStr('reserve_time');//预约时间
|
|
|
|
|
|
if (empty($shop_id)) return $this->apiResponseError('商家错误');
|
|
|
if (!in_array($order_type,[1,2])){
|
|
|
@@ -73,6 +74,32 @@ class OrderController extends ApiController
|
|
|
if ($diner_number > 0) return $this->apiResponseError('就餐人数最大1000');
|
|
|
if (!empty($note) && mb_strlen($note) > 50 ) return $this->apiResponseError('备注最大50');
|
|
|
|
|
|
+ if(!empty($reserve_time)){
|
|
|
+ // 将预约时间转换为时间戳
|
|
|
+ $reserve_timestamp = strtotime($reserve_time);
|
|
|
+ // 获取当前时间
|
|
|
+ $current_time = time();
|
|
|
+ // 计算20分钟后的时间
|
|
|
+ $time_plus_20min = $current_time + (20 * 60);
|
|
|
+ // 获取今天的日期(Y-m-d格式)
|
|
|
+ $today_date = date('Y-m-d');
|
|
|
+ // 获取预约时间的日期部分
|
|
|
+ $reserve_date = date('Y-m-d', $reserve_timestamp);
|
|
|
+
|
|
|
+ // 判断预约时间是否是今天且比当前时间大20分钟
|
|
|
+ if ($reserve_date === $today_date && $reserve_timestamp >= $time_plus_20min) {
|
|
|
+ // 检查预约时间是否不超过今天结束时间
|
|
|
+ $end_of_today = strtotime(date('Y-m-d 23:59:59'));
|
|
|
+ if ($reserve_timestamp >= $end_of_today) {
|
|
|
+ return $this->apiResponseError('预约时间不正确');
|
|
|
+ }
|
|
|
+ } elseif($reserve_date !== $today_date) {
|
|
|
+ return $this->apiResponseError('预约时间不超过今天');
|
|
|
+ }
|
|
|
+ $is_reserve = 1;
|
|
|
+ }else{
|
|
|
+ $is_reserve = 0;
|
|
|
+ }
|
|
|
//获取商家信息
|
|
|
$shop = ShopServer::creatServer()->getShopInfo($shop_id);
|
|
|
if (empty($shop)) return $this->apiResponseError('该商家不存在');
|
|
|
@@ -90,7 +117,7 @@ class OrderController extends ApiController
|
|
|
return $this->apiResponseError('下单人数过多,请稍候');
|
|
|
}
|
|
|
//下单
|
|
|
- $res = OrderServer::creatServer()->createOrder($m_id,$shop_id,$order_type,$table_number,$diner_number,$note,$goods);
|
|
|
+ $res = OrderServer::creatServer()->createOrder($m_id,$shop_id,$order_type,$table_number,$diner_number,$is_reserve,$reserve_time,$note,$goods);
|
|
|
|
|
|
//删除锁key-防止死锁
|
|
|
RedisDataServer::creatServer()->unLockKey($lock_key,$lock_value);
|
|
|
@@ -114,6 +141,7 @@ class OrderController extends ApiController
|
|
|
$diner_number = $commonServer->filtrationStr('diner_number');//就餐人数
|
|
|
$note = $commonServer->filtrationStr('note');//备注
|
|
|
$shopping_cart = request()->input('shopping_cart',[]);//商品规格数组
|
|
|
+ $reserve_time = $commonServer->filtrationStr('reserve_time');//预约时间
|
|
|
|
|
|
if (empty($shop_id)) return $this->apiResponseError('商家错误');
|
|
|
if (!in_array($order_type,[1,2])){
|
|
|
@@ -127,6 +155,34 @@ class OrderController extends ApiController
|
|
|
if ($diner_number > 1000) return $this->apiResponseError('就餐人数最大1000');
|
|
|
if (!empty($note) && mb_strlen($note) > 50 ) return $this->apiResponseError('备注最大50');
|
|
|
|
|
|
+ if(!empty($reserve_time)){
|
|
|
+ // 将预约时间转换为时间戳
|
|
|
+ $reserve_timestamp = strtotime($reserve_time);
|
|
|
+ // 获取当前时间
|
|
|
+ $current_time = time();
|
|
|
+ // 计算20分钟后的时间
|
|
|
+ $time_plus_20min = $current_time + (20 * 60);
|
|
|
+ // 获取今天的日期(Y-m-d格式)
|
|
|
+ $today_date = date('Y-m-d');
|
|
|
+ // 获取预约时间的日期部分
|
|
|
+ $reserve_date = date('Y-m-d', $reserve_timestamp);
|
|
|
+
|
|
|
+ // 判断预约时间是否是今天且比当前时间大20分钟
|
|
|
+ if ($reserve_date === $today_date && $reserve_timestamp >= $time_plus_20min) {
|
|
|
+ // 检查预约时间是否不超过今天结束时间
|
|
|
+ $end_of_today = strtotime(date('Y-m-d 23:59:59'));
|
|
|
+ if ($reserve_timestamp >= $end_of_today) {
|
|
|
+ return $this->apiResponseError('预约时间不正确');
|
|
|
+ }
|
|
|
+ } elseif($reserve_date !== $today_date) {
|
|
|
+ return $this->apiResponseError('预约时间不超过今天');
|
|
|
+ }
|
|
|
+ $is_reserve = 1;
|
|
|
+ $reserve_time = date('Y-m-d H:i:s', $reserve_timestamp);
|
|
|
+ }else{
|
|
|
+ $is_reserve = 0;
|
|
|
+ $reserve_time = date('Y-m-d H:i:s');
|
|
|
+ }
|
|
|
//获取商家信息
|
|
|
$shop = ShopServer::creatServer()->getShopInfo($shop_id);
|
|
|
if (empty($shop)) return $this->apiResponseError('该商家不存在');
|
|
|
@@ -150,7 +206,7 @@ class OrderController extends ApiController
|
|
|
return $this->apiResponseError('下单人数过多,请稍候');
|
|
|
}
|
|
|
//下单
|
|
|
- $res = OrderServer::creatServer()->createOrder($m_id,$shop_id,$order_type,$table_number,$diner_number,$note,$goods,$shopping_cart);
|
|
|
+ $res = OrderServer::creatServer()->createOrder($m_id,$shop_id,$order_type,$table_number,$diner_number,$is_reserve,$reserve_time,$note,$goods,$shopping_cart);
|
|
|
|
|
|
//删除锁key-防止死锁
|
|
|
RedisDataServer::creatServer()->unLockKey($lock_key,$lock_value);
|