yzms/show/mall.php

1586 lines
64 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
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");