Esempio n. 1
0
    def get(self, request, *args, **kwargs):
        res = {}
        square_logo = StoreLogo.get('square_logo')
        if square_logo:
            res.update({
                'square_logo':
                FileSerializer(square_logo.image,
                               context=dict(request=request)).data.get('file')
            })
        else:
            store_type = BoolConfig.objects.filter(name="store_type").first()
            store_type_value = getattr(store_type, "content", "camel")
            file_name = "camel-store-logo.png"

            file = request.build_absolute_uri(
                os.path.join(settings.STATIC_URL, 'img/{}'.format(file_name)))
            res.update({'square_logo': {'file': file}})
        rectangle_logo = StoreLogo.get('rectangle_logo')
        if rectangle_logo:
            res.update({
                'rectangle_logo':
                FileSerializer(rectangle_logo.image,
                               context=dict(request=request)).data.get('file')
            })
        else:
            res.update({'rectangle_logo': {}})
        return Response(res)
Esempio n. 2
0
    def save(self, **kwargs):
        square_logo = self.validated_data.get('square_logo')
        rectangle_logo = self.validated_data.get('rectangle_logo')
        StoreLogo.objects.update_or_create(label='square_logo', defaults={'image': square_logo})
        StoreLogo.objects.update_or_create(label='rectangle_logo', defaults={'image': rectangle_logo})

        return {
            'square_logo': FileSerializer(instance=square_logo, context=self.context).data,
            'rectangle_logo': FileSerializer(instance=rectangle_logo, context=self.context).data,
        }
Esempio n. 3
0
    def get(self, request, *args, **kwargs):

        res = {
            'share_switch': BoolConfig.get_bool('share_switch'),
            'rebate_switch': BoolConfig.get_bool('rebate_switch'),
            'bonus_switch': BoolConfig.get_bool('bonus_switch'),
            'cart_switch': BoolConfig.get_bool('cart_switch'),
            'wallet_switch': BoolConfig.get_bool('wallet_switch'),
            'tradition_home': BoolConfig.get_bool('tradition_home'),
            'version': Version.get_value('version'),
            'show_copyright': BoolConfig.get_bool('show_copyright'),
            'store_type': StoreType.get_value('store_type'),
            'attach_switch': DatetimeConfig.is_valid('attach_switch'),
            'qr_pay_switch': DatetimeConfig.is_valid('qr_pay_switch'),
            'subscription_switch':
            DatetimeConfig.is_valid('subscription_switch'),
            'video_switch': BoolConfig.get_bool('video_switch'),
            'invoice_switch': BoolConfig.get_bool('invoice_switch'),
        }
        store_poster = StoreLogo.get('store_poster')
        if store_poster:
            res.update({
                'store_poster':
                FileSerializer(store_poster.image,
                               context=dict(request=request)).data.get('file')
            })
        else:
            res.update({'store_poster': ''})
        return Response(res)
Esempio n. 4
0
    def save(self, **kwargs):
        store_poster = self.validated_data.get('store_poster')

        StoreLogo.objects.update_or_create(label='store_poster', defaults={'image': store_poster})

        return {
            'store_poster': FileSerializer(instance=store_poster, context=self.context).data.get('file'),
        }
Esempio n. 5
0
 def get_level(self, instance):
     level = getattr(instance, 'level', None)
     if level:
         return {
             'title':
             level.title,
             'icon':
             FileSerializer(level.icon,
                            context=self.context).data.get('file')
             if level.icon else ''
         }
     return None
Esempio n. 6
0
 def get(self, request, *args, **kwargs):
     res = {}
     store_poster = StoreLogo.get('store_poster')
     if store_poster:
         res.update({
             'store_poster':
             FileSerializer(store_poster.image,
                            context=dict(request=request)).data
         })
     else:
         res.update({'store_poster': None})
     return Response(res)
Esempio n. 7
0
    def save(self, **kwargs):

        goods = self.validated_data.get('goods')
        gtype = self.validated_data.get('gtype')
        data = {
            'goodid':
            goods.id,
            'gtypeid':
            gtype.id,
            'goods_name':
            goods.name,
            'gtype_name':
            gtype.content,
            'shop':
            getattr(goods.shop, 'id', None),
            'shop_name':
            getattr(goods.shop, 'name', ''),
            'shop_address':
            getattr(goods.shop, 'address', ''),
            'estimate_time':
            goods.repl_goods.estimate_time,
            'delivery_method':
            goods.delivery_method,
            'price':
            gtype.price,
            'stock':
            gtype.stock,
            'image':
            FileSerializer(instance=goods.banner.first().image,
                           context=self.context).data.get('file')
        }
        if getattr(goods.shop, 'entrust', None):  # 店铺被委托时返回被委托的店铺信息
            data.update({
                'entrust_shop_name':
                getattr(goods.shop.entrust, 'name', ''),
                'entrust_shop_address':
                getattr(goods.shop.entrust, 'address', ''),
            })
        return data
Esempio n. 8
0
 def save(self, **kwargs):
     items_list = self.validated_data.get('items_list', {})
     address = self.validated_data.get('address')
     is_pt = self.validated_data.get('is_pt')
     user = self.context.get('request').user
     discount = 1
     if getattr(
             user, 'level',
             None) and BoolConfig.get_bool('wallet_switch') and not is_pt:
         discount = getattr(user, 'level', None).discount
     res = []
     if address:
         address = lbs.get_longitude_and_latitude(address)
     for item in items_list:
         data = {}
         goods = Goods.objects.filter(
             pk=item.get('goodsid'),
             status__in=[Goods.IS_SELL, Goods.PREVIEW]).first()
         gtype = GoodType.objects.filter(pk=item.get('gtypeid'),
                                         is_sell=True).first()
         if not goods or not gtype or gtype not in goods.ord_goods.gtypes.all(
         ):
             continue
         data = {
             'goodid':
             goods.id,
             'gtypeid':
             gtype.id,
             'goods_name':
             goods.name,
             'gtype_name':
             gtype.content,
             'shop':
             getattr(goods.shop, 'id', None),
             'shop_name':
             getattr(goods.shop, 'name', ''),
             'shop_address':
             getattr(goods.shop, 'address', ''),
             'estimate_time':
             goods.ord_goods.estimate_time,
             'delivery_method':
             goods.delivery_method,
             'market_price':
             gtype.market_price,
             'original_price':
             gtype.price,
             'price':
             Decimal(gtype.price * discount).quantize(Decimal('0.00'))
             if not is_pt else gtype.ladder_[0].get('price'),
             'stock':
             gtype.stock,
             'discount':
             discount,
             'buy_limit':
             gtype.buy_limit,
             'postage':
             compute_postage(goods, address),
             'image':
             FileSerializer(instance=goods.banner.first().image,
                            context=self.context).data.get('file')
         }
         if getattr(goods.shop, 'entrust', None):  # 店铺被委托时返回被委托的店铺信息
             data.update({
                 'entrust_shop_name':
                 getattr(goods.shop.entrust, 'name', ''),
                 'entrust_shop_address':
                 getattr(goods.shop.entrust, 'address', ''),
             })
         res.append(data)
     return res
Esempio n. 9
0
 def get_icon_info(self, instance):
     if instance.icon:
         return FileSerializer(instance=instance.icon, context=self.context).data.get('file')
     return ''