1586 lines
64 KiB
PHP
1586 lines
64 KiB
PHP
|
<?
|
|||
|
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']." ";
|
|||
|
}
|
|||
|
|
|||
|
//处理二维码
|
|||
|
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="popup shxx">\') != -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");
|