예제 #1
0
 def updateDate_where_data_type(self, data_type, time_dimension,
                                current_date):
     session = Dto(self.__sql_address__)
     try:
         session.query(TaskProgress).filter(
             TaskProgress.data_type == data_type,
             TaskProgress.time_dimension == time_dimension).update({
                 TaskProgress.next_time:
                 datetime.datetime.strptime(current_date, "%Y-%m-%d")
             })
         session.commit()
     except Exception as e:
         logger.error("进度更新失败:类型: %s 时间维度 %s 日期进度:%s" %
                      (data_type, time_dimension, current_date) + str(e))
     finally:
         session.close()
예제 #2
0
    def getThridCate(self, seniorName=('美容护肤/美体/精油', '彩妆/香水/美妆工具')):
        session = Dto(self.__sql_address__)

        conf_list = session.query(SycmCategory).filter(
            SycmCategory.name.in_(seniorName))
        chain = list()
        for cate in conf_list:
            subcates = session.query(SycmCategory).filter(
                SycmCategory.parent_id == cate.id)
            for subcate in subcates:
                juniorCates = session.query(SycmCategory).filter(
                    SycmCategory.parent_id == subcate.id).all()
                if len(juniorCates) != 0:
                    for juniorCate in juniorCates:
                        chain.append(juniorCate.id)
        return chain
예제 #3
0
 def get_searchwords(self, data_type):
     session = Dto(self.__sql_address__)
     conf = session.query(UserParams).filter(
         UserParams.data_type == data_type).one()
     temp = json.loads(conf.value)
     searchwords_list = temp['userParams']['搜索词列表']
     session.close()
     return searchwords_list
예제 #4
0
 def get_current_date_where_data_type_and_time_dimension(
         self, data_type, time_dimension):
     session = Dto(self.__sql_address__)
     task_progress = None
     try:
         task_progress = session.query(TaskProgress).filter(
             TaskProgress.data_type == data_type,
             TaskProgress.time_dimension == time_dimension).one()
     except Exception as e:
         logger.error('数据库未查询到%s and %s' % (data_type, time_dimension) +
                      str(e))
     return task_progress
예제 #5
0
    def getFullCate(self,
                    needJunjor=True,
                    seniorName=('模玩/动漫/周边/cos/桌游', '玩具/童车/益智/积木/模型')):
        session = Dto(self.__sql_address__)

        conf_list = session.query(SycmCategory).filter(
            SycmCategory.name.in_(seniorName))
        chain = list()

        for cate in conf_list:
            chain.append(cate.id)
            if needJunjor:
                subcates = session.query(SycmCategory).filter(
                    SycmCategory.parent_id == cate.id)
                for subcate in subcates:
                    chain.append(subcate.id)
                    juniorCates = session.query(SycmCategory).filter(
                        SycmCategory.parent_id == subcate.id).all()
                    if len(juniorCates) != 0:
                        for juniorCate in juniorCates:
                            chain.append(juniorCate.id)
        return chain
예제 #6
0
    def newFindByName(self, data_type):
        session = Dto(self.__sql_address__)
        conf_list = session.query(UserParams).filter(
            UserParams.data_type == data_type).all()
        chain_list = list()
        for conf in conf_list:
            conf_detail = json.loads(conf.value)
            conf_details = conf_detail['userParams']['品牌类目列表']
            for cate in conf_details:
                # cate_chain = list()
                cate_chain = dict()
                itemName = cate['一级类目']
                try:
                    category_detail = session.query(SycmCategory).filter(
                        SycmCategory.level == 1,
                        SycmCategory.name == itemName).one()
                except Exception as e:
                    logger.error("通过类目名%s获取id失败%s" %
                                 (itemName, category_detail.id) + str(e))

                if data_type == '商品店铺榜-品牌粒度':
                    cate_chain = {
                        'itemName': itemName,
                        'cateId': category_detail.id,
                        'bandName': cate['品牌名'],
                        'bandCount': cate['品牌序号'],
                        'shopName': conf.shop
                    }
                if data_type == '商品店铺榜-产品粒度':
                    cate_chain = {
                        'itemName': itemName,
                        'cateId': category_detail.id,
                        'bandName': cate['品牌名'],
                        'bandCount': cate['品牌序号'],
                        'productName': cate['产品名'],
                        'productCount': cate['产品序号'],
                        'shopName': conf.shop
                    }
                cate_chain['depth'] = 1
                if cate['二级类目'] != "":
                    itemName = cate['二级类目']
                    try:
                        category_detail = session.query(SycmCategory).filter(
                            SycmCategory.level == 2,
                            SycmCategory.name == itemName,
                            SycmCategory.parent_id ==
                            cate_chain['cateId']).one()
                        if data_type == '商品店铺榜-品牌粒度':
                            cate_chain['subcate'] = {
                                'itemName': itemName,
                                'cateId': category_detail.id,
                                'bandName': cate['品牌名'],
                                'bandCount': cate['品牌序号'],
                                'shopName': conf.shop
                            }
                        if data_type == '商品店铺榜-产品粒度':
                            cate_chain['subcate'] = {
                                'itemName': itemName,
                                'cateId': category_detail.id,
                                'bandName': cate['品牌名'],
                                'bandCount': cate['品牌序号'],
                                'productName': cate['产品名'],
                                'productCount': cate['品牌序号'],
                                'shopName': conf.shop
                            }
                    except Exception as e:
                        logger.error("通过品牌名%s获取id失败%s" %
                                     (itemName, category_detail.id) + str(e))
                    cate_chain['depth'] = 2
                if cate['三级类目'] != "":
                    itemName = cate['三级类目']
                    try:
                        category_detail = session.query(SycmCategory).filter(
                            SycmCategory.level == 3,
                            SycmCategory.name == itemName,
                            SycmCategory.parent_id == cate_chain['subcate']
                            ['cateId']).one()
                        if data_type == '商品店铺榜-品牌粒度':
                            cate_chain['subcate']['subcate'] = {
                                'itemName': itemName,
                                'cateId': category_detail.id,
                                'bandName': cate['品牌名'],
                                'bandCount': cate['品牌序号'],
                                'shopName': conf.shop
                            }
                        if data_type == '商品店铺榜-产品粒度':
                            cate_chain['subcate']['subcate'] = {
                                'itemName': itemName,
                                'cateId': category_detail.id,
                                'bandName': cate['品牌名'],
                                'bandCount': cate['品牌序号'],
                                'productName': cate['产品名'],
                                'productCount': cate['品牌序号'],
                                'shopName': conf.shop
                            }
                    except Exception as e:
                        logger.error("通过品牌名%s获取id失败%s" %
                                     (itemName, category_detail.id) + str(e))
                    cate_chain['depth'] = 3
                chain_list.append(cate_chain)
                session.close()
        return chain_list
예제 #7
0
 def get_all(self):
     session = Dto(self.__sql_address__)
     cates = session.query(SycmCategory).all()
     session.close()
     return cates