def get(self, request, goods_id): goods_obj = Goods(goods_id) goods_info = goods_obj.read() sku_list = goods_obj.fetch_sku_all() context = { 'goods_info': goods_info, 'sku_list': sku_list, 'goods_status_list': GoodsStatus.all(), } response = TemplateResponse(request, 'goods/edit.html', context) return response
def __order_data(self, order): order_basic_info = order.get_order_basic_info() basic_data = { 'order_id': order_basic_info.get('order_id'), 'user_id': order_basic_info.get('user_id'), 'status_desc': order.get_status_text(), 'order_sn': order_basic_info.get('order_sn'), # 订单号 'postage': order_basic_info.get('postage'), # 邮费 'amount_payable': float(order_basic_info.get('amount_payable')) / 100.0, # 订单金额 } order_items = order.get_order_item_list() items = [] for order_item in order_items: item_basic = order_item.get_basic_info() sku_id = item_basic['sku_id'] goods_obj = Goods.fetch_by_sku(sku_id) sku_info = goods_obj.get_sku_info(sku_id) items.append({ 'thumbnail': sku_info['image_url'], 'sku_name': item_basic['goods_name'], 'number': item_basic['number'], 'attrs': item_basic['sku_property'], 'sale_price': float(item_basic['sale_price']) / 100.0 }) basic_data['items'] = items receiver = order.get_receiver() if receiver: receiver_basic = receiver.get_basic_info() basic_data['receiver'] = { 'name': receiver_basic.get('name'), 'mobile': receiver_basic.get('mobile'), 'address': ' '.join([ receiver_basic.get('province'), receiver_basic.get('city'), receiver_basic.get('district'), receiver_basic.get('address'), ]) } logistics = order.get_logistics() if logistics: logistics_basic = logistics.get_basic_info() logistics_res = { 'com': logistics_basic.get('com_name'), 'nu': logistics_basic.get('nu'), } logistics_data = logistics_basic.get('data') if logistics_data: logistics_res['data'] = json.loads(logistics_data) basic_data['logistics'] = logistics_res return basic_data
def __order_data(self, order): order_basic_info = order.get_order_basic_info() basic_data = { 'order_id': order_basic_info.get('order_id'), 'status_desc': order.get_status_text(), 'order_sn': order_basic_info.get('order_sn'), # 订单号 'postage': order_basic_info.get('postage'), # 邮费 'amount_payable': float(order_basic_info.get('amount_payable')) / 100.0, # 订单金额 } order_items = order.get_order_item_list() items = [] for order_item in order_items: item_basic = order_item.get_basic_info() sku_id = item_basic['sku_id'] goods_obj = Goods.fetch_by_sku(sku_id) sku_info = goods_obj.get_sku_info(sku_id) items.append({ 'thumbnail': sku_info['image_url'], 'sku_name': item_basic['goods_name'], 'number': item_basic['number'], 'attrs': item_basic['sku_property'], 'sale_price': float(item_basic['sale_price']) / 100.0 }) basic_data['items'] = items return basic_data
def post(self, request, goods_id): property_vector_str = request.data.get('property_vector_str', None) if property_vector_str == None: property_vector = [{ 'key': u'属性', 'value': u'默认', }] else: property_vector_list = property_vector_str.split('|') property_vector = [] i = 0 while (i < len(property_vector_list) and i < 4): property_vector.append({ 'key': property_vector_list[i], 'value': property_vector_list[i + 1], }) i += 2 image_key = request.data.get('image_key', '') price = request.data.get('price', None) if price == None: raise Exception("Without price!!!") pintuan_price = request.data.get('pintuan_price', -1) stock = request.data.get('stock', 1000) supply_cost = request.data.get('supply_cost', -1) goods_obj = Goods(goods_id) sku_id = goods_obj.add_sku( image_key=image_key, property_vector=property_vector, price=price, pintuan_price=pintuan_price, supply_cost=supply_cost, stock=stock, ) res = {'goods_id': goods_obj.id, 'sku_id': sku_id} return JsonResponse(res)
def get(self, request): goods_obj_list = Goods.fetch() goods_data_list = [] for obj in goods_obj_list: data = obj.read() sku_list = obj.fetch_sku_all() data['sku_number'] = len(sku_list) goods_data_list.append(data) context = {'goods_list': goods_data_list} response = TemplateResponse(request, 'goods/list.html', context) return response
def buynow_settlement(self, sku_id, number): goods_obj = Goods.fetch_by_sku(sku_id) sku_info = goods_obj.get_sku_info(sku_id) item = { "sku_id": int(sku_id), "thumbnail": sku_info['image_url'], "price": sku_info['price'], "number": number, "name": sku_info["goods_name"], "attrs": sku_info['property'].split(';') } settlement_info = { 'total_amount': sku_info['price'] * number, 'amount_payable': sku_info['price'] * number, 'item_list': [item] } return settlement_info
def create(cls, entry, user_id, receiver, item_list, total_amount, amount_payable, pintuan_id=-1): total_amount = total_amount amount_payable = amount_payable order_model_obj = OrderModel.objects.create( entry=entry, order_sn='18' + str(sn()), user_id=user_id, total_amount=total_amount, amount_payable=amount_payable, postage=0, pintuan_id=pintuan_id) order_obj = cls(order_model_obj.pk, model_obj=order_model_obj) for item in item_list: sku_id = item['sku_id'] number = item['number'] goods_obj = Goods.fetch_by_sku(sku_id) sku_info = goods_obj.get_sku_info(sku_id) order_obj.add_order_item(sku_info['goods_id'], sku_info['id'], sku_info['goods_name'], sku_info['property'], sku_info['price'], number) order_obj.set_receiver( receiver.get('name'), receiver.get('province'), receiver.get('city'), receiver.get('district'), receiver.get('address'), receiver.get('mobile'), receiver.get('zipcode', ''), ) return order_obj
def get(self, request): offset = int(request.GET.get('offset', '0')) count = int(request.GET.get('count', '20')) res = {"banner_img_list": [], "goods_list": []} goods_obj_list = Goods.fetch_recommend_goods(offset, count) for goods_obj in goods_obj_list: goods_info = goods_obj.read() goods_img = '' if len(goods_info['banner_image_list']) > 0: goods_img = goods_info['banner_image_list'][0] res['goods_list'].append({ "goods_id": goods_info['id'], "goods_name": goods_info['name'], "goods_price": float(goods_info['price']) / 100.0, "market_price": float(goods_info['market_price']) / 100.0, "goods_img": goods_img, "url": "../goods/detail?goodsId=%d" % goods_obj.id, }) if offset == 0: home_banner_list = HomeBanner.fetch_all() for banner in home_banner_list: res['banner_img_list'].append({ 'url': '', 'img': banner['image'] }) return ApiJsonResponse(res)
def post(self, request): banner_images = request.data.get('banner_images') detail_images = request.data.get('detail_images') name = request.data.get('name') supply_source = request.data.get('supply_source') supply_item_id = request.data.get('supply_item_id') price = request.data.get('price') market_price = request.data.get('market_price') banner_image_list = banner_images.split(';') detail_image_list = detail_images.split(';') goods_obj = Goods.create(name=name, supply_source=supply_source, supply_item_id=supply_item_id, price=price, market_price=market_price, status=1, banner_image_list=banner_image_list, detail_image_list=detail_image_list) res = {'goods_id': goods_obj.id} return JsonResponse(res)
def pintuan_join_settlement(self, pintuan_sn, number): pintuan_obj = Pintuan.get_pintuan_by_sn(pintuan_sn) pintuan_info = pintuan_obj.read() sku_id = pintuan_info['sku_id'] pintuan_price = pintuan_info['price'] goods_obj = Goods.fetch_by_sku(sku_id) sku_info = goods_obj.get_sku_info(sku_id) item = { "sku_id": int(sku_id), "thumbnail": sku_info['image_url'], "price": pintuan_price, "number": number, "name": sku_info["goods_name"], "attrs": sku_info['property'].split(';') } settlement_info = { 'pintuan_price': pintuan_price, 'total_amount': pintuan_price * number, 'amount_payable': pintuan_price * number, 'item_list': [item] } return settlement_info
def get(self, request, goods_id): goods_obj = Goods(goods_id) goods_info = goods_obj.read() sku_list = goods_obj.fetch_sku_all() res = { "goods_id": goods_info['id'], "goods_name": goods_info['name'], "goods_price": float(goods_info['price']) / 100.0, "market_price": float(goods_info['market_price']) / 100.0, "banner_img_list": goods_info['banner_image_list'], "goods_detail_img_list": goods_info['detail_image_list'], "postage_desc": "免邮费", "services": [{ "type": 1, "desc": "正品保障" }, { "type": 2, "desc": "发货&售后" }, { "type": 3, "desc": "七天退换" }], "sku_list": [], "property_vector": [] } first = True for sku in sku_list: item = { "sku_id": sku['id'], "price": float(sku['price']) / 100.0, "property_value_vector": [], "img": sku['image_url'], "stock": sku['stock'], } i = 0 for kv in sku["property_vector"]: if first == True: res["property_vector"].append({ "key": kv["key"], "values": [] }) item["property_value_vector"].append(kv['value']) if not kv["value"] in res["property_vector"][i]["values"]: res["property_vector"][i]["values"].append(kv['value']) i += 1 res["sku_list"].append(item) first = False return ApiJsonResponse(res)