def get_order(request): id = request.GET.get('id') order = Order.objects.get(id=id) order_has_products = OrderHasProduct.objects.filter(order=order) number = 0 cur_order = JsonResponse() for order_has_product in order_has_products: number += order_has_product.number cur_order.number = number cur_order.statu = get_order_status_text(order.status) cur_order.express_company_name = get_name_by_value( order.express_company_name) cur_order.type = order.type cur_order.express_number = order.express_number cur_order.leader_name = order.leader_name cur_order.integral = order.integral cur_order.bill_type = order.bill_type cur_order.bill = order.bill cur_order.order_id = order.order_id cur_order.final_price = '%.2f' % order.final_price cur_order.postage = '%.2f' % order.postage cur_order.ship_name = order.ship_name cur_order.ship_tel = order.ship_tel cur_order.area = regional_util.get_str_value_by_string_ids(order.area) cur_order.ship_address = order.ship_address cur_order.customer_message = order.customer_message cur_order.created_at = __data_format(order.created_at) cur_order.action = get_order_actions(order) cur_order.reason = order.reason #关联的优惠券 coupon = order.get_coupon() if coupon: cur_coupon = JsonResponse() cur_coupon.coupon_id = coupon.coupon_id cur_coupon.coupon_rule_name = coupon.coupon_rule.name cur_coupon.money = str(coupon.money) cur_order.coupon = cur_coupon else: cur_order.coupon = None products = mall_api.get_order_products(order) #商品 cur_product_json = [] for product in products: cur_product = JsonResponse() cur_product.name = product['name'] cur_product.count = product['count'] cur_product.total_price = product['total_price'] cur_product.thumbnails_url = product['thumbnails_url'] cur_product.is_deleted = product['is_deleted'] properties = product['custom_model_properties'] if properties: for product_property in properties: cur_product.property_name = product_property['name'] cur_product.property_value = product_property['property_value'] cur_product_json.append(cur_product) response = create_response(200) response.data.order = cur_order response.data.products = cur_product_json return response.get_jsonp_response(request)
def api_get(request): """ 获取优惠券advanced table """ coupon_code = request.GET.get('couponCode', '') use_status = request.GET.get('useStatus', '') member_name = request.GET.get('memberName', '') #是否显示最后一页 is_max_page = int(request.GET.get('is_max_page', 0)) is_fetch_all_coupon = (not coupon_code) and (use_status == 'all') and ( not member_name) # 处理排序 sort_attr = request.GET.get('sort_attr', '-id') coupon_rule_id = request.GET.get('id') if coupon_rule_id: coupons = Coupon.objects.filter( owner=request.manager, coupon_rule_id=coupon_rule_id).order_by(sort_attr) # 获取coupon所属的rule的name id2rule = dict([ (rule.id, rule) for rule in CouponRule.objects.filter(owner=request.manager) ]) if is_fetch_all_coupon: # 进行分页 count_per_page = int(request.GET.get('count_per_page', 15)) cur_page = int(request.GET.get('page', '1')) pageinfo, coupons = paginator.paginate( coupons, cur_page, count_per_page, query_string=request.META['QUERY_STRING']) else: coupons_data = _filter_reviews(request, coupons) count_per_page = int(request.GET.get('count_per_page', 15)) cur_page = request.GET.get('page', '1') t_max_page = False if cur_page == "true": t_max_page = True cur_page = 1 pageinfo, coupons = paginator.paginate( coupons_data, cur_page, count_per_page, query_string=request.META['QUERY_STRING']) ##是否从最后一页开始显示 if is_max_page: max_page = int(pageinfo.max_page) if max_page != cur_page and t_max_page: cur_page = max_page pageinfo, coupons = paginator.paginate( coupons_data, cur_page, count_per_page, query_string=request.META['QUERY_STRING']) # 避免便利整个优惠券列表 member_ids = [c.member_id for c in coupons] members = get_member_by_id_list(member_ids) member_id2member = dict([(m.id, m) for m in members]) # 获取被使用的优惠券使用者信息 coupon_ids = [c.id for c in coupons if c.status == COUPON_STATUS_USED] orders = Order.get_orders_by_coupon_ids(coupon_ids) if orders: coupon_id2webapp_user_id = dict([(o.coupon_id, \ {'id': o.id, 'user': o.webapp_user_id, 'order_id': o.order_id, 'created_at': o.created_at}) \ for o in orders]) else: coupon_id2webapp_user_id = {} response = create_response(200) response.data.items = [] #统计是否有active的coupon # has_active_coupon = False now = datetime.today() for coupon in coupons: cur_coupon = JsonResponse() cur_coupon.id = coupon.id cur_coupon.coupon_id = coupon.coupon_id cur_coupon.provided_time = coupon.provided_time.strftime( "%Y-%m-%d %H:%M") cur_coupon.created_at = coupon.created_at.strftime( "%Y-%m-%d %H:%M") cur_coupon.money = str(coupon.money) cur_coupon.is_manual_generated = coupon.is_manual_generated cur_member = JsonResponse() member_id = int(coupon.member_id) # if coupon.status == COUPON_STATUS_UNUSED: # has_active_coupon = True if member_id in member_id2member: member = member_id2member[member_id] cur_member.username_truncated = member.username_truncated cur_member.username_for_html = member.username_for_html else: member = '' cur_member.username_truncated = '' cur_member.username_for_html = '' cur_member.id = member_id consumer = JsonResponse() consumer.username_truncated = '' consumer.username_for_html = '' if coupon.status == COUPON_STATUS_USED: if coupon.id in coupon_id2webapp_user_id: order = coupon_id2webapp_user_id[coupon.id] cur_coupon.order_id = order['id'] cur_coupon.order_fullid = order['order_id'] cur_coupon.use_time = order['created_at'].strftime( "%Y-%m-%d %H:%M") webapp_user_id = order['user'] member = WebAppUser.get_member_by_webapp_user_id( webapp_user_id) if member: consumer.username_truncated = member.username_truncated consumer.username_for_html = member.username_for_html consumer.id = member.id else: consumer.username_truncated = '未知' consumer.username_for_html = '未知' else: consumer.username_truncated = '未知' consumer.username_for_html = '未知' cur_coupon.status = COUPONSTATUS.get(coupon.status)['name'] elif coupon.expired_time <= now: cur_coupon.status = COUPONSTATUS.get( COUPON_STATUS_EXPIRED)['name'] else: cur_coupon.status = COUPONSTATUS.get(coupon.status)['name'] cur_coupon.member = cur_member cur_coupon.consumer = consumer cur_coupon.rule_name = id2rule[coupon.coupon_rule_id].name response.data.items.append(cur_coupon) response.data.sortAttr = request.GET.get('sort_attr', '-created_at') response.data.pageinfo = paginator.to_dict(pageinfo) return response.get_response()