theme=2,增加vip围餐功能
Change-Id: I53231da8c8e7e58e6af4dba5ade98de7d7d284a3
This commit is contained in:
parent
3ba4e84793
commit
9c70e8586b
|
@ -173,6 +173,7 @@ class Dishes extends REST_Controller
|
||||||
$meal_date = $this->get_meal_date($meal_dates[$dining_hall_id], $date_id);
|
$meal_date = $this->get_meal_date($meal_dates[$dining_hall_id], $date_id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
$data['deliver_place_meal_list'] = $meal_date->deliver_place_list;
|
||||||
|
|
||||||
$is_birth = $this->common->is_birth_date($user, $date_id);
|
$is_birth = $this->common->is_birth_date($user, $date_id);
|
||||||
if($is_birth) { //生日餐
|
if($is_birth) { //生日餐
|
||||||
|
@ -228,6 +229,9 @@ class Dishes extends REST_Controller
|
||||||
$total = $this->common->get_cart_total_price($this->user, $type);
|
$total = $this->common->get_cart_total_price($this->user, $type);
|
||||||
$cart_total_price = $total['total_price'];
|
$cart_total_price = $total['total_price'];
|
||||||
$cart_total_num = $total['total_num'];
|
$cart_total_num = $total['total_num'];
|
||||||
|
// 当前date_id的购物车,围餐房间号id
|
||||||
|
$cart_info = $this->common->get_cart_total_price($this->user, $type, $date_id);
|
||||||
|
$data['deliver_place_data'] = $cart_info['deliver_place_data'];
|
||||||
|
|
||||||
$data['order'] = array('num' => $cart_total_num, 'price' => $cart_total_price, 'status' => $status);
|
$data['order'] = array('num' => $cart_total_num, 'price' => $cart_total_price, 'status' => $status);
|
||||||
$data['dining_hall_id'] = $dining_hall_id;
|
$data['dining_hall_id'] = $dining_hall_id;
|
||||||
|
@ -1041,6 +1045,7 @@ class Dishes extends REST_Controller
|
||||||
$date_dishes_id = $this->input->post('date_dish_id');
|
$date_dishes_id = $this->input->post('date_dish_id');
|
||||||
$num = $this->input->post('num');
|
$num = $this->input->post('num');
|
||||||
$date_dishes_ids = stripslashes($this->input->post('date_dish_ids'));
|
$date_dishes_ids = stripslashes($this->input->post('date_dish_ids'));
|
||||||
|
$deliver_place_id = intval($this->input->post('deliver_place_id')) ?: null;
|
||||||
|
|
||||||
// 限制订餐时间 order/add 也有判断
|
// 限制订餐时间 order/add 也有判断
|
||||||
$companyInfo = $this->Common_model->sql_get_one("select * from tb_company where id=".$this->user->company_id);
|
$companyInfo = $this->Common_model->sql_get_one("select * from tb_company where id=".$this->user->company_id);
|
||||||
|
@ -1186,7 +1191,7 @@ class Dishes extends REST_Controller
|
||||||
$type = $this->get_type($dishes_info->dish_type);
|
$type = $this->get_type($dishes_info->dish_type);
|
||||||
//$date = $this->Common_model->get_date_by_date_id($dishes_info->date_id);
|
//$date = $this->Common_model->get_date_by_date_id($dishes_info->date_id);
|
||||||
|
|
||||||
$result = $this->update_cart_single_dishes($dishes_info, $type, $v->num);
|
$result = $this->update_cart_single_dishes($dishes_info, $type, $v->num, $deliver_place_id);
|
||||||
if ($result['status'] != 1) {
|
if ($result['status'] != 1) {
|
||||||
$result['data'] = $data;
|
$result['data'] = $data;
|
||||||
$this->response($result, REST_Controller::HTTP_OK);
|
$this->response($result, REST_Controller::HTTP_OK);
|
||||||
|
@ -1226,7 +1231,7 @@ class Dishes extends REST_Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function update_cart_single_dishes($dishes_info, $type, $num)
|
private function update_cart_single_dishes($dishes_info, $type, $num, $deliver_place_id = '')
|
||||||
{
|
{
|
||||||
//print_r($dishes_info);
|
//print_r($dishes_info);
|
||||||
$cart_dishes = $this->Cart_model->get_cart_dishes($this->user->id, $dishes_info->id);
|
$cart_dishes = $this->Cart_model->get_cart_dishes($this->user->id, $dishes_info->id);
|
||||||
|
@ -1241,11 +1246,26 @@ class Dishes extends REST_Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 围餐的判断:
|
||||||
|
if($deliver_place_id == ''){
|
||||||
|
// 如果mealtype=6,且deliver_place_id=空,就返回错误
|
||||||
|
$mealTypeInfo = $this->Common_model->sql_get_one("select c.mealtype from tb_date_dish a, tb_date b, tb_meal_type c where a.date_id=b.id and b.dc_type=c.id and a.id=".$dishes_info->id);
|
||||||
|
if ($mealTypeInfo['mealtype'] == 6) {
|
||||||
|
return array(
|
||||||
|
'status' => 0,
|
||||||
|
'message' => '请选择围餐房间',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (count($cart_dishes) > 0) {
|
if (count($cart_dishes) > 0) {
|
||||||
$cart_dishes = $cart_dishes[0];
|
$cart_dishes = $cart_dishes[0];
|
||||||
if ($num > 0) {
|
if ($num > 0) {
|
||||||
$t_data = array("id" => $cart_dishes->id, "uid" => $this->user->id, "date_dish_id" => $dishes_info->id,
|
$t_data = array("id" => $cart_dishes->id, "uid" => $this->user->id, "date_dish_id" => $dishes_info->id,
|
||||||
"num" => $num, "price" => $dish_price, "type" => $type, "expire_time" => time() + $cart_expire_time);
|
"num" => $num, "price" => $dish_price, "type" => $type, "expire_time" => time() + $cart_expire_time);
|
||||||
|
if($deliver_place_id != ''){
|
||||||
|
$t_data['deliver_place_id'] = $deliver_place_id;
|
||||||
|
}
|
||||||
|
|
||||||
$r = $this->Cart_model->replace_cart($t_data);
|
$r = $this->Cart_model->replace_cart($t_data);
|
||||||
if (!$r) {
|
if (!$r) {
|
||||||
|
@ -1266,7 +1286,9 @@ class Dishes extends REST_Controller
|
||||||
} else if ($num > 0) {
|
} else if ($num > 0) {
|
||||||
$t_data = array("uid" => $this->user->id, "date_dish_id" => $dishes_info->id,
|
$t_data = array("uid" => $this->user->id, "date_dish_id" => $dishes_info->id,
|
||||||
"num" => $num, "price" => $dish_price, "type" => $type, "expire_time" => time() + $cart_expire_time);
|
"num" => $num, "price" => $dish_price, "type" => $type, "expire_time" => time() + $cart_expire_time);
|
||||||
|
if($deliver_place_id != ''){
|
||||||
|
$t_data['deliver_place_id'] = $deliver_place_id;
|
||||||
|
}
|
||||||
$r = $this->Cart_model->insert_cart($t_data);
|
$r = $this->Cart_model->insert_cart($t_data);
|
||||||
if ($r > 0) {
|
if ($r > 0) {
|
||||||
// $cart_id = $r;
|
// $cart_id = $r;
|
||||||
|
@ -1356,11 +1378,13 @@ class Dishes extends REST_Controller
|
||||||
$date_text = $month . '月' . $day . '日' . '(周' . cnWeek($date) . ')';
|
$date_text = $month . '月' . $day . '日' . '(周' . cnWeek($date) . ')';
|
||||||
|
|
||||||
$dc_type_info = $this->Common_model->get_meal_type_by_id($cd->dc_type);
|
$dc_type_info = $this->Common_model->get_meal_type_by_id($cd->dc_type);
|
||||||
|
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['date_name'] = $date_text;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['date_name'] = $date_text;
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['type'] = $cd->type;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['type'] = $cd->type;
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['date_id'] = $cd->date_id;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['date_id'] = $cd->date_id;
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['meal_name'] = $dc_type_info->name;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['meal_name'] = $dc_type_info->name;
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['notes'] = $dc_type_info->notes;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['notes'] = $dc_type_info->notes;
|
||||||
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['mealtype'] = $dc_type_info->mealtype;
|
||||||
$dishes = $this->Dishes_model->get_dishes_by_dishes_id($cd->dish_id);
|
$dishes = $this->Dishes_model->get_dishes_by_dishes_id($cd->dish_id);
|
||||||
$cd->dish_name = $dishes->dish_name;
|
$cd->dish_name = $dishes->dish_name;
|
||||||
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['data'][] = $cd;
|
$result[$cd->dining_hall_id]['data'][$cd->dc_date]['data'][$cd->dc_type]['data'][] = $cd;
|
||||||
|
@ -1385,6 +1409,20 @@ class Dishes extends REST_Controller
|
||||||
|
|
||||||
foreach ($v2['data'] as &$v3) {
|
foreach ($v2['data'] as &$v3) {
|
||||||
// print_r($v3);
|
// print_r($v3);
|
||||||
|
if($v3['mealtype'] == 6){
|
||||||
|
$v3Data = json_decode(json_encode($v3['data']), 1);
|
||||||
|
// 围餐展示房间信息
|
||||||
|
$cart_deliver_place_ids = array_column($v3Data, 'deliver_place_id');
|
||||||
|
// 去重
|
||||||
|
$cart_deliver_place_ids = array_unique($cart_deliver_place_ids);
|
||||||
|
if(count($cart_deliver_place_ids) == 1 && !empty($cart_deliver_place_ids[0])){
|
||||||
|
$v3['deliver_place_id'] = $cart_deliver_place_ids[0];
|
||||||
|
$v3['deliver_place_name'] = $this->Common_model->sql_get_one("select name from tb_order_deliver_place where enabled=1 and id=".$cart_deliver_place_ids[0])['name'];
|
||||||
|
}else{
|
||||||
|
$v3['deliver_place_id'] = null;
|
||||||
|
$v3['deliver_place_name'] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$total = $this->common->get_cart_total_price($this->user, $v3['type'], $v3['date_id']);
|
$total = $this->common->get_cart_total_price($this->user, $v3['type'], $v3['date_id']);
|
||||||
|
|
||||||
|
@ -1713,4 +1751,26 @@ class Dishes extends REST_Controller
|
||||||
)
|
)
|
||||||
), REST_Controller::HTTP_OK);
|
), REST_Controller::HTTP_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateCartDeliverPlaceId_post(){
|
||||||
|
$user_id = $this->user->id;
|
||||||
|
$date_id = $this->input->post('date_id');
|
||||||
|
$deliver_place_id = $this->input->post('deliver_place_id');
|
||||||
|
|
||||||
|
$res = $this->Cart_model->update_cart_by_uid_and_date_id($date_id, $user_id, $deliver_place_id);
|
||||||
|
if($res){
|
||||||
|
$this->response(array(
|
||||||
|
'status' => 1,
|
||||||
|
'message' => 'ok',
|
||||||
|
'data' => array()
|
||||||
|
), REST_Controller::HTTP_OK);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$this->response(array(
|
||||||
|
'status' => 0,
|
||||||
|
'message' => '更新失败',
|
||||||
|
'data' => array()
|
||||||
|
), REST_Controller::HTTP_OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,6 +169,44 @@ class Order extends REST_Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断围餐,mealtype=6,deliver_place_id不能为空
|
||||||
|
$dateInfo = $this->Dishes_model->get_date_info_by_date_id($k);
|
||||||
|
if($dateInfo['mealtype'] == 6){
|
||||||
|
$date = $dateInfo['dc_date'];
|
||||||
|
$dc_type_name = $dateInfo['dc_type_name'];
|
||||||
|
foreach ($d as $cart_k => $cart_v) {
|
||||||
|
if(empty($cart_v->deliver_place_id)){
|
||||||
|
// 找出$k(date_id)对应的日期和餐次
|
||||||
|
$dateInfo = $this->Dishes_model->get_date_info_by_date_id($k);
|
||||||
|
|
||||||
|
$this->response(array(
|
||||||
|
'status' => 0,
|
||||||
|
'message' => "请先选择【{$date} {$dc_type_name}】的围餐房间",
|
||||||
|
'data' => $data
|
||||||
|
), REST_Controller::HTTP_OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$deliver_place_ids = json_decode(json_encode($d), 1);
|
||||||
|
// 获取deliver_place_id
|
||||||
|
$deliver_place_ids = array_column($deliver_place_ids, 'deliver_place_id');
|
||||||
|
$deliver_place_ids = array_unique($deliver_place_ids);
|
||||||
|
if(count($deliver_place_ids) != 1){
|
||||||
|
$this->response(array(
|
||||||
|
'status' => 0,
|
||||||
|
'message' => "请先选择【{$date} {$dc_type_name}】的围餐房间。",
|
||||||
|
'data' => $data
|
||||||
|
), REST_Controller::HTTP_OK);
|
||||||
|
}
|
||||||
|
// 再判断当前date_id,deliver_place_id是否已经被占用
|
||||||
|
$check_deliver_place_id = $this->Common_model->sql_get_one("select * from tb_order where date_id = {$k} and deliver_place_id = {$deliver_place_ids[0]} and state_id in (3,6)");
|
||||||
|
if($check_deliver_place_id){
|
||||||
|
$this->response(array(
|
||||||
|
'status' => 0,
|
||||||
|
'message' => "【{$date} {$dc_type_name}】的围餐房间已被占用,请重新选择。",
|
||||||
|
'data' => $data
|
||||||
|
), REST_Controller::HTTP_OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$this->load->model('User_model', '', TRUE);
|
$this->load->model('User_model', '', TRUE);
|
||||||
|
|
||||||
|
@ -378,6 +416,13 @@ class Order extends REST_Controller
|
||||||
// print_r($order);
|
// print_r($order);
|
||||||
// exit;
|
// exit;
|
||||||
|
|
||||||
|
// 设置围餐的信息
|
||||||
|
$dateInfo = $this->Dishes_model->get_date_info_by_date_id($k);
|
||||||
|
if($dateInfo['mealtype'] == 6) {
|
||||||
|
// 获取房间号
|
||||||
|
$order['deliver_place_id'] = $d[0]->deliver_place_id;
|
||||||
|
}
|
||||||
|
|
||||||
$t_total_price += $total['total_price'];
|
$t_total_price += $total['total_price'];
|
||||||
$t_total_num += $total['total_num'];
|
$t_total_num += $total['total_num'];
|
||||||
|
|
||||||
|
|
|
@ -289,11 +289,19 @@ class Common
|
||||||
$total_price = 0;
|
$total_price = 0;
|
||||||
|
|
||||||
$cart_dishes_sort = $this->sort_cart_dishes_by_date_id($cart_dishes);
|
$cart_dishes_sort = $this->sort_cart_dishes_by_date_id($cart_dishes);
|
||||||
|
// 围餐房间id
|
||||||
|
$deliver_place_ids = [];
|
||||||
foreach ($cart_dishes_sort as $k => $cd) {
|
foreach ($cart_dishes_sort as $k => $cd) {
|
||||||
$fee = 0;
|
$fee = 0;
|
||||||
$date = $this->_CI->Common_model->get_date_by_date_id($k);
|
$date = $this->_CI->Common_model->get_date_by_date_id($k);
|
||||||
|
|
||||||
|
if($date_id){
|
||||||
|
foreach ($cd as $v) {
|
||||||
|
// 传了date_id,就是当前date_id的购物车内容
|
||||||
|
$deliver_place_ids[] = $v->deliver_place_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($type == DISHES_TYPE_COMMON) {
|
if ($type == DISHES_TYPE_COMMON) {
|
||||||
$fee = $this->get_fee($type, $date);
|
$fee = $this->get_fee($type, $date);
|
||||||
}
|
}
|
||||||
|
@ -316,7 +324,29 @@ class Common
|
||||||
}
|
}
|
||||||
$total_price += $fee;
|
$total_price += $fee;
|
||||||
}
|
}
|
||||||
return array("total_price" => $total_price, "total_num" => $cart_total_num);
|
|
||||||
|
if($date_id){
|
||||||
|
// 去重,如果存在空值,或者数量不等于1,就不不返回,让它重新选择房间号,update房间号到tb_cart.deliver_place_id
|
||||||
|
$deliver_place_ids = array_unique($deliver_place_ids);
|
||||||
|
if(count($deliver_place_ids) == 1 && $deliver_place_ids[0] != '') {
|
||||||
|
$deliver_place_id = $deliver_place_ids[0];
|
||||||
|
$deliver_place_name = $this->_CI->Common_model->sql_get_one("select * from tb_order_deliver_place where id = '{$deliver_place_id}' and enabled = 1");
|
||||||
|
if($deliver_place_name){
|
||||||
|
$deliver_place_data = $date_id."_".$deliver_place_id."_".$deliver_place_name['name'];
|
||||||
|
// 判断当前的围餐房间号是否被占用
|
||||||
|
// 已被占用,再次遍历$cart_dishes_sort,将deliver_place_id置空
|
||||||
|
$order_has_deliver_place_id = $this->_CI->Common_model->sql_get_one("select * from tb_order where date_id='{$date_id}' and deliver_place_id = '{$deliver_place_id}' and state_id in (3,6) ");
|
||||||
|
if($order_has_deliver_place_id){
|
||||||
|
// 当前房间号已被占用
|
||||||
|
$deliver_place_data = '';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$deliver_place_data = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return array("total_price" => $total_price, "total_num" => $cart_total_num, 'deliver_place_data' => $deliver_place_data);
|
||||||
} else {
|
} else {
|
||||||
return array("total_price" => 0, "total_num" => 0);
|
return array("total_price" => 0, "total_num" => 0);
|
||||||
}
|
}
|
||||||
|
@ -507,7 +537,6 @@ class Common
|
||||||
if ($order) {
|
if ($order) {
|
||||||
$orderid = $order->id;
|
$orderid = $order->id;
|
||||||
$order_detail = $this->_CI->Order_model->get_order_detail_by_order_id($orderid, base_url(), '');
|
$order_detail = $this->_CI->Order_model->get_order_detail_by_order_id($orderid, base_url(), '');
|
||||||
|
|
||||||
$take_code = $order->take_food_code;
|
$take_code = $order->take_food_code;
|
||||||
//$take_qrcode = base_url($order->qrcode_path);
|
//$take_qrcode = base_url($order->qrcode_path);
|
||||||
|
|
||||||
|
|
|
@ -50,9 +50,9 @@ class Cart_model extends CI_Model
|
||||||
if ($cart_id != 0) {
|
if ($cart_id != 0) {
|
||||||
$where .= " and a.id = {$cart_id}";
|
$where .= " and a.id = {$cart_id}";
|
||||||
}
|
}
|
||||||
$query = $this->db->query("select a.*, b.date_id, b.dish_id, c.dining_hall_id, c.dc_type, d.dish_type, c.dc_date, b.max_num, b.total_max_num, b.book_num
|
$query = $this->db->query("select a.*, b.date_id, b.dish_id, c.dining_hall_id, c.dc_type, d.dish_type, c.dc_date, b.max_num, b.total_max_num, b.book_num, e.mealtype
|
||||||
from tb_cart a, tb_date_dish b, tb_date c, tb_dish d
|
from tb_cart a, tb_date_dish b, tb_date c, tb_dish d, tb_meal_type e
|
||||||
where a.date_dish_id = b.id and b.date_id = c.id and b.dish_id = d.id and a.uid = {$uid} {$where} and d.enabled = 1 order by c.dc_date asc, c.dc_type asc");
|
where a.date_dish_id = b.id and b.date_id = c.id and b.dish_id = d.id and c.dc_type=e.id and a.uid = {$uid} {$where} and d.enabled = 1 order by c.dc_date asc, c.dc_type asc");
|
||||||
return $query->result();
|
return $query->result();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,4 +160,19 @@ class Cart_model extends CI_Model
|
||||||
$query = $this->db->query("select sum(price*num) total_price from tb_shopping_cart a where uid = {$uid} {$where}");
|
$query = $this->db->query("select sum(price*num) total_price from tb_shopping_cart a where uid = {$uid} {$where}");
|
||||||
return $query->row();
|
return $query->row();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function update_cart_by_uid_and_date_id($date_id, $uid, $deliver_place_id){
|
||||||
|
// $this->db->where_in('date_dish_id', $this->db->select('id')->get_where('tb_date_dish', array('date_id' => $date_id))->result_array());
|
||||||
|
// $this->db->set('deliver_place_id', $deliver_place_id);
|
||||||
|
// $this->db->where('uid', $uid);
|
||||||
|
// return $this->db->update('tb_cart');
|
||||||
|
|
||||||
|
$date_dish_ids = $this->db->select('id')->get_where('tb_date_dish', ['date_id' => $date_id])->result_array();
|
||||||
|
$date_dish_ids = array_column($date_dish_ids, 'id');
|
||||||
|
|
||||||
|
return $this->db->where_in('date_dish_id', $date_dish_ids)
|
||||||
|
->where('uid', $uid)
|
||||||
|
->set('deliver_place_id', $deliver_place_id)
|
||||||
|
->update('tb_cart');
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -138,13 +138,17 @@ class Common_model extends CI_Model
|
||||||
}
|
}
|
||||||
|
|
||||||
$where = str_replace('for_dc_type', 'dc_type', $where);
|
$where = str_replace('for_dc_type', 'dc_type', $where);
|
||||||
$sql = "SELECT a.* from tb_date a, tb_meal_type c where a.dc_type = c.id and dc_date >= '".date("Y-m-d")."' {$where} order by a.dc_date asc, c.idx desc, a.dc_type asc";
|
$sql = "SELECT a.*, c.mealtype from tb_date a, tb_meal_type c where a.dc_type = c.id and dc_date >= '".date("Y-m-d")."' {$where} order by a.dc_date asc, c.idx desc, a.dc_type asc";
|
||||||
|
|
||||||
$dates = $this->db->query($sql)->result();
|
$dates = $this->db->query($sql)->result();
|
||||||
|
|
||||||
|
// 获取vip围餐所有的房间号
|
||||||
|
$deliver_place_list = $this->db->query("select * from tb_order_deliver_place where enabled=1 and dining_hall_id='".$user->dining_hall_id."'")->result_array();
|
||||||
|
$deliver_place_ids = array_column($deliver_place_list, "id");
|
||||||
|
|
||||||
$dates2 = array();
|
$dates2 = array();
|
||||||
$nowtime = time();
|
$nowtime = time();
|
||||||
foreach($dates as $item) {
|
foreach($dates as $index => $item) {
|
||||||
$dc_type = $item->dc_type;
|
$dc_type = $item->dc_type;
|
||||||
$dc_date = $item->dc_date;
|
$dc_date = $item->dc_date;
|
||||||
$rule = $rulesInfo[$dc_type];
|
$rule = $rulesInfo[$dc_type];
|
||||||
|
@ -154,6 +158,48 @@ class Common_model extends CI_Model
|
||||||
|
|
||||||
$time1 = $dc_date." ".$rule['time'];
|
$time1 = $dc_date." ".$rule['time'];
|
||||||
|
|
||||||
|
// vip围餐修改,如果是围餐类型 且 用户积分账户余额==0,则不显示 (vip围餐:tb_meal_type.mealtype=6)
|
||||||
|
if($item->mealtype == 6){
|
||||||
|
if(!isset($user->jf) || $user->jf <=0){
|
||||||
|
// 没有积分账户,或者账户积分<=0,则不能订vip围餐
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 查找当前date_id 可预定的房间列表
|
||||||
|
$date_id = $item->id;
|
||||||
|
// 所有房间列表的id,用,分隔的字符串
|
||||||
|
$deliver_place_ids_str = join(",", $deliver_place_ids);
|
||||||
|
// 所有房间列表的占用情况情况
|
||||||
|
$deliver_place_arr = array();
|
||||||
|
// 获取当前date_id 已经被占用的房间列表
|
||||||
|
$get_deliver_place_list = array();
|
||||||
|
if(!empty($deliver_place_ids_str)){
|
||||||
|
$get_deliver_place_list = $this->db->query("select * from tb_order where date_id='{$date_id}' and state_id in (3,6) and deliver_place_id in ({$deliver_place_ids_str})")->result_array();
|
||||||
|
}
|
||||||
|
// 如果含有已经被占用的房间,则判断房间是否已经被占用
|
||||||
|
// if(!empty($get_deliver_place_list)){
|
||||||
|
// foreach ($get_deliver_place_list as $deliver_place_item){
|
||||||
|
// $is_occupy = in_array($deliver_place_item['deliver_place_id'], $deliver_place_ids) ? 1 : 0;
|
||||||
|
// $deliver_place_arr[] = array(
|
||||||
|
// 'id' => $deliver_place_item['deliver_place_id'],
|
||||||
|
// 'name' => $deliver_place_item['deliver_place_name'],
|
||||||
|
// 'is_occupy' => $is_occupy // 是否占用
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// }else{
|
||||||
|
// 如果没有被占用的房间,则显示所有房间且设置未占用
|
||||||
|
foreach ($deliver_place_list as $deliver_place_item){
|
||||||
|
$get_deliver_place_ids = array_column($get_deliver_place_list, "deliver_place_id");
|
||||||
|
$is_occupy = in_array($deliver_place_item['id'], $get_deliver_place_ids) ? 1 : 0;
|
||||||
|
$deliver_place_arr[] = array(
|
||||||
|
'id' => $deliver_place_item['id'],
|
||||||
|
'name' => $deliver_place_item['name'],
|
||||||
|
'is_occupy' => $is_occupy // 是否占用
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
$item->deliver_place_list = $deliver_place_arr;
|
||||||
|
}
|
||||||
|
|
||||||
if(strtotime($time1) - $relative_day*86400 > $nowtime) {
|
if(strtotime($time1) - $relative_day*86400 > $nowtime) {
|
||||||
$dates2[] = $item;
|
$dates2[] = $item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -296,4 +296,9 @@ class Dishes_model extends CI_Model
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_date_info_by_date_id($date_id)
|
||||||
|
{
|
||||||
|
$query = $this->db->query("select a.*, b.name as dc_type_name, b.mealtype from tb_date a,tb_meal_type b where a.dc_type=b.id and a.id = {$date_id}");
|
||||||
|
return $query->row_array();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -8,6 +8,7 @@
|
||||||
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
|
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
|
||||||
<link rel="stylesheet" href="css/light7.min.css?v=<?=filemtime('css/light7.min.css')?>" />
|
<link rel="stylesheet" href="css/light7.min.css?v=<?=filemtime('css/light7.min.css')?>" />
|
||||||
<link rel="stylesheet" href="css/main.css?v=<?=filemtime('css/main.css')?>" />
|
<link rel="stylesheet" href="css/main.css?v=<?=filemtime('css/main.css')?>" />
|
||||||
|
<link rel="stylesheet" href="css/uno.css?v=<?=filemtime('css/uno.css')?>" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
|
@ -5653,3 +5653,47 @@ input[name='custom_recharge'].custom_recharge {
|
||||||
font-size: 0.65rem;
|
font-size: 0.65rem;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*vip围餐样式*/
|
||||||
|
.popup-deliver-place{
|
||||||
|
width: 90%;
|
||||||
|
margin: 5%;
|
||||||
|
height: auto;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
}
|
||||||
|
.deliver-place-close{
|
||||||
|
position: absolute;
|
||||||
|
right: 0.6rem;
|
||||||
|
top: -0.3rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #000;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.deliver-place-close a{
|
||||||
|
color: #ef4437;
|
||||||
|
}
|
||||||
|
.flex-row{
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
.flex-wrap{
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.deliver-place-bg-btn-color{
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
color: #000;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
}
|
||||||
|
.deliver-place-bg-btn-color.active{
|
||||||
|
border: 2px solid #ef4437;
|
||||||
|
color: #ef4437;
|
||||||
|
}
|
||||||
|
.deliver-place-bg-btn-color.disabled{
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
color: #ccc;
|
||||||
|
border: 2px solid #f6f6f6;
|
||||||
|
}
|
||||||
|
.py-3{padding-top:0.75rem;padding-bottom:0.75rem;}
|
||||||
|
.font-bold{font-weight: bold;}
|
||||||
|
.pr-2{padding-right: 0.5rem;}
|
|
@ -63,6 +63,10 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!--围餐隐藏参数-->
|
||||||
|
<input type="hidden" name="deliver-place-data" id="deliver-place-data" value="">
|
||||||
|
<input type="hidden" name="deliver-place" id="deliver-place" value="">
|
||||||
|
|
||||||
<div class="panel-overlay"></div>
|
<div class="panel-overlay"></div>
|
||||||
<div class="panel panel-left panel-reveal" id="panel-left">
|
<div class="panel panel-left panel-reveal" id="panel-left">
|
||||||
<div class="panel-hd">
|
<div class="panel-hd">
|
||||||
|
|
135
m/js/main.js
135
m/js/main.js
|
@ -7525,6 +7525,20 @@ $(function () {
|
||||||
//$('.panel-footer .shop-fl').show();
|
//$('.panel-footer .shop-fl').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果是vip围餐的date_id,而且 deliver_place_meal_list 非空,就弹窗选房间
|
||||||
|
if(data.deliver_place_meal_list){
|
||||||
|
$("#deliver-place").val(JSON.stringify(data.deliver_place_meal_list));
|
||||||
|
if(data.deliver_place_data){
|
||||||
|
$("#deliver-place-data").val(data.deliver_place_data);
|
||||||
|
}else{
|
||||||
|
$("#deliver-place-data").val("");
|
||||||
|
popup_deliver_place(data.deliver_place_meal_list);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$("#deliver-place-data").val("");
|
||||||
|
$("#deliver-place").val("");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if(data.user.show_fuli === 1){
|
if(data.user.show_fuli === 1){
|
||||||
$('.panel-footer .shop-fl').show();
|
$('.panel-footer .shop-fl').show();
|
||||||
|
@ -7802,6 +7816,13 @@ $(function () {
|
||||||
//初始化待阅通知数
|
//初始化待阅通知数
|
||||||
|
|
||||||
$('#page-index2 .cp').html(cp_li);
|
$('#page-index2 .cp').html(cp_li);
|
||||||
|
|
||||||
|
// 判断当前是不是围餐
|
||||||
|
if(data.deliver_place_meal_list){
|
||||||
|
$('#page-index2 .cp').append(
|
||||||
|
' <li class="cp-menu deliverPlace"><div class="item-inner"><div class="item-title">围餐房间</div><div class="item-after"></div></div></li>'
|
||||||
|
);
|
||||||
|
}
|
||||||
$('#page-index2 .ftpic').attr('id', 'ft' + data.dining_hall_id);
|
$('#page-index2 .ftpic').attr('id', 'ft' + data.dining_hall_id);
|
||||||
|
|
||||||
$('.noticeList num').html(
|
$('.noticeList num').html(
|
||||||
|
@ -7812,6 +7833,39 @@ $(function () {
|
||||||
dining_halls = data.dining_halls;
|
dining_halls = data.dining_halls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 弹窗选择房间
|
||||||
|
function popup_deliver_place(data, type = 'init'){
|
||||||
|
// 判断当前的date_id 是否一样,如果一样就不重新渲染弹窗
|
||||||
|
var input_deliver_place_data_val = $("#deliver-place-data").val();
|
||||||
|
var input_date_id = input_deliver_place_data_val.split("_")[0];
|
||||||
|
var input_deliver_place_id = input_deliver_place_data_val.split("_")[1];
|
||||||
|
if(type != 'init' || (input_deliver_place_data_val == '' || input_date_id != date_id)){
|
||||||
|
// 弹窗选择房间
|
||||||
|
var place_list = `<div class="popup popup-deliver-place">
|
||||||
|
<div class="relative">
|
||||||
|
<h3 class="text-center">围餐房间预约</h3>
|
||||||
|
<div class="deliver-place-close"><a href="#" class="close-popup"><i class="icon-close icon"></i></a></div>
|
||||||
|
<div class="place-list"><ul class="flex flex-row flex-wrap ma-1 pa-0">`;
|
||||||
|
for(var x in data){
|
||||||
|
var active = "";
|
||||||
|
var disabled = "";
|
||||||
|
var is_occupy_txt = "";
|
||||||
|
if(data[x].is_occupy == 1){
|
||||||
|
disabled = " disabled";
|
||||||
|
is_occupy_txt = "(已订)";
|
||||||
|
}
|
||||||
|
if(input_deliver_place_id != '' && typeof input_deliver_place_id !== 'undefined' && input_deliver_place_id == data[x].id){
|
||||||
|
active = " active";
|
||||||
|
}
|
||||||
|
place_list += "<li style='width:50%;' class='text-center pa-1'><a href='javascript:;' class='vip-room py-3 rounded deliver-place-bg-btn-color block "+disabled+active+"' data-id='"+data[x].id+"'>"+data[x].name+is_occupy_txt+"</a></li>";
|
||||||
|
}
|
||||||
|
place_list += `</div></div></div>`;
|
||||||
|
// console.log(place_list)
|
||||||
|
$.popup(place_list);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
function printReload(self, num, limit, price, type) {
|
function printReload(self, num, limit, price, type) {
|
||||||
var thisCpNum = $('.cp .active .badge').html()
|
var thisCpNum = $('.cp .active .badge').html()
|
||||||
? parseInt($('.cp .active .badge').html())
|
? parseInt($('.cp .active .badge').html())
|
||||||
|
@ -8157,6 +8211,52 @@ $(function () {
|
||||||
.on('click', '.changeFt', function () {
|
.on('click', '.changeFt', function () {
|
||||||
$(page).find('input[name=changeFt]').select('open');
|
$(page).find('input[name=changeFt]').select('open');
|
||||||
});
|
});
|
||||||
|
$(document)
|
||||||
|
.off('click', '.deliverPlace')
|
||||||
|
.on('click', '.deliverPlace', function () {
|
||||||
|
var data = $("#deliver-place").val();
|
||||||
|
data = JSON.parse(data);
|
||||||
|
popup_deliver_place(data, "");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document)
|
||||||
|
.off('click', '.popup-deliver-place .vip-room')
|
||||||
|
.on('click', '.popup-deliver-place .vip-room', function () {
|
||||||
|
if($(this).hasClass("disabled")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 给选中的房间添加样式
|
||||||
|
var deliver_place_id = $(this).data('id');
|
||||||
|
var vip_meal_name = $(this).text();
|
||||||
|
|
||||||
|
// 异步,把deliver_place_id传到后台,保存到tb_cart的菜品里
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: '../api/dishes/updateCartDeliverPlaceId/',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
date_id: date_id,
|
||||||
|
deliver_place_id: deliver_place_id,
|
||||||
|
token: user.token,
|
||||||
|
},
|
||||||
|
success: function (ret) {
|
||||||
|
if (typeof ret.status !== 'undefined') {
|
||||||
|
if (ret.status === 1) {
|
||||||
|
$(".popup-deliver-place .vip-room").removeClass("active");
|
||||||
|
$(this).addClass('active');
|
||||||
|
$("#deliver-place-data").val(date_id+"_"+deliver_place_id+"_"+vip_meal_name);
|
||||||
|
$.closeModal(".popup-deliver-place");
|
||||||
|
}else{
|
||||||
|
$.alert(ret.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
$.alert('请检查网络!');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
$('.app-qrcode')
|
$('.app-qrcode')
|
||||||
.off('click')
|
.off('click')
|
||||||
|
@ -8258,7 +8358,15 @@ $(function () {
|
||||||
num = printReload(self, num, limit, price, type);
|
num = printReload(self, num, limit, price, type);
|
||||||
//cookie不存在
|
//cookie不存在
|
||||||
var token = user.token;
|
var token = user.token;
|
||||||
|
// 获取围餐房间号
|
||||||
|
var deliver_place_data = $("#deliver-place-data").val();
|
||||||
|
|
||||||
|
var deliver_place_id = null;
|
||||||
|
if(deliver_place_data){
|
||||||
|
// 获取房间号id
|
||||||
|
console.log(deliver_place_data)
|
||||||
|
deliver_place_id = deliver_place_data.split("_")[1];
|
||||||
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: '../api/dishes/add/',
|
url: '../api/dishes/add/',
|
||||||
|
@ -8267,6 +8375,7 @@ $(function () {
|
||||||
token: token,
|
token: token,
|
||||||
date_dish_id: cid,
|
date_dish_id: cid,
|
||||||
num: num,
|
num: num,
|
||||||
|
deliver_place_id: deliver_place_id
|
||||||
},
|
},
|
||||||
success: function (ret) {
|
success: function (ret) {
|
||||||
if (typeof ret.status !== 'undefined') {
|
if (typeof ret.status !== 'undefined') {
|
||||||
|
@ -10329,6 +10438,11 @@ $(function () {
|
||||||
'&pid=' +
|
'&pid=' +
|
||||||
ft.dining_hall_id +
|
ft.dining_hall_id +
|
||||||
'" data-no-cache="true"><span class="icon icon-add"></span>增加</a></div></div></li>';
|
'" data-no-cache="true"><span class="icon icon-add"></span>增加</a></div></div></li>';
|
||||||
|
|
||||||
|
var deliver_place_html = "";
|
||||||
|
if(meal.mealtype == 6){
|
||||||
|
deliver_place_html = "data-deliver_place_id='"+meal.deliver_place_id+"'";
|
||||||
|
}
|
||||||
$.each(meal.data, function (i, cs) {
|
$.each(meal.data, function (i, cs) {
|
||||||
cartHtml +=
|
cartHtml +=
|
||||||
'<li data-id="' +
|
'<li data-id="' +
|
||||||
|
@ -10347,7 +10461,7 @@ $(function () {
|
||||||
cs.max_num +
|
cs.max_num +
|
||||||
'" data-price="' +
|
'" data-price="' +
|
||||||
cs.price +
|
cs.price +
|
||||||
'"><a href="javascript:;" class="button button-link button-nav minus" data-type="minus"><span class="icon icon-minus"></span></a><a href="javascript:;" class="button button-link button-nav num">' +
|
'" '+deliver_place_html+'><a href="javascript:;" class="button button-link button-nav minus" data-type="minus"><span class="icon icon-minus"></span></a><a href="javascript:;" class="button button-link button-nav num">' +
|
||||||
cs.num +
|
cs.num +
|
||||||
'</a><a href="javascript:;" class="button button-link button-nav add" style="" data-type="add"><span class="icon icon-add"></span></a></p></div></li>';
|
'</a><a href="javascript:;" class="button button-link button-nav add" style="" data-type="add"><span class="icon icon-add"></span></a></p></div></li>';
|
||||||
});
|
});
|
||||||
|
@ -10357,10 +10471,17 @@ $(function () {
|
||||||
meal.rise_info.rise_tip +
|
meal.rise_info.rise_tip +
|
||||||
'</p></div></div></li>';
|
'</p></div></div></li>';
|
||||||
}
|
}
|
||||||
|
if(typeof meal.deliver_place_name !== 'undefined'){
|
||||||
|
console.log(meal)
|
||||||
|
var deliver_place_name = meal.deliver_place_name ? "<span>"+meal.deliver_place_name+"</span>" : "<span class='text-red'>请先选择围餐房间号再下单</span>";
|
||||||
|
cartHtml +=
|
||||||
|
'<li class="deliver_place"><div class="row no-gutter"><div class="col-100"><p class="ma-0 tips pr-2" style="display:flex;flex-wrap: wrap;justify-content: space-between;"><span class="font-bold">围餐房间:</span>'+deliver_place_name+'</p></div></div></li>';
|
||||||
|
}
|
||||||
|
|
||||||
if(meal.notes){
|
if(meal.notes){
|
||||||
var notes = JSON.parse(meal.notes);
|
var notes = JSON.parse(meal.notes);
|
||||||
cartHtml +=
|
cartHtml +=
|
||||||
'<li><div class="row no-gutter"><div class="col-100"><p class="ma-0 tips text-red" style="display:flex;flex-direction: row; "><span>备注:</span><textarea rows="1" type="text" style="width:75%;height: 2.15rem;display:inline-block;font-size:0.65rem;padding-top:0.2rem" class="notes['+ meal.date_id +']" placeholder="' +
|
'<li><div class="row no-gutter"><div class="col-100"><p class="ma-0 tips text-red" style="display:flex;flex-direction: row; "><span>备注:</span><textarea rows="1" type="text" style="width:75%;height: 2.5rem;display:inline-block;font-size:0.65rem;padding-top:0.2rem" class="notes['+ meal.date_id +']" placeholder="' +
|
||||||
notes.text +
|
notes.text +
|
||||||
'"></textarea></p></div></div></li>';
|
'"></textarea></p></div></div></li>';
|
||||||
}
|
}
|
||||||
|
@ -10390,6 +10511,8 @@ $(function () {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$.showIndicator();
|
$.showIndicator();
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
|
||||||
var token = user.token;
|
var token = user.token;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
|
@ -10482,6 +10605,13 @@ $(function () {
|
||||||
|
|
||||||
var limit = parseInt(self.parent('p').data('limit'));
|
var limit = parseInt(self.parent('p').data('limit'));
|
||||||
var cid = parseInt(self.parent('p').data('id'));
|
var cid = parseInt(self.parent('p').data('id'));
|
||||||
|
|
||||||
|
// 判断是否有deliver_place_id
|
||||||
|
var deliver_place_id = null;
|
||||||
|
if(self.parent('p').data('deliver_place_id')){
|
||||||
|
deliver_place_id = self.parent('p').data('deliver_place_id');
|
||||||
|
}
|
||||||
|
|
||||||
var type = self.data('type');
|
var type = self.data('type');
|
||||||
if (type === 'add') {
|
if (type === 'add') {
|
||||||
if (num >= limit) {
|
if (num >= limit) {
|
||||||
|
@ -10504,6 +10634,7 @@ $(function () {
|
||||||
token: token,
|
token: token,
|
||||||
date_dish_id: cid,
|
date_dish_id: cid,
|
||||||
num: num,
|
num: num,
|
||||||
|
deliver_place_id: deliver_place_id,
|
||||||
},
|
},
|
||||||
success: function (ret) {
|
success: function (ret) {
|
||||||
if (typeof ret.status !== 'undefined') {
|
if (typeof ret.status !== 'undefined') {
|
||||||
|
|
Loading…
Reference in New Issue