Пример #1
0
async def exec_data(item, goods, cids, semaphore):
    async with semaphore:
        goods_id = item.get('product_id')
        if not goods_id:
            return
        sell_num = int(item.get('sell_num'))
        shop_id = item.get('shop_id')
        goods_price = item.get('discount_price') / 100
        goods_name = item.get('name')
        cid = item.get('third_cid')
        if not cids.__contains__(cid):
            cid = item.get('second_cid')
        goods_picture_url = item.get('img')
        goods_url = 'https://haohuo.snssdk.com/views/product/item?id=' + goods_id
        # goods = await Goods.find_one('goods_id=?', goods_id)
        if goods:
            # 修改
            time_now = datetime.datetime.now().strftime("%Y-%m-%d")
            time_last_edit = goods.edit_time.strftime("%Y-%m-%d")
            # 较上次增量
            add_num = sell_num - goods.sell_num
            goods.shop_id = shop_id
            goods.cid = cid
            goods.goods_name = goods_name
            goods.goods_url = goods_url
            goods.goods_picture_url = goods_picture_url
            goods.goods_price = goods_price
            if time_now != time_last_edit:
                goods.add_num = 0
            elif add_num >= 0:
                goods.add_num = goods.add_num + add_num
            goods.sell_num = sell_num
            if goods.item_last_sell_num is None:
                goods.item_last_sell_num = goods.sell_num
            goods.edit_time = datetime.datetime.now()

            item_add_num = sell_num - goods.item_last_sell_num
            if item_add_num > 100:
                goods.item_last_sell_num = sell_num
            await goods.update()
        else:
            raise Exception("出错!数据库中没有查询到相应值")
        if item_add_num >= 100:
            goods_item = Goods_Item()
            goods_item.goods_id = goods.id
            goods_item.sell_num = sell_num
            goods_item.add_num = item_add_num
            await goods_item.save()
        if goods.add_num > 0:
            await Goods_Tmp.del_by('goods_id=?', goods.id)
            tmp = Goods_Tmp()
            tmp.goods_id = goods.id
            tmp.add_num = goods.add_num
            tmp.sell_num = goods.sell_num
            tmp.edit_time = datetime.datetime.now()
            await tmp.save()
Пример #2
0
async def parse_page(goods_id):
    item = await tools.get_goods_by_id(goods_id)
    if not item :
        return
    if not item.get('data'):
        return
    product_id = item.get('data').get('product_id')
    if not product_id:
        return
    sell_num = int(item.get('data').get('sell_num'))
    goods = await Goods.find_one('goods_id=?', goods_id)
    if goods:
        # 修改
        time_now = datetime.datetime.now().strftime("%Y-%m-%d")
        time_last_edit = goods.edit_time.strftime("%Y-%m-%d")
        # 较上次增量
        add_num = sell_num - goods.sell_num
        if time_now != time_last_edit:
            goods.add_num = 0
        elif add_num >= 0:
            goods.add_num = goods.add_num + add_num
        goods.sell_num = sell_num
        if goods.item_last_sell_num is None:
            goods.item_last_sell_num = goods.sell_num
        goods.edit_time = datetime.datetime.now()
        item_add_num = sell_num - goods.item_last_sell_num
        if item_add_num > 100:
            goods.item_last_sell_num = sell_num
        await goods.update()
    else:
       raise Exception("出错!数据库中没有查询到相应值")
    if item_add_num >= 100:
        goods_item = Goods_Item()
        goods_item.goods_id = goods.id
        goods_item.sell_num = sell_num
        goods_item.add_num = item_add_num
        await goods_item.save()
    if goods.add_num > 0:
        await Goods_Tmp.del_by('goods_id=?', goods.id)
        tmp = Goods_Tmp()
        tmp.goods_id = goods.id
        tmp.add_num = goods.add_num
        tmp.sell_num = goods.sell_num
        tmp.edit_time = datetime.datetime.now()
        await tmp.save()