Example #1
0
    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
Example #2
0
 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
Example #3
0
    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
        })