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()
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
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
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
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
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
def get_all(self): session = Dto(self.__sql_address__) cates = session.query(SycmCategory).all() session.close() return cates