示例#1
0
def order():
    orders = Orders.objects(opareteUser=current_user.realname)
    drugs = {}
    for x in orders:
        for y in x.buyDetail:
            drugs[y] = Commodity.objects(id=ObjectId(y)).first().name
    return render_template('doctor/order.html', orders=orders, bought=drugs)
示例#2
0
def get_shop_list():
    '''
    商品库信息组合去重及商品库模糊搜索功能
    '''
    # 查询参数
    ww_id = request.args.get('wwId') or ''
    store_name = request.args.get('storeName') or ''
    goods_title = request.args.get('goodsTitle') or ''
    sku_id = request.args.get('skuId') or ''
    # 分页参数
    page_num = int(request.args.get('pageNum') or 1)
    page_size = int(request.args.get('pageSize') or 20)

    # 从历史订单数据库更新数据到商品库,不覆盖原有数据,保证卖家sku的完整保留
    one_record = Shop.objects.order_by('-_id').first()  # 筛选shop中_id最大值的记录
    max_id = one_record['_id'] if one_record else None
    if max_id:  # 取出历史订单orders中大于此_id的记录
        query_set = Orders.objects(_id__gt=max_id)
    else:  # 商品库为空,取出历史订单所有记录
        query_set = Orders.objects()
    if query_set:  # 将查询结果去重并保存至shop中
        only_records = query_set.aggregate(    # 组合去重
            {
                '$group': {
                    '_id': {'goods_url': "$goods_url", 'goods_sku1': "$goods_sku1", 'goods_sku2': "$goods_sku2"},
                    'id': {'$max': "$_id"},    # 取_id最大值
                    'goods_url': {'$first': "$goods_url"},
                    'goods_title': {'$first': "$goods_title"},
                    'goods_img': {'$first': "$goods_img"},
                    'store_name': {'$first': "$store_name"},
                    'ww_name': {'$first': "$ww_name"},
                    'real_per_price': {'$first': "$real_per_price"},
                    'goods_sku1': {'$first': "$goods_sku1"},
                    'goods_sku2': {'$first': "$goods_sku2"}
                }
            }
        )
        for item in only_records:
            item.pop('_id')
            item['_id'] = item.pop('id')
            item['sku_id'] = ''
            if not max_id:  # 商品库为空,直接保存
                Shop(**item).save()
            else:  # 商品库不为空,查询无重复再保存
                if not Shop.objects(goods_url=item['goods_url'],
                                    goods_sku1=item['goods_sku1'],
                                    goods_sku2=item['goods_sku2']):
                    Shop(**item).save()

    # 商品库展示
    if ww_id or store_name or goods_title or sku_id:  # 条件查询(模糊查询)
        page_data = Shop.objects(
            Q(__raw__={'ww_name': {
                '$regex': ww_id
            }})
            & Q(__raw__={'store_name': {
                '$regex': store_name
            }})
            & Q(__raw__={'goods_title': {
                '$regex': goods_title
            }})
            & Q(__raw__={'sku_id': {
                '$regex': sku_id
            }})).paginate(page=page_num, per_page=page_size)
    else:  # 一般情况(无查询)
        page_data = Shop.objects().paginate(page=page_num, per_page=page_size)

    list_all_query = []
    for item in page_data.items:
        new_each_result = OrderedDict()
        for k, v in MAPPING.items():
            new_each_result[k] = str(item[v]) if item[v] else ''
        list_all_query.append(new_each_result)

    result = {
        'status': 0,
        'total': page_data.total,
        'pageSize': page_size,
        'pageNum': page_data.page,
        'data': {
            'list': list_all_query
        },
        'msg': '请求成功'
    }
    return Response(json.dumps(result), mimetype='application/json')