示例#1
0
class AdminOrderDetailSerializer(serializers.Serializer):
    """后台订单详情序列化器类"""

    product_id = serializers.IntegerField(label="商品id")
    product_name = serializers.CharField(label="商品名")
    product_cover_picture = serializers.CharField(label="商品封面图")
    quantity_net = FuncField(lambda value: round(float(value), 2), label="购买量")
    price_net = FuncField(lambda value: round(float(value), 2), label="单价")
    amount_net = FuncField(lambda value: round(float(value), 2), label="总价")
示例#2
0
class MallOrderSerializer(AdminOrderSerializer):
    """商城端订单序列化器类"""

    amount_net = FuncField(lambda value: round(float(value), 2), label="货品总额")
    delivery_amount_net = FuncField(lambda value: round(float(value), 2),
                                    label="配送费/服务费")
    total_amount_net = FuncField(lambda value: round(float(value), 2),
                                 label="订单总额")
    groupon_attend = GrouponAttendBasicSerializer(required=False,
                                                  label="拼团参与信息")
示例#3
0
class AdminCustomerPointsSerializer(serializers.Serializer):
    """后台客户积分序列化器类"""

    create_time = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="操作时间")
    type = FuncField(lambda value: CUSTOMER_POINT_TYPE.get(value),
                     label="操作类型")
    point_change = FuncField(lambda value: round(float(value), 2),
                             label="积分变更值")
    current_point = FuncField(lambda value: round(float(value), 2),
                              label="当前积分")
示例#4
0
class AdminProductStorageRecordsSerializer(serializers.Serializer):
    """后台货品库存变更记录序列化器类"""

    create_time = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="创建时间")
    type = serializers.IntegerField(label="变更类型")
    type_text = serializers.CharField(allow_blank=True, label="变更类型文字版")
    operator_type = serializers.IntegerField(label="操作人类型")
    operator = UserSerializer(source="user", label="操作人")
    change_storage = FuncField(lambda value: round(float(value)), label="变更量")
    current_storage = FuncField(lambda value: round(float(value)), label="当前量")
    order_num = serializers.CharField(default="-", label="订单号")
示例#5
0
class ProductGrouponSerializer(serializers.Serializer):
    """货品拼团活动序列化器类"""

    groupon_id = serializers.IntegerField(source="id", label="拼团id")
    price = FuncField(lambda value: round(float(value), 2), label="拼团价格")
    to_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="拼团活动结束时间")
    groupon_type = serializers.IntegerField(label="拼团活动类型 1:普通 2:老带新")
    success_size = serializers.IntegerField(label="成团人数")
    quantity_limit = serializers.IntegerField(label="成团数量上限")
    succeeded_quantity = FuncField(lambda value: round(float(value), 2),
                                   label="已成团件数")
示例#6
0
class AdminProductSaleRecordSerializer(serializers.Serializer):
    """后台货品销售记录序列化器类"""

    create_time = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="创建时间")
    order_num = serializers.CharField(label="订单号")
    price_net = FuncField(lambda value: round(float(value), 2),
                          label="单价(优惠后)")
    quantity_net = FuncField(lambda value: round(float(value), 2),
                             label="量(优惠后)")
    amount_net = FuncField(lambda value: round(float(value), 2),
                           label="金额(优惠后)")
    customer = UserSerializer(label="客户信息")
示例#7
0
class AdminProductsSerializer(serializers.Serializer):
    """后台货品列表序列化器类"""

    product_id = serializers.IntegerField(read_only=True,
                                          source="id",
                                          label="货品名")
    name = serializers.CharField(required=True, label="货品名")
    price = FuncField(lambda value: round(float(value), 2), label="货品价格")
    storage = FuncField(lambda value: round(float(value), 2), label="货品库存")
    status = serializers.IntegerField(read_only=True, label="货品状态")
    cover_image_url = serializers.CharField(required=False, label="货品封面图")
    promotion_type = serializers.IntegerField(required=False,
                                              label="商品活动信息 1: 普通 5: 拼团")
