def get_carts_list(self, user_id): ''' :param user_id: 用户的id :return: reqsponse [get,put]列表 [{"id":"","name":"","count":"","selected":"","default_image_url":"","price":"","sku_sale_attr_name":[],"sku_sale_attr_val":[]},{"":""...}] ''' carts_dict = self.get_carts_datas(user_id) if not carts_dict: return [] skus = SKU.objects.filter(id__in=carts_dict.keys()) skus_list = [] for sku in skus: sku_dict = {} sku_dict['id'] = sku.id sku_dict['name'] = sku.name sku_dict['count'] = int(carts_dict[sku.id]['count']) sku_dict['selected'] = int(carts_dict[sku.id]['selected']) sku_dict['default_image_url'] = str(sku.default_image_url) sku_dict['price'] = sku.price sku_sale_attr_val, sku_sale_attr_name = get_sku_name_and_values( sku.id) sku_dict['sku_sale_attr_name'] = sku_sale_attr_name sku_dict['sku_sale_attr_val'] = sku_sale_attr_val skus_list.append(sku_dict) return skus_list
def get_direct_order_list(self, skus, count=None): sku_list = [] for sku in skus: # 获取商品属性值,商品属性名 sku_sale_attr_val, sku_sale_attr_name = get_sku_name_and_values( sku.id) sku_list.append({ 'id': sku.id, 'default_image_url': str(sku.default_image_url), 'name': sku.name, 'price': sku.price, 'count': count, 'total_amount': sku.price * int(count), "sku_sale_attr_name": sku_sale_attr_name, "sku_sale_attr_val": sku_sale_attr_val, }) return sku_list
def get(self, request, username): """ 查询用户订单: 0,"所有订单" 1,"待付款" 2,"待发货" 3,"待收货" 4,"订单完成" 5,"去付款" """ user = request.login_user status = request.GET.get("type") if int(status) == 0: order_list = OrderInfo.objects.filter(user_profile=user) # 去付款 elif int(status) == 5: order_id = request.GET.get("order_id") try: order = OrderInfo.objects.get(order_id=order_id) except Exception as e: return JsonResponse({'code': 50102, 'errmsg': '商品问题'}) # 查看redis存储长度 carts_dict = self.get_carts_dict(user.id) carts_count = len(carts_dict) data = self.get_make_pay_order(order, carts_count) return JsonResponse({"code": 200, "data": data}) else: order_list = OrderInfo.objects.filter(user_profile=user, status=status) orders_lists = [] for order in order_list: good_skus = OrderGoods.objects.filter(order_info=order) sku_list = [] # 1.获取订单中商品的信息,即sku数据 print("good_skus", good_skus) for good_sku in good_skus: sku = good_sku.sku sku_sale_attr_vals, sku_sale_attr_names = get_sku_name_and_values( sku.id) sku_list.append({ 'id': sku.id, 'default_image_url': str(sku.default_image_url), 'name': sku.name, 'price': sku.price, 'count': good_sku.count, 'total_amount': sku.price * good_sku.count, "sku_sale_attr_names": sku_sale_attr_names, "sku_sale_attr_vals": sku_sale_attr_vals, }) print("sku_list", sku_list) # 2.获取订单信息 orders_lists.append({ "order_id": order.order_id, "order_total_count": order.total_count, "order_total_amount": order.total_amount, "order_freight": order.freight, # TODO 地址查询 "address": { "title": order.tag, "address": order.address, "mobile": order.receiver_mobile, "receiver": order.receiver }, "status": order.status, "order_sku": sku_list, "order_time": str(order.created_time)[0:19] }) data = { 'orders_list': orders_lists, } print(data) return JsonResponse({ "code": 200, "data": data, 'base_url': settings.PIC_URL })