yzms/show/mall.php

1586 lines
64 KiB
PHP
Raw Normal View History

2024-04-01 15:54:27 +08:00
<?
require_once(dirname(__FILE__)."/common.php");
error_reporting(E_ALL || ~E_NOTICE);
$act = trim($_GET['act']);
$statusInfo = array(
'0' => '备货中',
'1' => '已确认',
'2' => '投递中',
'3' => '已取货',
'4' => '已取消',
'5' => '已处理',
'6' => '部分发货',
);
function cutName($user_name, $type = 'username')
{
$strlen = mb_strlen($user_name, 'utf-8');
if ($type == 'cellphone') {
$firstStr = mb_substr($user_name, 0, 3, 'utf-8');
$lastStr = mb_substr($user_name, -4, 4, 'utf-8');
return $firstStr . '****' . $lastStr;
}
$firstStr = mb_substr($user_name, 0, 1, 'utf-8');
$lastStr = mb_substr($user_name, -1, 1, 'utf-8');
if ($strlen == 2) {
return $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1);
} elseif ($strlen == 1) {
return $user_name;
} elseif ($strlen == 0) {
return "*";
} else {
return $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}
}
function get_order_detail($oid) {
global $db;
$data = $db->get_all("select goods_id,b.name,c.type_name,pic,goods_amount,goods_price,a.order_id from tb_goods_order_detail a,tb_goods b,tb_goods_type c where a.goods_id=b.id and b.type_id=c.id and a.order_id = ".$oid);
foreach($data as $key => $item) {
if($item['pic'] && substr($item['pic'], 0, 1) != '/' && substr($item['pic'], 0, 4) != 'http') {
$data[$key]['pic'] = "/backstage/".$item['pic'];
}
}
return $data;
}
//返回个人购物车内的所有信息.
function get_cart_detail($user_id) {
global $db;
$data = $db->get_all("select * from tb_goods_cart where uid={$user_id}");
foreach($data as $item) {
$goods_id = $item['goods_id'];
$ginfo = $db->get_one("select * from tb_goods where id={$goods_id}");
if(!$ginfo || $ginfo['enabled'] != 1) {
$db->query("delete from tb_goods_cart where uid={$user_id} and goods_id={$goods_id}");
continue;
}
}
$data = $db->get_all("select a.name,b.goods_id,b.num,a.supply_id,a.price,a.type_id,a.pic from tb_goods a,tb_goods_cart b where b.uid = '{$user_id}' and a.id = b.goods_id ");
$cart_num = 0;
$cart_price = 0;
$supplyList['cart_goods'] = array();
foreach($data as $k=>$v) {
if($v['pic'] && substr($v['pic'], 0, 1) != '/' && substr($v['pic'], 0, 4) != 'http') $v['pic'] = "/backstage/".$v['pic'];
$supplyList['cart_goods'][$v['supply_id']][] = $v;
$cart_num += $v['num'];
$cart_price += $v['num'] * $v['price'];
}
$supplyList['cart_num'] = $cart_num;
$supplyList['cart_price'] = $cart_price;
return $supplyList;
}
function get_total_price($glist) {
$t = 0;
foreach($glist as $item) {
$t += $item['price'] * $item['num'];
}
return $t;
}
function get_type_list($area_id, $addgoods = true) {
global $db,$user;
$glist = $db->get_all("select b.id,b.name,b.pic,b.type_id,price,original_price,unitname from tb_goods_area a, tb_goods b where a.goods_id=b.id and a.area_id=".$area_id." and b.enabled=1 and b.type_id in (".get_show_typeids().") order by b.type_id desc, b.index_recommend desc,b.idx desc");
// and b.num > 0
//print_r($glist);exit;
$tlist = $db->get_all("select a.id as type_id,upid,type_name as name,eng_name from tb_goods_type a,tb_goods_type_company b where a.id = b.goods_type_id and b.company_id = ".$user['company_id']." order by a.upid, b.idx desc ");
$tInfo = array();
$type_list = array();
foreach($tlist as $item) {
$type_id = $item['type_id'];
$upid = $item['upid'];
$tInfo[$type_id] = $item;
if($upid == 0) {
$item['count'] = 0;
$item['ptype'] = 0;
$item['stype'] = array();
$type_list[$type_id] = $item;
} else {
$item['count'] = 0;
$item['ptype'] = $upid;
if($addgoods) $item['goods'] = array();
$type_list[$upid]['stype'][$type_id] = $item;
}
}
//print_r($type_list);exit;
foreach($glist as $item) {
$type_id = $item['type_id'];
$type_upid = $tInfo[$item['type_id']]['upid'];
//if(!$type_list[$type_upid]['stype'][$type_id]) continue;
$type_list[$type_upid]['count'] += 1;
$type_list[$type_upid]['stype'][$type_id]['count'] += 1;
if($addgoods && count($type_list[$type_upid]['stype'][$type_id]['goods']) < 3) $type_list[$type_upid]['stype'][$type_id]['goods'][] = $item;
}
return $type_list;
}
function get_show_typeids() {
global $db,$user;
$showids = array();
$data = $db->get_all("select a.id,upid,type_name from tb_goods_type a,tb_goods_type_company b where a.id = b.goods_type_id and isshow in (1) and b.company_id = ".$user['company_id']);
$root = array();
foreach($data as $item) {
if($item['upid'] == 0) {
$root[$item['id']] = 1;
$showids[] = $item['id'];
}
}
foreach($data as $item) {
if($item['upid'] != 0) {
if($root[$item['upid']])
$showids[] = $item['id'];
}
}
if($showids) return implode(',', $showids);
return '0';
}
function get_user_addrs($user) {
global $db;
$addrs = $db->get_all("select id,link_user,link_phone,link_province,link_city,link_area,link_addr,isdefault from tb_user_addr where user_id=". $user['id']);
if(!$addrs) {
$addrs = array(array(
'link_user' => $user['username'],
'link_phone' => $user['smsCellphone'],
'link_province' => '广东',
'link_city' => '佛山',
'link_area' => '',
'link_addr' => '',
'isdefault' => '1',
));
}
return $addrs;
}
/**
* @param int $day_num 获取今天到$day_num 之间的可预约时间(除去周末和节假日)
*/
function get_pick_up_day($supply_id, $day_num = 15){
global $db;
// 从明天开始往后,不计算今天
$current = date("H:i");
if($current >= "10:00"){
$start_day_num = 1;
$day_num = $day_num + 1;
}else{
$start_day_num = 0;
}
// 获取当前供应商是否开放预约时间
if(empty($supply_id)){
return null;
}
$open_book = $db->get_one("select open_book from tb_goods_supply where enabled='1' and id='{$supply_id}'");
if($open_book['open_book'] != 1){
return null;
}
$start_day = date("Y-m-d", strtotime("+{$start_day_num} day"));
$end_day = date("Y-m-d", strtotime("+{$day_num} day"));
// 时间判断 -----------
// $date_time = date("H:i");
// 排除的日期
// $exclude_day = array();
// if($date_time >= '17:00'){
// // 把明天去掉
// $exclude_day[] = $start_day;
// }
// 获取节假日
// $holidays_list = $db->get_all("select concat(year,'-',day) holidays from tb_holidays where concat(year,'-',day)>='{$start_day}' and concat(year,'-',day)<='{$end_day}' ");
// $holidays_list = array_column($holidays_list, "holidays");
$pick_up_day_list = array();
for ($i=strtotime($start_day); $i<=strtotime($end_day); $i+=86400){
$date = date('Y-m-d', $i);
$w = date('w', $i);
// // 不计算周六日
// if($w == 6 || $w == 0){
// continue;
// }
// // 不计算表节假日
// if(in_array($date, $holidays_list)){
// continue;
// }
// 判断17点之后
// if(in_array($date, $exclude_day)){
// continue;
// }
$pick_up_day_list[] = $date;
}
return $pick_up_day_list;
}
if($act == 'get_goods_list') {
$user = check_token();
$area_id = $user['area_id'];
$company_id = $user['company_id'];
$where.= " and b.area_id = ".$user['area_id'];
$goods_id = intval($_REQUEST['goods_id']);
if($goods_id) {
$where.= " and a.id = {$goods_id} ";
$column = " ,a.intro";
}
$name = filterWords(trim($_REQUEST['name']));
if($name) {
$where.= " and name like '%".$name."%'";
}
$type_id = intval($_REQUEST['type_id']);
if($type_id) {
//找出是否是第一层级id
$typers = $db->get_all("select a.id from tb_goods_type a,tb_goods_type_company b where a.id = b.goods_type_id and upid = {$type_id} and isshow = 1 and b.company_id =".$company_id);
foreach($typers as $k=>$v) {
$arr[] = $v['id'];
}
$arr[] = $type_id;
$type_ids = implode(",",$arr);
//$where.= " and type_id = {$type_id}";
$where.= " and type_id in ($type_ids)";
}
$supply_id = intval($_REQUEST['supply_id']);
if($supply_id) {
$where.= " and a.supply_id = {$supply_id} ";
}
$sql = "select a.id,a.name,a.price,a.original_price,a.pic,a.unitname,a.addtime,a.supply_id,a.refund,a.type_id,a.num $column,p.sales from tb_goods a left join (select goods_id,sum(goods_amount) sales from tb_goods_order_detail where state not in (4) group by goods_id) p on a.id = p.goods_id,tb_goods_area b where a.id = b.goods_id and enabled=1 and type_id in (".get_show_typeids().") $where order by a.idx desc,a.id desc";
// and a.num>0
//die($sql);
$data = $db->get_all($sql);
foreach($data as $key => $item) {
if($item['pic'] && substr($item['pic'], 0, 1) != '/' && substr($item['pic'], 0, 4) != 'http') $data[$key]['pic'] = "/backstage/".$item['pic'];
}
if($goods_id){
// 获取商品的评价 (只显示打星)
$pj_list = $db->get_all("select
a.score,
a.addtime,
b.username,
a.content,
a.content_status
from tb_jtj_goods_order_pj a
left join tb_user b on a.uid=b.id
where a.gid='{$goods_id}' and a.status='1' and (a.score<>'0' or a.score is not null)");
if(empty($pj_list)){
$pj_list = array();
}else{
// 隐藏名字
foreach ($pj_list as $k => $v){
if($v['username']){
$pj_list[$k]['username'] = cutName($v['username']);
}
if($v['content_status'] == 1){
$pj_list[$k]['content'] = $v['content'];
}else{
$pj_list[$k]['content'] = null;
}
unset($pj_list[$k]['content_status']);
}
$pj_list = $pj_list;
}
}else{
$pj_list = array();
}
// 获取客服电话
if(!empty($goods_id)){
$kf_info = $db->get_one("select kfphone from tb_goods a left join tb_goods_supply b on a.supply_id=b.id where a.id='{$goods_id}'");
if(!empty($kf_info['kfphone'])){
$kf_phone = $kf_info['kfphone'];
}else{
$kf_phone = null;
}
}else{
$kf_phone = null;
}
if(!$goods_id) {
$result = 1;
$typeList = get_type_list($area_id, false);
} else {
$result = (!empty($data))?1:0;
$data = $data[0];
}
$title = (is_numeric($goods_id))?"商品详情":"商品列表";
//查询个人购物车信息;
$cart_info = get_cart_detail($user['id']);
$supplyer_list = $db->get_all("select id,supply_name as supplyer_name,byprice,mailfee,kfphone from tb_goods_supply where id in (select distinct a.supply_id from tb_goods a,tb_goods_area b where a.id = b.goods_id and enabled=1 and type_id in (".get_show_typeids().") and b.area_id = {$area_id}) order by idx desc, id asc");
// and a.num>0
echoRs($result, 'ok', array('data' => array('user' => $user, 'title' => $title, 'goods_list' => $data, 'type_list' => $typeList, 'type_id' => $type_id, 'supplyer_list' => $supplyer_list, 'name' => $name,'cart_info' => $cart_info,'pj_list'=>$pj_list,'kf_phone'=>$kf_phone)));
}
//获取首页商品
if($act == 'get_index') {
$user = check_token();
$area_id = $user['area_id'];
$type_list = get_type_list($area_id);
$cart_info = get_cart_detail($user['id']);
// 如果是汕头电信则判断tb_config的用户类型是否是允许范围内
$MALL_USER_PERMISSIONS = $db->get_one("select * from tb_config where class='MALL_USER_PERMISSIONS'");
$MALL_USER_PERMISSIONS = $MALL_USER_PERMISSIONS['value'];
if(!empty($MALL_USER_PERMISSIONS)){
$MALL_USER_PERMISSIONS = explode(',', $MALL_USER_PERMISSIONS);
if($user['company_id'] == 30 && !in_array($user['type_id'], $MALL_USER_PERMISSIONS)){
echoRs(-2, '您暂没访问权限');
exit;
}
}
$supplyer_list = $db->get_all("select a.id,a.supply_name from tb_goods_supply a, tb_user b where a.company_id = b.company_id and a.enabled = 1 and b.id = ".$user['id']);
echoRs(1, 'ok', array('data' => array('user' => $user, 'title' => '商品列表', 'type_list' => array_values($type_list), 'cart_info' => $cart_info,'supplyer_list' => $supplyer_list)));
}
//临时生成商品分类json
if($act == 'get_type') {
$sql = "select * from tb_goods_type where upid = 0 and ";
$data = $db->get_all($sql);
foreach($data as $k=>$v) {
$sql = "select * from tb_goods_type where upid = ".$v['id'];
$data1 = $db->get_all($sql);
$array[$v['id']] = array(
"type_id" => $v['id'],
"ptype" => $v['upid'],
"name" => $v['type_name'],
"eng_name" => $v['eng_name'],
"count" => 0,
);
foreach($data1 as $k1=>$v1) {
$array[$v['id']]['stype'][$v1['id']] = array(
"type_id" => $v1['id'],
"ptype" => $v1['upid'],
"name" => $v1['type_name'],
"count" => 0,
);
}
}
//print_r($array);
echo json_encode($array);
}
if($act == 'add_cart') {
$user = check_token();
$user_id = $user['id'];
$goods_id = intval($_REQUEST['goods_id']);
$num = intval($_REQUEST['num']);
$goods_ids = stripslashes($_REQUEST['goods_ids']);
$single = true;
if($goods_id == '' || $num.'' == '') { //多个
$single = false;
$goods_ids = json_decode($goods_ids, true);
if (!$goods_ids) {
echoRs(0, '缺少参数');
}
} else {
if (!is_numeric($num) || $num < 0) {
echoRs(0, '缺少参数');
}
if (!is_numeric($goods_id) || $goods_id < 1) {
echoRs(0, '缺少参数');
}
$goods_ids = array(array('goods_id' => intval($goods_id), 'num' => intval($num)));
}
foreach($goods_ids as $item) {
$goods_id = intval($item['goods_id']);
$num = intval($item['num']);
$ginfo = $db->get_one("select * from tb_goods where id={$goods_id} and type_id in (".get_show_typeids().")");
if(!$ginfo || $ginfo['enabled'] != 1 || $ginfo['num'] < $num) {
$db->query("delete from tb_goods_cart where uid={$user_id} and goods_id={$goods_id}");
if($single) {
echoRs(0, '商品 '.$ginfo['name'].' 已无货');
}
continue;
}
$row = $db->get_one("select * from tb_goods_cart where uid={$user_id} and goods_id={$goods_id}");
if($row) {
if($num <= 0) $db->query("delete from tb_goods_cart where id=".$row['id']);
else $db->query("update tb_goods_cart set num='{$num}' where id=".$row['id']);
} else {
if($num > 0) $db->query("insert into tb_goods_cart set uid={$user_id}, goods_id={$goods_id}, num={$num},addtime=now()");
}
}
$data = array();
$cartList = $db->get_all("select * from tb_goods_cart where uid={$user_id}");
$orderNum = 0;
$price = 0;
foreach($cartList as $item) {
$orderNum += $item['num'];
$price += $db->get_colume("select price from tb_goods where id=".$item['goods_id']) * $item['num'];
}
$data['user'] = $user;
if($single) {
$data['cart'] = array("csnum" => $num, 'orderNum' => $orderNum, 'price' => $price);
} else {
$data['cart'] = array("date_dish_ids" => $goods_ids, 'orderNum' => $orderNum, 'price' => $price);
}
//返回当前的购物车情况
$cart_info = get_cart_detail($user['id']);
echoRs(1, 'ok', array('data' => $data,'cart_info' => $cart_info));
}
//更新order为确认收货
if($act == 'confirm_order') {
$user = check_token();
$user_id = $user['id'];
$orderid = intval($_REQUEST['orderid']);
if($orderid <= 0) {
echoRs(0, '缺少参数');
}
$info = $db->get_one("select * from tb_goods_order where uid={$user_id} and id={$orderid}");
if(!$info) {
echoRs(0, '订单不存在');
}
if($info['supply_id'] == JD_SUPPLY_ID) {
echoRs(0, JD_SUPPLY_ID.'号供应商无需确认收货!');
}
if($info['state'] != 2 || $info['deliver_type'] != 2) {
echoRs(0, '该订单当前不可做确认收货操作!');
}
$db->query("update tb_goods_order set state=3,confirm_id={$user_id},take_goods_time=now() where id=".$orderid);
$db->query("update tb_goods_order_detail set state=3 where order_id=".$orderid);
echoRs(1, '操作成功!');
}
function get_cart_detail2($user, $supply_id = 0) {
global $db;
$aid = $user['area_id'];
if($aid == 2) { //禅城
$sqlext = " and b.area_id in (1, 2) and b.code<> '2001'";
} else {
$sqlext = " and b.area_id = ".$user['area_id'];
}
$sqlext2 = '';
if($supply_id) $sqlext2 = " where id=".$supply_id;
$slist = $db->get_all("select * from tb_goods_supply ".$sqlext2);
$sInfo = array();
foreach($slist as $item) {
//if($item['id'] == 3 && ($aid == 1 || $aid == 2)) { //如果判断 登录用户的area_id in (1,2) 则返回只可选择 现场取货
//$item['delivertype'] = '1';
//}
$list = $db->get_all("select b.* from tb_goods_supply_place a, tb_goods_place b where a.place_id=b.id and b.type=2 and b.enabled = 1 and a.supply_id=".$item['id']." ".$sqlext);
$take_place = array();
foreach($list as $k=>$v) {
$take_place[$v['code']] = $v['name'];
}
$item['take_place'] = $take_place;
$sInfo[$item['id']] = $item;
}
$cart_info = get_cart_detail($user['id']);
$clist = array();
foreach($cart_info['cart_goods'] as $sid => $glist) {
if($supply_id) {
if($sid != $supply_id) continue;
}
$supplyerInfo = $db->get_one("select * from tb_goods_supply where id=".$sid);
if($user['company_id'] == 58){
foreach ($glist as $g_k => $g_v){
// 获取商品的取货地址列表
$goods_take_place = $db->get_one("select a.*,group_concat(a.place_id) take_place_ids from tb_goods_take_place a, tb_goods_place b where a.place_id=b.id and a.supply_id='{$sid}' and a.goods_id='{$g_v['goods_id']}' {$sqlext} group by a.goods_id");
$glist[$g_k]['take_place_ids'] = $goods_take_place['take_place_ids'];
}
// 重新把商品归类,按取货地址
$new_goods_list = array();
$take_place_all_ids = array_column($list, 'id');
foreach ($glist as $g_k => $g_v){
// 给每个商品增加各自的取货地址
if($g_v['take_place_ids']){
$goods_take_place_list = $db->get_all("select * from tb_goods_place where id in ({$g_v['take_place_ids']}) and enabled=1");
$goods_take_place = array();
foreach($goods_take_place_list as $k=>$v) {
$goods_take_place[$v['code']] = $v['name'];
}
$g_v['take_place'] = $goods_take_place;
}else{
$g_v['take_place'] = $take_place;
}
// 商品的取货地址ids 数组
$g_v_arr = explode(',', $g_v['take_place_ids']);
// 下标0 为 全选或者没选null
// 开始判断
if(empty($g_v['take_place_ids'])){
// 没选
$new_goods_list[0][] = $g_v;
continue;
}
// 开始判断
if(empty(array_diff($g_v_arr, $take_place_all_ids)) && empty(array_diff($take_place_all_ids, $g_v_arr))){
// 全选了
$new_goods_list[0][] = $g_v;
continue;
}
$is_new_goods = 1;
foreach ($new_goods_list as $n_k => $n_v){
if($n_k == 0){
continue;
}
// 该数组的收货地址都一样,判断是否一样
$n_v_arr = explode(',', $n_v[0]['take_place_ids']);
if(array_diff($g_v_arr, $n_v_arr) || array_diff($n_v_arr, $g_v_arr)){
// 有不同
// $new_goods_list[] = $g_v;
// continue;
$is_new_goods = 1;
}else{
$is_new_goods = 0;
// 取货地址列表相同
$new_goods_list[$n_k][] = $g_v;
break;
}
}
if($is_new_goods){
if(count($new_goods_list) == 0){
$count = 1;
}else{
$keys = array_keys($new_goods_list);
rsort($keys);
$count = $keys[0] + 1;
}
// $count = count($new_goods_list) > 0 ? count($new_goods_list) : 1;
$new_goods_list[$count][] = $g_v;
}
}
$sInfo[$sid]['new_goods_list'] = $new_goods_list;
}
$total_price = get_total_price($glist);
if($total_price < $supplyerInfo['byprice']) {
$sInfo[$sid]['mailfee'] = $supplyerInfo['mailfee'];
} else {
$sInfo[$sid]['mailfee'] = 0;
}
$sInfo[$sid]['total_price'] = $total_price;
$sInfo[$sid]['goods_list'] = $glist;
$sInfo[$sid]['supplyer_id'] = $sInfo[$sid]['id'];
$sInfo[$sid]['hall_supplier_id'] = $sInfo[$sid]['supplier_id'];
$sInfo[$sid]['supplyer_name'] = $sid."号供应商";
if($user['company_id'] == 58){
$sInfo[$sid]['user_notes'] = true;
}else{
unset($sInfo[$sid]['user_notes']);
}
$book_time = get_pick_up_day($sInfo[$sid]['id']);
$sInfo[$sid]['book_time'] = !empty($book_time) ? $book_time : null;
unset($sInfo[$sid]['id']);
$clist[] = $sInfo[$sid];
}
return $clist;
}
//根据用户所在区域,获取取货地点信息或者邮递信息
if($act == 'get_deliver_type' ) {
$user = check_token();
$supply_id = intval($_GET['supply_id']);
$data = array();
$data['title'] = '订单信息';
$data['page'] = '订单信息';
$data['user'] = $user;
$data['cart_info'] = get_cart_detail2($user, $supply_id);
$data['addrs'] = get_user_addrs($user);
echoRs(1, 'ok', array('data' => $data));
}
if($act == 'add_order') {
$user = check_token();
$supply_id = intval($_GET['supply_id']);
//$user = $db->get_one("select * from tb_user where id=51");
$user_id = $user['id'];
//$issuper = ($user_id == 9766);
$link_user = trim($_REQUEST['link_user']); //联系人
$link_phone = trim($_REQUEST['link_phone']); //联系电话
$link_province = trim($_REQUEST['link_province']); //省
$link_city = trim($_REQUEST['link_city']); //城市
$link_area = trim($_REQUEST['link_area']); //区域
$link_addr = trim($_REQUEST['link_addr']); //收货地址
// $book_time = trim($_REQUEST['book_time']); //预约取货时间
$total_price = floatval($_REQUEST['total_price']);
/*$add_order_info = array(
array('supplyer_id' => '3', 'deliver_type' => '1', 'take_place_id' => '2001'),
array('supplyer_id' => '1004', 'deliver_type' => '1', 'take_place_id' => '2001'),
array('supplyer_id' => '4', 'deliver_type' => '2'),
);
echo json_encode($add_order_info);exit;*/
$add_order_info = json_decode(stripslashes($_REQUEST['add_order_info']), true);
if(!$add_order_info) exit;
$cart_info = get_cart_detail2($user, $supply_id);
if(!$cart_info) {
echoRs(0, '购物车为空!');
}
$msg = '购物车已更新,请刷新重试!';
if(count($cart_info) != count($add_order_info)) {
echoRs(0, $msg);
}
$hasyj = false;
foreach($add_order_info as $item2) {
$deliver_type = $item2['deliver_type'];
if($deliver_type == '2') {
$hasyj = true;
break;
}
}
if($hasyj) { //有邮寄商品
$areaArr = array('禅城', '南海', '高明', '三水', '顺德');
if($link_user == '' || $link_phone == '' || $link_addr == '') {
echoRs(0, '收货信息不完整!');
}
if(!preg_match("/^1\d{10}$/", $link_phone)) {
echoRs(0, '联系电话格式不正确必须为11位手机号码');
}
if($link_province == '' || $link_province == '请选择') {
echoRs(0, '请选择收获省份!');
}
if($link_city == '' || $link_city == '请选择') {
echoRs(0, '请选择收获城市!');
}
if($link_area == '' || $link_area == '请选择') {
echoRs(0, '请选择收获区域!');
}
$as = $link_area.$link_addr;
$hasAreaList = array();
foreach($areaArr as $areaname) {
if(strstr($as, $areaname)) {
$hasAreaList[] = $areaname;
}
}
if(count($hasAreaList) > 1) {
echoRs(0, '收货区域和地址信息同时包含 '.implode('、', $hasAreaList).", 请检查!");
}
}
$goods_place = array();
if($user['company_id'] == 58){
// 获取商品对应的收货地址id
$goods_list = json_decode($_REQUEST['goods_list'], true);
if(empty($goods_list)) exit;
// $goods_list = json_decode($goods_list, true);
// if(empty($goods_list)) exit;
foreach ($goods_list as $k => $v){
$place_code = explode('-', $k);
$place_code = $place_code[1];
$goods_list = $v;
// $goods_place[$place_code] = $goods_list;
$goods_place[$goods_list] = $place_code;
// $goods_place_keys = array_keys($goods_place);
}
}
$total_price2 = 0;
foreach($cart_info as $key => $item) {
$new_goods_list = $item['new_goods_list'];
$supplyer_id = $item['supplyer_id'];
$take_place = $item['take_place'];
$delivertype = $item['delivertype'];
$delivertypeList = explode(",", $delivertype);
$suc = false;
foreach($add_order_info as $item2) {
$supplyer_id2 = $item2['supplyer_id'];
$take_place_id = $item2['take_place_id'];
$deliver_type = $item2['deliver_type'];
$book_time = $item2['book_time'];
$user_notes = $item2['user_notes']; // 用户备注
$cart_info[$key]['user_notes'] = $user_notes;
// 测试
// if($user_id == '15346'){
// 判断预约时间
$is_book_time = get_pick_up_day($supplyer_id2);
if($is_book_time){
// 需要预约
if(!in_array($book_time, $is_book_time)){
echoRs(0, "{$item['supplyer_name']}】的预约时间有误");
}
}else{
// 不需要预约
if($book_time){
echoRs(0, "{$item['supplyer_name']}】该供应商暂没开放预约时间");
}
}
// }
$cart_info[$key]['book_time'] = $book_time;
if($deliver_type != 1) $take_place_id = 0;
if($supplyer_id2 == $supplyer_id) {
$suc = true;
if(!in_array($deliver_type, $delivertypeList)) {
echoRs(0, $item['supplyer_name']."不支持此邮寄方式!");
}
if($user['company_id'] == 58){
$take_place_keys = array_keys($take_place);
if($deliver_type == '1') {
// 逐个判断是否在指定取货地址内
foreach ($goods_place as $gp_k => $gp_v){
// 判断表里面是否有
$check_goods_take_place = $db->get_all("select a.*,b.code from tb_goods_take_place a left join tb_goods_place b on a.place_id=b.id where a.supply_id='{$supply_id}' and a.goods_id in ({$gp_k})");
$check_goods_take_place_code = array_column($check_goods_take_place, 'code');
if(empty($check_goods_take_place_code)){
// 该商品没有指定取货地址,表示所有取货地址都可用
if(!in_array($gp_v, $take_place_keys)){
echoRs(0, $item['supplyer_name']."不支持此取货地点!");
}
}else{
// 指定了收货地址
if(!in_array($gp_v, $check_goods_take_place_code)){
echoRs(0, $item['supplyer_name']."不支持此取货地点!");
}
}
}
}
}else{
if($deliver_type == '1' && !$take_place[$take_place_id]) {
echoRs(0, $item['supplyer_name']."不支持此取货地点!");
}
}
if($deliver_type == '2') { //邮费
$total_price2 += $item['mailfee'];
} else {
$cart_info[$key]['mailfee'] = 0;
}
$cart_info[$key]['take_place_id'] = $take_place_id;
$cart_info[$key]['deliver_type'] = $deliver_type;
break;
}
}
if(!$suc) {
echoRs(0, $msg);
}
foreach($item['goods_list'] as $item2) {
$row = $db->get_one("select * from tb_goods where id=".$item2['goods_id']);
if(!$row || $row['enabled'] != 1 || $row['num'] < $item2['num']) {
echoRs(0, '商品 '.$row['name'].' 已无货,请修改购物车再提交!');
}
}
$total_price2 += $item['total_price'];
if($deliver_type == '2') {
$supplyerInfo = $db->get_one("select * from tb_goods_supply where id=".$supplyer_id);
if($supplyerInfo['mail_province']) {
$pa = explode("|", $supplyerInfo['mail_province']);
$suc = false;
foreach($pa as $province) {
if(strstr($link_province, $province)) {
$suc = true;
break;
}
}
if(!$issuper && !$suc) echoRs(0, $supplyer_id.'号供应商只支持邮寄到'.$supplyerInfo['mail_province'].'省!');
}
if($supplyerInfo['mail_city']) {
$ca = explode("|", $supplyerInfo['mail_city']);
$suc = false;
foreach($ca as $city) {
if(strstr($link_city, $city)) {
$suc = true;
break;
}
}
if(!$issuper && !$suc) echoRs(0, $supplyer_id.'号供应商只支持邮寄到'.$supplyerInfo['mail_city'].'市!');
}
}
}
if(round($total_price*100) != round($total_price2*100)) {
echoRs(0, "总金额不对!");
}
$addrsuc = (strstr($link_addr, "") && (strstr($link_addr, "") || strstr($link_addr, "") || strstr($link_addr, "大道")));
if($link_addr && !$addrsuc) {
//echoRs(0, '收货地址需包含xx路(或街)xx号');
}
//print_r($cart_info);exit;
$rdata = array();
$smslist = array();
foreach($cart_info as $item) {
$supplyer_id = $item['supplyer_id'];
$hall_supplier_id = $item['hall_supplier_id'];
$take_place_id = $item['take_place_id'];
$deliver_type = $item['deliver_type'];
$take_place = $item['take_place'][$take_place_id];
$book_time = $item['book_time'];
$user_notes = $item['user_notes']; // 用户备注
$total_num = 0;
foreach($item['goods_list'] as $item2) $total_num += $item2['num'];
//print_r($orderInfo);
$code = get_code("tb_goods_order", "code", 5, 'num', date("Ymd")."M");
$take_goods_code = get_code("tb_goods_order", "take_goods_code", 9, 'num');
$db->query("insert into tb_goods_order set code='{$code}', take_goods_code='{$take_goods_code}',state='0', uid=-{$user_id},
total_num = ".$total_num.", total_price=".$item['total_price'].",deliver_type={$deliver_type},link_user='{$link_user}',link_phone='".dbenc($link_phone)."',link_province='{$link_province}',link_city='{$link_city}',link_area='{$link_area}',link_addr='".dbenc($link_addr)."',take_place_id='{$take_place_id}',supply_id={$supplyer_id},mailfee=".floatval($item['mailfee']).",addtime=now(), book_time='{$book_time}', user_notes='{$user_notes}'");
$oid = $db->insert_id();
$rList = array();
$kkfrom = '';
if($user['company_id'] == 54) $kkfrom = 'jl'; //交通局使用激励账户
$rList[] = array('ac' => $item['total_price'], 'rtype' => 7, 'oid' => $oid,'supplier_id' => $hall_supplier_id, 'kkfrom' => $kkfrom, 'consume_source' => 'mall');
//$rs = update_user_account($user_id, '-', $item['total_price'] + $item['mailfee'], $oid, 7, $payfrom, 0, $first);
$r = gpay_pay_user_account($user_id, $rList, $updateInfo);
if($r != 'suc') {
$db->query("delete from tb_goods_order where id=".$oid);
$msg = "扣款失败!";
if($r == 'yebz'){
echoRs(-3, '余额不足,请及时充值!');
}
echoRs(0, '扣款失败');
}
$db->query("update tb_goods_order set uid={$user_id} where id=".$oid);
foreach($item['goods_list'] as $item2) {
// 韶关小岛 根据不同商品 用户指定不同收货地址
$take_place_id = '';
if($user['company_id'] == 58){
foreach ($goods_place as $gp_k => $gp_v){
$place_goods_ids = explode(",", $gp_k);
if(in_array($item2['goods_id'], $place_goods_ids)){
$take_place_id = ", take_place_id='{$gp_v}'";
break;
}
}
}
$db->query("update tb_goods set num=num-".$item2['num']." where id=".$item2['goods_id']);
$db->query("insert into tb_goods_order_detail set order_id={$oid}, goods_id=".$item2['goods_id'].", goods_amount=".$item2['num'].", goods_price=".$item2['price'].", addtime=now()".$take_place_id);
}
$rdata[] = array('ordercode' => $code, 'take_goods_code' => $take_goods_code, 'orderid' => $oid);
if($supplyer_id != JD_SUPPLY_ID) {
if($deliver_type == 1) {
$smslist[] = "[内部商城]你好,你的商城订单{$code}已经下单成功,取货码{$take_goods_code},取货地点{$take_place},货物可提取时,会有短信通知,请留意";
} else if($deliver_type == 2) {
$smslist[] = "[内部商城]你好,你的商城订单{$code}已经下单成功,货物会以快递方式邮寄给你,".($item['mailfee']>0?("邮费".$item['mailfee']."元,"):"")."请留意短信息提醒。";
}
}
}
if($supply_id) {
$clist = $db->get_all("select a.id from tb_goods_cart a,tb_goods b where a.goods_id=b.id and a.uid={$user_id} and b.supply_id=".$supply_id);
$idlist = getArrList($clist, "id");
if($idlist) {
$db->query("delete from tb_goods_cart where id in (".implode(',', $idlist).")");
}
} else {
$db->query("delete from tb_goods_cart where uid={$user_id}");
}
//录入个人地址信息
if($link_user && $link_phone && $link_addr) {
$addrrs = $db->get_one("select 1 from tb_user_addr where user_id = {$user_id} and link_user='{$link_user}' and link_phone='{$link_phone}' and link_addr='{$link_addr}'");
if(empty($addrrs)) {
$db->query("insert into tb_user_addr(user_id,link_user,link_phone,link_province,link_city,link_area,link_addr,addtime) values({$user_id},'{$link_user}','".dbenc($link_phone)."','{$link_province}','{$link_city}','{$link_area}','".dbenc($link_addr)."',now() )");
}
}
if(!is_dir("d:/web")) {
// foreach($smslist as $sms) {
// send_sms($user['cellphone'], $sms);
// }
}
// 新增短信通知
if($user['company_id'] == 58){
$other_user_list = $db->get_all("select * from tb_admin_other_info where status='1' and company_id='58'");
$other_cellphone_list = array_column($other_user_list, 'cellphone');
$cellphone_list = $other_cellphone_list;
$order_msg = "商城订单下单,订单编码【{$code}】,请留意。";
foreach ($cellphone_list as $v){
send_sms($v, $order_msg);
// 记录发送记录
$db->query("insert into tb_admin_other_info_log set cellphone='{$v}', code='{$code}', msg='{$order_msg}', add_time='".date("Y-m-d H:i:s")."'");
}
}
$data['orderinfo'] = $rdata;
$data['user'] = $user;
echoRs(1, '下单成功!', array('data' => $data));
}
if($act == 'get_myorders') {
$user = check_token();
$user_id = $user['id'];
$orderid = stripslashes($_REQUEST['orderid']);
$page = intval($_GET['page']);
if($page <= 0) $page = 1;
$pagesize = 10;
if(!empty($orderid)) {
$t = json_decode($orderid,true);
if(empty($t) || !$t[0]) {
echoRs(0, '订单参数错误');
}
$orderid = "";
foreach($t as $k=>$v) {
$orderid.= htmlentities($v['orderid']).",";
}
$orderid = substr($orderid,0,-1);
$where = " and a.id in ( {$orderid} ) ";
}
$start = ($page - 1) * $pagesize;
$sql = "select count(*) from tb_goods_order a where uid={$user_id} $where order by id desc";
$count = $db->get_colume($sql);
$pagecount = ceil($count/$pagesize);
$sql = "select a.*,b.supply_name from tb_goods_order a, tb_goods_supply b where a.supply_id=b.id and a.uid={$user_id} $where order by a.id desc limit {$start},{$pagesize}";
$data = $db->get_all($sql);
foreach($data as $key => $item) {
if($user['company_id'] != 58){
unset($data[$key]['user_notes']);
}
//$data[$key]['order_code'] = $item['code'];
$data[$key]['stateName'] = $statusInfo[$item['state']];
//处理快递单
$emsInfo = $db->get_all("select distinct mailcode from tb_goods_order_ems where order_id=".$item['id']);
foreach($emsInfo as $k=>$v) {
$data[$key]['mailcode'] = $v['mailcode']." &nbsp;&nbsp;";
}
//处理二维码
if($item['deliver_type'] == 1) {
if($item['state'] != 1 && $item['state'] != 3) {
$data[$key]['take_goods_code'] = ' ';
$data[$key]['qrcode'] = "/show/images/bkq.png";
}
} else {
$data[$key]['take_goods_code'] = ' ';
$data[$key]['qrcode'] = "/show/images/bkq.png";
}
if(!$data[$key]['qrcode']) $data[$key]['qrcode'] = "data:image/png;base64,".base64_encode(getQRCode(getEncodeStr($item['take_goods_code'])));
//处理订单取货信息
$data[$key]['deliver_type_name'] = $deliver_type_info[$item['deliver_type']];
//处理取货地址信息
$rs = $db->get_one("select * from tb_goods_place where code = ".intval($item['take_place_id']));
$data[$key]['take_place'] = $rs['name'];
//判断主订单是否可一键退 暂时写死0 不允许
$data[$key]['allowcancel'] = 0;
//只有在查询具体某个订单时,才需要查询订单内详情
if(!empty($orderid)) {
if($item['jdwg_id'] != 0) { //京东微购订单
$data2 = $db->get_all("select * from tb_goods_wg_order_skus where order_id = ".$item['jdwg_id']);
$detail = array();
foreach($data2 as $key2 => $item2) {
$detail[] = array('goods_id' => 0, 'goods_amount' => $item2['num'], 'goods_price' => $item2['price'], 'goods_name' => $item2['name'],'goods_pic' => $item2['imgUrl'],'goods_type' => 1, 'state_id' => 1,'refund' => 0);
}
$data[$key]['detail'] = $detail;
$data[$key]['mailcode'] = '<a href="javascript:;" style="text-decoration:underline" onclick="$.showIndicator();$.get(\'/show/mall.php?act=jd_get_wg_wuliu&wgid='.$item['jdwg_id'].'&token='.$_REQUEST['token'].'\', function(rs){$.hideIndicator();if(rs.indexOf(\'<div class=&quot;popup shxx&quot;>\') != -1) $.popup(rs);});">查看物流信息</a>';
continue;
}
$data2 = $db->get_all("select * from tb_goods_order_detail where order_id=".$item['id']);
$detail = array();
foreach($data2 as $key2 => $item2) {
// 获取订单详情里 是否已经评价
$pj = null;
if(!empty($orderid)){
$pj_info = $db->get_one("select score,content,content_status from tb_jtj_goods_order_pj where status='1' and uid='{$user_id}' and oid='{$orderid}' and gid='{$item2['goods_id']}'");
if(!empty($pj_info)){
$pj['score'] = $pj_info['score'];
if($pj_info['content_status'] == 1){
$pj['content'] = $pj_info['content'];
}else{
$pj['content'] = null;
}
}
}
$gInfo = $db->get_one("select * from tb_goods where id=".$item2['goods_id']);
$gInfo['stateName'] = $statusInfo[$item['state']];
if($user['company_id'] == 58){
// 获取商品的取货地址列表
$goods_take_place = $db->get_one("select a.*,group_concat(a.place_id) take_place_ids from tb_goods_take_place a, tb_goods_place b where a.place_id=b.id and a.supply_id='{$item['supply_id']}' and a.goods_id='{$item2['goods_id']}' group by a.goods_id");
$item2['take_place_ids'] = $goods_take_place['take_place_ids'];
$data2[$key2]['take_place_ids'] = $goods_take_place['take_place_ids'];
}
$detail[] = array('goods_id' => $item2['goods_id'], 'goods_amount' => $item2['goods_amount'], 'goods_price' => $item2['goods_price'], 'goods_name' => $gInfo['name'],'goods_pic' => "/backstage/".$gInfo['pic'],'goods_type' => $gInfo['type'],'state_id' => $gInfo['stateName'],'refund' => $gInfo['refund'],'pj' => $pj, 'take_place_ids'=>$item2['take_place_ids']);
}
$data[$key]['detail'] = $detail;
if($user['company_id'] == 58){
$aid = $user['area_id'];
if($aid == 2) { //禅城
$sqlext = " and b.area_id in (1, 2) and b.code<> '2001'";
} else {
$sqlext = " and b.area_id = ".$aid;
}
$list = $db->get_all("select b.* from tb_goods_supply_place a, tb_goods_place b where a.place_id=b.id and b.type=2 and b.enabled = 1 and a.supply_id=".$item['supply_id']." ".$sqlext);
$take_place = array();
foreach($list as $k=>$v) {
$take_place[$v['code']] = $v['name'];
}
$new_goods_list = array();
$take_place_all_ids = array_column($list, 'id');
foreach($data2 as $g_k => $g_v) {
$gInfo = $db->get_one("select * from tb_goods where id=".$g_v['goods_id']);
$gInfo['stateName'] = $statusInfo[$item['state']];
$g_v['goods_name'] = $gInfo['name'];
$g_v['goods_pic'] = "/backstage/".$gInfo['pic'];
$g_v['goods_type'] = $gInfo['type'];
$g_v['state_id'] = $gInfo['stateName'];
$g_v['refund'] = $gInfo['refund'];
if($g_v['take_place_id']){
$take_place_info = $db->get_one("select * from tb_goods_place where code='{$g_v['take_place_id']}'");
$g_v['take_place_name'] = $take_place_info['name'];
}
// 给每个商品增加各自的取货地址
if($g_v['take_place_ids']){
$goods_take_place_list = $db->get_all("select * from tb_goods_place where id in ({$g_v['take_place_ids']}) and enabled=1");
$goods_take_place = array();
foreach($goods_take_place_list as $k=>$v) {
$goods_take_place[$v['code']] = $v['name'];
}
$g_v['take_place'] = $goods_take_place;
}else{
$g_v['take_place'] = $take_place;
}
// 商品的取货地址ids 数组
$g_v_arr = explode(',', $g_v['take_place_ids']);
// 下标0 为 全选或者没选null
// 开始判断
if(empty($g_v['take_place_ids'])){
// 没选
$new_goods_list[0][] = $g_v;
continue;
}
// 开始判断
if(empty(array_diff($g_v_arr, $take_place_all_ids)) && empty(array_diff($take_place_all_ids, $g_v_arr))){
// 全选了
$new_goods_list[0][] = $g_v;
continue;
}
$is_new_goods = 1;
foreach ($new_goods_list as $n_k => $n_v){
if($n_k == 0){
continue;
}
// 该数组的收货地址都一样,判断是否一样
$n_v_arr = explode(',', $n_v[0]['take_place_ids']);
if(array_diff($g_v_arr, $n_v_arr) || array_diff($n_v_arr, $g_v_arr)){
// 有不同
$is_new_goods = 1;
}else{
$is_new_goods = 0;
// 取货地址列表相同
$new_goods_list[$n_k][] = $g_v;
break;
}
}
if($is_new_goods){
if(count($new_goods_list) == 0){
$count = 1;
}else{
$keys = array_keys($new_goods_list);
rsort($keys);
$count = $keys[0] + 1;
}
$new_goods_list[$count][] = $g_v;
}
}
$data[$key]['new_goods_list'] = $new_goods_list;
}
}
}
//查询个人购物车信息;
// $cart_info = get_cart_detail($user['id']);
//放置个人信息
$rdata['user'] = $user;
$rdata['orderinfo'] = $data;
$rdata['page'] = $page;
$rdata['pagesize'] = $pagesize;
$rdata['count'] = $count;
$rdata['pagecount'] = $pagecount;
$title = (!empty($orderid))?"订单详情":"订单列表";
$rdata['title'] = $title;
// echoRs(1, '成功', array('data' => $rdata,'cart_info' => $cart_info));
echoRs(1, '成功', array('data' => $rdata));
}
if($act == 'get_orders1227') {
$user = check_token();
$user_id = $user['id'];
//$user_id = 51;
//放置个人信息
$rdata['user'] = $user;
$rdata['orderinfo'] = $data;
$rdata['page'] = $page;
$rdata['pagesize'] = $pagesize;
$rdata['count'] = $count;
$rdata['pagecount'] = $pagecount;
//获取供应商电话
$rdata['supplyInfo'] = array();
$supplyInfo = $db->get_all("select id as supplyer_id,supply_name,kfphone,notes,area_ids from tb_goods_supply where id>2 and kfphone is not null");
foreach($supplyInfo as $k=>$v) {
if(strstr(",".$v['area_ids'].",", ",".$user['area_id'].","))
$rdata['supplyInfo'][] = array(
'supply_id' => $v['supplyer_id'],
'supply_name' => $v['supply_name'],
'kfphone' => $v['kfphone']."",
'notes' => $v['notes'],
);
}
$title = "供应商客服信息";
$rdata['title'] = $title;
//print_r($rdata);
echoRs(1, '成功', array('data' => $rdata));
}
if($act == 'add_notes1227') {
$user = check_token();
$d = date("Ymd");
if($d > '20170131') {
echoRs(0, '已过反馈时间!');
}
$user_id = $user['id'];
//$user_id = 51;
$content = trim($_REQUEST['content']);
$id = intval($_GET['id']);
if(!$id || !$content) {
echoRs(0, '参数不完整!');
}
$row = $db->get_one("select * from goods_order20170123 where uid={$user_id} and id=".$id);
if(!$row) {
echoRs(0, '订单不存在!');
}
$db->query("update goods_order20170123 set notes = '{$content}',addtime=now() where id=".$id);
echoRs(1, '提交成功');
}
if($act == 'cancel_order') {
$d = date("Ymd");
if($d < '20170118') {
echoRs(0, '未到允许退货时间!');
} else if($d > '20170131') {
echoRs(0, '已过退货时间!');
}
$user = check_token();
$user_id = $user['id'];
$orderid = intval($_REQUEST['orderid']);
if($orderid <= 0) {
echoRs(0, '缺少参数');
}
$info = $db->get_one("select * from tb_goods_order where uid={$user_id} and id={$orderid}");
if(!$info) {
echoRs(0, '订单不存在');
}
if($info['state'] != '0') {
echoRs(0, '订单当前状态不可取消!');
}
if($info['supply_id'] != 4) {
echoRs(0, '该订单不可取消!');
}
if($info['addtime'] < '2016-12-28') {
echoRs(0, '12月28号之前的订单不可取消');
}
$db->query("update tb_goods_order set state='4' where id={$orderid}");
$rs = update_user_account($user_id, '+', $info['total_price'] + $info['mailfee'], $orderid, 8);
if($rs['status'] != 1) {
$db->query("update tb_goods_order set state='0' where id={$orderid}");
echoRs(0, '操作失败!');
}
$db->query("update tb_goods_order_detail set state='4' where order_id={$orderid}");
//$data = $db->get_all("select * from tb_goods_order_detail where order_id=".$orderid);
//foreach($data as $item) {
//$db->query("update tb_goods set num=num+".$item['goods_amount']." where id=".$item['goods_id']);
//}
echoRs(1, '成功', array('data' => array('price' => $info['total_price'])));
}
if($act == 'take') {
$take_code = filterWords(trim($_REQUEST['take_code']));
$dining_hall_id = mysql_escape_string($_REQUEST['dining_hall_id']);
if($take_code == '' || $dining_hall_id <= 0) {
echoRs(0, '缺少参数');
}
$info = $db->get_one("select a.*,b.supply_name from tb_goods_order a, tb_goods_supply b where a.supply_id=b.id and take_goods_code='{$take_code}'");
if(!$info) {
echoRs(0, '订单不存在');
}
$orderid = $info['id'];
$user = $db->get_one("select * from tb_user where id=".$info['uid']);
if(!in_array($info['state'], array(1, 3)) || $info['deliver_type'] != 1) {
echoRs(0, '该订单不可取货1');
}
if($info['book_time'] && date("Y-m-d") < $info['book_time']) {
// echoRs(0, '该订单未到取货时间');
}
// 韶关小岛 和 新设置取餐地址在goods_order_detail里
if($user['company_id'] == 58 && empty($info['take_place_id'])){
// 获取当前订单的商品 取货地址 是否有当前地址
// 获取所有没被取的订单商品
$get_no_pick_up = $db->get_all("select group_concat(goods_id) goods_ids, take_place_id, group_concat(id) ids from tb_goods_order_detail where order_id='{$orderid}' and state='1' and is_pick_up!=1 group by take_place_id");
$order_no_pick_up_goods_id = array_column($get_no_pick_up, 'take_place_id');
// 查找没领取的商品地址,是否含有当前饭堂
// if(in_array($dining_hall_id, $order_no_pick_up_goods_id)){
// // 当前饭堂有可取订单商品,列出可领取商品,查找剩下哪些饭堂有待领取订单商品
// $pick_up_goods_list = array_search($dining_hall_id, $order_no_pick_up_goods_id);
// // 商品id
// $goods_ids = $get_no_pick_up[$pick_up_goods_list]['goods_ids'];
// $goods_name_list = $db->get_one("select group_concat(name) names from tb_goods where id in ({$goods_ids}) group by enabled");
// $goods_name_list = $goods_name_list['names'];
//
// $unclaimed_dining_hall_name = array();
//
// }else{
// }
$unclaimed_dining_hall_name = '';
$goods_detail_ids = array();
$goods_ids_str = ''; // 领取的商品id
foreach ($get_no_pick_up as $k => $v){
// 当前饭堂有可取订单商品,列出可领取商品,查找剩下哪些饭堂有待领取订单商品
if($dining_hall_id == $v['take_place_id']){
$goods_ids = $v['goods_ids'];
$goods_ids_str = $v['goods_ids'];
$goods_detail_ids[] = $v['ids'];
$goods_name_list_arr = $db->get_one("select group_concat(name) names from tb_goods where id in ({$v['goods_ids']}) group by enabled");
$goods_name_list = $goods_name_list_arr['names'];
}else{
// 没有可取订单商品,查找剩下哪些饭堂有待领取订单商品
$take_place_info = $db->get_one("select * from tb_goods_place where code='{$v['take_place_id']}'");
$unclaimed_dining_hall_name .= ",".$take_place_info['name'];
}
}
// 有就update没就return 如果全部update就直接往下走
$msg = "";
// 可以领取的
if($goods_name_list){
$msg .= "成功领取:“{$goods_name_list}";
}
// 其他地方领取的
$comma = $msg != '' ? '' : '';
if($unclaimed_dining_hall_name){
$unclaimed_dining_hall_name = mb_substr($unclaimed_dining_hall_name, 1, mb_strlen($unclaimed_dining_hall_name));
$msg .= $comma. "剩余商品请到 “{$unclaimed_dining_hall_name}” 取。";
}else{
$msg .= $comma. "商品已全部领取。";
}
// update状态
if(!empty($goods_detail_ids)){
$goods_detail_ids_str = join(',', $goods_detail_ids);
$db->update("tb_goods_order_detail", array('is_pick_up' => 1, 'pick_up_time' => date('Y-m-d H:i:s')), "id in ({$goods_detail_ids_str})");
}
// 当前饭堂没商品,但是其他地点商品,直接提示取货地址
if(!empty($unclaimed_dining_hall_name) && empty($goods_name_list)){
echoRs(0, $msg, array());
}
$order_goods_all_detail = get_order_detail($orderid);
$order_details = array();
$goods_ids_arr = explode(',', $goods_ids_str);
foreach ($order_goods_all_detail as $k => $v){
if(in_array($v['goods_id'], $goods_ids_arr)){
$order_details[] = $v;
}
}
$data = array(
'order_info' => $info,
'order_detail' => $order_details,
'user' => $user,
'take_status' => 1,
);
// 当前地址有商品,其他地址也有商品,返回成功,提示其他取货地址
if(!empty($unclaimed_dining_hall_name) && !empty($goods_name_list)){
echoRs(1, $msg, array('data' => $data));
}
// 当前有商品,其他地址没商品,直接改变订单状态
if(empty($unclaimed_dining_hall_name) && !empty($goods_name_list)){
$take_status = 0;
if($info['state'] == 1) {
$take_status = 1;
$db->query("update tb_goods_order set state='3',take_goods_time=now() where id={$orderid}");
$db->query("update tb_goods_order_detail set state='3' where order_id={$orderid} and state != 4");
}
echoRs(1, $msg, array('data' => $data));
}
if(empty($unclaimed_dining_hall_name) && empty($goods_name_list)){
echoRs(0, "该订单商品已全部领取。", array());
}
exit;
}else{
if($info['take_place_id'] != $dining_hall_id){
echoRs(0, '取货地点不对123');
}
}
$take_status = 0;
if($info['state'] == 1) {
$take_status = 1;
$db->query("update tb_goods_order set state='3',take_goods_time=now() where id={$orderid}");
$db->query("update tb_goods_order_detail set state='3' where order_id={$orderid} and state != 4");
}
$data = array(
'order_info' => $info,
'order_detail' => get_order_detail($orderid),
'user' => $user,
'take_status' => $take_status,
);
echoRs(1, '取货成功', array('data' => $data));
}
if($act == 'get_user_addrs') {
$user = check_token();
$data = array();
$data['addrs'] = get_user_addrs($user);
$data['page'] = '收货地址管理';
$data['title'] = '收货地址管理';
$data['user'] = $user;
echoRs(1, 'ok', array('data' => $data));
}
if($act == 'add_user_addr') {
$user = check_token();
$user_id = $user['id'];
$link_user = clear_tags(trim($_REQUEST['link_user'])); //联系人
$link_phone = clear_tags(trim($_REQUEST['link_phone'])); //联系电话
$link_province = clear_tags(trim($_REQUEST['link_province'])); //省
$link_city = clear_tags(trim($_REQUEST['link_city'])); //城市
$link_area = clear_tags(trim($_REQUEST['link_area'])); //区域
$link_addr = clear_tags(trim($_REQUEST['link_addr'])); //收货地址
$id = intval($_REQUEST['id']);
if($link_user && $link_phone && $link_addr && $link_province && $link_city && $link_area) {
if($_REQUEST['isdefault'] != '') {
$db->query("update tb_user_addr set isdefault=0 where user_id={$user_id}");
}
if($id) {
$sqlext = '';
if($_REQUEST['isdefault'] != '') {
$isdefault = $_REQUEST['isdefault'] == 1?1:0;
$sqlext = ",isdefault={$isdefault}";
}
$db->query("update tb_user_addr set link_user='{$link_user}',link_phone='".dbenc($link_phone)."',link_province='{$link_province}',link_city='{$link_city}',link_area='{$link_area}',link_addr='".dbenc($link_addr)."'{$sqlext} where id={$id} and user_id={$user_id}");
} else {
$isdefault = $_REQUEST['isdefault'] == 1?1:0;
$db->query("insert into tb_user_addr(user_id,link_user,link_phone,link_province,link_city,link_area,link_addr,addtime, isdefault) values({$user_id},'{$link_user}','".dbenc($link_phone)."','{$link_province}','{$link_city}','{$link_area}','".dbenc($link_addr)."',now(), {$isdefault} )");
}
echoRs(1, 'ok', array('id' => $db->insert_id()));
} else exit;
}
if($act == 'del_user_addr') {
$user = check_token();
$user_id = $user['id'];
$id = intval($_REQUEST['id']);
$db->query("delete from tb_user_addr where user_id={$user_id} and id=".$id);
if($db->affected_rows() == 1) echoRs(1, 'ok');
}
if($act == 'set_default_addr') {
$user = check_token();
$user_id = $user['id'];
$id = intval($_REQUEST['id']);
$db->query("update tb_user_addr set `default`=0 where user_id={$user_id}");
$db->query("update tb_user_addr set `default`=1 where user_id={$user_id} and id=".$id);
if($db->affected_rows() == 1) echoRs(1, 'ok');
else echoRs(0, 'fail');
}
if($act == 'get_pick_up_day'){
$user = check_token();
$uid = $user['id'];
$goods_id = intval($_REQUEST['goods_id']);
// 判断供应商是否开放预约时间
if(!empty($goods_id)){
$open_book = $db->get_one("select * from tb_goods a left join tb_goods_supply b on a.supply_id=b.id where a.enabled='1' and b.enabled='1' ang a.id='{$goods_id}'");
if(empty($open_book)){
echoRs(0, '该商品不存在', array());
}else{
if($open_book['open_book'] == 0){
echoRs(0, '暂不开放预约时间', array());
}
}
}else{
echoRs(0, '该商品不存在', array());
}
$day_num = 15;
$current = date("H:i");
if($current >= "10:00"){
$start_day_num = 1;
$day_num = $day_num + 1;
}else{
$start_day_num = 0;
}
$day_list = array();
$start_day = date("Y-m-d", strtotime("+{$start_day_num} day"));
$end_day = date("Y-m-d", strtotime("+{$day_num} day"));
// 获取节假日
// $holidays_list = $db->get_all("select concat(year,'-',day) holidays from tb_holidays where concat(year,'-',day)>='{$start_day}' and concat(year,'-',day)<='{$end_day}' ");
// $holidays_list = array_column($holidays_list, "holidays");
$pick_up_day_list = array();
for ($i=strtotime($start_day); $i<=strtotime($end_day); $i+=86400){
$date = date('Y-m-d', $i);
$w = date('w', $i);
// 不计算周六日
// if($w == 6 || $w == 0){
// continue;
// }
// // 不计算表节假日
// if(in_array($date, $holidays_list)){
// continue;
// }
$pick_up_day_list[] = $date;
}
echoRs(1, 'ok', array('data' => $pick_up_day_list));
exit;
}
// 商城订单评价
if($act == 'mall_order_pj'){
$user = check_token();
$uid = $user['id'];
$oid = intval($_POST['oid']);
$gid = intval($_POST['gid']);
$score = intval($_POST['score']);
$content = trim($_POST['content']);
if(!$oid) {
echoRs(0, '参数不完整!');
}
if($score <= 0 || $score > 5) {
echoRs(0, '分数范围只能为1-5');
}
$oInfo = $db->get_one("select * from tb_goods_order where uid='{$uid}' and state='3' and id='{$oid}'");
if(!$oInfo) {
echoRs(0, '订单暂未开放评价!');
}
// 判断该订单是否存在这个商品
$check_goods = $db->get_one("select * from tb_goods_order_detail where order_id='{$oid}' and goods_id='{$gid}' and state='3'");
if(!$oInfo) {
echoRs(0, '该订单当前状态不能评价,或商品不存在!');
}
$row = $db->get_one("select * from tb_jtj_goods_order_pj where uid='{$uid}' and oid='{$oid}' and gid='{$gid}'");
if($row) {
echoRs(0, '您该订单的商品已评价,无需重复提交!');
}
$db->query("insert into tb_jtj_goods_order_pj set uid = '{$uid}', oid = '{$oid}', gid='{$gid}', score = '{$score}', content = '{$content}', addtime = now()");
$rid = $db->insert_id();
$row = $db->get_one("select * from tb_jtj_excitation_config where name = 'GOODS_ORDER_PJ'");
if($row) {
// 判断今天是否提交过商品评价
$check_today_pj = $db->get_one("select * from tb_jtj_excitation_log where type='6' and user_id='{$uid}' and to_days(addtime)=to_days(now())");
// 第一次才能记录积分
$excitation_jf = $check_today_pj ? 0 : $row['value'];
$db->query("insert into tb_jtj_excitation_log set type = '6', user_id = '{$uid}', order_id = '{$oid}', jf = '{$excitation_jf}', addtime = now()");
if($check_today_pj){
// 今天又同类型操作,不再激励
echoRs(1, '提交成功!今天已有同类操作,本次不再获得激励积分');
exit;
}
$info = array(
'rtype' => '1',
'ac_type' => '3',
'admin_id' => '2',
'oid' => $rid,
);
gpay_add_user_account_uid($uid, $row['value'], $info);
}
echoRs(1, '提交成功!');
exit;
}
if(substr($act, 0, 3) == 'jd_') require_once("mall_jd.php");
if(substr($act, 0, 5) == 'lfyy_') require_once("mall_lfyy.php");