示例#8
0
class AdminGrouponCreateSerializer(serializers.Serializer):
    """后台拼团活动创建序列化器"""

    price = FuncField(lambda value: round(float(value), 2), label="拼团价格")
    from_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                              label="拼团活动开始时间")
    to_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="拼团活动结束时间")
    groupon_type = serializers.IntegerField(label="拼团活动类型 1:普通 2:老带新")
    success_size = serializers.IntegerField(label="成团人数")
    quantity_limit = serializers.IntegerField(label="成团数量上限")
    success_limit = serializers.IntegerField(label="成团上限")
    attend_limit = serializers.IntegerField(label="参团上限")
    success_valid_hour = serializers.IntegerField(label="开团有效时间")

    def create(self, validated_data):
        shop_id = self.context["self"].current_shop.id
        user_id = self.context["self"].current_user.id
        product = self.context["product"]
        groupon = create_groupon(shop_id, user_id, product, validated_data)
        return groupon

    def update(self, instance, validated_data):
        shop_id = self.context["self"].current_shop.id
        user_id = self.context["self"].current_user.id
        product = self.context["product"]
        instance = update_groupon(shop_id, user_id, product, instance,
                                  validated_data)
        return instance
示例#9
0
class AdminDeliveryConfigSerializer(serializers.Serializer):
    """后台配送配置序列化器类"""

    home_on = serializers.BooleanField(label="配送模式是否开启")
    home_minimum_order_amount = FuncField(lambda value: round(float(value), 2),
                                          label="配送模式起送金额")
    home_delivery_amount = FuncField(lambda value: round(float(value), 2),
                                     label="配送模式配送费")
    home_minimum_free_amount = FuncField(lambda value: round(float(value), 2),
                                         label="配送模式免配送费最小金额")
    pick_on = serializers.BooleanField(label="自提模式是否开启")
    pick_service_amount = FuncField(lambda value: round(float(value), 2),
                                    label="自提模式服务费")
    pick_minimum_free_amount = FuncField(lambda value: round(float(value), 2),
                                         label="自提模式免服务费最小金额")
    pick_today_on = serializers.BooleanField(label="今天自提是否开启")
    pick_tomorrow_on = serializers.BooleanField(label="明天自提是否开启")
    pick_periods = PickPeriodConfigLineSerializer(many=True, label="自提时间段")
示例#10
0
class GrouponProductSerializer(serializers.Serializer):
    """拼团商品序列化器类"""

    product_id = serializers.IntegerField(source="id", label="货品ID")
    name = serializers.CharField(label="货品名称")
    price = FuncField(lambda value: round(float(value), 2), label="货品价格")
    status = serializers.IntegerField(read_only=True, label="货品状态")
    summary = serializers.CharField(label="货品简介")
    cover_image_url = serializers.CharField(label="货品封面图")
示例#11
0
class AdminCustomerSerializer(UserSerializer):
    """后台客户序列化器类"""

    customer_id = serializers.IntegerField(source="id", label="客户id")
    consume_amount = FuncField(lambda value: round(float(value), 2),
                               label="客户消费金额")
    consume_count = serializers.IntegerField(label="客户消费次数")
    point = FuncField(lambda value: round(float(value), 2), label="客户积分")
    remark = serializers.CharField(label="客户备注")
    realname = serializers.CharField(required=False, label="用户真实姓名")
    nickname = serializers.CharField(required=False, label="微信昵称")
    sex = serializers.IntegerField(required=False, label="性别")
    phone = serializers.CharField(required=False, label="手机号")
    birthday = serializers.DateField(required=False,
                                     format=DateFormat.DAY,
                                     default="",
                                     label="用户生日")
    head_image_url = serializers.CharField(required=False, label="头像")
示例#12
0
class AdminGrouponsSerializer(GrouponBasicSerializer):
    """后台拼团活动列表序列化器类"""

    groupon_id = serializers.IntegerField(source="id", label="拼团id")
    product = GrouponProductSerializer(label="拼团商品信息")
    price = FuncField(lambda value: round(float(value), 2), label="拼团价格")
    attend_limit = serializers.IntegerField(label="参团上限")
    from_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                              label="拼团活动开始时间")
    to_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="拼团活动结束时间")
    status = serializers.IntegerField(label="拼团活动状态 1:启用 2:停用 3:过期")
    is_editable = serializers.BooleanField(label="拼团是否可以编辑")
示例#13
0
class AdminGrouponSerializer(GrouponBasicSerializer):
    """后台拼团活动详情序列化器类"""

    groupon_id = serializers.IntegerField(source="id", label="拼团id")
    product = GrouponProductSerializer(label="拼团商品信息")
    price = FuncField(lambda value: round(float(value), 2), label="拼团价格")
    attend_limit = serializers.IntegerField(label="参团上限")
    from_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                              label="拼团活动开始时间")
    to_datetime = serializers.DateTimeField(format=DateFormat.TIME,
                                            label="拼团活动结束时间")
    status = serializers.IntegerField(label="拼团活动状态 1:启用 2:停用 3:过期")
    quantity_limit = serializers.IntegerField(label="成团数量上限")
    success_size = serializers.IntegerField(label="成团人数")