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)
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, }
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)
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'), }
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
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)
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
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
def get_icon_info(self, instance): if instance.icon: return FileSerializer(instance=instance.icon, context=self.context).data.get('file') return ''