'备货中', '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']."   "; } //处理二维码 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'] = '查看物流信息'; 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");