public function index() { $Cart = new Cart(); $this->cart_price = $Cart->getPrice(); $this->gc_list = M('GoodsClass')->where(array('gc_parent_id' => 0))->order('gc_sort desc')->select(); $this->display('Widget:Nav:index'); }
public function buy() { if (IS_AJAX) { $goods_id = intval($_POST['goods_id']); $goods_num = intval($_POST['goods_num']); $Cart = new Cart(); $goods = D('Goods')->where(array('goods_id' => $goods_id, 'goods_status' => 1))->find(); if (!empty($goods)) { if ($goods['goods_storage'] < $goods_num) { $result['code'] = 300; $result['msg'] = '商品库存不足.'; $result['data'] = array(); } else { $Cart->addItem($goods['goods_id'], $goods['goods_name'], $goods['goods_price'], $goods_num, $goods['goods_pic']); $result['code'] = 200; $result['msg'] = '操作成功.'; $result['data'] = array(); } } else { $result['code'] = 300; $result['msg'] = '该商品不存在或者已下架,您无法购买.'; $result['data'] = array(); } echo json_encode($result); } }
/** * 生成订单 */ public function creatOrder() { $addr_id = intval($_POST['addr_id']); $addr_info = M('MemberAddrs')->where(array('addr_id' => $addr_id))->find(); $goods_list = M('OrderGoods')->where(array('order_id' => 0, 'member_id' => $this->mid))->select(); if (!empty($addr_info)) { $data['order_sn'] = order_sn(); $data['member_id'] = $this->mid; $data['buyer_name'] = get_member_nickname($this->mid); switch (trim($_POST['pay_type'])) { case 1: $data['payment_name'] = 'alipay'; break; case 2: $data['payment_name'] = 'bdpay'; break; } $data['shipping_fee'] = 0; $data['goods_amount'] = 0; $data['discount'] = 0; $data['order_amount'] = 0; if (empty($goods_list)) { $this->error('您还没有选择好商品哦.', U('Cart/index')); } foreach ($goods_list as $key => $val) { //计算价格同时清除购物车里的商品 $Cart = new Cart(); $Cart->delItem($val['goods_id']); $goods_price = M('Goods')->where(array('goods_id' => $val['goods_id']))->getField('goods_price'); if (get_distributor($this->mid)) { $goods_price = $goods_price * MSC('distributor_discount'); } $data['goods_amount'] += $goods_price * $val['goods_num']; $data['discount'] += $data['goods_amount'] * (1 - get_discount($val['goods_num'])); //冻结库存 M('Goods')->where(array('goods_id' => $val['goods_id']))->setDec('goods_storage', $val['goods_num']); M('Goods')->where(array('goods_id' => $val['goods_id']))->setInc('goods_freez', $val['goods_num']); } $data['order_amount'] = $data['goods_amount'] - $data['discount']; $data['order_message'] = str_rp($_POST['order_message'], 1); $member = M('Member')->where(array('member_id' => $this->mid))->field('mobile,email')->find(); $data['mobile'] = $member['mobile']; $data['email'] = $member['email']; $data['order_state'] = 10; $data['add_time'] = NOW_TIME; $order_id = M('Order')->add($data); if ($order_id) { //认领订单商品 已从购物车页面写入 M('OrderGoods')->where(array('order_id' => 0, 'member_id' => $this->mid))->setField('order_id', $order_id); //生成物流地址 $address_data['order_id'] = $order_id; $address_data['buyer_id'] = $this->mid; $address_data['true_name'] = $addr_info['name']; $address_data['prov_id'] = $addr_info['province_id']; $address_data['city_id'] = $addr_info['city_id']; $address_data['area_id'] = $addr_info['area_id']; $address_data['address'] = $addr_info['addr']; $address_data['zip_code'] = $addr_info['zip']; $address_data['mob_phone'] = $addr_info['mobile']; $address_data['add_time'] = NOW_TIME; M('OrderAddress')->add($address_data); //订单日志 $log_data['order_id'] = $order_id; $log_data['order_state'] = get_order_state_name(10); $log_data['change_state'] = get_order_state_name(20); $log_data['state_info'] = '会员确认订单'; $log_data['log_time'] = NOW_TIME; $log_data['operator'] = '会员'; M('OrderLog')->add($log_data); //进行支付跳转 switch (trim($_POST['pay_type'])) { case 1: $this->success('订单生成成功', U('Pay/alipay', array('order_sn' => $data['order_sn']))); break; case 2: $this->success('订单生成成功', U('Pay/bdpay', array('order_sn' => $data['order_sn']))); break; } } } else { $this->error('请选择收货地址'); } }