def make_order(request): if request.method == 'POST': #创建订单 #创建订单详情和购物车删除已下单的商品 user_id = request.session['user_id'] shop_carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1) order_mount = 0 for carts in shop_carts: order_mount += carts.nums * carts.goods.shop_price order_sn = get_order_sn() address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(pk=address_id).first() order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile, ) for carts in shop_carts: OrderGoods.objects.create(order=order, goods=carts.goods, goods_nums=carts.nums) shop_carts.delete() request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def make_order(request): if request.method == 'POST': # 创建订单 # 创建订单详情 # 购物车删除已经下单的商品 user_id = request.session['user_id'] shop_carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1) order_mount = 0 for carts in shop_carts: order_mount += carts.nums * carts.goods.shop_price order_sn = get_order_sn() order = OrderInfo.objects.create(user_id=user_id, order_sn=order_sn, order_mount=order_mount) for carts in shop_carts: OrderGoods.objects.create(order=order, goods=carts.goods, goods_nums=carts.nums) shop_carts.delete() request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def make_order(request): if request.method == 'POST': user_id = request.session.get('user_id') # 取购物车中勾选的商品 shop_carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1) # 计算下单的总价 order_mount = 0 for carts in shop_carts: order_mount += carts.nums * carts.goods.shop_price # 生成订单交易号 order_sn = get_order_sn() # 1.创建订单 address_id = int(request.POST.get('address_id')) user_address = UserAddress.objects.filter(pk=address_id).first() order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 2.创建订单详情 for carts in shop_carts: OrderGoods.objects.create(order=order, goods=carts.goods, goods_nums=carts.nums) # 3.删除购物车中的商品 shop_carts.delete() request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'POST': # 1.从购物车中取出当前登录系统用户is_select为1的商品信息 user_id = request.session.get('user_id') # 获取购物车中当前登录用户勾选的商品 address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True).all() # 订单货号 order_sn = get_order_sn() # 计算总金额 order_mount = 0 for cart in carts: order_mount += int(cart.nums) * int(cart.goods.shop_price) #2 创建订单 order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, siginer_mobile=user_address.signer_moblie) #3. 创建订单详情信息 for cart in carts: OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) #4.删除购物车中已经下单的商品信息 carts.delete() if request.session.get('goods'): request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'GET': # 获取当前登录系统的user_id user_id = request.session['user_id'] # 获取当前勾选的商品用于下单 cart_goods = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 在购物车对象上绑定一个total_price字段,用于存商品的总价 for cart in cart_goods: cart.total_price = cart.nums * cart.goods.shop_price # 获取订单地址 addresses = UserAddress.objects.filter(user_id=user_id) return render(request, 'place_order.html', { 'cart_goods': cart_goods, 'addresses': addresses }) if request.method == 'POST': """ 接收ajax请求,创建订单 """ # 1. 选择购物车中is_select为True的商品 # 2. 创建订单 # 3. 创建订单和商品之间的关联关系表,order_goods表 # 4. 删除购物车中已下单的商品 user_id = request.session['user_id'] # 获取收货人的地址id address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() # 获取购物车中当前登录用户勾选的商品 carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 订单货号 order_sn = get_order_sn() # 订单金额 order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price # 创建订单 order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) for cart in carts: # 创建订单和商品的详情表 OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) carts.delete() # 删除session中的商品信息 if request.session.get('goods'): request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'GET': # 获取当前登录系统的user_id user_id = request.session['user_id'] # user = request.user # 获取当前勾选商品所有信息用于下单 cart_goods = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 在购物车对象绑定一个total_price字段,用于存商品总价 cart_goods.total_price = 0 for cart in cart_goods: cart.total_price = cart.nums * cart.goods.shop_price cart_goods.total_price += cart.total_price return render(request, 'place_order.html', {'cart_goods': cart_goods}) if request.method == 'POST': """ 接收ajax请求,创建订单 """ # 1,选择购物车中is_select为True的商品 # 2、创建订单 # 3、创建订单和商品之间的关联关系表,order_goods表 # 4、删除购物车中已下单的商品 user_id = request.session['user_id'] # 获取购物车中当前登录用户勾选的商品 carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 订单货号 order_sn = get_order_sn() # 订单金额 count = 0 order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price count += 1 # 创建订单 order = OrderInfo.objects.create(user_id=user_id, order_sn=order_sn, order_mount=order_mount) for cart in carts: OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) carts.delete() # 删除session中的商品信息 request.session.pop('goods') cart_data = [order_mount, count] return JsonResponse({ 'code': 200, 'msg': '请求成功', 'cart_data': cart_data })
def create_order(request, id): """生成订单""" if request.method == 'GET': car = Carinfo.objects.filter(id=id).first() sale_user = car.user buy_user = request.user orderNo = get_order_sn() data_dict = { 'sale_user': sale_user, 'buy_user': buy_user, 'car': car, 'orderNo': orderNo } order = Orders.objects.create(**data_dict) return HttpResponseRedirect('/order/order/{}'.format(order.id))
def order(request): if request.method == 'GET': # 获取当前登录系统的user_id user_id = request.session.get('user_id') # 获取当前勾选的商品用于下单 cart_goods = ShoppingCart.objects.filter(user_id=user_id) # 在购物车对象上绑定一个total_price字段,用于存商品的总价 for cart in cart_goods: cart.total_price = cart.nums * cart.goods.shop_price # 获取订单地址 address = UserAddress.objects.filter(user_id=user_id, is_default_address=1).first() return render(request, 'place_order.html', {'cart_goods': cart_goods, 'address': address}) if request.method == 'POST': """ 接收ajax请求,创建订单 """ # 1.下单,选择购物车中is_select为True的商品 # 2.创建订单 # 3.创建订单和商品之间的关联关系表,order_goods表 # 4.删除购物车中已下单的商品 user_id = request.session.get('user_id') # 获取用户 # 获取购物车中当前登录用户勾选的商品 carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1) # carts = ShoppingCart.objects.filter(user__username='******', is_select=True) # 订单货号 order_sn = get_order_sn() # 订单金额 order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price # 创建订单 order = OrderInfo.objects.create(user_id=user_id, order_sn=order_sn, order_mount=order_mount) for cart in carts: # 创建订单和商品的详情表 OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) # 从购物车中移除商品 carts.delete() # 清空session中的商品信息 request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功!!!'})
def post(self, request, *args, **kwargs): # 下单 user = request.user # 获取收货人的地址id address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() # 获取随机生成的订单号 order_sn = get_order_sn() # 计算下单的商品的价格总和 order_mount = 0 order_goods_id = [] shop_carts = ShoppingCart.objects.filter(user=user, is_select=True) for shop_cart in shop_carts: order_goods_id.append(shop_cart.goods_id) order_mount += shop_cart.nums * shop_cart.goods.shop_price # 创建订单 order_info = OrderInfo.objects.create( user=user, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 创建订单和商品之间的详情关系 for cart in shop_carts: OrderGoods.objects.create(order=order_info, goods=cart.goods, goods_nums=cart.nums) # 下单成功后,删除购物车中已下单的商品 shop_carts.delete() # 下单成功后,删除session中已经下单的商品 session_goods = request.session.get('goods') if session_goods: # 如果session中有缓存的商品信息,则for循环判断session中的商品是否已经下单 # 如果已经下单,则删除session中该商品的信息 session_goods_new = session_goods for o_goods_id in order_goods_id: for s_goods in session_goods: # 判断如果session中商品的id存在于已经下单的商品中,则remove if int(s_goods[0]) == o_goods_id: session_goods_new.remove(s_goods) request.session['goods'] = session_goods_new return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'GET': user_id = request.session['user_id'] # user = request.user cart_goods = ShoppingCart.objects.filter(user_id=user_id, is_select=True) total_num = 0 total_price = 0 for cart in cart_goods: cart.total_price = cart.nums * cart.goods.shop_price total_num += cart.nums total_price += cart.total_price return render( request, 'place_order.html', { 'cart_goods': cart_goods, 'total_num': total_num, 'total_price': total_price }) if request.method == 'POST': user_id = request.session.get('user_id') address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) order_sn = get_order_sn() order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) for cart in carts: OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) carts.delete() request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'POST': """ 接收ajax请求,创建订单 """ # 1. 选择购物车中is_select为True的商品 # 2. 创建订单 # 3. 创建订单和商品之间的关联关系表,order_goods表 # 4. 删除购物车中已下单的商品 # 1.从购物车中取出当前登录系统用户和select为1的商品信息 user_id = request.session.get('user_id') # 获取收货人的地址id address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1).all() # 订单货号 order_sn = get_order_sn() # 计算总金额 order_mount = 0 for cart in carts: order_mount += int(cart.nums) * int(cart.goods.shop_price) # 2.创建订单 order = OrderInfo.objects.create(user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 3.创建订单详情信息 for cart in carts: OrderGoods.objects.create(order=order, goods=cart.goods, goods_nums=cart.nums) # 4.删除购物车中已经下单的信息 carts.delete() if request.session.get('goods'): request.session.pop('goods') return JsonResponse({'code':200, 'msg':'请求成功'})
def make_order(request): if request.method == 'POST': # 创建订单 # 创建订单详情 # 购物车中删除已经下单的商品 user_id = request.session['user_id'] # 去购物车中勾选的商品 shop_carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1) # 计算总价 order_mount = 0 for carts in shop_carts: order_mount += carts.nums * carts.goods.shop_price # 生成订单交易号 from utils.functions import get_order_sn order_sn = get_order_sn() address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(pk=address_id).first() order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 创建订单详情 for carts in shop_carts: OrderGoods.objects.create( order=order, goods=carts.goods, goods_nums=carts.nums, ) # 删除购物车中的商品 shop_carts.delete() request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '创建成功'})
def order(request): if request.method == 'GET': # 获取当前登录用户的user_id user_id = request.session.get('user_id') # h获取当前勾选的商品用于下单 cart_goods = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 在购物车对象上绑定一个total_price字段,用于存商品的总价 for cart in cart_goods: cart.total_price = cart.nums * cart.goods.shop_price return render(request, 'place_order.html', {'cart_goods': cart_goods}) if request.method == 'POST': # 接收ajax请求,创建订单 # 下单,选择购物车中is_select为Ture的商品 # 创建订单和商品之间的关联关系,order_goods表 # 删除购物车中已下单的商品 user_id = request.session.get('user_id') carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 订单货号 order_sn = get_order_sn() # 订单金额 order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price # 创建订单 order = OrderInfo.objects.create(user_id=user_id, order_sn=order_sn, order_mount=order_mount) for cart in carts: # 创建订单和商品的详情表 OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) carts.delete() # 删除session中的商品信息 request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'POST': # 1.拿到收货地址id ad_id = request.POST.get('ad_id') user_address = UserAddress.objects.filter(pk=ad_id).first() # 2.创建订单详情 user_id = request.session.get('user_id') # 获取订单号 order_sn = get_order_sn() # 计算总价 carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) order_mount = 0 for cart in carts: # 总金额 order_mount += cart.goods.shop_price * cart.nums order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 3.创建订单详情 for cart in carts: OrderGoods.objects.create(order=order, goods=cart.goods, goods_nums=cart.nums) # 4.删除购物车 session_goods = request.session.get('goods') for se_goods in session_goods[:]: if se_goods[2]: session_goods.remove(se_goods) request.session['goods'] = session_goods carts.delete() return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): if request.method == 'POST': ad_id = request.POST.get('ad_id') user_id = request.session.get('user_id') order_sn = get_order_sn() shop_cart = ShoppingCart.objects.filter(user_id=user_id, is_select=True) order_mount = 0 for cart in shop_cart: order_mount += cart.goods.shop_price * cart.nums # 收货信息 user_address = UserAddress.objects.filter(pk=ad_id).first() order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) # 创建订单详情 for cart in shop_cart: OrderGoods.objects.create(order=order, goods=cart.goods, goods_nums=cart.nums) # 删除购物车 shop_cart.delete() session_goods = request.session.get('goods') for se_goods in session_goods[:]: # se_goods结构[goods_id,num,is_select] if se_goods[2]: session_goods.remove(se_goods) request.session['goods'] = session_goods return JsonResponse({'code': 200, 'msg': '请求成功'})
def place_order(request): if request.method == 'GET': # 获取商品信息 carts = [] # 商品总数量 goods_count = 0 # 获取登录用户 token = request.COOKIES.get('token') user = UserToken.objects.filter(token=token).first().user # 用户地址信息 user_addresses = UserAddress.objects.filter(user=user).all() try: # 获取token,如果是商品详情点了立即购买 cart_id = request.GET.get('goods_id') cart_num = int(request.GET.get('goods_num')) # 从立即购买跳转来的 if cart_id: goods = Goods.objects.get(id=cart_id) goods_ = dict(model_to_dict(goods)) goods_['num'] = cart_num goods_['sum'] = cart_num * goods_['shop_price'] carts.append(goods_) goods_count = cart_num # 加入购物车 shop_carts = Cart() shop_carts.nums = cart_num shop_carts.goods = Goods.objects.filter(id=cart_id).first() shop_carts.user = User.objects.filter(username=user.username).first() shop_carts.is_select = 1 shop_carts.save() # 如果空的话 按购物车选中商品创建订单 except: cart_is = Cart.objects.filter(is_select=1).all() for cart in cart_is: goods = Goods.objects.get(id=cart.goods_id) goods_ = dict(model_to_dict(goods)) # 转字典添加数量key goods_['num'] = cart.nums goods_['sum'] = cart.nums * goods_['shop_price'] carts.append(goods_) goods_count = sum([i.nums for i in cart_is]) # 商品总价格 goods_sum = sum([i['num'] * i['shop_price'] for i in carts]) return render(request, 'web/place_order.html', {'user_addresses': user_addresses, 'carts': carts, 'goods_count': goods_count, 'goods_sum': goods_sum}) if request.method == 'POST': site_id = int(request.POST.get('site')) pay = int(request.POST.get('pay')) # 获取登录用户 token = request.COOKIES.get('token') user = UserToken.objects.filter(token=token).first().user # 商品信息 carts = [] cart_is = Cart.objects.filter(is_select=1).all() for cart in cart_is: goods = Goods.objects.get(id=cart.goods_id) goods_ = dict(model_to_dict(goods)) # 转字典添加数量key goods_['num'] = cart.nums carts.append(goods_) # 总价格和 +10 邮费 全不包邮 goods_sum = sum([i['num'] * i['shop_price'] for i in carts]) + 10 # 地址表 address = UserAddress.objects.filter(id=site_id).first() # 获取订单号 交易号 order_sn = get_order_sn() order = OrderInfo() # 保存信息 order.user = user order.order_sn = order_sn order.trade_no = get_trade_no() order.order_mount = goods_sum order.address = address.address order.signer_name = address.signer_name order.signer_mobile = address.signer_mobile order.save() # 保存关联的详情表 for i in cart_is: or_goods = OrderGoods() or_goods.order = OrderInfo.objects.filter(user=user).first() or_goods.order_sn = order_sn or_goods.goods = Goods.objects.filter(id=i.goods_id).first() or_goods.goods_nums = i.nums or_goods.save() # 修改商品库存 i.goods.goods_nums -= i.nums i.save() # 删除已下单的商品 cart_is.delete() return JsonResponse({'code': 200, 'msg': '请求成功'})
def order(request): # if request.method == 'POST': # # 1.从购物车表中取出当前登录系统用户且is_select为1的商品信息 # user_id = request.session.get('user_id') # carts = ShoppingCart.objects.filter(user_id=user_id, is_select=1).all() # # 2.创建订单 # order_sn = '' # s = 'qazwsxedcrfvtgbyhnujmikolp1234567890' # for i in range(9): # order_sn += random.choice(s) # time = str(datetime.datetime.now()) # order_sn += time # order_mount = 0 # for cart in carts: # order_mount += int(cart.nums) * int(cart.goods.shop_price) # order = OrderInfo.objects.create(user_id=user_id, # order_sn=order_sn, # order_mount=order_mount) # # 3.创建订单详情信息 # for cart in carts: # OrderGoods.objects.create(order=order, # goods=cart.goods, # goods_nums=cart.nums) # # # 4.删除购物车中已经下单的商品信息 # # carts.delete() # # request.session.flush() # if request.session.get('goods'): # del request.session['goods'] # return JsonResponse({'code': 200, 'msg': '请求成功'}) if request.method == 'POST': """ 接收ajax请求,创建订单 """ # 1. 选择购物车中is_select为True的商品 # 2. 创建订单 # 3. 创建订单和商品之间的关联关系表,order_goods表 # 4. 删除购物车中已下单的商品 user_id = request.session['user_id'] # 获取收货人的地址id address_id = request.POST.get('address_id') user_address = UserAddress.objects.filter(id=address_id).first() # 获取购物车中当前登录用户勾选的商品 carts = ShoppingCart.objects.filter(user_id=user_id, is_select=True) # 订单货号 order_sn = get_order_sn() # 订单金额 order_mount = 0 for cart in carts: order_mount += cart.nums * cart.goods.shop_price # 创建订单 order = OrderInfo.objects.create( user_id=user_id, order_sn=order_sn, order_mount=order_mount, address=user_address.address, signer_name=user_address.signer_name, signer_mobile=user_address.signer_mobile) for cart in carts: # 创建订单和商品的详情表 OrderGoods.objects.create(order_id=order.id, goods_id=cart.goods_id, goods_nums=cart.nums) carts.delete() # 删除session中的商品信息 if request.session.get('goods'): request.session.pop('goods') return JsonResponse({'code': 200, 'msg': '请求成功'})