yzms/show/mall_lfyy.php

469 lines
19 KiB
PHP
Raw Normal View History

2024-04-01 15:54:27 +08:00
<?
header("Access-Control-Allow-Origin: *");
header("Content-type:text/html;charset=utf-8");
/*if($act == 'lfyy_get_parks') {
$data = $db->get_all("select * from tb_lfyy_park order by id");
$list = array();
$places = array();
foreach($data as $item) {
$place = $item['place'];
$places[$place] = 1;
unset($item['place']);
$list[$place][] = $item;
}
$list2 = array();
foreach($places as $place => $v) {
$list2[] = array(
'place' => $place,
'park_list' => $list[$place],
);
}
echoRs(1, 'ok', array('parks' => $list2));
exit;
}*/
$xqInfo = array('0' => '日', '1' => '一', '2' => '二', '3' => '三', '4' => '四', '5' => '五', '6' => '六',);
$order_statusInfo = array(
0 => '已下单',
1 => '已理发',
2 => '已取消',
);
if($act == 'lfyy_get_parks') {
$user = check_token();
$uid = $user['id'];
$company_id = $user['company_id'];
$dining_hall_id = $user['dining_hall_id'];
//$park_id = intval($_GET["park_id"]);
//if($park_id <= 0) exit;
//$parkInfo = $db->get_one("select * from tb_lfyy_park where id=". $park_id);
//if(!$parkInfo) exit;
$bookList = array();
$bookList = array(
array(
'id' => '5',
'name' => '洗吹20美发币',
), array(
'id' => '3',
'name' => '洗剪吹30美发币',
));
$lfaccountList = $db->get_one("select a.* from tb_account a WHERE supplier_id =119 and user_id = ".$uid);
$partList = $db->get_all("select * from tb_lfyy_park where company_id='{$company_id}' and dining_hall_id like'%{$dining_hall_id}%' and enabled = 1 order by id");
$tList = $db->get_all("select * from tb_lfyy_times where company_id='{$company_id}' order by start_time ");
$holidayList = $db->get_all("select * from tb_lfyy_holiday where status=1 order by id ");
$list = array();
$places = array();
foreach($partList as $item) {
$place = $item['place'];
$places[$place] = 1;
unset($item['place']);
$list[$place][] = $item;
}
$all = array();
foreach($places as $place => $v) {
$partList = $list[$place];
$days = array();
for($i = 0; $i < 3; $i++) {
$dateInfo = array();
$time = strtotime("+{$i} day");
// $time =strtotime("+{$i} day",strtotime("2023-04-03"));
$date = date('Y-m-d', $time);
$xq = date('w', $time);
$dateInfo['xq'] = "".$xqInfo[$xq];
//判断是不是假期
$isho = $db->get_one("select * from tb_holidays where year = '".date('Y',$time)."' and day = '".date('m-d',$time)."'");
if ($isho){
if ($isho['type'] == 1)$xq = 0;
if ($isho['type'] == 2)$xq = 1;
}
if (empty($isho)) $isho['type'] == 1;
$dateInfo['date'] = $date;
$times = array();
foreach($tList as $item2) {
if($xq == 0 || $xq == 6){if ($item2['end_time'] > '17:40') continue;}
else if ($item2['start_time'] < '12:00') continue;
$start_time = $item2['start_time'];
$end_time = $item2['end_time'];
$start_time_date = $date." ".$start_time;
$time_id = $item2['id'];
if(strtotime($start_time_date) - time() < 300) continue;
$timeInfo = array('time_id' => $time_id, 'start_time' => $start_time, 'end_time' => $end_time);
$parks = array();
foreach($partList as $item1) {
$park_id = $item1['id'];
$status = 1;
$status_name = '可预订';
if(strtotime($start_time_date) - time() < 300) {
$status = 4;
$status_name = '已过期';
continue;
} else {
foreach ($holidayList as $h_k =>$h_v){
if($date == $h_v['day'] && $time_id == $h_v['time_id'] && $park_id == $h_v['park_id']){
$status = 5;
$status_name = '休假中';
break;
}
}
if($status != 5){
$rows = $db->get_all("select * from tb_lfyy_order where company_id='{$company_id}' and park_id = {$park_id} and time_id = {$time_id} and `date` = '{$date}' and status != 2");
// 判断是否含有自己的预约
$orderUserId = array_column($rows, 'uid');
if(in_array($uid, $orderUserId)){
// 含有自己
$status = 2;
$status_name = '已预订';
}elseif(count($rows) >= 1){
$status = 3;
$status_name = '预订已满';
continue;
}else{
$status = 1;
$status_name = '可预订';
}
// $row = $db->get_one("select * from tb_lfyy_order where company_id='{$company_id}' and park_id = {$park_id} and time_id = {$time_id} and `date` = '{$date}' and status != 2");
// if($row) {
// if($row['uid'] == $uid) $status = 2;
// else $status = 3;
// $status_name = '已预订';
// }
}
}
$parks[] = array('park_id' => $park_id, 'park_name' => $item1['name'], 'status' => $status, 'status_name' => $status_name, 'fee' => $item1['fee'],'lf_phone' => $item1['cellphone']);
}
$timeInfo['parts'] = $parks;
$times[] = $timeInfo;
}
if(empty($times)){
continue;
}
$dateInfo['times'] = $times;
$days[] = $dateInfo;
}
$info1 = array('place' => $place, 'days' => $days);
$all[] = $info1;
}
/*
$partList = $list[$place];
$timesList = array();
for($i = 0; $i < 7; $i++) {
$date = date('Y-m-d', strtotime("+{$i} day"));
foreach($partList as $item1) {
$times = array();
foreach($tList as $item2) {
$start_time = $item2['start_time'];
$end_time = $item2['end_time'];
$status = 1;
$status_name = '可预订';
$start_time_date = $date." ".$start_time;
if(strtotime($start_time_date) - time() < 300) {
$status = 3;
$status_name = '已过期';
} else {
}
$times[] = array('start_time' => $start_time, 'end_time' => $end_time, 'status' => $status, 'status_name' => $status_name, 'status_name' => $status_name);
}
}
$timesList[] = array('date' => $date, 'times' => $times);
}
*/
//echo json_encode($all);exit;
if (!isset($lfaccountList['account'])) $lfaccount = 0;
else $lfaccount = $lfaccountList['account'];
$userInfo = $db->get_one("select * from tb_user where id='{$uid}'");
echoRs(1, 'ok', array('data' => array('list' => $all, 'user' => array('username' => $userInfo['username'], 'cellphone' => $userInfo['cellphone'] , 'account' => $lfaccount ) ,'bookList' => $bookList)));
exit;
}
if($act == 'lfyy_add_order') {
$user = check_token();
$uid = $user['id'];
$area_id = $user['area_id'];
$company_id = $user['company_id'];
$date = trim($_POST["date"]);
$park_id = intval($_POST["park_id"]);
$time_id = intval($_POST["time_id"]);
$username = trim($_POST["username"]);
$cellphone = trim($_POST["cellphone"]);
$yy_type = trim($_POST["yy_type"]);
/*$date = '2020-09-04';
$park_id = '1';
$time_id = '3';
$cph = '粤ESG180';*/
$dateList = $db->get_all("select * from tb_lfyy_order where status != 2 and uid = '{$uid}' and date like '".date('Y-m')."%'");
// if (count($dateList)>= 2){
// echoRs(0, '本月预约次数已满!');
// }
if($date == '' || $park_id <= 0 || $time_id <= 0 || $username == '' || $cellphone == '' || $yy_type == '') {
echoRs(0, '参数不完整!');
}
if(strlen($cellphone) != 11){
echoRs(0, '请输入正确的手机号!');
}
if(date('Y-m-d', strtotime($date)) != $date) {
echoRs(0, '日期格式错误!');
}
$parkInfo = $db->get_one("select * from tb_lfyy_park where company_id='{$company_id}' and id=". $park_id);
if(!$parkInfo) {
echoRs(0, 'park_id不存在');
}
$timeInfo = $db->get_one("select * from tb_lfyy_times where company_id='{$company_id}' and id = ". $time_id);
if(!$timeInfo) {
echoRs(0, 'time_id不存在');
}
// 判断该理发师是否休假
$checkHoliday = $db->get_one("select * from tb_lfyy_holiday where park_id='{$park_id}' and time_id='{$time_id}' and day='{$date}' and status=1");
if($checkHoliday){
echoRs(0, '该理发师正在休假中,不能预约!');
}
$start_time = $timeInfo['start_time'];
$end_time = $timeInfo['end_time'];
$fee = $parkInfo['fee'];
$datetime = $date." ".$start_time;
if(strtotime($datetime) - time() < 300) {
echoRs(0, '该时间段已过期!');
}
$rows = $db->get_all("select * from tb_lfyy_order where company_id='{$company_id}' and park_id = {$park_id} and time_id = {$time_id} and `date` = '{$date}' and status != 2");
// 判断是否含有自己的预约
$orderUserId = array_column($rows, 'uid');
if(in_array($uid, $orderUserId)){
// 含有自己
echoRs(0, "你已预约过,无需重复预约");
}elseif(count($rows) >= 1){
echoRs(0, "该理发师{$start_time} - {$end_time}时间段已被人预定!请换个时间段!");
}
// 判断当前地点,当前时间段是否已经预约过,不能同一时间段预约多次
$park_place_list = $db->get_all("select * from tb_lfyy_park where place='{$parkInfo['place']}' and company_id='{$company_id}'");
$park_ids = array_column($park_place_list, 'id');
$park_ids = join(',', $park_ids);
$checkRepeat = $db->get_one("select * from tb_lfyy_order where company_id='{$company_id}' and park_id in ({$park_ids}) and time_id = {$time_id} and `date` = '{$date}' and uid = '{$uid}' and status != 2");
if($checkRepeat >= 1){
echoRs(0, "{$start_time} - {$end_time}时间段,已被预定!");
}
// require_once("include/pay.inc.php");
/*$recharge = array("order_id" => $oid, "type" => 6, "result" => 1, "user_area_id" => $user['area_id'], 'ftid' => '1005');
$r = gpay_update_user_account_one($uid, '-', $fee, 0, $recharge, 'all');*/
$payInfo = array(
'kkfrom' => 'fl',
'rtype' => '7',
'supplier_id' => 119,
);
if ($yy_type == 5) $count = 20;
if ($yy_type == 3) $count = 30;
// $r = gpay_pay_user_account_one($uid, $fee, $payInfo);
// if($r != 'suc') {
// $db->query("delete from tb_lfyy_order where id=".$oid);
// echoRs(0, '扣款失败!');
// }
// if ($uid == 18151 || $uid == 15789 || $uid == 20542 ){
//小岛理发扣费功能
$r = gpay_pay_user_account_one($uid, floatval($count), $payInfo);
if ($r == 'suc') {
$db->query("insert into tb_lfyy_order set uid = '-{$uid}', park_id = '{$park_id}', time_id = '{$time_id}', `date` = '{$date}', username = '{$username}', cellphone = '{$cellphone}', fee = {$fee}, status = '0', addtime = now(), company_id='{$company_id}', yy_type='{$yy_type}'");
$oid = $db->insert_id();
$db->query("update tb_lfyy_order set uid = '{$uid}' where id=".$oid);
$admin = $db->get_one("select * from tb_admin where id = 4413");
$user = $db->get_one("select * from tb_user where id = ".$uid);
$cellphone = $admin['cellphone'];
$text = "用户:".$user['username']." 已成功预约了。 ".$parkInfo['place']."理发店的".$parkInfo['name']."预约日期是 {$date},预约时间为 {$start_time} - {$end_time}";
send_sms($cellphone,$text);
echoRs(1, "预订理发师 ".$parkInfo['place'].$parkInfo['name']." {$start_time} - {$end_time}时间段,使用了{$count}发币!");
}else{
echoRs(1, "预订理发师 ".$parkInfo['place'].$parkInfo['name']." {$start_time} - {$end_time}时间段,预约失败!");
}
// }else{
// $db->query("insert into tb_lfyy_order set uid = '-{$uid}', park_id = '{$park_id}', time_id = '{$time_id}', `date` = '{$date}', username = '{$username}', cellphone = '{$cellphone}', fee = {$fee}, status = '0', addtime = now(), company_id='{$company_id}', yy_type='{$yy_type}'");
// $oid = $db->insert_id();
// $db->query("update tb_lfyy_order set uid = '{$uid}' where id=".$oid);
// $admin = $db->get_one("select * from tb_admin where id = 4413");
// $user = $db->get_one("select * from tb_user where id = ".$uid);
// $cellphone = $admin['cellphone'];
// $text = "用户:".$user['username']." 已成功预约了。 ".$parkInfo['place']."理发店的".$parkInfo['name']."预约日期是 {$date},预约时间为 {$start_time} - {$end_time}。";
// send_sms($cellphone,$text);
// echoRs(1, "预订理发师 ".$parkInfo['place'].$parkInfo['name']." {$start_time} - {$end_time}时间段,预约成功!");
// }
//小岛理发扣费功能
// $r = gpay_pay_user_account_one($uid, floatval($count), $payInfo);
// if ($r == 'suc') {
// $db->query("update tb_lfyy_order set uid = '{$uid}' where id=".$oid);
// $admin = $db->get_one("select * from tb_admin where id = 4413");
// $user = $db->get_one("select * from tb_user where id = ".$uid);
// $cellphone = $admin['cellphone'];
// $text = "用户:".$user['username']." 已成功预约了。 ".$parkInfo['place']."理发店的".$parkInfo['name']."预约日期是 {$date},预约时间为 {$start_time} - {$end_time}。";
// send_sms($cellphone,$text);
// echoRs(1, "预订理发师 ".$parkInfo['place'].$parkInfo['name']." {$start_time} - {$end_time}时间段,使用了{$count}发币!");
// }else{
// echoRs(1, "预订理发师 ".$parkInfo['place'].$parkInfo['name']." {$start_time} - {$end_time}时间段,预约失败!");
// }
}
if($act == 'lfyy_cancel_order') {
$user = check_token();
$uid = $user['id'];
$company_id = $user['company_id'];
$order_id = intval($_POST["order_id"]);
$orderInfo = $db->get_one("select a.*, b.place, b.name, c.start_time, c.end_time from tb_lfyy_order a, tb_lfyy_park b, tb_lfyy_times c where a.park_id=b.id and a.time_id=c.id and a.company_id='{$company_id}' and a.id = '{$order_id}'");
if(!$orderInfo) {
echoRs(0, '订单不存在!');
}
if($orderInfo['status'] == 1) {
echoRs(0, '该订单已完成,不能取消!');
}
if($orderInfo['status'] == 2) {
echoRs(0, '该订单已取消过,不能重复取消!');
}
if($orderInfo['status'] != 0) {
echoRs(0, '取消失败!');
}
//判断退回金额 3洗剪吹5洗吹发
// if ($uid == 18151 || $uid == 15789 || $uid == 20542 ) {
if ($orderInfo['yy_type'] == 5) $count = 20;
if ($orderInfo['yy_type'] == 3) $count = 30;
// }else $count = 0;
$orderDate = $orderInfo['date'];
$datetime = $orderInfo['date']." ". $orderInfo['start_time'];
// if(strtotime($datetime) - time() < 30) {
// echo "<pre>";
// var_dump(time() - strtotime($datetime) < 600 && $orderDate == date("Y-m-d"));
// echo "</pre>";
// exit();
$payInfo = array(
'rtype' => 8,
'ac_type' => 1,
'supplier_id' => 119,
);
if(strtotime($datetime) + 600 < time() && $orderDate == date("Y-m-d")) {
// echo "<pre>";
// print_r($order_id);
// echo "</pre>";
$db->query("update tb_lfyy_order set status= 1 where id=".$order_id);
echoRs(0, '已过到理发时间,不能取消!');
}
$r = gpay_add_user_account_uid($uid, floatval($count), $payInfo);
if ($r == 'suc') {
$db->query("update tb_lfyy_order set status=2 where id=".$order_id);
echoRs(1, '取消订单成功!');
}else echoRs(1, '取消订单失败!');
// require_once("include/pay.inc.php");
/*$recharge = array("order_id" => $order_id, "type" => 8, "result" => 1, "user_area_id" => $user['area_id'], 'ftid' => '1005');
$r = gpay_update_user_account_one($uid, '+', $orderInfo['fee'], 0, $recharge, 'all');*/
// $r = gpay_refund_user_account(6, $order_id, 8, 0, 0, $uid);
//
// if($r != 'suc') {
// echoRs(0, '取消失败!');
// }
// $db->query("update tb_lfyy_order set status=2 where id=".$order_id);
// echoRs(1, '取消订单成功!');
}
if($act == 'lfyy_order_list') {
$user = check_token();
$uid = $user['id'];
$company_id = $user['company_id'];
$page = intval($_REQUEST['page']);
$pagesize = intval($_REQUEST['pagesize']);
$page = max($page, 1);
if($pagesize <= 0) $pagesize = 10;
$start = ($page-1)*$pagesize;
$count = intval($db->get_colume("select count(*) as c from tb_lfyy_order where company_id='{$company_id}' and uid = {$uid} "));
$pagecount = ceil($count/$pagesize);
$list = $db->get_all("select a.*, b.place, b.name, c.start_time, c.end_time from tb_lfyy_order a, tb_lfyy_park b, tb_lfyy_times c where a.company_id='{$company_id}' and a.uid='{$uid}' and a.park_id=b.id and a.time_id=c.id order by a.id desc limit {$start},{$pagesize}");
foreach($list as $key => $item) {
$status = $item['status'];
$list[$key]['status_name'] = $order_statusInfo[$status];
$xq = date('w', strtotime($item['date']));
$list[$key]['xq'] = "".$xqInfo[$xq];
$can_cancel = 0;
$datetime = $item['date']." ". $item['start_time'];
if($status == 0) {
if(strtotime($datetime) + 600 >= time()) {
$can_cancel = 1;
}
}
$list[$key]['can_cancel'] = $can_cancel;
// 脱敏
$list[$key]['username'] = cutName($item['username']);
$list[$key]['cellphone'] = cutName($item['cellphone'], 'cellphone');
}
echoRs(1, "ok ", array('data' => array('list' => $list, 'count' => $count, 'pagecount' => $pagecount)));
}
if($act == 'lfyy_get_parks_screen') {
$user = check_token();
$uid = $user['id'];
$company_id = $user['company_id'];
$partList = $db->get_all("select * from tb_lfyy_park where company_id='{$company_id}' order by id");
$list = array();
$places = array();
foreach($partList as $item) {
$place = $item['place'];
$places[$place] = 1;
unset($item['place']);
$list[$place][] = $item;
}
$list2 = array();
foreach($list as $key => $item) {
$list2[] = array(
'place' => $key,
'parts' => $item,
);
}
echoRs(1, "ok ", array('data' => array('part_list' => $list2)));
}
if($act == 'lfyy_get_parks_order_screen') {
$user = check_token();
$uid = $user['id'];
$company_id = $user['company_id'];
$park_id = intval($_REQUEST["park_id"]);
if($park_id <= 0) {
echoRs(0, '参数不完整!');
}
$parkInfo = $db->get_one("select * from tb_lfyy_park where company_id='{$company_id}' and id=". $park_id);
if(!$parkInfo) {
echoRs(0, 'park_id不存在');
}
$order_list = $db->get_all("select a.*, b.start_time, b.end_time, b.fee from tb_lfyy_order a, tb_lfyy_times b where a.company_id='{$company_id}' and a.time_id=b.id and a.status = '0' and a.park_id = '{$park_id}' and a.`date` = '".date("Y-m-d")."' and end_time >= '".date("H:i")."' order by start_time");
echoRs(1, "ok ", array('data' => array('order_list' => $order_list)));
}