field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $is_just_addcar = empty($data['is_just_addcar']) ? 0: 1; $goods_id = $data['goods_id']; if( empty($member_id)) { $result = array('code' =>4); echo json_encode($result); die(); } if (isset($data['goods_id'])) { $goods_id = $data['goods_id']; } else { $goods_id = 0; } $goods_param = array(); $product = M('lionfish_comshop_goods')->where( array('id' => $goods_id ) )->find(); if( $product['grounding'] != 1) { $json['code'] =6; $json['msg']='商品已下架!'; echo json_encode($json); die(); } $is_community = D('Seller/Communityhead')->is_community($data['community_id']); if( !$is_community ) { $json['code'] =6; $json['msg']='该小区已经不存在!'; echo json_encode($json); die(); } //6 if($is_just_addcar == 1) { if($product['pick_just'] > 0) { $json['code'] =6; $json['msg']='自提商品,请立即购买'; echo json_encode($json); die(); } } //商品存在 if($product){ $cart= D('Home/Car'); if (isset($data['quantity'])) { $quantity = $data['quantity']; } else { $quantity = 1; } $option = array(); if( !empty($data['sku_str'])){ $option = explode('_', $data['sku_str']); } $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token,$data['soli_id'] ); $key = (int)$goods_id . ':'.$data['community_id'].':'; if( !empty($data['soli_id']) ) { $key .= $data['soli_id'].':'; } if ($data['sku_str']) { $key.= base64_encode($data['sku_str']) . ':'; } else { $key.= ':';//xx } $car_prefix = 'cart.'; if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { $key = 'soitairecart.' . $key; $car_prefix = 'soitairecart.'; }else{ $key = 'cart.' . $key; } $json=array('code' =>0); $car_info = M('lionfish_comshop_car')->where( array('carkey' => $key,'community_id' => $data['community_id'] ) )->find(); $tmp_format_data = unserialize($car_info['format_data']); //$tmp_format_data['quantity'] if($tmp_format_data['quantity'] == 1 || $tmp_format_data['quantity'] <= $quantity) { $all_cart = M('lionfish_comshop_car')->where( array('carkey' => $key ,'community_id' =>$data['community_id'],'token' => $token ) )->delete(); }else{ $tmp_format_data['quantity'] = $tmp_format_data['quantity'] - $quantity; M('lionfish_comshop_car')->where( array('id' => $car_info['id'], 'community_id' => $data['community_id'] ) )->save( array('format_data' => serialize($tmp_format_data) ) ); } $cart= D('Home/Car'); $total=$cart->count_goodscar($token, $data['community_id']); $json ['code'] = 1; if( $data['buy_type'] != 'dan' ) { $json ['code'] = 2; } $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token); $json['success']='成功加入购物车!!'; $json['total']=$total; $json['cur_count']=$cart_goods_quantity; $is_limit_distance_buy = D('Home/Front')->get_config_by_name('shop_limit_buy_distance'); $json['is_limit_distance_buy']=$is_limit_distance_buy; $json['goods_total_count'] = 0; if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { $json['goods_total_count'] = $cart->get_wecart_goods_solicount($goods_id, $data['community_id'],$token, $data['soli_id'] ); $json['cur_count'] = $cart->get_wecart_goods($goods_id, $data['sku_str'], $data['community_id'],$token,$car_prefix,$data['soli_id'] ); } echo json_encode($json); die(); } } /** pintuan_newman_notice **/ public function add_newcar() { $_GPC = I('request.'); $data = array(); $data['goods_id'] = $_GPC['goods_id']; $data['buy_type'] = 'pintuan'; $data['community_id'] = $_GPC['community_id']; $community_id= $data['community_id']; $data['quantity'] = 1; $token = $_GPC['token']; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $goods_id = $data['goods_id']; if( empty($member_id)) { $result = array('code' =>4); echo json_encode($result); die(); } $goods_param = array(); $product = M('lionfish_comshop_goods')->where( array('id' => $goods_id ) )->find(); if( $product['grounding'] != 1) { $json['code'] =6; $json['msg']='商品已下架!'; echo json_encode($json); die(); } $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'total_limit_count,one_limit_count,is_new_buy'); $pin_model = D('Home/Pin'); $iszero_opentuan = $pin_model->check_goods_iszero_opentuan( $goods_id ); if($iszero_opentuan != 1) { $json['code'] =6; $json['msg']='非邀请团商品!'; echo json_encode($json); die(); } $cart= D('Home/Car'); if($product){ if( !empty($data['buy_type']) && $data['buy_type'] == 'pintuan' ) { $car_prefix = 'pintuancart.'; } $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token,$car_prefix); $json=array('code' =>0); //$goods_model = D('Home/Goods'); $goods_quantity=$cart->get_goods_quantity($goods_id); //检测商品限购 6 one_limit_count /** $can_buy_count = D('Home/Front')->check_goods_user_canbuy_count($member_id, $goods_id); if(!empty($cart_goods_quantity) && $cart_goods_quantity > 0) { if($goods_description['one_limit_count'] > 0 && $cart_goods_quantity >= $goods_description['one_limit_count'] ) { $json['code'] =6; //$json['msg']='已经不能再买了'; $json['msg']='您本次只能购买'.$goods_description['one_limit_count'].'个'; $json['max_quantity'] = $goods_description['one_limit_count']; echo json_encode($json); die(); } $can_buy_count = $can_buy_count - $cart_goods_quantity; if($can_buy_count <= 0) { $can_buy_count = -1; } } if($can_buy_count == -1 && $goods_description['total_limit_count'] >0) { $json['code'] =6; //$json['msg']='已经不能再买了'; $json['msg']='您本次只能购买'.$goods_description['total_limit_count'].'个'; $json['max_quantity'] = $goods_description['total_limit_count']; echo json_encode($json); die(); }else if($can_buy_count >0 && $quantity >$can_buy_count) { $json['code'] =6; $json['msg']='您还能购买'.$can_buy_count.'份'; $json['max_quantity'] = $can_buy_count; echo json_encode($json); die(); } //已加入购物车的总数 if($goods_quantity<$quantity+$cart_goods_quantity){ $json['code'] =3; if ($goods_quantity==0) { $json['msg']='已抢光'; }else{ // $json['msg']='商品数量不足,剩余'.$goods_quantity.'个!!'; $json['msg']='商品数量不足'; $json['max_quantity'] = $goods_quantity; } echo json_encode($json); die(); } **/ //开始生产订单 TODO... $payment = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find(); $data = array(); $data['member_id']=$member_id; $data['name']= $payment['username']; $data['use_score']= 0;//是否使用积分抵扣 $data['telephone']= '0000'; $data['shipping_name']= '0000'; $data['shipping_tel']= '0000'; $data['shipping_address'] = ''; $data['shipping_province_id']=0; $data['shipping_city_id']=0; $data['shipping_stree_id']=0; $data['shipping_country_id']=0; $data['shipping_method'] = 0; $data['delivery']='express'; $data['pick_up_id']=$community_id; $data['ziti_name']=''; $data['ziti_mobile']=''; $data['payment_method']='yuer'; $data['address_id']= 0; $data['voucher_id'] = 0;//目前都是平台券 $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $data['type'] = 'pintuan'; $data['shipping_fare'] = 0; $goods_data = array(); $goods_data[] = array( 'goods_id' => $product['id'], 'store_id' => 0, 'name' => $product['goodsname'], 'model' => '', 'is_pin' => 1, 'pin_id' => 0, 'header_disc' => 0, 'member_disc' => 0, 'level_name' => '', 'option' => '', 'quantity' => 1, 'shipping_fare' => 0, 'price' => $product['price'], 'card_price' => 0, 'costprice' => 0, 'total' => 0, 'card_total' => 0 , 'is_take_vipcard' => 0, 'fenbi_li' => 0, 'can_man_jian' => 0, 'comment' => '' ); $data['is_free_shipping_fare']= 0; $data['store_id']= 0; $data['order_goods_total_money']= 0; $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($member_id); $data['voucher_credit'] = 0; $data['score_for_money'] = 0; $data['reduce_money'] = 0; $data['man_total_free'] = 0; $oid = D('Home/Frontorder')->addOrder($data);// D('Order')->addOrder($data); $o = array(); $o['payment_code'] = 'yuer'; $o['order_status_id'] = 2; $o['date_modified']=time(); $o['pay_time']=time(); $o['transaction_id'] = '余额支付'; $o['type'] = 'ignore'; //ims_ M('lionfish_comshop_order')->where( array('order_id' => $oid ) )->save( $o ); //更新到0元开团订单类型 echo json_encode( array('code' => 0, 'order_id' => $oid ) ); die(); } } //end-- public function add() { $gpc = I('request.'); $data = array(); $data['goods_id'] = $gpc['goods_id']; $data['community_id'] = $gpc['community_id']; $data['quantity'] = $gpc['quantity']; $data['sku_str'] = $gpc['sku_str']; $data['is_just_addcar'] = $gpc['is_just_addcar']; $data['soli_id'] = isset($gpc['soli_id']) ? intval($gpc['soli_id']) :''; if($gpc['sku_str'] == 'undefined') { $gpc['sku_str'] = ''; $data['sku_str'] = ''; } $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy'); if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 ) { $pintuan_model_buy = 0; } $data['buy_type'] = $gpc['buy_type']; $data['pin_id'] = $gpc['pin_id']; $data['is_just_addcar'] = $gpc['is_just_addcar']; if( !isset($data['buy_type']) || empty($data['buy_type']) ) { $data['buy_type'] = 'dan'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { $data['buy_type'] = 'soitaire'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'pindan' ) { $data['buy_type'] = 'pindan'; }else if( !empty($data['buy_type']) && $data['buy_type'] == 'pintuan' ) { $data['buy_type'] = 'pintuan'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'presale' ) { $data['buy_type'] = 'presale'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'virtualcard' ) { $data['buy_type'] = 'virtualcard'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'integral' ) { $data['buy_type'] = 'integral'; } $token = $gpc['token']; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $puis_not_buy = D('Home/Front')->get_config_by_name('puis_not_buy'); $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id) )->find(); if( !empty($puis_not_buy) && $puis_not_buy ==1 ) { if($member_info['level_id'] == 0) { $json['code'] =6; $json['msg']='普通会员不能购买!'; echo json_encode($json); die(); } } //1、判断是否开启审核,2、如果开启审核,判断会员状态是否审核 $is_user_shenhe = D('Home/Front')->get_config_by_name('is_user_shenhe'); //1 if( isset($is_user_shenhe) && $is_user_shenhe == 1 ) { if( $member_info['is_apply_state'] != 1 ) { $json['code'] = 6; $json['msg'] = '会员未审核不能购买'; echo json_encode( $json ); die(); } } //团长休息 $community_id = $gpc['community_id']; $group_name = D('Home/Front')->get_config_by_name('group_name'); if( isset($community_id) && $community_id > 0 ) { $is_can_buy = D('Seller/Communityhead')-> check_goods_can_community($gpc['goods_id'], $community_id); if( !$is_can_buy ) { $json['code'] =6; $json['msg']='此商品在您所属'.$group_name.'不可参与!'; echo json_encode($json); die(); } // is_all_sale } $is_just_addcar = empty($data['is_just_addcar']) ? 0: 1; $goods_id = $data['goods_id']; if( empty($member_id)) { $result = array('code' =>4); echo json_encode($result); die(); } if (isset($data['goods_id'])) { $goods_id = $data['goods_id']; } else { $goods_id = 0; } $product = M('lionfish_comshop_goods')->where( array('id' => $goods_id ) )->find(); if( $product['grounding'] != 1) { $json['code'] =6; $json['msg']='商品已下架!'; echo json_encode($json); die(); } $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'total_limit_count,one_limit_count,oneday_limit_count,is_new_buy,is_limit_levelunbuy,is_limit_vipmember_buy,goods_start_count'); //is_limit_levelunbuy //$is_default_levellimit_buy = D('Home/Front')->get_config_by_name('is_default_levellimit_buy'); //isset($is_default_levellimit_buy) && $is_default_levellimit_buy == 1 && if( $goods_description['is_limit_levelunbuy'] == 1 ) { // member_id $mb_info = M('lionfish_comshop_member')->field('level_id')->where( array('member_id' => $member_id ) )->find(); if( $mb_info['level_id'] == 0 ) { $json['code'] =6; $json['msg']='默认等级不能购买,请联系客服'; echo json_encode($json); die(); } } //is_limit_vipmember_buy 付费会员专享 //$is_default_vipmember_buy = D('Home/Front')->get_config_by_name('is_default_vipmember_buy'); //isset($is_default_vipmember_buy) && $is_default_vipmember_buy == 1 && if( $goods_description['is_limit_vipmember_buy'] == 1 ) { $mb_vip = M('lionfish_comshop_member')->field('card_id,card_begin_time,card_end_time')->where( array('member_id' => $member_id ) )->find(); //当前时间 $present_time = time(); if( $mb_vip['card_id'] == 0 || ( $present_time > $mb_vip['card_end_time'] ) ) { $is_pop_vipmember_buytip = D('Home/Front')->get_config_by_name('is_pop_vipmember_buytip'); $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy'); $pop_vipmember_buyimage = D('Home/Front')->get_config_by_name('pop_vipmember_buyimage'); $json['has_image'] = 0; $is_open_vipcard_buy = isset($is_open_vipcard_buy) ? $is_open_vipcard_buy : 0; if( isset($is_pop_vipmember_buytip) && $is_pop_vipmember_buytip ==1 ) { if( isset($pop_vipmember_buyimage) && !empty($pop_vipmember_buyimage) ) { $pop_vipmember_buyimage = tomedia($pop_vipmember_buyimage); $json['has_image'] = 1; $json['pop_vipmember_buyimage'] = $pop_vipmember_buyimage; } } $json['code'] =7; $json['msg']='付费会员专享,普通会员不能购买'; echo json_encode($json); die(); } } if( !empty($goods_description['is_new_buy']) && $goods_description['is_new_buy'] == 1) { $ck_buy_order = M('lionfish_comshop_order')->field('order_id')->where( "member_id={$member_id} and order_status_id in (1,4,6,7,10,11,12,14)" )->find(); if( !empty($ck_buy_order) ) { $json['code'] =6; $json['msg']='新人专享!'; echo json_encode($json); die(); } $is_new_buy_limit = D('Home/Front')->get_config_by_name('is_new_buy_limit'); $new_buy_limit_num = D('Home/Front')->get_config_by_name('new_buy_limit_num'); if(!empty($is_new_buy_limit) && $is_new_buy_limit == 1){//新人专享限制 $goods_cate_count = D('Home/Car')->get_new_goods_count($token,$goods_id,$data['sku_str']); if($goods_cate_count >= $new_buy_limit_num){ $json['code'] = 6; $json['msg']='超出新人专享限制!'; echo json_encode($json); die(); } } } //$data['community_id'] if( $data['buy_type'] == 'dan' || $data['buy_type'] =='soitaire' || ($pintuan_model_buy ==1 && $data['buy_type'] != 'dan') ) { $is_community = D('Seller/Communityhead')->is_community($data['community_id']); if( !$is_community ) { $json['code'] =6; $json['msg']='该小区已经不存在!'; echo json_encode($json); die(); } } //判断是否积分兑换 if( $product['type'] == 'integral') { //判断积分是否足够 member_id 暂时关闭以下代码 $integral_model = D('Home/Integral'); if (isset($data['quantity'])) { $quantity = $data['quantity']; } else { $quantity = 1; } if(intval($quantity) < 1){ $json['code'] =6; $json['msg']='数量不能小于1!'; echo json_encode($json); die(); } $check_result = $integral_model->check_user_score_quantity_can_pay($member_id, $data['sku_str'], $goods_id,$quantity); if( $check_result['code'] == 1 ) { $json['code'] =6; $json['msg']='剩余'.$check_result['cur_score'].'积分,积分不足!'; echo json_encode($json); die(); } /****/ } //6 if($is_just_addcar == 1) { if($product['pick_just'] > 0) { $json['code'] =6; $json['msg']='自提商品,请立即购买'; echo json_encode($json); die(); } } //商品存在 if($product){ $cart= D('Home/Car'); if (isset($data['quantity'])) { $quantity = $data['quantity']; } else { $quantity = 1; } $option = array(); if( !empty($data['sku_str'])){ $option = explode('_', $data['sku_str']); } $car_prefix = "cart."; if( !empty($data['buy_type']) && $data['buy_type'] == 'pindan' ) { $car_prefix = 'pindancart.';//cart. } else if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { $car_prefix = 'soitairecart.'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'pintuan' ) { $car_prefix = 'pintuancart.'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'presale' ) { $car_prefix = 'presalecart.'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'virtualcard' ) { $car_prefix = 'virtualcardcart.'; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'integral' ){ $car_prefix = 'integralcart.'; } //$data['soli_id'] if($data['is_just_addcar'] == 0){ $cart_goods_quantity = 0; }else{ $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token,$car_prefix,$data['soli_id']); } $cart_goods_all_quantity = $cart->get_wecartall_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token,$car_prefix); $json=array('code' =>0); //$goods_model = D('Home/Goods'); $goods_quantity=$cart->get_goods_quantity($goods_id); if(!empty($data['sku_str'])){ $goods_option_item_value = M('lionfish_comshop_goods_option_item_value')->field('stock')->where(array('goods_id' =>$goods_id,'option_item_ids'=>$data['sku_str']))->find(); if(!empty($goods_option_item_value)){ $goods_quantity = $goods_option_item_value['stock']; } } //rela_goodsoption_valueid if($goods_quantity < $goods_description['goods_start_count']){ $json['code'] =6; $json['msg']='起售数量'.$goods_description['goods_start_count'].',库存不足,剩余'.$goods_quantity.'个'; $json['max_quantity'] = $goods_description['goods_start_count']; echo json_encode($json); die(); } //起售数量判断 if($quantity+$cart_goods_quantity < $goods_description['goods_start_count']) { $json['code'] = 6; $json['msg'] = $goods_description['goods_start_count'].'份起售'; $json['max_quantity'] = $goods_description['goods_start_count']; echo json_encode($json); die(); } //$can_buy_count = D('Home/Front')->check_goods_user_canbuy_count($member_id, $goods_id); /** //单次限购 if(!empty($cart_goods_all_quantity) && $cart_goods_all_quantity > 0 && $data['buy_type'] != 'pintuan' ) { if($goods_description['one_limit_count'] > 0 && $cart_goods_all_quantity >= $goods_description['one_limit_count'] ) { $json['code'] =6; //$json['msg']='已经不能再买了'; $json['msg'] = '您本次只能购买'.$goods_description['one_limit_count'].'个'; $json['max_quantity'] = $goods_description['one_limit_count']; echo json_encode($json); die(); } $can_buy_count = $can_buy_count - $cart_goods_all_quantity; if($can_buy_count <= 0) { $can_buy_count = -1; } } //每单限购 if($can_buy_count > 0 && $quantity > $can_buy_count) { $json['code'] =6; $json['msg']='您每次只能购买'.$can_buy_count.'份'; $json['max_quantity'] = $can_buy_count; echo json_encode($json); die(); } //每日限购 6 $can_buy_day_count = D('Home/Front')->check_goods_user_canbuy_day_count($member_id, $goods_id); if ($goods_description['oneday_limit_count'] >0){ if($can_buy_day_count == -1 || ($can_buy_day_count > 0 && ($cart_goods_all_quantity+$quantity) > $can_buy_day_count)) { $json['code'] =6; //$json['msg']='已经不能再买了'; $json['msg']='您每天只能购买'.$goods_description['oneday_limit_count'].'个'; $json['max_quantity'] = $goods_description['oneday_limit_count']; echo json_encode($json); die(); } } //历史限购判断 if($can_buy_count == -1 && $goods_description['total_limit_count'] >0) { $json['code'] =6; //$json['msg']='已经不能再买了'; $json['msg']='您还能购买'.$goods_description['total_limit_count'].'个'; $json['max_quantity'] = $goods_description['total_limit_count']; echo json_encode($json); die(); } **/ $can_buy_one_count = D('Home/Front')->check_goods_user_canbuy_one_count($member_id, $goods_id); /*$goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'total_limit_count,one_limit_count,oneday_limit_count,is_new_buy,is_limit_levelunbuy,is_limit_vipmember_buy,goods_start_count'); if($quantity < $goods_description['goods_start_count']){ $json['code'] = 6; //$json['msg'] = '您本次只能购买'.$goods_description['one_limit_count'].'份'; $json['msg'] = $goods_description['goods_start_count'].'件起售'; $json['max_quantity'] = $goods_description['goods_start_count']; echo json_encode($json); die(); }*/ //单次限购判断 if($goods_description['one_limit_count'] > 0 && $quantity+$cart_goods_quantity > $goods_description['one_limit_count']) { $json['code'] = 6; //$json['msg'] = '您本次只能购买'.$goods_description['one_limit_count'].'份'; $json['msg'] = '购物车总数已满或超出每次购买数量'; $json['max_quantity'] = $goods_description['one_limit_count']-$cart_goods_all_quantity; echo json_encode($json); die(); } $can_buy_day_count = D('Home/Front')->check_goods_user_canbuy_day_count($member_id, $goods_id); if($can_buy_day_count == -1 || ($can_buy_day_count > 0 && $quantity > $can_buy_day_count)) { $json['code'] =6; //$json['msg'] = '您今天只能购买'.$goods_description['oneday_limit_count'].'份'; $json['msg'] = '购物车总数已满或超出每天购买数量'; $json['max_quantity'] = $can_buy_day_count-$cart_goods_all_quantity; echo json_encode($json); die(); }else if($can_buy_day_count > 0 && ($quantity+$cart_goods_quantity) > $can_buy_day_count){ $json['code'] =6; //$json['msg'] = '您今天还能购买'.$can_buy_day_count.'份'; $json['msg'] = '购物车总数已满或超出每天购买数量'; $json['max_quantity']=$can_buy_day_count-$cart_goods_all_quantity; echo json_encode($json); die(); } $can_buy_all_count = D('Home/Front')->check_goods_user_canbuy_all_count($member_id, $goods_id); if($data['buy_type'] == 'pintuan' || $data['buy_type'] == 'pindan' || $data['buy_type'] == 'presale'){ $cart_goods_all_quantity = 0; } //历史限购判断 if($can_buy_all_count == -1 && $goods_description['total_limit_count'] >0) { $json['code'] =6; //$json['msg']='您最多只能购买'.$goods_description['total_limit_count'].'份'; $json['msg'] = '购物车总数已满或超出历史购买数量'; $json['max_quantity'] = 1; echo json_encode($json); die(); }else if($can_buy_all_count > 0 && ($cart_goods_all_quantity+$quantity) > $can_buy_all_count){ $json['code'] =6; $json['msg']='购物车总数已满或超出历史购买数量'; $json['max_quantity'] = $can_buy_all_count-$cart_goods_all_quantity; echo json_encode($json); die(); } //已加入购物车的总数 if($goods_quantity < $quantity+$cart_goods_quantity){ $json['code'] =3; if ($goods_quantity==0) { $json['msg']='已抢光'; }else{ $json['msg']='商品数量不足'; $json['max_quantity'] = $goods_quantity; } echo json_encode($json); die(); } if(!empty($option)) { $mul_opt_arr = array(); //ims_ //$goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id,'option_item_ids' => $data['sku_str']) )->find(); $open_redis_server = D('Home/Front')->get_config_by_name('open_redis_server'); if(!empty($open_redis_server) && $open_redis_server == 1) { $goods_option_mult_value_stock = D('Seller/Redisorder')->get_goods_sku_quantity($goods_id, $data['sku_str']); }else{ $goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id,'option_item_ids' => $data['sku_str']) )->find(); } if( !empty($goods_option_mult_value_stock) ) { if($goods_option_mult_value_stock<$quantity+$cart_goods_quantity){ $json['code'] =3; $json['msg']='商品数量不足,剩余'.$goods_option_mult_value_stock.'个!!'; $json['max_quantity'] = $goods_option_mult_value['stock']; echo json_encode($json); die(); } } } //buy_type // $this->clear_all_cart(); $data['community_id'] $format_data_array = array( 'quantity' => $quantity, 'community_id' => $data['community_id'], 'goods_id' => $goods_id, 'sku_str'=>$data['sku_str'], 'buy_type' =>$data['buy_type'], 'soli_id' => $data['soli_id'] ); //区分活动商品还是普通商品。做两个购物车,活动商品是需要直接购买的,单独购买商品加入正常的购物车TODO.... //is_just_addcar 0 1 if($data['buy_type'] == 'dan' && $is_just_addcar == 0) { //$cart->removedancar($token); //清空一下购物车 //singledel $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id']); $total=$cart->count_goodscar($token ,$data['community_id']); } else if($data['buy_type'] == 'dan' && $is_just_addcar == 1) { //singledel $format_data_array['is_just_addcar'] = 1; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id']); $total=$cart->count_goodscar($token, $data['community_id']); } else if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { //清理单独购买的商品 $format_data_array['is_just_addcar'] = 1; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix,$data['soli_id']); $total=0; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'pindan' ) { //清理单独购买的商品 $cart->removeActivityAllcar($token, 'pindancart.'); $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix); $total=0; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'pintuan' ) { $pin_id = isset($data['pin_id']) ? $data['pin_id'] : 0; if( $pin_id > 0 ) { $pin_info_tmp = M('lionfish_comshop_pin')->where( array('pin_id' => $pin_id ) )->find(); if( !empty($pin_info_tmp) && $pin_info_tmp['is_newman_takein'] == 1 ) { //检测是否新人 //检测是否购买过 $od_status = "1,2,4,6,7,8,9,10,11,12,14"; $od_buy_count = M('lionfish_comshop_order')->where("order_status_id in ({$od_status}) and member_id=".$member_id)->count(); if( !empty($od_buy_count) && $od_buy_count >0 ) { $json['code'] =3; $json['msg']='新人专享'; echo json_encode($json); die(); } } } //清理拼团的商品 $cart->removeActivityAllcar($token, 'pintuancart.'); $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $format_data_array['pin_id'] = $pin_id; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix); $total=0; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'presale' ) { //清理预售的商品 $cart->removeActivityAllcar($token, 'presalecart.'); $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix); $total=0; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'virtualcard' ) { //清理预售的商品 $cart->removeActivityAllcar($token, 'virtualcardcart.'); $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix); $total=0; } else if( !empty($data['buy_type']) && $data['buy_type'] == 'integral' ) { //清理拼团的商品 $data['pin_id'] $cart->removeActivityAllcar($token, 'integralcart.'); $format_data_array['is_just_addcar'] = 0; $format_data_array['singledel'] = 1; $cart->addwecar($token,$goods_id,$format_data_array,$data['sku_str'],$data['community_id'],$car_prefix); $total=0; } else { //buy_type:pin 活动购物车。 $pin_id = isset($data['pin_id']) ? $data['pin_id'] : 0; //lottery if( $product['type'] == 'lottery' && $product['type'] == 'lottery' ) { /** //等待把抽奖的活动打开 $now_time = time(); $lottery_goods_info = M('lottery_goods')->where( array('goods_id' => $goods_id) )->find(); if($lottery_goods_info['end_time'] < $now_time) { $json['code'] =6; $json['msg']='抽奖活动已结束'; echo json_encode($json); die(); } **/ } //检测商品是否老带新,新人才能参团 if($pin_id > 0 ) { //等待把老带新的活动打开 /** if($product['type'] == 'newman') { $new_mamn_buy = $goods_model->check_goods_new_manbug($member_id); if($new_mamn_buy>0) { $json['code'] =5; $json['msg']='该商品只能新人参团'; echo json_encode($json); die(); } } **/ } $format_data_array['pin_id'] = $pin_id; $cart->add_activitycar($token, $goods_id,$format_data_array,$data['sku_str']); $total=$cart->count_activitycar($token); } $carts = M('lionfish_comshop_car')->where( array('token' => $token,'community_id' => $data['community_id'],'carkey' => 'cart_total') )->find(); if( !empty($data['buy_type']) && $data['buy_type'] == 'dan' ) { if( !empty($carts) ) { $car_data = array(); $car_data['format_data'] = serialize(array('quantity' => $total)); $car_data['modifytime'] = 1; M('lionfish_comshop_car')->where( array('token' => $token,'community_id' => $data['community_id'],'carkey' => 'cart_total') )->save($car_data); } else{ $car_data = array(); $car_data['token'] = $token; $car_data['community_id'] = $data['community_id']; $car_data['carkey'] = 'cart_total'; $car_data['format_data'] = serialize(array('quantity' => $total)); M('lionfish_comshop_car')->add($car_data); } } //session('cart_total',$total); $json ['code'] = 1; if( $data['buy_type'] != 'dan' ) { $json ['code'] = 2; } $json['success']='成功加入购物车!!'; $json['total']=$total; $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token , $car_prefix); $json['cur_count']=$cart_goods_quantity; //soitaire $is_limit_distance_buy = D('Home/Front')->get_config_by_name('shop_limit_buy_distance'); $json['is_limit_distance_buy']=$is_limit_distance_buy; $json['goods_total_count'] = 0; if( !empty($data['buy_type']) && $data['buy_type'] == 'soitaire' ) { $json['goods_total_count'] = $cart->get_wecart_goods_solicount($goods_id, $data['community_id'],$token, $data['soli_id'] ); $cart_goods_quantity = $cart->get_wecart_goods($goods_id,$data['sku_str'],$data['community_id'] ,$token , $car_prefix, $data['soli_id']); $json['cur_count']=$cart_goods_quantity; } echo json_encode($json); die(); } } //显示购物车中商品列表 function show_cart_goods(){ $gpc = I('request.'); $token = $gpc['token']; $community_id = $gpc['community_id']; $soli_id = isset($gpc['soli_id']) ? intval($gpc['soli_id']) : ''; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy'); $is_open_vipcard_buy = !empty($is_open_vipcard_buy) && $is_open_vipcard_buy ==1 ? 1:0; $modify_vipcard_name = D('Home/Front')->get_config_by_name('modify_vipcard_name'); $is_vip_card_member = 0; $is_member_level_buy = 0; if( $member_id > 0 ) { $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find(); if( !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 ) { $now_time = time(); if( $member_info['card_id'] >0 && $member_info['card_end_time'] > $now_time ) { $is_vip_card_member = 1;//还是会员 }else if( $member_info['card_id'] >0 && $member_info['card_end_time'] < $now_time ){ $is_vip_card_member = 2;//已过期 } } if($is_vip_card_member != 1 && $member_info['level_id'] >0 ) { $is_member_level_buy = 1; } } $buy_type = isset($gpc['buy_type']) ? $gpc['buy_type']: 'dan'; if( empty($member_id) ) { //需要登录 echo json_encode( array('code' =>5) ); die(); } $cart = D('Home/Car'); $goods = $cart->get_all_goodswecar($buy_type, $token, 0, $community_id,$soli_id); $seller_goodss = array(); $seller_goodss_mult = array(); //is_only_express $tp_ar = array(); foreach($goods as $key => $val) { //$goods_store_field = M('goods')->field('store_id')->where( array('goods_id' => $val['goods_id']) )->find(); //$seller_goodss[ $goods_store_field['store_id'] ]['goods'][$key] = $val; $supply_id = D('Home/Front')->get_goods_supply_id($val['goods_id']); if($supply_id > 0) { $supply_info = D('Home/Front')->get_supply_info($supply_id); if($supply_info['type'] ==0) { $supply_id = 0; } } $seller_goodss[ $supply_id ]['goods'][$key] = $val; $tp_ar[] = $val['is_only_express']; $seller_goodss_mult[$val['is_only_express']][ $supply_id ]['goods'][$key] = $val;//new 0719 } $ck_goodstype_count = 0; $vipcard_save_money = 0; $level_save_money = 0; //$max_can_orderbuy_money = 0 ; foreach($seller_goodss_mult as $key => $seller_goodss_tp) { foreach($seller_goodss_tp as $store_id => $val) { //total $seller_voucher_list = array(); $seller_total_fee = 0; $total_trans_free = 0; $tmp_goods = array(); $is_store_ck = false; foreach($val['goods'] as $kk =>$d_goods) { $seller_total_fee += $d_goods['total']; $total_trans_free += $d_goods[$kk]['trans_free']; $val['goods'][$kk] = $d_goods; $tp_val = array(); $tp_val['id'] = $d_goods['goods_id']; $tp_val['key'] = $d_goods['key']; if($d_goods['singledel'] == 1) { $tp_val['isselect'] = true; $is_store_ck = true; $ck_goodstype_count++; if($d_goods['is_take_vipcard'] == 1) { $vipcard_save_money = $d_goods['total'] - $d_goods['card_total']; }else if($d_goods['is_mb_level_buy'] == 1 ){ $level_save_money = $d_goods['total'] - $d_goods['level_total']; } } else { $tp_val['isselect'] = false; } $tp_val['imgurl'] = $d_goods['image']; $tp_val['edit'] = 'inline'; $tp_val['title'] = htmlspecialchars_decode($d_goods['name']); $tp_val['finish'] = 'none'; $tp_val['description'] = 'description'; $option_arr = array(); $option_str = ""; foreach($d_goods['option'] as $option_val) { //$option_arr[] = $option_val['name'].':'.$option_val['value']; $option_arr[] = $option_val['value']; } if(!empty($option_arr)) { $option_str = implode(';', $option_arr); } $tp_val['can_buy'] = D('Home/Pingoods')->get_goods_time_can_buy($d_goods['goods_id']); $tp_val['option_can_buy'] = D('Home/Pingoods')->get_goods_option_can_buy( $d_goods['goods_id'], $d_goods['sku_str']); $tp_val['goodstype'] = $option_str; $tp_val['goodstypeedit'] = $option_str; $tp_val['goodsnum'] = $d_goods['quantity']; $tp_val['can_man_jian'] = $d_goods['can_man_jian']; $tp_val['max_quantity'] = $d_goods['max_quantity']; $tp_val['cartype'] = 'inline'; $tp_val['currntprice'] = $d_goods['price']; $tp_val['card_price'] = $d_goods['card_price']; $tp_val['levelprice'] = $d_goods['levelprice'];// 会员等级价格 $tp_val['is_mb_level_buy'] = $d_goods['is_mb_level_buy'];//是否可以会员等级价格购买 $tp_val['is_take_vipcard'] = $d_goods['is_take_vipcard']; $tp_val['price'] = $d_goods['shop_price']; $tp_val['is_new_buy'] = $d_goods['is_new_buy']; $tp_val['goods_start_count'] = $d_goods['goods_start_count']; $tp_val['store_id'] = $store_id; $tmp_goods[] = $tp_val; } //$store_info = M('seller')->field('s_id,s_true_name,s_logo')->where( array('s_id' => $store_id) )->find(); //$store_info['s_logo'] = C('SITE_URL').'Uploads/image/'.$store_info['s_logo']; $store_info = array('s_true_name' => '','s_id' => 1); $s_logo = D('Home/Front')->get_config_by_name('shoplogo'); if( !empty($s_logo) ) { $s_logo = tomedia($s_logo); } $val['store_info'] = $store_info; $store_data = array(); $store_data['id'] = $store_info['s_id']; if($is_store_ck) { $store_data['isselect'] = true; } else { $store_data['isselect'] = false; } $store_data['shopname'] = $store_info['s_true_name']; $store_data['caredit'] = 'inline'; $store_data['finish'] = 'none'; $store_data['count'] = '0.00'; $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction'); $full_money = D('Home/Front')->get_config_by_name('full_money'); $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney'); if(empty($full_reducemoney) || $full_reducemoney <= 0) { $is_open_fullreduction = 0; } $store_data['is_open_fullreduction'] = $is_open_fullreduction; $store_data['full_money'] = $full_money; $store_data['full_reducemoney'] = $full_reducemoney; $store_data['goodstype'] = 2; $store_data['goodstypeselect'] = 0; $store_data['shopcarts'] = $tmp_goods; //起送价格 $localtown_moneytype_fixed_deliverymoney = 0; //达到金额免配送费 $localtown_moneytype_fixed_freemoney = 0; $localtown_fixed_list = array(); if($key == 3){//同城配送商品 $storename = ""; if($store_id == 0){ //配送费类型:0、固定金额,1、按距离收取 $localtown_delivery_moneytype = D('Home/Front')->get_config_by_name('localtown_delivery_moneytype'); if($localtown_delivery_moneytype == 0){ $localtown_moneytype_fixed_deliverymoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_deliverymoney'); $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_freemoney'); } $storename = "平台"; }else{ $isopen_localtown_delivery = D('Home/Front')->get_supply_config_by_name('isopen_localtown_delivery',$store_id); //配送费类型:0、固定金额,1、按距离收取 $localtown_delivery_moneytype = D('Home/Front')->get_supply_config_by_name('localtown_delivery_moneytype',$store_id); if($isopen_localtown_delivery == 1 && $localtown_delivery_moneytype == 0){ $localtown_moneytype_fixed_deliverymoney = D('Home/Front')->get_supply_config_by_name('localtown_moneytype_fixed_deliverymoney',$store_id); $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_supply_config_by_name('localtown_moneytype_fixed_freemoney',$store_id); } $supply_info_data = M('lionfish_comshop_supply')->field('storename')->where( array('id' => $store_id) )->find(); $storename = $supply_info_data['storename']; } $localtown_fixed_list['localtown_moneytype_fixed_deliverymoney'] = $localtown_moneytype_fixed_deliverymoney; //if($localtown_moneytype_fixed_deliverymoney > $max_can_orderbuy_money){ //获取起送最大下单金额限制 //$max_can_orderbuy_money = $localtown_moneytype_fixed_deliverymoney; //} $localtown_fixed_list['localtown_moneytype_fixed_freemoney'] = $localtown_moneytype_fixed_freemoney; $localtown_fixed_list['store_name'] = $storename; }else if($key == 2){ if($store_id == 0){ $storename = "平台"; }else{ $supply_info_data = M('lionfish_comshop_supply')->field('storename')->where( array('id' => $store_id) )->find(); $storename = $supply_info_data['storename']; } $localtown_fixed_list['store_name'] = $storename; } $store_data['localtown_fixed_list'] = $localtown_fixed_list; $seller_goodss_tp[$store_id] = $store_data; $i++; } $seller_goodss_mult[$key] = $seller_goodss_tp; } foreach($seller_goodss as $store_id => $val) { //total $seller_voucher_list = array(); $seller_total_fee = 0; $total_trans_free = 0; $tmp_goods = array(); $is_store_ck = false; foreach($val['goods'] as $kk =>$d_goods) { $seller_total_fee += $d_goods['total']; $total_trans_free += $d_goods[$kk]['trans_free']; $val['goods'][$kk] = $d_goods; $tp_val = array(); $tp_val['id'] = $d_goods['goods_id']; $tp_val['key'] = $d_goods['key']; if($d_goods['singledel'] == 1) { $tp_val['isselect'] = true; $is_store_ck = true; $ck_goodstype_count++; } else { $tp_val['isselect'] = false; } $tp_val['imgurl'] = $d_goods['image']; $tp_val['edit'] = 'inline'; $tp_val['title'] = $d_goods['name']; $tp_val['finish'] = 'none'; $tp_val['description'] = 'description'; $option_arr = array(); $option_str = ""; foreach($d_goods['option'] as $option_val) { //$option_arr[] = $option_val['name'].':'.$option_val['value']; $option_arr[] = $option_val['value']; } if(!empty($option_arr)) { $option_str = implode(';', $option_arr); } $tp_val['can_buy'] = D('Home/Pingoods')->get_goods_time_can_buy($d_goods['goods_id']); $tp_val['goodstype'] = $option_str; $tp_val['goodstypeedit'] = $option_str; $tp_val['goodsnum'] = $d_goods['quantity']; $tp_val['can_man_jian'] = $d_goods['can_man_jian']; $tp_val['max_quantity'] = $d_goods['max_quantity']; $tp_val['cartype'] = 'inline'; $tp_val['currntprice'] = $d_goods['price']; $tp_val['price'] = $d_goods['shop_price']; $tp_val['card_price'] = $d_goods['card_price']; $tp_val['is_take_vipcard'] = $d_goods['is_take_vipcard']; $tp_val['is_new_buy'] = $d_goods['is_new_buy']; $tmp_goods[] = $tp_val; } //$store_info = M('seller')->field('s_id,s_true_name,s_logo')->where( array('s_id' => $store_id) )->find(); //$store_info['s_logo'] = C('SITE_URL').'Uploads/image/'.$store_info['s_logo']; $store_info = array('s_true_name' => '','s_id' => 1); $s_logo = D('Home/Front')->get_config_by_name('shoplogo'); if( !empty($s_logo) ) { $s_logo = tomedia($s_logo); } $val['store_info'] = $store_info; $store_data = array(); $store_data['id'] = $store_info['s_id']; if($is_store_ck) { $store_data['isselect'] = true; } else { $store_data['isselect'] = false; } $store_data['shopname'] = $store_info['s_true_name']; $store_data['caredit'] = 'inline'; $store_data['finish'] = 'none'; $store_data['count'] = '0.00'; $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction'); $full_money = D('Home/Front')->get_config_by_name('full_money'); $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney'); if(empty($full_reducemoney) || $full_reducemoney <= 0) { $is_open_fullreduction = 0; } $store_data['is_open_fullreduction'] = $is_open_fullreduction; $store_data['full_money'] = $full_money; $store_data['full_reducemoney'] = $full_reducemoney; $store_data['goodstype'] = 2; $store_data['goodstypeselect'] = 0; $store_data['shopcarts'] = $tmp_goods; $seller_goodss[$store_id] = $store_data; $i++; } // 商家是否休息 $is_comunity_rest = D('Seller/Communityhead')->is_community_rest($community_id); $open_man_orderbuy = D('Home/Front')->get_config_by_name('open_man_orderbuy'); $man_orderbuy_money = D('Home/Front')->get_config_by_name('man_orderbuy_money'); //if($man_orderbuy_money > $max_can_orderbuy_money){ //$max_can_orderbuy_money = $man_orderbuy_money; //} $is_show_guess_like = D('Home/Front')->get_config_by_name('is_show_guess_like'); // 免配送 man_free_tuanzshipping>0开启 $delivery_type_ziti = D('Home/Front')->get_config_by_name('delivery_type_ziti'); $delivery_type_express = D('Home/Front')->get_config_by_name('delivery_type_express'); $delivery_type_tuanz = D('Home/Front')->get_config_by_name('delivery_type_tuanz'); $man_free_tuanzshipping = $delivery_tuanz_money = 0; //暂时屏蔽,2020.02.13.14:57 /** if($delivery_type_ziti!=1 && $delivery_type_express!=1 && $delivery_type_tuanz==1) { $man_free_tuanzshipping = D('Home/Front')->get_config_by_name('man_free_tuanzshipping'); if($man_free_tuanzshipping>1 && !empty($man_free_tuanzshipping)) { $delivery_tuanz_money = D('Home/Front')->get_config_by_name('delivery_tuanz_money'); } } **/ if($delivery_type_tuanz==1) { $man_free_tuanzshipping = D('Home/Front')->get_config_by_name('man_free_tuanzshipping'); }else{ $man_free_tuanzshipping = 0; } $open_tuan_ship = $delivery_type_tuanz; //团长自定义配送开关 if($community_id&&$man_free_tuanzshipping>1) { $community_modify_shipping = M('lionfish_community_head')->field('is_modify_shipping_method')->where( array('id' => $community_id) )->find(); $is_modify_shipping_method = $community_modify_shipping['is_modify_shipping_method']; if($is_modify_shipping_method==1) { $open_tuan_ship = 1; } else if($is_modify_shipping_method==2){ $open_tuan_ship = 0; } } $delivery_tuanz_money = D('Home/Front')->get_config_by_name('delivery_tuanz_money'); $shopcar_tab_all_name = D('Home/Front')->get_config_by_name('shopcar_tab_all_name'); $shopcar_tab_express_name = D('Home/Front')->get_config_by_name('shopcar_tab_express_name'); $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction'); if($is_open_fullreduction){ $full_list = D('Home/Front')->get_fullreduction(); }else{ $full_list[0]['full_money']= 0 ; $full_list[0]['full_reducemoney']= 0 ; } //同城配送信息 //配送费类型:0、固定金额,1、按距离收取 $localtown_delivery_moneytype = D('Home/Front')->get_config_by_name('localtown_delivery_moneytype'); $localtown_moneytype_fixed_deliverymoney = 0; $localtown_moneytype_fixed_freemoney = 0; if($localtown_delivery_moneytype == 0){ //起送价格 $localtown_moneytype_fixed_deliverymoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_deliverymoney'); //达到金额免配送费 $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_freemoney'); } $need_data = array(); $need_data['code'] = 0; $need_data['carts'] = $seller_goodss; $need_data['mult_carts'] = $seller_goodss_mult; $need_data['is_comunity_rest'] = $is_comunity_rest; $need_data['open_man_orderbuy'] = $open_man_orderbuy; $need_data['man_orderbuy_money'] = $man_orderbuy_money; //$need_data['max_can_orderbuy_money'] = $max_can_orderbuy_money; $need_data['is_show_guess_like'] = $is_show_guess_like; $need_data['man_free_tuanzshipping'] = $man_free_tuanzshipping; $need_data['delivery_tuanz_money'] = $delivery_tuanz_money; $need_data['is_member_level_buy'] = $is_member_level_buy;//当前会员折扣 购买,1是,0否 $need_data['level_save_money'] = $level_save_money;//会员折扣省的钱 $need_data['is_vip_card_member'] = $is_vip_card_member;//当前会员是否是 会员卡会员 0 不是,1是,2已过期 $need_data['vipcard_save_money'] = $vipcard_save_money;//vip能节约的金额 $need_data['is_open_vipcard_buy'] = $is_open_vipcard_buy;//vip能节约的金额 $need_data['modify_vipcard_name'] = $modify_vipcard_name; $need_data['shopcar_tab_all_name'] = $shopcar_tab_all_name; $need_data['shopcar_tab_express_name'] = $shopcar_tab_express_name; $need_data['open_tuan_ship'] = $open_tuan_ship; $need_data['is_open_fullreduction'] = $is_open_fullreduction; $need_data['full_list'] = $full_list; //平台和供应商 起送价格和免配送费价格 //$need_data['localtown_fixed_list'] = $localtown_fixed_list; $need_data['localtown_moneytype_fixed_deliverymoney'] = $localtown_moneytype_fixed_deliverymoney;//起送价格 $need_data['localtown_moneytype_fixed_freemoney'] = $localtown_moneytype_fixed_freemoney;//达到金额免配送费 echo json_encode( $need_data ); die(); } public function checkout_flushall() { $gpc = I('request.'); $token = $gpc['token']; $community_id = $gpc['community_id']; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; //dan soitaire $buy_type = isset($gpc['buy_type']) ? $gpc['buy_type'] : 'dan'; //$car_prefix = 'soitairecart.'; //buy_type和soli_id吗 $is_community = D('Seller/Communityhead')->is_community($community_id); if( !$is_community ) { $json['code'] =6; $json['msg']='该小区已经不存在!'; echo json_encode($json); die(); } $data = array(); $data['car_key'] = $gpc['car_key']; $data['all_keys_arr'] = $gpc['all_keys_arr']; $data['cur_car_key'] = $gpc['cur_car_key']; //car_key:cart.6:MTc0:,cart.13:MjcwXzI3Mw==: //all_keys_arr:cart.6:MTc0:_1,cart.13:MjcwXzI3Mw==:_1 $car_key = explode(',', $data['car_key']); $all_keys_arr = explode(',', $data['all_keys_arr']) ; if(!empty($data['cur_car_key'])){ $car_key = array($data['cur_car_key']); } $save_keys = array(); if(!empty($all_keys_arr)){ foreach($all_keys_arr as $val) { $tmp_val = explode('_', $val); $save_keys[ $tmp_val[0] ] = $tmp_val[1]; } } if( $buy_type == 'dan') { $all_cart = M('lionfish_comshop_car')->where("community_id={$community_id} and token='{$token}' and carkey like 'cart.%'")->select(); }else if( $buy_type == 'soitaire' ){ $all_cart = M('lionfish_comshop_car')->where("community_id={$community_id} and token='{$token}' and carkey like 'soitairecart.%'")->select(); } if(!empty($all_cart)) { foreach($all_cart as $val) { $tmp_format_data = unserialize($val['format_data']); $tmp_format_data['singledel'] = 0; $tmp_format_data['quantity'] = isset( $save_keys[$val['carkey']] ) ? $save_keys[$val['carkey']] : $tmp_format_data['quantity']; M('lionfish_comshop_car')->where( array('id' => $val['id'] ,'community_id' => $community_id) )->save( array('format_data' => serialize($tmp_format_data) ) ); } } if(!empty($car_key)){ foreach( $car_key as $key ) { $car_info = M('lionfish_comshop_car')->where( array('community_id' => $community_id,'carkey' => $key ,'token' => $token) )->find(); if( !empty($car_info) ) { $tmp_format_data = unserialize($car_info['format_data']); $tmp_format_data['singledel'] = 1; $quantity = $tmp_format_data['quantity']; $sku_quantity_one = $tmp_format_data['quantity']; $goods_id = $tmp_format_data['goods_id']; $sku_str = $tmp_format_data['sku_str']; //同一个商品不同规格 总数量合计 $sku_quantity = $this->_check_goods_sku_quantity($community_id,$key,$token); if($sku_quantity > $quantity) { $quantity = $sku_quantity; } $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'goods_start_count'); //起售数量判断 if($sku_quantity_one < $goods_description['goods_start_count']) { $json['code'] = 6; $json['msg'] = $goods_description['goods_start_count'].'份起售'; $json['max_quantity'] = $goods_description['goods_start_count']; echo json_encode( $json ); die(); } $check_json = $this->_check_can_buy($member_id, $goods_id,$quantity); if($check_json['code'] != 0) { $tmp_format_data['quantity'] = $check_json['count']; M('lionfish_comshop_car')->where( array('id' => $car_info['id'], 'community_id' => $community_id) )->save( array('format_data' => serialize($tmp_format_data) ) ); echo json_encode( array('code' => 6,'msg' => $check_json['msg']) ); die(); } //check sku is ok $check_json = $this->_check_goods_sku_canbuy($goods_id,$sku_str); if($check_json['code'] != 0) { echo json_encode( array('code' => 6,'msg' => $check_json['msg']) ); die(); } $check_json = $this->_check_goods_quantity($goods_id,$sku_quantity_one,$sku_str); if($check_json['code'] != 0) { echo json_encode( array('code' => 6,'msg' => $check_json['msg']) ); die(); } M('lionfish_comshop_car')->where( array('id' => $car_info['id'], 'community_id' => $community_id) )->save( array('format_data' => serialize($tmp_format_data) ) ); } } } $is_limit_distance_buy = D('Home/Front')->get_config_by_name('shop_limit_buy_distance'); echo json_encode( array('code' => 0, 'data' => $is_limit_distance_buy) ); die(); } public function _check_goods_sku_quantity($community_id,$key,$token){ $quantity = 0; $key_array = explode(":",$key); $key_result = ""; foreach($key_array as $k=>$v){ if($k < 2){ if(empty($key_result)){ $key_result = $v; }else{ $key_result = $key_result.":".$v; } } } $sql = "SELECT format_data FROM ".C('DB_PREFIX')."lionfish_comshop_car " . " WHERE carkey LIKE '".$key_result."%' and community_id = '".$community_id."' " . " and token='".$token."'"; $cart_goods_list = M()->query($sql); if(!empty($cart_goods_list)){ foreach($cart_goods_list as $val) { $tmp_format_data = unserialize($val['format_data']); $quantity = $quantity + $tmp_format_data['quantity']; } } return $quantity; } public function _check_goods_sku_canbuy($goods_id,$sku_str) { $json = array('code' => 0); $goods_info = M('lionfish_comshop_goods')->field('goodsname as name')->where( array('id' => $goods_id ) )->find(); if(!empty($sku_str)) { $goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->field('stock as quantity')->where( array('option_item_ids' => $sku_str,'goods_id' => $goods_id) )->find(); if( empty($goods_option_mult_value) ) { $json['code'] =3; $json['msg']=mb_substr($goods_info['name'],0,4,'utf-8').',规格已失效,删除后再结算'; } } return $json; } public function del_car_goods() { $gpc = I('request.'); $token = $gpc['token']; $community_id = $gpc['community_id']; $carkey = $gpc['carkey']; M('lionfish_comshop_car')->where( "community_id={$community_id} and token='{$token}' and carkey='{$carkey}'" )->delete(); echo json_encode( array('code' => 0) ); die(); } public function _check_goods_quantity($goods_id,$quantity,$sku_str) { $gpc = I('request.'); $goods_info = M('lionfish_comshop_goods')->field('goodsname as name')->where( array('id' => $goods_id) )->find(); $goods_quantity= D('Home/Car')->get_goods_quantity($goods_id); $json = array('code' => 0); if($goods_quantity<$quantity){ $json['code'] =3; $json['msg']= mb_substr($goods_info['name'],0,4,'utf-8').'...,商品数量不足,剩余'.$goods_quantity.'个!!'; }else if(!empty($sku_str)){ $mul_opt_arr = array(); $goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->field('stock as quantity')->where( array('option_item_ids' => $sku_str,'goods_id' => $goods_id) )->find(); if( !empty($goods_option_mult_value) ) { if($goods_option_mult_value['quantity']<$quantity){ $json['code'] =3; $json['msg']=mb_substr($goods_info['name'],0,4,'utf-8').'...,商品数量不足,剩余'.$goods_option_mult_value['quantity'].'个!!'; } } } return $json; } private function _check_can_buy($member_id, $goods_id,$quantity) { $gpc = I('request.'); //$can_buy_count = D('Home/Front')->check_goods_user_canbuy_count($member_id, $goods_id); $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'total_limit_count,one_limit_count,oneday_limit_count,is_new_buy,is_limit_levelunbuy,is_limit_vipmember_buy,goods_start_count'); //单次限购判断 if($goods_description['one_limit_count'] > 0 && $quantity > $goods_description['one_limit_count']) { $json['code'] = 6; $json['msg'] = '您本次只能购买'.$goods_description['one_limit_count'].'份'; $json['count'] = $goods_description['one_limit_count']; return $json; } $can_buy_day_count = D('Home/Front')->check_goods_user_canbuy_day_count($member_id, $goods_id); if($can_buy_day_count == -1 || ($can_buy_day_count > 0 && $quantity >$can_buy_day_count)) { $json['code'] =6; $json['msg'] = '您今天只能购买'.$goods_description['oneday_limit_count'].'份'; $json['count']=1; return $json; }else if($can_buy_day_count > 0 && $quantity > $can_buy_day_count){ $json['code'] =6; $json['msg'] = '您今天还能购买'.$can_buy_day_count.'份'; $json['count']=$can_buy_day_count; return $json; } $can_buy_all_count = D('Home/Front')->check_goods_user_canbuy_all_count($member_id, $goods_id); //历史限购判断 if($can_buy_all_count == -1 && $goods_description['total_limit_count'] >0) { $json['code'] =6; $json['msg']='您最多只能购买'.$goods_description['total_limit_count'].'个'; $json['count'] = 1; return $json; }else if($can_buy_all_count > 0 && $quantity > $can_buy_all_count) { $json['code'] =6; $json['msg']='您还能购买'.$can_buy_all_count.'份'; $json['count'] = $can_buy_all_count; return $json; } $goods_info = M('lionfish_comshop_goods')->where( array('id' => $goods_id) )->find(); $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'per_number'); $can_buy_count = D('Home/Front')->check_goods_user_canbuy_count($member_id, $goods_id); $json = array(); if($can_buy_count == -1 || $can_buy_day_count == -1) { $json['code'] =6; $json['msg']=mb_substr($goods_info['name'],0,4,'utf-8').'...,您本次只能购买'.$goods_description['per_number'].'个'; }else if($can_buy_count >0 && $quantity >$can_buy_count) { $json['code'] =6; //$json['msg']=mb_substr($goods_info['name'],0,4,'utf-8').'...,您还能购买'.$can_buy_count.'份'; $json['msg']='本次最多购买'.$can_buy_count.'份'; $json['count']=$can_buy_count; }else{ $json['code'] = 0; } return $json; } private function _add_address($token,$userName,$telNumber,$provinceName,$cityName, $countyName,$detailInfo,$latitude='',$longitude='',$lou_meng_hao='') { $_GPC = I('request.'); $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; // lionfish_comshop_area $province_info = M('lionfish_comshop_area')->where("name like '%{$provinceName}%' ")->find(); if( !empty($province_info)) { $province_id = $province_info['id']; }else{ $area_data = array(); $area_data['name'] = $provinceName; $area_data['pid'] = 0; $area_data['code'] = $max_dp['code']+1; $province_id = M('lionfish_comshop_area')->add($area_data); $up_data = array(); $up_data['code'] = $province_id; M('lionfish_comshop_area')->where( array('id' => $province_id ) )->save($up_data); } $guding_arr = ['鞍山市']; if( in_array($cityName , $guding_arr) ) { $city_info = M('lionfish_comshop_area')->where("name = '{$cityName}'")->find(); }else{ $city_info = M('lionfish_comshop_area')->where("name like '%{$cityName}%'")->find(); } //$city_info = M('lionfish_comshop_area')->where("name like '%{$cityName}%'")->find(); if( !empty($city_info)) { $city_id = $city_info['id']; }else{ $max_dp = M('lionfish_comshop_area')->order('code desc')->find(); $area_data = array(); $area_data['name'] = $cityName; $area_data['pid'] = $province_id; $area_data['code'] = $max_dp['code']+1; $city_id = M('lionfish_comshop_area')->add( $area_data); $up_data = array(); $up_data['code'] = $city_id; M('lionfish_comshop_area')->where( array('id' => $city_id ) )->save($up_data); } //city_name: 东莞市 if( empty($countyName) ) { if( $cityName == '东莞市' ) { $countyName = '东莞'; } if( $cityName == '中山市' ) { $countyName = '中山'; //453 } } $country_info = M('lionfish_comshop_area')->where( "name like '%{$countyName}%' " )->find(); if( $countyName == '中山' ) { $country_info = M('lionfish_comshop_area')->where( array('id' => 453 ) )->find(); // } if( !empty($country_info)) { $country_id = $country_info['id']; }else{ $max_dp = M('lionfish_comshop_area')->order('code desc')->find(); $area_data = array(); $area_data['name'] = $countyName; $area_data['pid'] = $city_id; $area_data['code'] = $max_dp['code']+1; $country_id = M('lionfish_comshop_area')->add( $area_data ); $up_data = array(); $up_data['code'] = $country_id; M('lionfish_comshop_area')->where( array('id' => $country_id ) )->save( $up_data ); } $address_param = array(); $address_param['member_id'] = $member_id; $address_param['province_id'] = $province_id; $address_param['country_id'] = $country_id; $address_param['city_id'] = $city_id; $address_param['address'] = $detailInfo; $address_param['name'] = $userName; $address_param['telephone'] = $telNumber; $address_param['lon_lat'] = ''; $address_param['lou_meng_hao'] = $lou_meng_hao; if(!empty($latitude)) { $address_param['lon_lat'] = $longitude.','.$latitude; } $has_addre = M('lionfish_comshop_address')->where($address_param)->find(); if(empty($has_addre)) { $has_default_address = M('lionfish_comshop_address')->where( array('is_default' => 1,'member_id' => $member_id) )->find(); $address_data = array(); $address_data['member_id'] = $member_id; $address_data['name'] = $userName; $address_data['telephone'] = $telNumber; $address_data['lou_meng_hao'] = $lou_meng_hao; if(!empty($latitude)) { $address_data['lon_lat'] = $longitude.','.$latitude; }else{ $address_data['lon_lat'] = ''; } $address_data['address'] = $detailInfo; $address_data['address_name'] = empty($data['address_name']) ? 'HOME' : $data['address_name']; if(!empty($has_default_address) && false) { $address_data['is_default'] = 0; }else{ $data = array(); $data['is_default'] = 0; M('lionfish_comshop_address')->where( array('member_id' => $member_id ) )->save($data); $address_data['is_default'] = 1; } $address_data['city_id'] = $city_id; $address_data['country_id'] = $country_id; $address_data['province_id'] = $province_id; $res = M('lionfish_comshop_address')->add($address_data); }else{ $res = $has_addre['address_id']; } return $res; } public function checkout() { $gpc = I('request.'); $buy_type = isset($gpc['buy_type']) ? $gpc['buy_type'] : 'dan'; $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy'); if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 ) { $pintuan_model_buy = 0; } $mb_city_name = isset($gpc['mb_city_name']) ? $gpc['mb_city_name'] : ''; if($buy_type == 'undefined') { $buy_type = 'dan'; } $community_id = $gpc['community_id']; $token = $gpc['token']; $voucher_id = isset($gpc['voucher_id']) ? $gpc['voucher_id'] : 0; $soli_id = isset($gpc['soli_id']) ? intval($gpc['soli_id']) : ''; $use_quan_str = isset($gpc['use_quan_str']) ? $gpc['use_quan_str'] : ''; $use_quan_arr = array(); if($use_quan_str != '') { $use_quan_arr_tmp = explode('@',$use_quan_str ); foreach($use_quan_arr_tmp as $val) { $tmp_arr = explode('_', $val); $use_quan_arr[$tmp_arr[0]] = $tmp_arr[1]; } } $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy'); $is_open_vipcard_buy = !empty($is_open_vipcard_buy) && $is_open_vipcard_buy ==1 ? 1:0; $is_vip_card_member = 0; $is_member_level_buy = 0; if( $member_id > 0 ) { $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find(); if( !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 ) { $now_time = time(); if( $member_info['card_id'] >0 && $member_info['card_end_time'] > $now_time ) { $is_vip_card_member = 1;//还是会员 }else if( $member_info['card_id'] >0 && $member_info['card_end_time'] < $now_time ){ $is_vip_card_member = 2;//已过期 } } if($is_vip_card_member != 1 && $member_info['level_id'] >0 ) { $is_member_level_buy = 1; } } //预售不开启会员卡 if($buy_type == 'pesale') { $is_member_level_buy = 0; $is_vip_card_member = 0; } if( empty($member_id) ) { //需要登录 echo json_encode( array('code' =>5) ); die(); } $cart = D('Home/Car'); if ((!$cart->has_goodswecar($buy_type,$token,$community_id) ) ) { //购物车中没有商品 echo json_encode( array('code' =>4) ); die(); } $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id) )->find(); //soitaire $goods=$cart->get_all_goodswecar($buy_type, $token,1,$community_id,$soli_id); $address = M('lionfish_comshop_address')->where( array('member_id' => $member_id) )->order('is_default desc,address_id desc')->find(); $add_old_order = M('lionfish_comshop_order')->field('address_id')->where( " (delivery ='localtown_delivery' or delivery = 'express') and member_id = {$member_id} " )->order('order_id desc')->find(); if( !empty($add_old_order) && $add_old_order['address_id'] > 0) { $address = M('lionfish_comshop_address')->where( array('address_id' => $add_old_order['address_id'],'member_id' => $member_id) )->find(); } $mb_city_id = 0; if(!empty($mb_city_name)) { $mb_city_info = M('lionfish_comshop_area')->where(" name='{$mb_city_name}' ")->find(); if( !empty($mb_city_info) ) { $mb_city_id = $mb_city_info['id']; } } if($address){ //get_area_info($id) $province_info = D('Home/Front')->get_area_info($address['province_id']);// M('area')->field('area_name')->where( array('area_id' => $address['province_id']) )->find(); $city_info = D('Home/Front')->get_area_info($address['city_id']);//M('area')->field('area_name')->where( array('area_id' => $address['city_id']) )->find(); $country_info = D('Home/Front')->get_area_info($address['country_id']);//M('area')->field('area_name')->where( array('area_id' => $address['country_id']) )->find(); $address['province_name'] = $province_info['name']; $address['city_name'] = $city_info['name']; $address['country_name'] = $country_info['name']; }else{ $address = array(); } $seller_goodss = array(); $show_voucher = 0; //判断是否仅快递的配送方式 is_only_express $is_open_only_express = D('Home/Front')->get_config_by_name('is_open_only_express'); $is_only_express = 0; if( !empty($is_open_only_express) && $is_open_only_express == 1) { $is_only_express = 1; } /** if($is_vip_card_member != 1 && $member_info['level_id'] >0 ) { $is_member_level_buy = 1; } **/ foreach($goods as $key => $val) { //$goods_store_field = M('goods')->field('store_id')->where( array('goods_id' => $val['goods_id']) )->find(); if( $is_only_express == 1 && $val['is_only_express'] != 1 ) { $is_only_express = 0; } if($is_only_express == 0 && $val['is_only_express'] == 3 ) { $is_only_express = 3; } if($is_only_express == 0 && $val['is_only_express'] == 2 ) { $is_only_express = 2; } $supply_id = D('Home/Front')->get_goods_supply_id($val['goods_id']); if($supply_id > 0) { $supply_info = D('Home/Front')->get_supply_info($supply_id); if($supply_info['type'] ==0) { $supply_id = 0; } } $val['name'] = htmlspecialchars_decode($val['name']); $seller_goodss[ $supply_id ]['goods'][$key] = $val; } //begin 如果是同城配送 ,查一查有没有新提交的地址,如果有,按照新的来处理 $localtown_address = array(); if( $is_only_express == 3 ) { $localtown_old_order = M('lionfish_comshop_order')->field('address_id')->where( array('delivery' => 'localtown_delivery','member_id' => $member_id) )->order('order_id desc')->find(); $localtown_id = 0; if( !empty($localtown_old_order) && $localtown_old_order['address_id'] > 0) { $localtown_address = M('lionfish_comshop_address')->where( array('address_id' => $localtown_old_order['address_id'],'member_id' => $member_id) )->find(); if(!empty($localtown_address)) { $province_info = D('Home/Front')->get_area_info($address['province_id']);// M('area')->field('area_name')->where( array('area_id' => $address['province_id']) )->find(); $city_info = D('Home/Front')->get_area_info($address['city_id']);//M('area')->field('area_name')->where( array('area_id' => $address['city_id']) )->find(); $country_info = D('Home/Front')->get_area_info($address['country_id']);//M('area')->field('area_name')->where( array('area_id' => $address['country_id']) )->find(); $localtown_address['province_name'] = $province_info['name']; $localtown_address['city_name'] = $city_info['name']; $localtown_address['country_name'] = $country_info['name']; }else if( isset($gpc['longitude']) && isset($gpc['latitude']) ) { $localtown_address['lon_lat'] = $gpc['longitude'].','.$gpc['latitude']; } }else{ $address = array(); } } //end同城配送 $quan_model = D('Home/Voucher'); $pin_model = D('Home/Pin'); $voucher_price = 0; $reduce_money = 0; $cha_reduce_money = 0; $is_pin_over = 0; $is_moban = false; $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction'); $full_money = D('Home/Front')->get_config_by_name('full_money'); $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney'); if(empty($full_reducemoney) || $full_reducemoney <= 0) { $is_open_fullreduction = 0; } $show_voucher = 0; $voucher_can_use =1;//目前都是平台券, $man_total_free = 0; $store_buy_total_money = 0; $pin_id = 0; $presale_goods_id = 0;//预售商品id $presale_goods_total = 0;//预售商品价格 $is_zero_buy = 0; $vipcard_save_money = 0; $level_save_money = 0; $today_time = time(); $arr = array('天','一','二','三','四','五','六'); //计算优惠券 foreach($seller_goodss as $store_id => $val) { $seller_voucher_list = array(); $seller_total_fee = 0; $total_trans_free = 0; $is_no_quan = false; $total_weight = 0; $total_quantity = 0; $vch_goods_ids = array(); foreach($val['goods'] as $kk =>$d_goods) { //预售不参与会员卡 if($d_goods['is_take_vipcard'] == 1) { $vipcard_save_money += $d_goods['total'] - $d_goods['card_total']; }else if( $d_goods['is_mb_level_buy'] == 1 && $d_goods['is_mb_level_buy'] == 1 && $is_member_level_buy == 1) { $level_save_money += $d_goods['total'] - $d_goods['level_total']; } if( $is_vip_card_member == 1 && $d_goods['is_take_vipcard'] == 1 ) { $seller_total_fee += $d_goods['card_total']; if( $store_id == 0 ) { $store_buy_total_money += $d_goods['card_total']; } if( $d_goods['can_man_jian'] == 1) { $man_total_free += $d_goods['card_total']; } } else if( $d_goods['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { $seller_total_fee += $d_goods['level_total']; if( $store_id == 0 ) { $store_buy_total_money += $d_goods['level_total']; } if( $d_goods['can_man_jian'] == 1) { $man_total_free += $d_goods['level_total']; } } else { $seller_total_fee += $d_goods['total']; if( $store_id == 0 ) { $store_buy_total_money += $d_goods['total']; } if( $d_goods['can_man_jian'] == 1) { $man_total_free += $d_goods['total']; } } if($buy_type == 'pintuan' && $d_goods['pin_id'] > 0) { $is_pin_over = $pin_model->getNowPinState($d_goods['pin_id']); if( $is_pin_over == 2 ) { $is_zero_buy = $pin_model->check_goods_iszero_opentuan( $d_goods['goods_id'] ); } }else if($buy_type == 'pintuan' && $d_goods['pin_id'] == 0) { $is_zero_buy = $pin_model->check_goods_iszero_opentuan( $d_goods['goods_id'] ); } if( $buy_type == 'presale' ) { $presale_goods_id = $d_goods['goods_id']; $presale_goods_total = $seller_total_fee; } $tp_goods_info = M('lionfish_comshop_goods')->field('type')->where( array('id' => $d_goods['goods_id']) )->find(); $vch_goods_ids[$d_goods['goods_id']] = $vch_goods_ids[$d_goods['goods_id']] + $d_goods['total']; //$is_no_quan = true; //预售不开启优惠券 if($tp_goods_info['type'] == 'integral' || $tp_goods_info['type'] == 'presale' ) { $is_no_quan = true; } if($d_goods['shipping']==0) { $is_moban = true; $val['is_moban'] = true; $total_weight += $d_goods['weight']*$d_goods['quantity']; $total_quantity += $d_goods['quantity']; } $d_goods[$kk]['trans_free'] = 0; /** if($d_goods['shipping']==1) { //统一运费 $d_goods[$kk]['trans_free'] = $d_goods['goods_freight']; }else { //运费模板 if(!empty($address)) { $trans_free = load_model_class('transport')->calc_transport($d_goods['transport_id'], $d_goods['quantity'],$d_goods['quantity']*$d_goods['weight'], $address['city_id'] ); }else{ $trans_free = 0; } $d_goods[$kk]['trans_free'] = $trans_free; } **/ $total_trans_free += $d_goods[$kk]['trans_free']; //自提时间 $goods_info = M('lionfish_comshop_good_common')->field('pick_up_type,pick_up_modify')->where( array('goods_id' => $d_goods['goods_id']) )->find(); $pick_up_type = -1; if($pick_up_type == -1 || $goods_info['pick_up_type'] > $pick_up_type) { $pick_up_type = $goods_info['pick_up_type']; if($pick_up_type == 0) { $pick_up_time = date('m-d', $today_time); $pick_up_weekday = '周'.$arr[date('w',$today_time)]; }else if( $pick_up_type == 1 ){ $pick_up_time = date('m-d', $today_time+86400); $pick_up_weekday = '周'.$arr[date('w',$today_time+86400)]; }else if( $pick_up_type == 2 ) { $pick_up_time = date('m-d', $today_time+86400*2); $pick_up_weekday = '周'.$arr[date('w',$today_time+86400*2)]; }else if($pick_up_type == 3) { $pick_up_time = $goods_info['pick_up_modify']; } } $d_goods['pick_up_type'] = $pick_up_type; $d_goods['pick_up_time'] = $pick_up_time; $d_goods['pick_up_weekday'] = $pick_up_weekday; $val['goods'][$kk] = $d_goods; } $val['reduce_money'] = 0; //pindan (拼团商品单独购买) pintuan (拼团) //预售关闭满减 if($buy_type == 'pindan' || $buy_type == 'pintuan' || $buy_type == 'integral' || $buy_type == 'presale') { $is_open_fullreduction = 0; } //原来满级计算man_total_free /*if($is_open_fullreduction == 1 && $man_total_free >= $full_money ) { $val['reduce_money'] = $full_reducemoney; $reduce_money = $full_reducemoney; }else if($is_open_fullreduction == 1 && $man_total_free < $full_money) { $cha_reduce_money = $full_money - $man_total_free; }*/ /** * 新满减计算 */ if($is_open_fullreduction == 1) { $reduce_result = D('Home/Front')->get_reduce_money($man_total_free); $val['reduce_money'] = $reduce_result['reduce_money']; $reduce_money = $reduce_result['reduce_money']; $cha_reduce_money = $reduce_result['cha_reduce_money']; } $chose_vouche = array(); if(!$is_no_quan) { $vouche_list = $quan_model->get_user_canpay_voucher($member_id,$store_id,$seller_total_fee,'',$vch_goods_ids); $vouche_list = $quan_model->get_voucher_amout_bygoods($vouche_list,$val['goods'],$reduce_money); //var_dump( $vouche_list ); //die(); if(!empty($vouche_list) && empty($use_quan_arr) ) { $ling_vouche_list = $vouche_list; if($voucher_can_use == 1) { $voucher_can_use++; $show_voucher = 1; reset($ling_vouche_list); $chose_vouche = current($ling_vouche_list); //$voucher_price += $chose_vouche['credit']; $voucher_price += $chose_vouche['can_vouche_amount']; //$seller_total_fee = round( $seller_total_fee - $chose_vouche['credit'], 2); $seller_total_fee = round( $seller_total_fee - $chose_vouche['can_vouche_amount'], 2); } }else if( !empty($vouche_list) && !empty($use_quan_arr) ) { foreach($vouche_list as $tmp_voucher) { if($tmp_voucher['id'] == $use_quan_arr[$store_id]) { $show_voucher = 1; $chose_vouche = $tmp_voucher; //$seller_total_fee = round( $seller_total_fee - $chose_vouche['credit'], 2); //$voucher_price += $chose_vouche['credit']; $seller_total_fee = round( $seller_total_fee - $chose_vouche['can_vouche_amount'], 2); $voucher_price += $chose_vouche['can_vouche_amount']; break; } } } } $val['chose_vouche'] = $chose_vouche; $val['show_voucher'] = $show_voucher; $val['voucher_list'] = $vouche_list; $val['total'] = $seller_total_fee; if($val['total'] < 0) { $val['total'] = 0; } $val['trans_free'] = $total_trans_free; $val['total_weight'] = $total_weight; $val['total_quantity'] = $total_quantity; $s_logo = D('Home/Front')->get_config_by_name('shoplogo'); $shoname = D('Home/Front')->get_config_by_name('shoname'); if( !empty($s_logo) ) { $s_logo = tomedia( $s_logo ); } $store_info = array('s_id' => $store_id,'s_true_name' => $shoname,'s_logo' => $s_logo ); if( !empty($store_id) && $store_id > 0 ) { $supply_info = D('Home/Front')->get_supply_info($store_id); //logo if( !empty($supply_info) ) { $store_info['s_true_name'] = $supply_info['shopname']; $store_info['s_logo'] = tomedia( $supply_info['logo'] ); } } $val['store_info'] = $store_info; $seller_goodss[$store_id] = $val; } $trans_free_toal = 0;//运费 //delivery_type_ziti delivery_type_express delivery_type_tuanz delivery_tuanz_money $delivery_type_ziti = D('Home/Front')->get_config_by_name('delivery_type_ziti'); $delivery_type_express = D('Home/Front')->get_config_by_name('delivery_type_express'); $delivery_type_tuanz = D('Home/Front')->get_config_by_name('delivery_type_tuanz'); $delivery_tuanz_money = D('Home/Front')->get_config_by_name('delivery_tuanz_money'); //--- $man_free_tuanzshipping = D('Home/Front')->get_config_by_name('man_free_tuanzshipping'); $man_free_shipping = D('Home/Front')->get_config_by_name('man_free_shipping'); $delivery_express_name = D('Home/Front')->get_config_by_name('delivery_express_name'); if( empty($man_free_tuanzshipping) || $buy_type == 'integral') { $man_free_tuanzshipping = 0; } //关闭团长配送费 免 预售 if( empty($man_free_tuanzshipping) || $buy_type == 'presale' ) { $man_free_tuanzshipping = 0; } if( empty($man_free_shipping) || $buy_type == 'integral' ) { $man_free_shipping = 0; } //关闭快递配送费 免 预售 if( empty($man_free_shipping) || $buy_type == 'presale' ) { $man_free_shipping = 0; } //if( $buy_type == 'dan' ) if( $buy_type == 'dan' || $buy_type == 'soitaire' || ($pintuan_model_buy == 1 && $buy_type != 'dan' && $buy_type != 'integral' ) ) { //...判断团长是否开启自定义的情况 store_buy_total_money $community_info_modify = M('lionfish_community_head')->field('is_modify_shipping_method,is_modify_shipping_fare,shipping_fare')->where( array('id' => $community_id) )->find(); if( !empty($community_info_modify['is_modify_shipping_method']) && $community_info_modify['is_modify_shipping_method'] == 1 && $delivery_type_tuanz == 1) { //开启配送 $delivery_type_tuanz = 1; if( !empty($community_info_modify['is_modify_shipping_fare']) && $community_info_modify['is_modify_shipping_fare'] == 1 && $community_info_modify['shipping_fare'] > 0 ) { $delivery_tuanz_money = $community_info_modify['shipping_fare']; } }else if( !empty($community_info_modify['is_modify_shipping_method']) && $community_info_modify['is_modify_shipping_method'] == 2 ) { //关闭配送 $delivery_type_tuanz = 0; } }else if( $buy_type == 'pindan' || $buy_type == 'pintuan' ){ if($pintuan_model_buy == 0) { $delivery_type_tuanz = 0; $delivery_type_express = 1; $delivery_type_ziti = 2; } }else if( $buy_type == 'integral' ) { $delivery_type_tuanz = 0; $delivery_type_express = 1; $delivery_type_ziti = 2; } foreach($val['goods'] as $kk =>$d_goods) { if($d_goods['is_only_express'] == 1){ $delivery_type_express = 1; } } $is_man_delivery_tuanz_fare = 0;//是否达到满xx减团长配送费 $fare_man_delivery_tuanz_fare_money = 0;//达到满xx减团长配送费, 减了多少钱 if( ( $buy_type == 'dan' || $buy_type == 'soitaire' ) && !empty($man_free_tuanzshipping) && $man_free_tuanzshipping > 0 && $man_free_tuanzshipping <= $store_buy_total_money ) { //$delivery_tuanz_money = 0; $is_man_delivery_tuanz_fare = 1; $fare_man_delivery_tuanz_fare_money = $delivery_tuanz_money; } $is_man_shipping_fare = 0;//是否达到满xx减运费 $fare_man_shipping_fare_money = 0;//达到满xx减运费,司机减了多少运费 //----开始计算运费 //dispatchtype if($delivery_type_express == 1) { //ims_ $store_trans_free_toal = 0; if($mb_city_id > 0){ $shipping_default = M('lionfish_comshop_shipping')->where(array('enabled' => 1))->order('isdefault desc,id desc')->find(); foreach($seller_goodss as $store_id => $val) { //$val['is_moban'] = true; $store_shipping_fare = 0; if( isset($val['is_moban']) && $val['is_moban'] ) { $store_shipping_fare = D('Home/Transport')->calc_transport($shipping_default['id'], $val['total_quantity'],$val['total_weight'], $mb_city_id ); } $val['store_shipping_fare'] = $store_shipping_fare; $trans_free_toal += $store_shipping_fare; if( $store_id == 0 ) { $store_trans_free_toal += $store_shipping_fare; } foreach($val['goods'] as $kk =>$d_goods) { if($d_goods['shipping']==1) { //统一运费 $trans_free_toal += $d_goods['goods_freight']; if( $store_id == 0 ) { $store_trans_free_toal += $d_goods['goods_freight']; } } } } }else if(!empty($address) && $mb_city_id == 0) { $shipping_default = M('lionfish_comshop_shipping')->where( array('enabled' => 1) )->order('isdefault desc,id desc')->find(); foreach($seller_goodss as $store_id => $val) { $store_shipping_fare = 0; if(isset($val['is_moban']) && $val['is_moban']) { $store_shipping_fare = D('Home/Transport')->calc_transport($shipping_default['id'], $val['total_quantity'],$val['total_weight'], $address['city_id'] ); } $val['store_shipping_fare'] = $store_shipping_fare; $trans_free_toal += $store_shipping_fare; if( $store_id == 0 ) { $store_trans_free_toal += $store_shipping_fare; } foreach($val['goods'] as $kk =>$d_goods) { if($d_goods['shipping']==1) { //统一运费 $trans_free_toal += $d_goods['goods_freight']; $val['store_shipping_fare'] += $d_goods['goods_freight']; if( $store_id == 0 ) { $store_trans_free_toal += $d_goods['goods_freight']; } } } } }else{ $trans_free_toal = 0; } // if( !empty($man_free_shipping) && $man_free_shipping > 0 && $man_free_shipping <= $store_buy_total_money ) { $fare_man_shipping_fare_money = $store_trans_free_toal; $is_man_shipping_fare = 1; //$trans_free_toal = 0; } } //礼品卡配送费0 if( $buy_type == 'virtualcard' ) { $trans_free_toal = 0; } //---结束结算运费 if( empty($delivery_type_ziti) ) { $delivery_type_ziti = 1;//开启 } if( empty($delivery_type_express) ) { $delivery_type_express = 2; } if( empty($delivery_type_tuanz) ) { $delivery_type_tuanz = 2; } //默认关闭同城配送 $delivery_type_localtown = 0; //默认关闭核销商品 $delvery_type_hexiao = 0; //is_only_express if( $is_only_express == 1 ) { $delivery_type_ziti = 2; $delivery_type_express = 1; $delivery_type_tuanz = 2; }else if( $is_only_express == 3 ) { //同城配送 $delivery_type_ziti = 0; $delivery_type_express = 0; $delivery_type_tuanz = 0; $delivery_type_localtown = 1; }else if( $is_only_express == 2 ) { //核销商品 $delivery_type_ziti = 0; $delivery_type_express = 0; $delivery_type_tuanz = 0; $delivery_type_localtown = 0; $delvery_type_hexiao = 1; } $total_free = 0; $is_ziti = 2; $pick_up_time = ""; $pick_up_type = -1; $pick_up_weekday = ''; $today_time = time(); $arr = array('天','一','二','三','四','五','六'); $pick_up_arr = array(); foreach($goods as $key => $good) { //暂时关闭 //ims_lionfish_comshop_goods //ims_ lionfish_comshop_good_common $goods_info = M('lionfish_comshop_good_common')->field('pick_up_type,pick_up_modify')->where( array('goods_id' => $good['goods_id']) )->find(); if($pick_up_type == -1 || $goods_info['pick_up_type'] > $pick_up_type) { $pick_up_type = $goods_info['pick_up_type']; if($pick_up_type == 0) { $pick_up_time = date('m-d', $today_time); $pick_up_weekday = '周'.$arr[date('w',$today_time)]; }else if( $pick_up_type == 1 ){ $pick_up_time = date('m-d', $today_time+86400); $pick_up_weekday = '周'.$arr[date('w',$today_time+86400)]; }else if( $pick_up_type == 2 ) { $pick_up_time = date('m-d', $today_time+86400*2); $pick_up_weekday = '周'.$arr[date('w',$today_time+86400*2)]; }else if($pick_up_type == 3) { $pick_up_time = $goods_info['pick_up_modify']; } } $goods[$key]['trans_free'] = $good['goods_freight']; if( $is_vip_card_member == 1 && $good['is_take_vipcard'] == 1 ) { $total_free += $good['card_total']; } else if( $good['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { $total_free += $good['level_total']; } else { $total_free += $good['total']; } } //同城配送费 $localtown_shipping_fare = 0; //包装费 $picking_fare = 0; $picking_fare_arr = array(); $localtown_shipping_fare_arr = array(); $localtown_dispatchtime = 0;//预计一共需要配送多少分钟 $localtown_expected_delivery = array();//预计送达时间段 $localtown_modifypickingname = "";//包装费标题 if( $is_only_express == 3 ) { $picking_fare_arr = D('Home/LocaltownDelivery')->calc_packing_money( $seller_goodss );// $seller_goodss; $picking_fare = $picking_fare_arr['total_picking_fare']; $localtown_dispatchtime = D('Home/LocaltownDelivery')->get_order_dispatchtime($seller_goodss); if( isset($gpc['latitude']) && !empty($gpc['latitude']) && isset($gpc['longitude']) && !empty($gpc['longitude']) ) { $lon = $gpc['longitude']; $lat = $gpc['latitude']; $localtown_shipping_fare_arr = D('Home/LocaltownDelivery')->calc_shipping_fare( $lon, $lat , $seller_goodss ); $localtown_shipping_fare = $localtown_shipping_fare_arr['total_shipping_fare']; $trans_free_toal = $localtown_shipping_fare; }else if( !empty($localtown_address) ) { list($lon,$lat) = explode(',', $localtown_address['lon_lat'] ); $localtown_shipping_fare_arr = D('Home/LocaltownDelivery')->calc_shipping_fare( $lon, $lat , $seller_goodss ); $localtown_shipping_fare = $localtown_shipping_fare_arr['total_shipping_fare']; $trans_free_toal = $localtown_shipping_fare; } //配送时间段间隔 $localtown_expected_delivery = D('Home/LocaltownDelivery')->get_expected_delivery($localtown_dispatchtime); $localtown_modifypickingname = D('Home/Front')->get_config_by_name('localtown_modifypickingname'); $localtown_modifypickingname = !empty($localtown_modifypickingname) ? $localtown_modifypickingname: '包装费'; } //暂时关闭自提代码 /** if(!empty($pick_up)) { $pick_up = unserialize($pick_up); $pick_up_ids = implode(',',$pick_up); $pick_up_arr = M('pick_up')->where( array('id'=>array('in',$pick_up_ids)) )->select(); } **/ $pick_up_name = ''; $pick_up_mobile = ''; $tuan_send_address = ''; $order_note_content = ''; $tuan_send_address_info = array(); $shop_limit_buy_distance = D('Home/Front')->get_config_by_name('shop_limit_buy_distance'); if($is_ziti >= 1) { //寻找上一个订单的自提电话 自提姓名 $last_order_info = M('lionfish_comshop_order')->where( array('member_id' => $member_id,'delivery' => 'pickup') )->order('order_id desc')->find(); if(empty($last_order_info)){ $last_order_info = M('lionfish_comshop_order')->where( array('member_id' => $member_id,'delivery' => 'hexiao') )->order('order_id desc')->find(); } if(!empty($last_order_info)) { $pick_up_name = $last_order_info['shipping_name']; $pick_up_mobile = $last_order_info['telephone']; $order_note_content = $last_order_info['note_content']; } //order_note_content $last_tuanz_send_order_info = M('lionfish_comshop_order')->field('tuan_send_address,address_id,note_content,order_id')->where( array('member_id' =>$member_id,'delivery' => 'tuanz_send' ) )->order('order_id desc')->find(); if(!empty($last_tuanz_send_order_info)) { $tuan_send_address = $last_tuanz_send_order_info['tuan_send_address']; if( !empty($last_tuanz_send_order_info['note_content']) && $last_tuanz_send_order_info['order_id'] > $last_order_info['order_id'] ) { $order_note_content = $last_tuanz_send_order_info['note_content']; } if( !empty($last_tuanz_send_order_info['address_id']) ) { if($shop_limit_buy_distance == 1) { $tuan_send_address_info = M('lionfish_comshop_address')->where( "address_id=".$last_tuanz_send_order_info['address_id']." and lon_lat != '' " )->find(); }else{ $tuan_send_address_info = M('lionfish_comshop_address')->where( "address_id=".$last_tuanz_send_order_info['address_id'] )->find(); } if( !empty($tuan_send_address) && !empty($tuan_send_address_info['lon_lat']) ) { $province_info = D('Home/Front')->get_area_info($tuan_send_address_info['province_id']);// M('area')->field('area_name')->where( array('area_id' => $address['province_id']) )->find(); $city_info = D('Home/Front')->get_area_info($tuan_send_address_info['city_id']);//M('area')->field('area_name')->where( array('area_id' => $address['city_id']) )->find(); $country_info = D('Home/Front')->get_area_info($tuan_send_address_info['country_id']);//M('area')->field('area_name')->where( array('area_id' => $address['country_id']) )->find(); $tuan_send_address_info['province_name'] = $province_info['name']; $tuan_send_address_info['city_name'] = $city_info['name']; $tuan_send_address_info['country_name'] = $country_info['name']; $tuan_send_address = $tuan_send_address_info['address']; }else{ //todo... $tuan_send_address = ''; } }else{ $tuan_send_address = ''; } } } /** **/ /** tuan_region store_buy_total_money **/ //open_score_buy_score $shop_limit_buy_distance = load_model_class('front')->get_config_by_name('shop_limit_buy_distance'); /** $delivery_ziti_name = D('Home/Front')->get_config_by_name('delivery_ziti_name'); $delivery_tuanzshipping_name = D('Home/Front')->get_config_by_name('delivery_tuanzshipping_name'); $delivery_diy_sort = D('Home/Front')->get_config_by_name('delivery_diy_sort'); if(empty($delivery_diy_sort) || !isset($delivery_diy_sort)) $delivery_diy_sort = '0,1,2'; if( empty($tuan_send_address_info) ) { $tuan_send_address_info = array(); } //判断是否预售,给出预售的信息 begin todo $presale_info = []; if( $buy_type == 'presale' ) { // $presale_goods_id $presale_result = D('Home/PresaleGoods')->getCheckOutPresaleGoodsInfo( $presale_goods_id , $presale_goods_total ); if( $presale_result['code'] == 0 ) { $presale_info = $presale_result['data']; } } //end **/ $open_score_buy_score = D('Home/Front')->get_config_by_name('open_score_buy_score'); if( empty($open_score_buy_score) || $buy_type == 'integral' ) { $open_score_buy_score = 0; } $score_forbuy_money_maxbi = D('Home/Front')->get_config_by_name('score_forbuy_money_maxbi'); if( empty($score_forbuy_money_maxbi) ) { $score_forbuy_money_maxbi = 100; } $score_for_money = 0; $bue_use_score = 0; if( $open_score_buy_score == 1 ) { if( $member_info['score'] > 0 ) { $score_can_max = $store_buy_total_money - $voucher_price - $reduce_money; //计算能兑换多少钱 $score_forbuy_money = D('Home/Front')->get_config_by_name('score_forbuy_money'); //只有兑换比例大于0才能允许兑换 if( !empty($score_forbuy_money) && $score_forbuy_money >0 ) { $score_for_money = sprintf("%.2f",$member_info['score'] / $score_forbuy_money); if( $score_can_max < $score_for_money ) { $score_for_money = $score_can_max; $bue_use_score = floor($score_can_max * $score_forbuy_money); $score_for_money = round($bue_use_score/$score_forbuy_money,2); } $max_store_buy_total_money = sprintf("%.2f",($score_forbuy_money_maxbi * $score_can_max) /100); if($score_for_money > $max_store_buy_total_money) { $score_for_money = $max_store_buy_total_money; $bue_use_score = floor($max_store_buy_total_money * $score_forbuy_money); $score_for_money = round($bue_use_score/$score_forbuy_money,2); }else if($bue_use_score <= $max_store_buy_total_money){ $bue_use_score = floor($score_for_money * $score_forbuy_money); //$bue_use_score = $member_info['score']; if($bue_use_score > $member_info['score'] ) { $bue_use_score = floor($member_info['score']); } $score_for_money = round($bue_use_score/$score_forbuy_money,2); } } //预售 //if($buy_type == 'presale'){ // $sum_deduction_money = $goods[0]["quantity"] * $presale_info['deduction_money'] ; //} } } //score_forbuy_money score $delivery_ziti_name = D('Home/Front')->get_config_by_name('delivery_ziti_name'); $delivery_tuanzshipping_name = D('Home/Front')->get_config_by_name('delivery_tuanzshipping_name'); $delivery_diy_sort = D('Home/Front')->get_config_by_name('delivery_diy_sort'); if(empty($delivery_diy_sort) || !isset($delivery_diy_sort)) $delivery_diy_sort = '0,1,2'; if( empty($tuan_send_address_info) ) { $tuan_send_address_info = array(); } //判断是否预售,给出预售的信息 begin todo $presale_info = []; if( $buy_type == 'presale' ) { // $presale_goods_id $presale_result = D('Home/PresaleGoods')->getCheckOutPresaleGoodsInfo( $presale_goods_id , $presale_goods_total ); if( $presale_result['code'] == 0 ) { $presale_info = $presale_result['data']; } } //end $need_data = array(); $need_data['code'] = 1; $need_data['open_score_buy_score'] = $open_score_buy_score;//1开启积分抵扣 $need_data['score'] = $member_info['score'];//会员持有的积分 $need_data['score_for_money'] = $score_for_money;//会员能抵扣的金额 $need_data['bue_use_score'] = $bue_use_score;//会员能抵扣的积分数 $need_data['delivery_type_ziti'] = $delivery_type_ziti; $need_data['delivery_type_express'] = $delivery_type_express; $need_data['delivery_type_tuanz'] = $delivery_type_tuanz; $need_data['delivery_type_localtown'] = $delivery_type_localtown; $need_data['delvery_type_hexiao'] = $delvery_type_hexiao; $need_data['delivery_express_name'] = $delivery_express_name; $need_data['delivery_ziti_name'] = $delivery_ziti_name; $need_data['delivery_tuanzshipping_name'] = $delivery_tuanzshipping_name; $need_data['delivery_diy_sort'] = $delivery_diy_sort; $need_data['presale_info'] = $presale_info;//预售信息 $seller_goodss_keys = array_keys($seller_goodss); $need_data['delivery_tuanz_money'] = round($delivery_tuanz_money * count($seller_goodss_keys) , 2); //$need_data['delivery_tuanz_money'] = $delivery_tuanz_money; $need_data['man_free_tuanzshipping'] = empty($man_free_tuanzshipping) ? 0 : $man_free_tuanzshipping;//团长配送,满多少免配送费,0或者为空表示不减免 $need_data['man_free_shipping'] = empty($man_free_shipping) ? 0 : $man_free_shipping;//快递配送,满多少免配送费,0或者为空表示不减免 $need_data['address'] = $address; $need_data['pick_up_time'] = $pick_up_time; $need_data['pick_up_type'] = $pick_up_type; $need_data['pick_up_weekday'] = $pick_up_weekday; $need_data['is_pin_over'] = $is_pin_over; $need_data['is_integer'] = 0;//$is_no_quan ? 1: 0; $need_data['pick_up_arr'] = $pick_up_arr; $need_data['is_ziti'] = 2; $need_data['ziti_name'] = $pick_up_name; $need_data['ziti_mobile'] = $pick_up_mobile; $need_data['tuan_send_address'] = $tuan_send_address; $need_data['tuan_send_address_info'] = $tuan_send_address_info; $need_data['seller_goodss'] = $seller_goodss; $need_data['show_voucher'] = $show_voucher; $need_data['buy_type'] = $buy_type; $need_data['address'] = $address; $need_data['trans_free_toal'] = $trans_free_toal; $need_data['is_limit_distance_buy'] = 0; $need_data['limit_distance'] = 100;//km $need_data['is_member_level_buy'] = $is_member_level_buy;//km $need_data['level_save_money'] = $level_save_money;//km //begin $need_data['localtown_shipping_fare'] = $localtown_shipping_fare;//同城配送配送费 $need_data['pickingup_fare'] = $picking_fare;//包装费 $need_data['localtown_dispatchtime'] = $localtown_dispatchtime;//预计一共需要配送多少分钟 $need_data['picking_fare_arr'] = $picking_fare_arr; $need_data['localtown_shipping_fare_arr'] = $localtown_shipping_fare_arr; $need_data['localtown_expected_delivery'] = $localtown_expected_delivery; //end $need_data['is_vip_card_member'] = $is_vip_card_member;//km $need_data['vipcard_save_money'] = $vipcard_save_money;//km $need_data['is_open_vipcard_buy'] = $is_open_vipcard_buy;//km if( !empty($shop_limit_buy_distance) && $shop_limit_buy_distance ==1 ) { $latitude = 0; $longitude = 0; if( !empty($tuan_send_address_info) && !empty($tuan_send_address_info['lon_lat']) ) { //lon_lat $lon_lat_arr = explode(',', $tuan_send_address_info['lon_lat']); $longitude = $lon_lat_arr[0]; $latitude = $lon_lat_arr[1]; } if( isset($gpc['latitude']) && !empty($gpc['latitude']) ) { $latitude = $gpc['latitude']; } if( isset($gpc['longitude']) && !empty($gpc['longitude']) ) { $longitude = $gpc['longitude']; } if( !empty($latitude) && !empty($longitude) ) { $shop_buy_distance = D('Home/Front')->get_config_by_name('shop_buy_distance'); $shop_buy_distance = $shop_buy_distance * 1000; $community_info = M('lionfish_community_head')->field('lon,lat')->where( array('id' => $community_id ) )->find(); $distince = D('Seller/Communityhead')->GetDistance($longitude,$latitude,$community_info['lon'],$community_info['lat']); $need_data['current_distance'] = $distince; $need_data['shop_buy_distance'] = $shop_buy_distance; if($distince > $shop_buy_distance ) { $need_data['is_limit_distance_buy'] = 1; $need_data['limit_distance'] = $distince/1000; } } } $need_data['reduce_money'] = $reduce_money; $need_data['is_open_fullreduction'] = $is_open_fullreduction; $need_data['cha_reduce_money'] = $cha_reduce_money; $need_data['is_man_delivery_tuanz_fare'] = $is_man_delivery_tuanz_fare; //是否达到满xx减团长配送费 $need_data['fare_man_delivery_tuanz_fare_money'] = $fare_man_delivery_tuanz_fare_money; //达到满xx减团长配送费, 减了多少钱 $need_data['is_man_shipping_fare'] = $is_man_shipping_fare; //是否达到满xx减运费 $need_data['fare_man_shipping_fare_money'] = $fare_man_shipping_fare_money; //达到满xx减运费,司机减了多少运费 $dispatching = isset($gpc['dispatching']) ? $gpc['dispatching']:'pickup'; //is_ziti == 2 if($dispatching == 'express') { $need_data['total_free'] = $total_free + $trans_free_toal - $voucher_price -$reduce_money; } else if( $dispatching == 'localtown_delivery' ) { $need_data['total_free'] = $total_free + $localtown_shipping_fare + $picking_fare - $voucher_price - $reduce_money; } else{ $need_data['total_free'] = $total_free - $voucher_price -$reduce_money; } if($is_ziti == 2) { $need_data['total_free'] = $total_free - $voucher_price -$reduce_money; } //积分兑换 不算总金额,但是算总积分 if( $buy_type == 'integral' ) { $need_data['total_free'] = $trans_free_toal; $need_data['total_integral'] = $total_free; } if($need_data['total_free'] < 0) { $need_data['total_free'] = 0; } //判断是否可以余额支付 //暂时关闭 会员余额功能 /** $is_yue_open_info = M('config')->where( array('name' => 'is_yue_open') )->find(); $is_yue_open = $is_yue_open_info['value']; **/ $is_yue_open = 0; $is_yue_open = D('Home/Front')->get_config_by_name('is_open_yue_pay'); if( empty($is_yue_open) ) { $is_yue_open = 0; } $need_data['is_yue_open'] = $is_yue_open; $need_data['can_yupay'] = 0; //暂时关闭 会员余额功能 if($is_yue_open == 1 && $need_data['total_free'] >=0 && $member_info['account_money'] >= $need_data['total_free']) { $need_data['can_yupay'] = 1; } //前端隐藏 团长信息 $index_hide_headdetail_address = D('Home/Front')->get_config_by_name('index_hide_headdetail_address'); if( empty($index_hide_headdetail_address) ) { $index_hide_headdetail_address = 0; } $need_data['index_hide_headdetail_address'] = $index_hide_headdetail_address; //订单留言 $is_open_order_message = D('Home/Front')->get_config_by_name('is_open_order_message'); $need_data['yu_money'] = $member_info['account_money']; $need_data['goods'] = $goods; $need_data['is_open_order_message'] = $is_open_order_message; $need_data['is_zero_opentuan'] = 0; //拼团特殊情况0元开团 if( $buy_type == 'pintuan' && $is_zero_buy == 1 ) { //$need_data['total_free'] = 0; //$need_data['trans_free_toal'] = 0; //$need_data['is_zero_opentuan'] = 1; } //订阅消息begin $is_need_subscript = 0; $need_subscript_template = array(); //'pay_order','send_order','hexiao_success','apply_community','open_tuan','take_tuan','pin_tuansuccess','apply_tixian' //$member_id if( $buy_type == 'pintuan' ) { //pin_tuansuccess //send_order parameter[weprogram_subtemplate_pin_tuansuccess] //hexiao_success $pin_tuansuccess_info = M('lionfish_comshop_subscribe')->where( array('member_id' => $member_id, 'type' => 'pin_tuansuccess' ) )->find(); //if( empty($pin_tuansuccess_info) ) //{ $weprogram_subtemplate_pin_tuansuccess = D('Home/Front')->get_config_by_name('weprogram_subtemplate_pin_tuansuccess'); if( !empty($weprogram_subtemplate_pin_tuansuccess) ) { $need_subscript_template['pin_tuansuccess'] = $weprogram_subtemplate_pin_tuansuccess; } //} }else{ //pay_order $pay_order_info = M('lionfish_comshop_subscribe')->where( array('member_id' => $member_id , 'type' => 'pay_order') )->find(); //if( empty($pay_order_info) ) //{ $weprogram_subtemplate_pay_order = D('Home/Front')->get_config_by_name('weprogram_subtemplate_pay_order'); if( !empty($weprogram_subtemplate_pay_order) ) { $need_subscript_template['pay_order'] = $weprogram_subtemplate_pay_order; } //} } //send_order $send_order_info = M('lionfish_comshop_subscribe')->where( array('member_id' => $member_id, 'type' => 'send_order' ) )->find(); //if( empty($send_order_info) ) //{ $weprogram_subtemplate_send_order = D('Home/Front')->get_config_by_name('weprogram_subtemplate_send_order'); if( !empty($weprogram_subtemplate_send_order) ) { $need_subscript_template['send_order'] = $weprogram_subtemplate_send_order; } //} //hexiao_success $hexiao_success_info = M('lionfish_comshop_subscribe')->where( array('member_id' => $member_id, 'type' => 'hexiao_success' ) )->find(); //if( empty($hexiao_success_info) ) //{ $weprogram_subtemplate_hexiao_success = D('Home/Front')->get_config_by_name('weprogram_subtemplate_hexiao_success'); if( !empty($weprogram_subtemplate_hexiao_success) ) { $need_subscript_template['hexiao_success'] = $weprogram_subtemplate_hexiao_success; } //} if( !empty($need_subscript_template) ) { $is_need_subscript = 1; } //下单万能表单 $need_data['allform'] = D('Home/Allform')->getOrderForms(); //判断是否使用货到付款 $cashondelivery_data = D('Home/Front')->getCashonDeliveryAction($buy_type, $seller_goodss); $need_data['cashondelivery_data'] = $cashondelivery_data; //订阅消息end $need_data['is_need_subscript'] = $is_need_subscript; $need_data['need_subscript_template'] = $need_subscript_template; //订单提交页面备注信息 $order_note_open = D('Home/Front')->get_config_by_name('order_note_open'); $order_note_open = isset($order_note_open) && $order_note_open == 1 ? 1: 0; $order_note_name = D('Home/Front')->get_config_by_name('order_note_name'); $order_note_name = !isset($order_note_name) || empty($order_note_name) ? '店名' : $order_note_name; $need_data['order_note_open'] = $order_note_open;//开启下单页面备注,仅 自提跟 团长配送时需要 $need_data['order_note_name'] = $order_note_name;//备注名称,默认是店名 $need_data['order_note_content'] = $order_note_content;//备注名称,默认是店名 $need_data['localtown_modifypickingname'] = $localtown_modifypickingname;//备注名称,默认是店名 //配送费类型:0、固定金额,1、按距离收取 $localtown_delivery_moneytype = D('Home/Front')->get_config_by_name('localtown_delivery_moneytype'); //起送价格 $localtown_moneytype_fixed_deliverymoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_deliverymoney'); //达到金额免配送费 $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_freemoney'); //加价配送 $localtown_makeup_delivery_money = D('Home/Front')->get_config_by_name('localtown_makeup_delivery_money'); //1、固定金额,订单价格超过起送价格 无加价配送费,2、按距离收取 无加价配送费 3、固定金额,起送价格为0 无加价配送费 if(($localtown_delivery_moneytype == 0 && ($localtown_shipping_fare_arr[0]['is_can_qisong'] == 1 || $localtown_moneytype_fixed_deliverymoney == 0)) || $localtown_delivery_moneytype == 1){ $localtown_makeup_delivery_money = 0; }else{ $localtown_makeup_delivery_money = 0; } $need_data['localtown_delivery_moneytype'] = $localtown_delivery_moneytype; $need_data['localtown_moneytype_fixed_deliverymoney'] = $localtown_moneytype_fixed_deliverymoney; $need_data['localtown_moneytype_fixed_freemoney'] = $localtown_moneytype_fixed_freemoney; $need_data['localtown_makeup_delivery_money'] = $localtown_makeup_delivery_money; $need_data['order_lou_meng_hao'] = D('Home/Front')->get_config_by_name('order_lou_meng_hao'); $need_data['order_lou_meng_hao_placeholder'] = D('Home/Front')->get_config_by_name('order_lou_meng_hao_placeholder'); echo json_encode($need_data); die(); } public function sub_order() { $gpc = I('request.'); $buy_type = isset($gpc['buy_type']) ? $gpc['buy_type'] : 'dan'; $token = $gpc['token']; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy'); $allform_id = $gpc['allform_id']; $allform_list = $gpc['allform_list']; if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 ) { $pintuan_model_buy = 0; } $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy'); $is_open_vipcard_buy = !empty($is_open_vipcard_buy) && $is_open_vipcard_buy ==1 ? 1:0; $is_vip_card_member = 0; $is_member_level_buy = 0; if( $member_id > 0 ) { $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find(); if( !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 ) { $now_time = time(); if( $member_info['card_id'] >0 && $member_info['card_end_time'] > $now_time ) { $is_vip_card_member = 1;//还是会员 }else if( $member_info['card_id'] >0 && $member_info['card_end_time'] < $now_time ){ $is_vip_card_member = 2;//已过期 } } if($is_vip_card_member != 1 && $member_info['level_id'] >0 ) { $is_member_level_buy = 1; } } if($buy_type == 'presale') { $is_vip_card_member = 0; $is_member_level_buy = 0; } //use_score = 1 $use_score = isset($gpc['use_score']) ? intval($gpc['use_score']) : 0; $puis_not_buy = D('Home/Front')->get_config_by_name('puis_not_buy'); if( !empty($puis_not_buy) && $puis_not_buy ==1 ) { $member_info = M('lionfish_comshop_member')->field('level_id')->where( array('member_id' => $member_id) )->find(); if($member_info['level_id'] == 0) { echo json_encode( array('code' => 2, 'msg' => '普通会员不能购买') ); die(); } } //$buy_type == 'presale' $data_s = array(); $data_s['pay_method'] = $gpc['wxpay']; $data_s['buy_type'] = isset($gpc['buy_type']) ? $gpc['buy_type'] : 'dan'; $data_s['pick_up_id'] = $gpc['pick_up_id']; $data_s['dispatching'] = $gpc['dispatching']; $order_note_open = D('Home/Front')->get_config_by_name('order_note_open'); if($order_note_open == 1){ $data_s['note_content'] = $gpc['note_content']; }else{ $data_s['note_content'] = ''; } $data_s['soli_id'] = isset($gpc['soli_id']) ? intval($gpc['soli_id']) : 0 ; if($data_s['dispatching'] != 'express' && empty($data_s['pick_up_id'])) { $last_community = M('lionfish_community_history')->where( array('member_id' => $member_id) )->order('id desc')->find(); if( !empty($last_community) ) { $data_s['pick_up_id'] = $last_community['head_id']; } //$data_s['pick_up_id'] } //礼品卡不用配送地址begin if( $data_s['buy_type'] == 'virtualcard' ) { $data_s['dispatching'] = 'express'; $data_s['address_id'] = 0; } //end if( $data_s['buy_type'] == 'dan' || $data_s['buy_type'] == 'soitaire' || $data_s['buy_type'] == 'presale' || ($pintuan_model_buy == 1 && $data_s['buy_type'] != 'dan' && $data_s['buy_type'] != 'integral' ) ) { D('Seller/Community')->in_community_history($member_id,$data_s['pick_up_id']); } //'express' 快递, 'pickup' 自提, 'tuanz_send' 团长配送) tuan_send_address $data_s['ziti_name'] = $gpc['ziti_name']; $data_s['quan_arr'] = $gpc['quan_arr']; $data_s['comment'] = $gpc['comment']; $data_s['ziti_mobile'] = $gpc['ziti_mobile']; $data_s['tuan_send_address'] = $gpc['tuan_send_address']; $data_s['ck_yupay'] = $gpc['ck_yupay']; //是否货到付款 $data_s['cashon_delivery'] = $gpc['cashon_delivery']; $data_s['province_name'] = isset($gpc['province_name']) ? $gpc['province_name']:'' ; $data_s['city_name'] = isset($gpc['city_name']) ? $gpc['city_name']: ''; $data_s['country_name'] = isset($gpc['country_name']) ? $gpc['country_name']: ''; $data_s['address_name'] = isset($gpc['address_name']) ? $gpc['address_name']:'' ; $data_s['latitude'] = isset($gpc['latitude']) ? $gpc['latitude']:'' ; $data_s['longitude'] = isset($gpc['longitude']) ? $gpc['longitude']:'' ; $data_s['lou_meng_hao'] = isset($gpc['lou_meng_hao']) ? $gpc['lou_meng_hao']:'' ; $data_s['expected_delivery_time'] = isset($gpc['expected_delivery_time']) ? $gpc['expected_delivery_time']:'' ; //$data_s['tuan_send_address'] .= $data_s['lou_meng_hao']; //$data_s['tuan_send_address'] .= $data_s['lou_meng_hao']; //tuan_send_address $province_name = isset($data_s['province_name']) ? $data_s['province_name'] : ''; $city_name = isset($data_s['city_name']) ? $data_s['city_name'] : ''; $country_name = isset($data_s['country_name']) ? $data_s['country_name'] : ''; $address_name = isset($data_s['address_name']) ? $data_s['address_name'] : ''; //判断配送距离 /*if($data_s['dispatching'] == 'localtown_delivery'){ //服务距离 $localtown_servvice_maxdistance = D('Home/Front')->get_config_by_name('localtown_servvice_maxdistance'); //商家经纬度 $localtown_shop_lon = D('Home/Front')->get_config_by_name('localtown_shop_lon'); $localtown_shop_lat = D('Home/Front')->get_config_by_name('localtown_shop_lat'); $distince = D('Seller/Communityhead')->GetDistance($data_s['longitude'],$data_s['latitude'], $localtown_shop_lon, $localtown_shop_lat); $distince = round($distince/1000,2); if($distince > $localtown_servvice_maxdistance){ //echo json_encode( array('code' => 2, 'msg' => '超出服务距离'.$localtown_servvice_maxdistance.'KM') ); echo json_encode( array('code' => 2, 'msg' => '您与商家的距离过远,商家的配送范围是'.$localtown_servvice_maxdistance.'KM内') ); die(); } }*/ $json=array(); $pay_method = $data_s['pay_method'];//支付类型 $order_msg_str = $data_s['order_msg_str'];//商品订单留言 $comment = $data_s['comment'];//商品订单留言 $comment_arr = array(); if( !empty($data_s['comment']) ) { $comment_arr1 = explode('@EOF@', $data_s['comment']); foreach($comment_arr1 as $var){ $count = substr_count($var, '_'); $a = explode('_', $var); for($i=1 ; $i<$count ; $i++ ){ $comment_arr[$a[$i]] = $a[$count]; } } } $pick_up_id = $data_s['pick_up_id']; $dispatching = $data_s['dispatching']; $ziti_name = $data_s['ziti_name']; $ziti_mobile = $data_s['ziti_mobile']; //新增快递 $province_name = isset($data_s['province_name']) ? $data_s['province_name'] : ''; $city_name = isset($data_s['city_name']) ? $data_s['city_name'] : ''; $country_name = isset($data_s['country_name']) ? $data_s['country_name'] : ''; $address_name = isset($data_s['address_name']) ? $data_s['address_name'] : ''; $ck_yupay = $data_s['ck_yupay']; $cashon_delivery = $data_s['cashon_delivery']; if($dispatching == 'express') { $data_s['address_id'] = $this->_add_address($token,$ziti_name,$ziti_mobile,$province_name,$city_name, $country_name,$address_name); } else if( $dispatching == 'localtown_delivery' ) { $data_s['address_id'] = $this->_add_address($token,$ziti_name,$ziti_mobile,$province_name,$city_name, $country_name,$address_name,$data_s['latitude'],$data_s['longitude'],$data_s['lou_meng_hao'] ); } else if($dispatching == 'tuanz_send'){ $data_s['address_id'] = $this->_add_address($token,$ziti_name,$ziti_mobile,$province_name,$city_name, $country_name,$data_s['tuan_send_address'],$data_s['latitude'],$data_s['longitude'],$data_s['lou_meng_hao'] ); $data_s['tuan_send_address'] .= $data_s['lou_meng_hao']; } /** pick_up_id: that.data.pick_up_id, dispatching: that.data.dispatching, //express pickup ziti_name: t_ziti_name, ziti_mobile: t_ziti_mobile **/ $order_msg_arr = explode('@,@', $order_msg_str); $quan_arr = $data_s['quan_arr'];//商品订单留言 $order_quan_arr = array(); if( !empty($quan_arr) ) { if( !is_array($quan_arr) ) { $quan_arr = array($quan_arr); } foreach($quan_arr as $q_val) { $tmp_q = array(); $tmp_q = explode('_',$q_val); $voucher_info = M('lionfish_comshop_coupon_list')->where("consume='N' and id=".$tmp_q[1]." and user_id=".$member_id." and end_time >".time())->find(); if( !empty($voucher_info) ) { //$order_quan_arr[$tmp_q[0]] = $tmp_q[1]; $order_quan_arr[1] = $tmp_q[1]; } } } $msg_arr = array(); foreach($order_msg_arr as $val) { $tmp_val = explode('@_@', $val); $msg_arr[ $tmp_val[0] ] = $tmp_val[1]; } $cart= D('Home/Car'); // 验证商品数量 //buy_type:buy_type $buy_type = $data_s['buy_type'];//I('post.buy_type'); $is_pin = 0; if($buy_type == 'pintuan') { $is_pin = 1; } $goodss = $cart->get_all_goodswecar($buy_type,$token,1,$data_s['pick_up_id'], $data_s['soli_id']); //付款人 $payment = M('lionfish_comshop_member')->where( array('member_id' => $member_id) )->find(); //收货人 $addr_param = array(); $addr_param[':uniacid'] = $_W['uniacid']; $addr_param[':member_id'] = $member_id; //$addr_sql = "select * from ".tablename('lionfish_comshop_address')." where uniacid=:uniacid and member_id=:member_id order by is_default desc,address_id desc limit 1"; //$address = pdo_fetch($addr_sql, $addr_param); $seller_goodss = array(); /** 计算每个订单的优惠券占比begin */ $zanbi_total_money = 0; //是否需要校验ticket 交易组件 $scene = $gpc['scene']; $is_need_scene_check = 0; if(!empty($scene)) { $is_need_scene_check = D('Seller/MpModifyTradeComponts')->sceneCheck( $scene ); } foreach($goodss as $key => $val) { //单商户先屏蔽 //$goods_store_field = M('goods')->field('store_id')->where( array('goods_id' => $val['goods_id']) )->find(); $supply_id = D('Home/Front')->get_goods_supply_id($val['goods_id']); if ($supply_id > 0) { $supply_info = D('Home/Front')->get_supply_info($supply_id); if ($supply_info['type'] == 0) { $supply_id = 0; } } if($data_s['dispatching'] == 'localtown_delivery'){ if($supply_id > 0){ $isopen_localtown_delivery = D('Home/Front')->get_supply_config_by_name('isopen_localtown_delivery',$supply_id); if($isopen_localtown_delivery == 1){ //服务距离 $localtown_servvice_maxdistance = D('Home/Front')->get_supply_config_by_name('localtown_servvice_maxdistance',$supply_id); //商家经纬度 $localtown_shop_lon = D('Home/Front')->get_supply_config_by_name('localtown_shop_lon',$supply_id); $localtown_shop_lat = D('Home/Front')->get_supply_config_by_name('localtown_shop_lat',$supply_id); $distince = D('Seller/Communityhead')->GetDistance($data_s['longitude'],$data_s['latitude'], $localtown_shop_lon, $localtown_shop_lat); $distince = round($distince/1000,2); if($distince > $localtown_servvice_maxdistance){ echo json_encode( array('code' => 2, 'msg' => '您与商家的距离过远,商家的配送范围是'.$localtown_servvice_maxdistance.'KM内') ); die(); } } }else{ //服务距离 $localtown_servvice_maxdistance = D('Home/Front')->get_config_by_name('localtown_servvice_maxdistance'); //商家经纬度 $localtown_shop_lon = D('Home/Front')->get_config_by_name('localtown_shop_lon'); $localtown_shop_lat = D('Home/Front')->get_config_by_name('localtown_shop_lat'); $distince = D('Seller/Communityhead')->GetDistance($data_s['longitude'],$data_s['latitude'], $localtown_shop_lon, $localtown_shop_lat); $distince = round($distince/1000,2); if($distince > $localtown_servvice_maxdistance){ echo json_encode( array('code' => 2, 'msg' => '您与商家的距离过远,商家的配送范围是'.$localtown_servvice_maxdistance.'KM内') ); die(); } } } $seller_goodss[$supply_id][$key] = $val; //$cart->removecar($val['key'],$token); if ($is_vip_card_member == 1 && $val['is_take_vipcard'] == 1) { $zanbi_total_money += $val['card_total']; } else if ($val['is_mb_level_buy'] > 0 && $is_member_level_buy == 1) { $zanbi_total_money += $val['level_total']; } else if ($val['is_mb_level_buy'] == 1 && $member_info['level_id'] > 0){ $zanbi_total_money += $val['level_total']; } else { $zanbi_total_money += $val['total']; } //检测是否场景符合begin if( $is_need_scene_check == 1 ) { if( $val['isTradeComponts'] == 0 ) { echo json_encode( array('code' => 2,'msg' => $val['name'].':未提交小程序交易组件' ) ); die(); } } //检测是否场景符合end } //判断是否可以货到付款 if($cashon_delivery == 1){ $cashondelivery_data = D('Home/Front')->getCashonDeliveryAction($buy_type, $seller_goodss); if($cashondelivery_data['isopen_cashondelivery'] == 1){ if($dispatching == 'express' && $cashondelivery_data['isopen_cashondelivery_express'] == 0){ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); }else if($dispatching == 'tuanz_send' && $cashondelivery_data['isopen_cashondelivery_communityhead'] == 0){ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); }else if($dispatching == 'localtown_delivery' && $cashondelivery_data['isopen_cashondelivery_localtown'] == 0){ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); }else if($dispatching == 'hexiao' && $cashondelivery_data['isopen_cashondelivery_hexiao'] == 0){ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); }else if($dispatching == 'pickup' && $cashondelivery_data['isopen_cashondelivery_ziti'] == 0){ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); } }else{ echo json_encode( array('code' => 3,'msg' => '货到付款未开启' ) ); die(); } } //....看看有没有满多少才能下单begin $open_man_orderbuy = D('Home/Front')->get_config_by_name('open_man_orderbuy'); $man_orderbuy_money = D('Home/Front')->get_config_by_name('man_orderbuy_money'); //pindan (拼团商品单独购买) pintuan (拼团) if($buy_type == 'pintuan' || $buy_type == 'pindan' || $buy_type == 'integral' ) { $open_man_orderbuy = 0; } if( !empty($open_man_orderbuy) && $open_man_orderbuy == 1 ) { if( !empty($man_orderbuy_money) && $man_orderbuy_money >0 ) { if($man_orderbuy_money > $zanbi_total_money) { echo json_encode( array('code' => 2,'msg' => '满'.$man_orderbuy_money.'元才可以下单' , 'is_forb' => 1) ); die(); } } } //....看看有没有满多少才能下单end //清除购物车 foreach($goodss as $key => $val) { $cart->removecar($val['key'],$token); } /** 计算每个订单的优惠券占比end */ $pay_total = 0; //M('order_all') $order_all_data = array(); $order_all_data['member_id'] = $member_id; $order_all_data['order_num_alias'] = build_order_no($member_id); $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $is_pin; $order_all_data['paytime'] = 0; $order_all_data['addtime'] = time(); $order_all_id = M('lionfish_comshop_order_all')->add($order_all_data); //暂时屏蔽积分商城模块 $integral_model = D('Home/Integral'); $order_ids_arr = array(); $del_integral = 0; if( ($buy_type == 'pintuan' || $buy_type == 'pindan') && $pintuan_model_buy == 0 ) { $community_info = array(); $community_detail_info = array(); } else if( $buy_type == 'integral' ) { $community_info = array(); $community_detail_info = array(); } else if( ($buy_type == 'pintuan' || $buy_type == 'pindan') && $pintuan_model_buy == 1 ) { $community_info = M('lionfish_community_head')->where( array('id' => $data_s['pick_up_id'] ) )->find(); $community_detail_info = D('Home/Front')->get_community_byid($data_s['pick_up_id']); }else{ $community_info = M('lionfish_community_head')->where( array('id' => $data_s['pick_up_id'] ) )->find(); $community_detail_info = D('Home/Front')->get_community_byid($data_s['pick_up_id']); } $address_info = M('lionfish_comshop_address')->where( array('address_id' => $data_s['address_id'] ) )->find(); $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction'); $full_money = D('Home/Front')->get_config_by_name('full_money'); $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney'); $man_free_tuanzshipping = D('Home/Front')->get_config_by_name('man_free_tuanzshipping'); $man_free_shipping = D('Home/Front')->get_config_by_name('man_free_shipping'); if( empty($man_free_tuanzshipping) ) { $man_free_tuanzshipping = 0; } if( empty($man_free_shipping) ) { $man_free_shipping = 0; } if(empty($full_reducemoney) || $full_reducemoney <= 0) { $is_open_fullreduction = 0; } if( ($buy_type == 'pintuan' || $buy_type == 'pindan') && $pintuan_model_buy == 0 ) { $man_free_tuanzshipping = 0; $man_free_shipping = 0; $is_open_fullreduction = 0; } else if( $buy_type == 'integral' ) { $man_free_tuanzshipping = 0; $man_free_shipping = 0; $is_open_fullreduction = 0; } else if( ($buy_type == 'pintuan' || $buy_type == 'pindan') && $pintuan_model_buy == 1 ) { $man_free_shipping = 0; $is_open_fullreduction = 0; } //预售不参与满减 if($buy_type == 'presale') { $man_free_tuanzshipping = 0; $man_free_shipping = 0; $is_open_fullreduction = 0; } $is_moban = false; $cart = D('Home/Car'); $is_just_1 = 0; $index_comment = 0; $pay_goods_name = ""; $store_buy_total_money = 0; $open_score_buy_score = D('Home/Front')->get_config_by_name('open_score_buy_score'); $score_for_money = 0;//use_score if( $buy_type == 'integral' ) { $open_score_buy_score = 0; } //预售不参与积分抵扣 if($open_score_buy_score == 1 && $use_score == 1 && $payment['score'] > 0 && $buy_type != 'presale') { //计算能兑换多少钱 $score_forbuy_money = D('Home/Front')->get_config_by_name('score_forbuy_money'); //只有兑换比例大于0才能允许兑换 if( !empty($score_forbuy_money) && $score_forbuy_money >0 ) { $score_for_money = sprintf('%.2f', $payment['score'] / $score_forbuy_money); } } foreach($seller_goodss as $kk => $vv) { $is_just_1++; $data = array(); $data['member_id']=$member_id; $data['name']= $payment['username']; $data['use_score']= $use_score;//是否使用积分抵扣 $data['telephone']= $data_s['ziti_mobile']; $data['note_content']= $data_s['note_content']; $data['shipping_name']= $data_s['ziti_name']; $data['shipping_tel']= $data_s['ziti_mobile']; if($dispatching == 'express' || $dispatching == 'tuanz_send' || $dispatching == 'localtown_delivery') { $data['shipping_address'] = $address_info['address']; $data['shipping_province_id']=$address_info['province_id']; $data['shipping_city_id']=$address_info['city_id']; $data['shipping_stree_id']= 0; $data['shipping_country_id']=$address_info['country_id']; }else{ $data['shipping_address'] = $community_detail_info['fullAddress']; $data['shipping_province_id']=$community_info['province_id']; $data['shipping_city_id']=$community_info['city_id']; $data['shipping_stree_id']=$community_info['country_id']; $data['shipping_country_id']=$community_info['area_id']; } $data['shipping_method'] = 0; $data['delivery']=$dispatching; $data['pick_up_id']=$pick_up_id; $data['ziti_name']=$community_info['head_name']; $data['ziti_mobile']=$community_info['head_mobile']; $data['payment_method']=$pay_method; $data['address_id']= $data_s['address_id']; $data['voucher_id'] = isset($order_quan_arr[1]) ? $order_quan_arr[1]:0;//目前都是平台券 $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $subject=''; $fare = 0; $order_total = 0; $trans_free_toal = 0;//运费 $is_localtown_free_shipping_fare = 0; $localtown_shipping_fare_total = 0;//同城配送费 $localtown_free_shipping_fare = 0;//满减的同城配送费用 $reduce_money = 0; $man_total_free = 0; $score_buy_money = 0; $is_lottery = 0; $is_integral = 0; $is_spike = 0; $is_hexiao = 0; $total_weight = 0; $total_quantity = 0; $redis_has_add_list = array(); $is_free_shipping_fare = 0;//是否免除运费 $order_goods_total_money = 0; $goods_data = array(); $is_moban = false; //comment_arr comment_arr $packing_fare = 0; $iscan_fu_packing = 1; if('localtown_delivery' == $dispatching) { $tmp_sellergd = array($kk => array('goods'=>$vv) ); $town_address = M('lionfish_comshop_address')->where( array('address_id' => $data_s['address_id'] ) )->find(); list($lon, $lat ) = explode(",",$town_address['lon_lat'] ); $localtown_shippingfare_arr = D('Home/LocaltownDelivery')->calc_shipping_fare( $lon, $lat , $tmp_sellergd ); $trans_free_toal = $localtown_shippingfare_arr['total_shipping_fare']; $localtown_shipping_fare_total = $trans_free_toal; $packing_fare_arr = D('Home/LocaltownDelivery')->calc_packing_money( array( $kk => array('goods' => $vv ) ) ); $packing_fare = $packing_fare_arr['total_picking_fare']; $localtown_shipping_fare = $localtown_shippingfare_arr['total_shipping_fare']; $localtown_yl_shipping_fare = $localtown_shippingfare_arr['total_yl_shipping_fare']; if($localtown_shipping_fare != $localtown_yl_shipping_fare && $localtown_shipping_fare == 0){ $is_localtown_free_shipping_fare = 1; $localtown_free_shipping_fare = $localtown_shippingfare_arr['total_yl_shipping_fare']; } $data['localtown_add_shipping_fare'] = $localtown_shippingfare_arr[$kk]['localtown_add_shipping_fare']; } $data['expected_delivery_time'] = $data_s['expected_delivery_time']; $data['packing_fare'] = floatval($packing_fare); foreach($vv as $key => $good) { if( $kk == 0 ) { if( $is_vip_card_member == 1 && $good['is_take_vipcard'] == 1 ) { $store_buy_total_money += $good['card_total']; } else if( $good['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { $store_buy_total_money += $good['level_total']; } else { $store_buy_total_money += $good['total']; } } /** if($good['shipping']==1) { //统一运费 $trans_free_toal += $good['goods_freight']; $trans_free = $good['goods_freight']; }else { //运费模板 $trans_free = load_model_class('transport')->calc_transport($good['transport_id'], $good['quantity'], $good['quantity']*$good['weight'], $address['city_id'] ); //$trans_free = D('Home/Transport')->calc_transport($good['transport_id'], $good['quantity']*$good['weight'], $address['city_id'] ); $trans_free_toal +=$trans_free; } **/ $trans_free = 0; //$trans_free_toal +=$trans_free; //sku_str if( $is_vip_card_member == 1 && $good['is_take_vipcard'] == 1 ) { $order_goods_total_money += $good['card_total']; $order_total += $good['card_total']; } else if( $good['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { $order_goods_total_money += $good['level_total']; $order_total += $good['level_total']; } else { $order_goods_total_money += $good['total']; $order_total += $good['total']; } $tp_goods_info = M('lionfish_comshop_goods')->field('type')->where( array('id' => $good['goods_id']) )->find(); $tp_goods_info['store_id'] = 1; if($tp_goods_info['type'] == 'lottery') { $is_lottery = 1; } if($tp_goods_info['type'] == 'spike') { $is_spike = 1; $is_pin = 0; } //暂时屏蔽积分商城模块 if($tp_goods_info['type'] == 'integral') { $is_integral = 1; $is_pin = 0; $check_result = $integral_model->check_user_score_can_pay($member_id, $good['sku_str'], $good['goods_id'] ); if($check_result['code'] == 1) { echo json_encode( array('code' => 2, 'msg' => '剩余'.$check_result['cur_score'].'积分,积分不足!' , 'is_forb' => 1 ) ); die(); } } //is_hexiao is_only_express if($good['is_only_express']==2) { $is_hexiao = 2; $is_pin = 0; } if($good['shipping']==0) { $is_moban = true; //统一运费 $total_weight += $good['weight']*$good['quantity']; $total_quantity += $good['quantity']; } $fenbi_li = 1; if( $zanbi_total_money > 0 ) { if( $is_vip_card_member == 1 && $good['is_take_vipcard'] == 1 ) { $fenbi_li = round($good['card_total'] / $zanbi_total_money, 2); } else if( $good['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { $fenbi_li = round($good['level_total'] / $zanbi_total_money, 2); } else { $fenbi_li = round($good['total'] / $zanbi_total_money, 2); } } //if( isset($comment_arr[$index_comment]) ) //{ // $comment = $comment_arr[$index_comment]; //} //$good['goods_id'] if( isset($comment_arr) ) { foreach($comment_arr as $key => $var){ if($good['goods_id'] == $key ){ $comment = $var; } } } //监测库存数量 $quantity_flag = D('Seller/Redisorder')->check_goods_can_buy($good['goods_id'], $good['sku_str'],$good['quantity']); if( $quantity_flag <=0 ) { if( !empty($redis_has_add_list) ) { D('Seller/Redisorder')->bu_car_has_delquantity($redis_has_add_list); } echo json_encode( array('code' => 2, 'msg' => '已抢光' , 'is_forb' => 1) ); die(); } //如果是下单减库存,那么用占坑法来避免超库存---begin $kucun_method = D('Home/Front')->get_config_by_name('kucun_method'); if( empty($kucun_method) ) { $kucun_method = 0; } if($kucun_method == 0) { //$ret = $redis->rPush('city', 'guangzhou'); $check_redis_quantity = D('Seller/Redisorder')->add_goods_buy_user($good['goods_id'], $good['sku_str'],$good['quantity'],$member_id); //注意要回滚 //$key = "user_goods_{$member_id}_{$goods_id}_{$sku_str}"; if($check_redis_quantity == 0) { //cancle_redis_user_list if( !empty($redis_has_add_list) ) { D('Seller/Redisorder')->bu_car_has_delquantity($redis_has_add_list); } echo json_encode( array('code' => 2, 'msg' => '已抢光' , 'is_forb' => 1) ); die(); } $redis_has_add_list[] = array('member_id' => $member_id, 'goods_id' => $good['goods_id'], 'sku_str' => $good['sku_str'],'quantity' => $good['quantity'] ); } //----------------redis end if( $good['can_man_jian'] == 1) { //$man_total_free += $good['total']; //begggg if( $is_vip_card_member == 1 && $good['is_take_vipcard'] == 1 ) { if( $good['can_man_jian'] == 1) { $man_total_free += $good['card_total']; } } else if( $good['is_mb_level_buy'] == 1 && $member_info['level_id'] >0 ) { if( $good['can_man_jian'] == 1) { $man_total_free += $good['level_total']; } } else { if( $good['can_man_jian'] == 1) { $man_total_free += $good['total']; } } //eddddd } $pay_goods_name .= $good['name']; if( $good['is_mb_level_buy'] == 1 && $is_vip_card_member ==0 && $member_info['level_id'] >0 ) { $good['is_mb_level_buy'] == 1; }else{ $good['is_mb_level_buy'] == 0; } $localtown_superposition_pickingmoney = 0; $localtown_superposition_pickingmoney = isset($localtown_superposition_pickingmoney) ? $localtown_superposition_pickingmoney : 0; $gd_packing_fare = 0; if( $localtown_superposition_pickingmoney == 0 ) { $gd_packing_fare = $good['packing_free']; } else { if( $packing_fare == $good['packing_free'] && $iscan_fu_packing == 1) { $iscan_fu_packing = 0; $gd_packing_fare = $good['packing_free']; } } $goods_data[] = array( 'goods_id' => $good['goods_id'], 'store_id' => $tp_goods_info['store_id'], 'name' => $good['name'], 'model' => $good['model'], 'is_pin' => $is_pin, 'pin_id' => $good['pin_id'], 'header_disc' => $good['header_disc'], 'member_disc' => $good['member_disc'], 'level_name' => $good['level_name'], 'option' => $good['sku_str']== 'undefined' ? '':$good['sku_str'], 'quantity' => $good['quantity'], 'shipping_fare' => $trans_free, 'price' => $good['price'], 'costprice' => $good['costprice'], 'card_price' => $good['card_price'], 'levelprice' => $good['levelprice'], 'total' => $good['total'], 'packing_fare' => $gd_packing_fare, 'card_total' => $good['card_total'] , 'level_total' => $good['level_total'] , 'is_mb_level_buy' => $good['is_mb_level_buy'] , 'is_take_vipcard' => $good['is_take_vipcard'], 'fenbi_li' => $fenbi_li, 'can_man_jian' => $good['can_man_jian'], 'soli_id' => $good['soli_id'], 'comment' => htmlspecialchars($comment) ); } $index_comment++; //$total_weight = 0; //$total_quantity = 0; if($dispatching == 'express') { //结算运费新模式 $trans_free_toal = 0;//运费 //----开始计算运费 //ims_ $shipping_default = M('lionfish_comshop_shipping')->where("enabled=1")->order('isdefault desc,id desc')->find(); $seller_goodss_re = $seller_goodss; $store_shipping_fare = 0; if($is_moban) { $store_shipping_fare = D('Home/Transport')->calc_transport($shipping_default['id'], $total_quantity,$total_weight, $address_info['city_id'] ); } $trans_free_toal += $store_shipping_fare; foreach($vv as $kkc =>$d_goods) { if($d_goods['shipping']==1) { //统一运费 $trans_free_toal += $d_goods['goods_freight']; } } if( $kk == 0 && !empty($man_free_shipping) && $man_free_shipping > 0 && $order_goods_total_money >= $man_free_shipping ) { //$trans_free_toal = 0; $is_free_shipping_fare = 1; } //---结束结算运费 address_id $data_s['address_id'] = $this->_add_address($token,$ziti_name,$ziti_mobile,$province_name,$city_name, $country_name,$address_name); } else if('tuanz_send' == $dispatching) { $trans_free_toal = 0; $delivery_tuanz_money = D('Home/Front')->get_config_by_name('delivery_tuanz_money'); $community_info_modify = $community_info; if( !empty($community_info_modify['is_modify_shipping_method']) && $community_info_modify['is_modify_shipping_method'] == 1 ) { if( !empty($community_info_modify['is_modify_shipping_fare']) && $community_info_modify['is_modify_shipping_fare'] == 1 && $community_info_modify['shipping_fare'] > 0 ) { $delivery_tuanz_money = $community_info_modify['shipping_fare']; } } $trans_free_toal = $delivery_tuanz_money; $data['tuan_send_address'] = $data_s['tuan_send_address']; if( $kk == 0 && !empty($man_free_tuanzshipping) && $man_free_tuanzshipping > 0 && $order_goods_total_money >= $man_free_tuanzshipping ) { $is_free_shipping_fare = 1; //$trans_free_toal = 0; } } //$is_pin; is_lottery //'pintuan', 'normal', 'lottery' $data['type'] = 'normal'; if($is_pin == 1) { $data['type'] = 'pintuan'; if($is_lottery == 1) { $data['type'] = 'lottery'; } } if($is_integral == 1) { $data['type'] = 'integral'; $is_pin = 0; } if($is_hexiao == 1) { $data['type'] = 'virtual'; $is_pin = 0; } if($is_spike == 1) { $data['type'] = 'spike'; $is_pin = 0; } //礼品卡配送费0 if( $buy_type == 'virtualcard' ) { $trans_free_toal = 0; } $data['shipping_fare'] = floatval($trans_free_toal); if($is_free_shipping_fare == 1) { $trans_free_toal = 0; } //原先计算满减金额 /*if($is_open_fullreduction == 1 && $man_total_free >= $full_money ) { $reduce_money = $full_reducemoney ; }*/ //多组满减金额计算 if($is_open_fullreduction == 1) { $reduce_result = D('Home/Front')->get_reduce_money($man_total_free); $reduce_money = $reduce_result['reduce_money']; } $data['is_free_shipping_fare']= $is_free_shipping_fare; $data['store_id']= $kk; $data['order_goods_total_money']= $order_goods_total_money; $data['is_localtown_free_shipping_fare']= $is_localtown_free_shipping_fare; $data['localtown_free_shipping_fare']= $localtown_free_shipping_fare; $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($member_id); $data['totals'][0]=array( 'code'=>'sub_total', 'title'=>'商品价格', 'text'=>'¥'.$order_total, 'value'=>$order_total ); $data['totals'][1]=array( 'code'=>'shipping', 'title'=>'运费', 'text'=>'¥'.$trans_free_toal, 'value'=>$trans_free_toal ); $data['totals'][2]=array( 'code'=>'total', 'title'=>'总价', 'text'=>'¥'.($order_total+$trans_free_toal-$reduce_money), 'value'=>($order_total+$trans_free_toal-$reduce_money) ); $data['from_type'] = 'wepro'; //目前都是平台券 if($data['voucher_id'] > 0) { //暂时屏蔽优惠券,等待开启 /** $voucher_info = pdo_fetch("select * from ".tablename('lionfish_comshop_coupon_list')." where uniacid=:uniacid and id=:id ", array(':uniacid' => $_W['uniacid'],':id' => $data['voucher_id'])); $data['voucher_credit'] = $voucher_info['credit']; pdo_update('lionfish_comshop_coupon_list', array('ordersn' => $data['order_num_alias'],'consume' => 'Y','usetime' => time()), array('id' => $data['voucher_id'] )); **/ $voucher_info = M('lionfish_comshop_coupon_list')->where( array('id' => $data['voucher_id']) )->find(); //检查优惠券指定商品或指定商品分类 优惠金额 begin $voucher_list[0] = $voucher_info; $voucher_list = D('Home/Voucher')->get_voucher_amout_bygoods($voucher_list,$goods_data, 0); $voucher_info = $voucher_list[0]; //检查优惠券指定商品或指定商品分类 优惠金额 end $data['voucher_credit'] = $voucher_info['can_vouche_amount']; $bili = 1; if( $zanbi_total_money > 0 ) { $bili = round( ($order_goods_total_money / $zanbi_total_money), 2); } $data['voucher_credit'] = $data['voucher_credit'] * $bili; //判断是否超出订单商品金额,不算运费 //if($data['voucher_credit'] > $order_total+$trans_free_toal - $reduce_money ) if($data['voucher_credit'] > $order_total - $reduce_money ) { $data['voucher_credit'] = $order_total - $reduce_money; } M('lionfish_comshop_coupon_list')->where( array('id' => $data['voucher_id'] ) )->save( array('ordersn' => $data['order_num_alias'],'consume' => 'Y','usetime' => time() ) ); } else { $data['voucher_credit'] = 0; } $use_score_total = 0;//用掉用户多少积分了. $data['score_for_money'] = 0; if( $kk == 0 && $score_for_money > 0) { if( $order_total+$trans_free_toal - $reduce_money - $data['voucher_credit'] <= 0) { //没必要扣积分了,单价已经是0 }else{ //只能抵扣扣除优惠券部分的金额 $del_money = $order_total - $data['voucher_credit'] - $reduce_money; //var_dump($del_money, $score_for_money);die(); //score_for_money 会员能抵扣的最大金额 //计算多少积分了。 $score_forbuy_money_maxbi = D('Home/Front')->get_config_by_name('score_forbuy_money_maxbi'); $score_forbuy_money = D('Home/Front')->get_config_by_name('score_forbuy_money'); if( empty($score_forbuy_money_maxbi) ) { $score_forbuy_money_maxbi = 100; } //$max_dikou_money = sprintf('%.2f', ($del_money * $score_forbuy_money_maxbi) /100); $max_dikou_score = floor($del_money * $score_forbuy_money_maxbi * $score_forbuy_money / 100 ); $max_dikou_money = sprintf('%.2f', ($max_dikou_score / $score_forbuy_money)); if($max_dikou_money < $score_for_money) { $score_for_money = $max_dikou_money; } //$score_buy_money = 0; $data['score_for_money'] = $score_for_money; //TODO...扣除会员积分,将积分分拆入每个商品订单,写入日志 //var_dump($data['score_for_money'], $max_dikou_money);die(); } } $data['comment'] = htmlspecialchars($comment); $data['reduce_money'] = $reduce_money; $data['man_total_free'] = $man_total_free; //判断自提 dispatching:"pickup" //dispatching, //express pickup if($dispatching == 'express') { $data['total']=($order_total);//+$fare - $data['voucher_credit'] }else if('tuanz_send' == $dispatching){ $data['total']=($order_total);// - $data['voucher_credit']); } else{ $data['total'] = ($order_total );// - $data['voucher_credit'] } //积分商城 //暂时屏蔽积分商城模块 if($data['type'] == 'integral') { $del_integral += $order_total;//扣除积分 $data['total'] = $order_total; } $data['buy_type'] = $buy_type;//判断预售使用 //万能表单数据 $data['allform_id'] = $allform_id; $data['allform_list'] = $allform_list; $oid= D('Home/Frontorder')->addOrder($data);// D('Order')->addOrder($data); //暂时屏蔽自提模块 /** if($data['delivery'] == 'pickup') { $verify_bool = true; $verifycode = 0; while($verify_bool) { $code = (ceil(time()/100)+rand(10000000,40000000)).rand(1000,9999); $verifycode = $code ? $code : rand(100000,999999); $verifycode = str_replace('1989','9819',$verifycode); $verifycode = str_replace('1259','9521',$verifycode); $verifycode = str_replace('12590','95210',$verifycode); $verifycode = str_replace('10086','68001',$verifycode); $pick_order = M('pick_order')->where( array('pick_sn' => $verifycode) )->find(); if(empty($pick_order)) { $verify_bool = false; } } $pick_data = array(); $pick_data['pick_sn'] = $verifycode; $pick_data['pick_id'] = $pick_up_id; $pick_data['order_id'] = $oid; $pick_data['state'] = 0; $pick_data['ziti_name'] = $ziti_name; $pick_data['ziti_mobile'] = $ziti_mobile; $pick_data['addtime'] = time(); M('pick_order')->add($pick_data); } **/ $order_ids_arr[] = $oid; //$pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit']; if($dispatching == 'express' && $data['type'] != 'integral') { $pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit']- $reduce_money - $data['score_for_money']; } else if( $dispatching == 'express' && $data['type'] == 'integral' ) { $pay_total = $trans_free_toal; } else if('localtown_delivery' == $dispatching) { $pay_total = $pay_total + $order_total+ $packing_fare + $trans_free_toal - $data['voucher_credit'] -$reduce_money - $data['score_for_money'] + $data['localtown_add_shipping_fare']; } else if('tuanz_send' == $dispatching){ $pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit'] -$reduce_money - $data['score_for_money']; } else{ $pay_total = $pay_total + $order_total - $data['voucher_credit'] -$reduce_money - $data['score_for_money']; } if( $buy_type == 'presale' ) { //如果是预售,此处支付的就是定金 $presale_order_info = M('lionfish_comshop_order_presale')->where(['order_id' => $oid ])->find(); if( $presale_order_info['presale_type'] == 1 ) { M('lionfish_comshop_order_presale')->where( ['id' => $presale_order_info['id'] ] )->save( ['presale_ding_money' => $pay_total ] ); }else{ $pay_total = $presale_order_info['presale_ding_money']; } } $pay_total = round($pay_total, 2); $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $oid; $order_relate_data['addtime'] = time(); M('lionfish_comshop_order_relate')->add($order_relate_data); } $order_all_data = array(); $order_all_data['total_money'] = $pay_total; M('lionfish_comshop_order_all')->where( array('id' => $order_all_id) )->save($order_all_data); if($order_all_id){ $order = M('lionfish_comshop_order')->where( array('order_id' => $oid) )->find(); $member_info = M('lionfish_comshop_member')->field('we_openid,account_money')->where( array('member_id' => $member_id ) )->find(); $is_yue_open = 0; $is_yue_open = D('Home/Front')->get_config_by_name('is_open_yue_pay'); if( empty($is_yue_open) ) { $is_yue_open = 0; } //检测是否需要扣除积分 if($data['type'] == 'integral' && $del_integral> 0 && $is_integral == 1) { $order_goods_tp = M('lionfish_comshop_order_goods')->field('order_goods_id')->where( array('order_id' => $oid ) )->find(); D('Admin/Member')->sendMemberPointChange($member_id,$del_integral, 1 ,'积分兑换商品', 'integral_exchange', $oid ,$order_goods_tp['order_goods_id']); } $is_open_yinpay = D('Home/Front')->get_config_by_name('is_open_yinpay'); if( $order['type'] == 'ignore' || $pay_total<=0 || ($is_yue_open == 1 && $ck_yupay == 1 && $member_info['account_money'] >= $pay_total) ) { //余额支付独立方法 D('Home/OrderV2')->carOrderYuerPay( $order_all_id, $order ,$pay_total , $ck_yupay ,$buy_type, $is_integral, $is_spike , $is_just_1 ); }else if($buy_type == 'dan' && $cashon_delivery == 1){//货到付款订单 //货到付款支付独立方法 D('Home/OrderV2')->carOrderCashonPay( $order_all_id, $order ,$pay_total , $cashon_delivery , $buy_type , $is_spike , $is_just_1); } else if( isset($is_open_yinpay) && $is_open_yinpay == 3 ) { //begin $fee = $pay_total; $appid = D('Home/Front')->get_config_by_name('wepro_appid'); $body = $pay_goods_name;//'商品购买'; $body = mb_substr($body,0,32,'utf-8'); if( empty($body) ) { $body = '商品购买'; } $mch_id = D('Home/Front')->get_config_by_name('wepro_partnerid'); $nonce_str = nonce_str(); $shop_domain = D('Home/Front')->get_config_by_name('shop_domain'); $notify_url = $shop_domain.'/notify.php'; $openid = $payment['we_openid']; $out_trade_no = $order_all_id.'-'.time(); //out_trade_no M('lionfish_comshop_order_all')->where( array('id' => $order_all_id ) )->save( array('out_trade_no' => $out_trade_no ) ); $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; //float(0.99999999999998) $trade_type = 'JSAPI'; $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $post['appid'] = D('Home/Front')->get_config_by_name('wepro_fuwu_appid');// 'wx7c38e2f177e0af59'; $post['body'] = $body; $post['mch_id'] = D('Home/Front')->get_config_by_name('wepro_fuwu_partnerid');//'1562705521'; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; //$post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['sub_appid'] = $appid; $post['sub_mch_id'] = D('Home/Front')->get_config_by_name('wepro_sub_mch_id'); $post['sub_openid'] = $openid; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); //var_dump( $notify_url );die(); $post_xml = ' '.$post['appid'].' '.$body.' '.$post['mch_id'].' '.$nonce_str.' '.$notify_url.' '.$out_trade_no.' '.$spbill_create_ip.' '.$post['sub_appid'].' '.$post['sub_mch_id'].' '.$openid.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ D('Home/Pin')->insertNotifyOrder($order['order_id']); $time = time(); $tmp=array(); $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; $prepay_id = (string)$array['PREPAY_ID']; M('lionfish_comshop_order')->where( array('order_id' => array('in', $order_ids_arr)) )->save( array('perpay_id' => $prepay_id) ); //M('order')->where( array('order_id' => array('in',$order_ids_arr) ) )->save( array('perpay_id' => (string)$array['PREPAY_ID']) ); $data = array(); $data['code'] = 0; $data['appid'] = $appid; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = sign($tmp,$pay_key); $data['out_trade_no'] = $out_trade_no; $data['is_go_orderlist'] = $is_just_1; if($is_pin == 1) { $data['redirect_url'] = '../groups/group?id='.$oid.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order_show_all?order_all_id=' + $order_all_id; } }else{ $data = array(); $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } $data['has_yupay'] = 0; //end } else{ $fee = $pay_total; $appid = D('Home/Front')->get_config_by_name('wepro_appid'); $body = $pay_goods_name;//'商品购买'; $body = mb_substr($body,0,32,'utf-8'); if( empty($body) ) { $body = '商品购买'; } $mch_id = D('Home/Front')->get_config_by_name('wepro_partnerid'); $shop_domain = D('Home/Front')->get_config_by_name('shop_domain'); $nonce_str = nonce_str(); $notify_url = $shop_domain.'/notify.php'; $openid = $payment['we_openid']; $out_trade_no = $order_all_id.'-'.time(); //out_trade_no M('lionfish_comshop_order_all')->where( array('id' => $order_all_id ) )->save( array('out_trade_no' => $out_trade_no ) ); $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $trade_type = 'JSAPI'; $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ D('Home/Pin')->insertNotifyOrder($order['order_id']); $time = time(); $tmp=array(); $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; $prepay_id = (string)$array['PREPAY_ID']; M('lionfish_comshop_order')->where( array('order_id' => array('in', $order_ids_arr)) )->save( array('perpay_id' => $prepay_id) ); //M('order')->where( array('order_id' => array('in',$order_ids_arr) ) )->save( array('perpay_id' => (string)$array['PREPAY_ID']) ); $data = array(); $data['code'] = 0; $data['appid'] = $appid; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = sign($tmp,$pay_key); $data['out_trade_no'] = $out_trade_no; $data['is_go_orderlist'] = $is_just_1; //如果是微信小程序交易组件begin---新支付方法 wx.requestOrderPayment $data['order_info'] = []; $data['isRequestOrderPayment'] = $is_need_scene_check; if($is_need_scene_check == 1) { $orderPamentResult = D('Seller/MpModifyTradeComponts')->getTradeOrderInfo( $oid , $time , $pay_total ); //如果是微信小程序交易组件,提供订单信息 end $data['order_info'] = $orderPamentResult['order_info']; } if($is_pin == 1) { $data['redirect_url'] = '../groups/group?id='.$oid.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order_show_all?order_all_id=' + $order_all_id; } }else{ $data = array(); $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } $data['has_yupay'] = 0; } if($is_pin == 1) { $data['order_id'] = $oid; $data['order_all_id'] = $order_all_id; }else{ $data['order_id'] = $oid; $data['order_all_id'] = $order_all_id; } $data['is_go_orderlist'] = $is_just_1; $data['is_spike'] = $is_spike; echo json_encode($data); die(); }else{ echo json_encode( array('code' =>1,'order_all_id' =>$order_all_id) ); die(); } } function requestAsHttpPOST($data, $service_url){ $HTTP_TIME_OUT= "20"; ksort(array_filter($data)); //删除数组中的空值并排序 $post_data = http_build_query($data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded;charset=MD5', 'content' => $post_data, 'timeout' => $HTTP_TIME_OUT * 1000 //超时时间,*1000将毫秒变为秒(单位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($service_url, false, $context); return $result; } /** 微信充值 **/ public function wxcharge() { $_GPC = I('request.'); $token = $_GPC['token']; $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; if( empty($member_id) ) { echo json_encode( array('code' =>1,'msg' =>'未登录') ); die(); } $money = $_GPC['money']; $rech_id = isset($_GPC['rech_id']) && $_GPC['rech_id'] > 0 ? $_GPC['rech_id'] : 0; $member_info = M('lionfish_comshop_member')->field('we_openid')->where( array('member_id' => $member_id) )->find(); $give_money = 0; if( $rech_id > 0 ) { $rech_info = M('lionfish_comshop_chargetype')->where( array('id' => $rech_id ) )->find(); if( !empty($rech_info) ) { $give_money = $rech_info['send_money']; } $money = $rech_info['money']; }else{ $recharge_get_money = D('Home/Front')->get_config_by_name('recharge_get_money'); if(isset($recharge_get_money) && $recharge_get_money == 1){ $rech_info = M('lionfish_comshop_chargetype')->where( "money <= ".$money )->order('money desc')->limit(1)->find(); if( !empty($rech_info) ) { $give_money = $rech_info['send_money']; } } } $member_charge_flow_data = array(); $member_charge_flow_data['member_id'] = $member_id; $member_charge_flow_data['money'] = $money; $member_charge_flow_data['state'] = 0; $member_charge_flow_data['give_money'] = $give_money; $member_charge_flow_data['charge_time'] = 0; $member_charge_flow_data['remark'] = '会员前台微信充值'; $member_charge_flow_data['add_time'] = time(); $order_id = M('lionfish_comshop_member_charge_flow')->add( $member_charge_flow_data ); $shop_domain = D('Home/Front')->get_config_by_name('shop_domain'); $fee = $money; $appid = D('Home/Front')->get_config_by_name('wepro_appid'); $body = '会员充值'; $mch_id = D('Home/Front')->get_config_by_name('wepro_partnerid'); $nonce_str = nonce_str(); $notify_url = $shop_domain.'/notify.php'; $openid = $member_info['we_openid']; $out_trade_no = $order_id.'-'.time().'-charge-'.$id; $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $is_open_yinpay = D('Home/Front')->get_config_by_name('is_open_yinpay'); if( isset($is_open_yinpay) && $is_open_yinpay == 3 ) { $trade_type = 'JSAPI'; $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $post = array(); $post['appid'] = D('Home/Front')->get_config_by_name('wepro_fuwu_appid');// 'wx7c38e2f177e0af59'; $post['body'] = $body; $post['mch_id'] = D('Home/Front')->get_config_by_name('wepro_fuwu_partnerid');//'1562705521'; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; //$post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['sub_appid'] = $appid; $post['sub_mch_id'] = D('Home/Front')->get_config_by_name('wepro_sub_mch_id'); $post['sub_openid'] = $openid; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); $post_xml = ' '.$post['appid'].' '.$body.' '.$post['mch_id'].' '.$nonce_str.' '.$notify_url.' '.$out_trade_no.' '.$spbill_create_ip.' '.$post['sub_appid'].' '.$post['sub_mch_id'].' '.$openid.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); //end }else{ $trade_type = 'JSAPI'; $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $post = array(); $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); //sign() $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); } if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp= array(); $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; M('lionfish_comshop_member_charge_flow')->where( array('id' => $order_id) )->save( array('formid' => $array['PREPAY_ID'] ) ); $data['code'] = 0; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = sign($tmp, $pay_key); $data['out_trade_no'] = $out_trade_no; $data['redirect_url'] = '../dan/me'; }else{ $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } echo json_encode($data); die(); } public function wxpay() { $gpc = I('request.'); $token = $gpc['token']; $order_id = $gpc['order_id']; $scene = $gpc['scene']; $is_need_scene_check = 0; if(!empty($scene)) { $is_need_scene_check = D('Seller/MpModifyTradeComponts')->sceneCheck( $scene ); } $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find(); $member_id = $weprogram_token['member_id']; if( empty($member_id) ) { echo json_encode( array('code' =>1,'msg' =>'未登录') ); die(); } $member_info = M('lionfish_comshop_member')->field('we_openid')->where( array('member_id' => $member_id) )->find(); $order = M('lionfish_comshop_order')->where( array('order_id' => $order_id ) )->find(); //order_status_id if( $order['order_status_id'] != 3 && $order['order_status_id'] != 15 ) { $json = array(); $json['msg']='商品已下架!'; $json['code'] = 2; if($order['order_status_id'] == 1) { $json['msg']='订单已付款,请勿重新付款!'; } else if( $order['order_status_id'] == 5){ $json['msg']='订单已取消,请重新选择商品下单!'; } echo json_encode($json); die(); } //检测商品是否下架 begin $sql = "select name,quantity,rela_goodsoption_valueid,goods_id from ".C('DB_PREFIX')."lionfish_comshop_order_goods where order_id={$order_id} "; $order_goods_list = M()->query($sql); foreach($order_goods_list as $tp_val) { $tp_gd_info = M('lionfish_comshop_goods')->field('grounding')->where( array('id' => $tp_val['goods_id'] ) )->find(); if( empty($tp_gd_info) || $tp_gd_info['grounding'] != 1 ) { $json['code'] = 2; $json['msg']='商品已下架!'; echo json_encode($json); die(); } } //检测商品是否下架end //检测是否预售商品。预售商品不需要检测二次支付问题 $presale_info = []; $presale_result = D('Home/PresaleGoods')->getOrderPresaleInfo( $order_id ); if( $presale_result['code'] == 0 ) { $presale_info = $presale_result['data']; } //检测是否已经支付过了begin $order_relate_info = M('lionfish_comshop_order_relate')->where( array('order_id' => $order_id ) )->order('id desc')->find(); if( !empty($order_relate_info) && $order_relate_info['order_all_id'] > 0 && empty($presale_info) ) { $order_all_info = M('lionfish_comshop_order_all')->where( array('id' => $order_relate_info['order_all_id'] ) )->find(); if( !empty($order_all_info) && !empty($order_all_info['out_trade_no']) ) { $out_trade_no = $order_all_info['out_trade_no']; $appid = D('Home/Front')->get_config_by_name('wepro_appid'); $mch_id = D('Home/Front')->get_config_by_name('wepro_partnerid'); $nonce_str = nonce_str(); $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $post = array(); $post['appid'] = $appid; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['out_trade_no'] = $out_trade_no; $sign = sign($post,$pay_key); $post_xml = ' '.$appid.' '.$mch_id.' '.$nonce_str.' '.$out_trade_no.' '.$sign.' '; $url = "https://api.mch.weixin.qq.com/pay/orderquery"; $result = http_request($url,$post_xml); $array = xml($result); if( $array['RETURN_CODE'] == 'SUCCESS' && $array['RETURN_MSG'] == 'OK' ) { if( $array['TRADE_STATE'] == 'SUCCESS' ) { $json = array(); $json['msg']='商品已下架!'; $json['code'] = 2; $json['msg']='订单已付款,请勿重新付款,请刷新页面!'; echo json_encode($json); die(); } } } } //检测是否已经支付过了end //支付才减库存,才需要判断 $kucun_method = D('Home/Front')->get_config_by_name('kucun_method'); if( empty($kucun_method) ) { $kucun_method = 0; } if($kucun_method == 1 && ( empty($presale_info) || $presale_info['state'] != 1 ) ) { /*** 检测商品库存begin **/ //goods_id foreach($order_goods_list as $val) { $quantity = $val['quantity']; $goods_id = $val['goods_id']; $can_buy_count = D('Home/Front')->check_goods_user_canbuy_count($member_id, $goods_id); $goods_description = D('Home/Front')->get_goods_common_field($goods_id , 'total_limit_count'); if($can_buy_count == -1) { $json['code'] = 2; $json['msg']='您还能购买'.$goods_description['total_limit_count'].'个'; echo json_encode($json); die(); }else if($can_buy_count >0 && $quantity >$can_buy_count) { $json['code'] = 2; $json['msg']='您还能购买'.$can_buy_count.'份'; echo json_encode($json); die(); } //rela_goodsoption_valueid if(!empty($val['rela_goodsoption_valueid'])) { $mul_opt_arr = array(); //ims_ $goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id,'option_item_ids' => $val['rela_goodsoption_valueid']) )->find(); if( !empty($goods_option_mult_value) ) { if($goods_option_mult_value['stock']<$quantity){ $json['code'] =2; $json['msg']='商品数量不足,剩余'.$goods_option_mult_value['stock'].'个!!'; echo json_encode($json); die(); } } } } /*** 检测商品库存end **/ } $pin_order = array(); if( !empty($pin_order) ) { /** $pin_model = load_model_class('pin'); $is_pin_over = $pin_model->getNowPinState($pin_order['pin_id']); if($is_pin_over != 0) { pdo_query("delete from ".tablename('lionfish_comshop_pin_order')." where order_id = {$order_id} "); pdo_query("delete from ".tablename('lionfish_comshop_pin')." where pin_id = ".$pin_order['pin_id']." and order_id = ".$order_id); $order_goods_info = pdo_fetch("select goods_id from ".tablename('lionfish_comshop_order_goods')." where uniacid=:uniacid and order_id=:order_id ", array(':order_id' => $order_id,':uniacid' => $_W['uniacid'])); //新开团 $pin_id = $pin_model->openNewTuan($order_id,$order_goods_info['goods_id'],$member_id); //插入拼团订单 $pin_model->insertTuanOrder($pin_id,$order_id); } **/ } //单独支付一个店铺的订单 //M('lionfish_comshop_order_relate')->where( array('order_id' => $order_id) )->delete(); $order_all_data = array(); $order_all_data['member_id'] = $member_id; $order_all_data['order_num_alias'] = build_order_no($member_id); $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $order['is_pin']; $order_all_data['paytime'] = 0; $order_all_data['total_money'] = $order['total']+ $order['shipping_fare']-$order['voucher_credit']-$order['fullreduction_money']; $order_all_data['addtime'] = time(); $order_all_id = M('lionfish_comshop_order_all')->add($order_all_data); $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $order_id; $order_relate_data['addtime'] = time(); M('lionfish_comshop_order_relate')->add($order_relate_data); if( $order['delivery'] == 'pickup' ) { $fee = $order['total']+ $order['shipping_fare']-$order['voucher_credit']-$order['fullreduction_money'] - $order['score_for_money'] - $order['fare_shipping_free']; }else if($order['delivery'] == 'localtown_delivery'){ $fee = $order['total'] + $order['packing_fare'] + $order['shipping_fare']-$order['voucher_credit'] - $order['fullreduction_money'] - $order['score_for_money'] + $order['localtown_add_shipping_fare'] - $order['fare_shipping_free']; }else { $fee = $order['total']+ $order['shipping_fare']-$order['voucher_credit']-$order['fullreduction_money'] - $order['score_for_money'] - $order['fare_shipping_free']; } //如果是预售 begin if( !empty($presale_info) ) { if( $presale_info['state'] == 0 ) { //首次支付, $fee = $presale_info['presale_ding_money']; }else if( $presale_info['state'] == 1 ) { //第二次支付 if( !empty($presale_info['presale_deduction_money']) && false ) { $fee = $fee - $presale_info['presale_deduction_money']; }else{ $fee = $fee - $presale_info['presale_ding_money']; } } } //end $fee = round($fee , 2); $appid = D('Home/Front')->get_config_by_name('wepro_appid'); $body = $pay_goods_name;//'商品购买'; $body = mb_substr($body,0,32,'utf-8'); if( empty($body) ) { $body = '商品购买'; } $mch_id = D('Home/Front')->get_config_by_name('wepro_partnerid'); $nonce_str = nonce_str(); $shop_domain = D('Home/Front')->get_config_by_name('shop_domain'); $notify_url = $shop_domain.'/notify.php'; $openid = $member_info['we_openid']; $out_trade_no = $order_all_id.'-'.time(); $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $trade_type = 'JSAPI'; $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $is_open_yinpay = D('Home/Front')->get_config_by_name('is_open_yinpay'); //begin if( isset($is_open_yinpay) && $is_open_yinpay == 3 ) { $pay_key = D('Home/Front')->get_config_by_name('wepro_key'); $body = '商品购买'; $post = array(); $post['appid'] = D('Home/Front')->get_config_by_name('wepro_fuwu_appid'); $post['body'] = $body; $post['mch_id'] = D('Home/Front')->get_config_by_name('wepro_fuwu_partnerid'); $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; //$post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['sub_appid'] = D('Home/Front')->get_config_by_name('wepro_appid'); $post['sub_mch_id'] = D('Home/Front')->get_config_by_name('wepro_sub_mch_id'); $post['sub_openid'] = $openid; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); $post_xml = ' '.$post['appid'].' '.$body.' '.$post['mch_id'].' '.$nonce_str.' '.$notify_url.' '.$out_trade_no.' '.$spbill_create_ip.' '.$post['sub_appid'].' '.$post['sub_mch_id'].' '.$openid.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp= array(); $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; $prepay_id = (string)$array['PREPAY_ID']; M('lionfish_comshop_order')->where( array('order_id' => $order_id) )->save( array('perpay_id' => $prepay_id) ); $data['code'] = 0; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = sign($tmp, $pay_key); $data['out_trade_no'] = $out_trade_no; $data['is_pin'] = $order['is_pin']; if($order['is_pin'] == 1) { $data['redirect_url'] = '../groups/group?id='.$order_id.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order?id=' + $order_id; } }else{ $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } echo json_encode($data); die(); } //end $post = array(); $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = sign($post,$pay_key); $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = http_request($url,$post_xml); $array = xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp= array(); $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; $prepay_id = (string)$array['PREPAY_ID']; M('lionfish_comshop_order')->where( array('order_id' => $order_id) )->save( array('perpay_id' => $prepay_id) ); $data['code'] = 0; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = sign($tmp, $pay_key); $data['out_trade_no'] = $out_trade_no; $data['is_pin'] = $order['is_pin']; //如果是微信小程序交易组件begin---新支付方法 wx.requestOrderPayment $data['order_info'] = []; $data['isRequestOrderPayment'] = $is_need_scene_check; if($is_need_scene_check == 1) { $orderPamentResult = D('Seller/MpModifyTradeComponts')->getTradeOrderInfo( $order_id , $time , $fee ); //如果是微信小程序交易组件,提供订单信息 end $data['order_info'] = $orderPamentResult['order_info']; } if($order['is_pin'] == 1) { $data['redirect_url'] = '../groups/group?id='.$order_id.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order?id=' + $order_id; } }else{ $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } echo json_encode($data); die(); } /** * 获取购物车总数 */ public function count() { $gpc = I('request.'); $data = array(); $token = $gpc['token']; $community_id = $gpc['community_id']; $cart= D('Home/Car'); $total=$cart->count_goodscar($token, $community_id); $data['code'] = 0; $data['data'] = $total; echo json_encode($data); die(); } }