def collect_renew_nicks( start_time, end_time, article_code_list=['ts-1796606', 'ts-1797607', 'ts-1817244']): """收集所有某时间段内过期但未续费的用户""" user_orders = {} article_nicks = {} for article_code in article_code_list: article_nicks[article_code] = [] all_order = OrderDBService.get_all_orders_list() for order in all_order: if order['article_code'] not in article_code_list: continue key = (order['nick'], order['article_code']) if not user_orders.has_key(key): user_orders[key] = [] user_orders[key].append(order) for key in user_orders.keys(): orders = user_orders[key] orders.sort(key=lambda order: order['order_cycle_start']) for i in range(len(orders)): order = orders[i] deadline = order['order_cycle_end'] if deadline >= start_time and deadline <= end_time: if i == len(orders) - 1: article_nicks[order['article_code']].append(order['nick']) break elif deadline > end_time: break return article_nicks
def collect_renew_nicks(start_time, end_time, article_code_list=['ts-1796606', 'ts-1797607', 'ts-1817244']): """收集所有某时间段内过期但未续费的用户""" user_orders = {} article_nicks = {} for article_code in article_code_list: article_nicks[article_code] = [] all_order = OrderDBService.get_all_orders_list() for order in all_order: if order['article_code'] not in article_code_list: continue key = (order['nick'], order['article_code']) if not user_orders.has_key(key): user_orders[key] = [] user_orders[key].append(order) for key in user_orders.keys(): orders = user_orders[key] orders.sort(key=lambda order:order['order_cycle_start']) for i in range(len(orders)): order = orders[i] deadline = order['order_cycle_end'] if deadline >= start_time and deadline <= end_time: if i == len(orders) - 1: article_nicks[order['article_code']].append(order['nick']) break elif deadline > end_time: break return article_nicks
def collect_online_info(self): """获取用户数据中心信息""" #获取所有用户 all_shop = ShopDBService.get_all_shop_list() self.nick_shop = {} for shop in all_shop: self.nick_shop[shop['nick']] = shop #获取所有退款 all_refund = RefundDBService.get_all_refunds_list() refund_list = [refund['order_id'] for refund in all_refund] #获取所有订单 all_order = OrderDBService.get_all_orders_list() self.user_order = {} order_flag = False order_time = datetime.datetime.combine( datetime.date.today() - datetime.timedelta(days=1), datetime.time()) for order in all_order: if not order_flag and order['occur_time'] >= order_time: order_flag = True if not order['article_code'] in self.article_code_list: continue if order['order_id'] in refund_list: continue key = order['nick'] + order['article_code'] old_order = self.user_order.get( key, {'order_cycle_start': datetime.datetime(2011, 1, 1, 0, 0)}) if order['order_cycle_start'] > old_order['order_cycle_start']: self.user_order[key] = order if not order_flag: send_sms('13738141586', str(order_time) + '的订单没有抓取成功') #获取所有服务支持 all_support = SupportDBService.get_all_supports_list() self.user_supports = {} for support in all_support: if not support['article_code'] in self.article_code_list: continue key = support['nick'] + support['article_code'] if not self.user_supports.has_key(key): self.user_supports[key] = [] self.user_supports[key].append(support) #nick_worker存放 需要修改的客户客服关系 后期 取消 self.nick_worker = {} for line in file(CURRENT_DIR + 'data/worker_nick.csv'): line_data = line.split(',') worker_id = int(line_data[0]) nick = (line_data[1].split('\n'))[0].decode('utf-8') self.nick_worker[nick] = worker_id
def collect_online_info(self): """获取用户数据中心信息""" #获取所有用户 all_shop = ShopDBService.get_all_shop_list() self.nick_shop = {} for shop in all_shop: self.nick_shop[shop['nick']] = shop #获取所有退款 all_refund = RefundDBService.get_all_refunds_list() refund_list = [refund['order_id'] for refund in all_refund] #获取所有订单 all_order = OrderDBService.get_all_orders_list() self.user_order = {} order_flag = False order_time = datetime.datetime.combine(datetime.date.today()-datetime.timedelta(days=1), datetime.time()) for order in all_order: if not order_flag and order['occur_time'] >= order_time: order_flag = True if not order['article_code'] in self.article_code_list: continue if order['order_id'] in refund_list: continue key = order['nick'] + order['article_code'] old_order = self.user_order.get(key, {'order_cycle_start':datetime.datetime(2011, 1, 1, 0, 0)}) if order['order_cycle_start'] > old_order['order_cycle_start']: self.user_order[key] = order if not order_flag: send_sms('13738141586',str(order_time)+'的订单没有抓取成功') #获取所有服务支持 all_support = SupportDBService.get_all_supports_list() self.user_supports = {} for support in all_support: if not support['article_code'] in self.article_code_list: continue key = support['nick'] + support['article_code'] if not self.user_supports.has_key(key): self.user_supports[key] = [] self.user_supports[key].append(support) #nick_worker存放 需要修改的客户客服关系 后期 取消 self.nick_worker = {} for line in file(CURRENT_DIR+'data/worker_nick.csv'): line_data = line.split(',') worker_id = int(line_data[0]) nick = (line_data[1].split('\n'))[0].decode('utf-8') self.nick_worker[nick] = worker_id
def collect_online_info(self): """获取用户数据中心信息""" logger.info('start collect_online_info') #获取所有用户 all_shop = ShopDBService.get_all_shop_list() self.nick_shop = {} for shop in all_shop: self.nick_shop[shop['nick']] = shop logger.info('finish collect shop info') #获取所有订单 all_order = OrderDBService.get_all_orders_list() logger.info('finish collect order info') self.user_orders = {} for order in all_order: key = (order['nick'], order['article_code']) if not self.user_orders.has_key(key): self.user_orders[key] = [] self.user_orders[key].append(order) logger.info('finish arrange order info') #获取所有退款 all_refund = RefundDBService.get_all_refunds_list() refund_list = [refund['order_id'] for refund in all_refund] logger.info('finish collect refund info') for key in self.user_orders.keys(): real_orders = [] orders = self.user_orders[key] orders.sort(key=lambda order:order['order_cycle_start']) for i in range(len(orders)): order = orders[i] if int(order['total_pay_fee']) > 500: if i < len(orders) - 1: next_order = orders[i+1] if int(next_order['total_pay_fee']) <= 500 and next_order['biz_type'] == 2: order['order_cycle_end'] = next_order['order_cycle_end'] real_orders.append(order) self.user_orders[key] = real_orders logger.info('finish collect_online_info')
def sample_award(number): """抽奖程序""" all_order = OrderDBService.get_orders_between_time(datetime.datetime(2013,5,20), datetime.datetime(2013,5,26)) all_nick = set([]) for order in all_order: if order['article_code'] != 'ts-1796606': continue if str(order['order_cycle']) in ['1个月', '0个月']: continue all_nick.add(order['nick']) nick_list = list(all_nick) award_nick = random.sample(nick_list, number) for nick in award_nick: shop = ShopDBService.get_shop_by_nick(nick) if not shop or not shop.get('worker_id'): print nick + ',' + 'null' else: print nick + ',' + WORKER_DICT[shop['worker_id']]
def sample_award(number): """抽奖程序""" all_order = OrderDBService.get_orders_between_time( datetime.datetime(2013, 5, 20), datetime.datetime(2013, 5, 26)) all_nick = set([]) for order in all_order: if order['article_code'] != 'ts-1796606': continue if str(order['order_cycle']) in ['1个月', '0个月']: continue all_nick.add(order['nick']) nick_list = list(all_nick) award_nick = random.sample(nick_list, number) for nick in award_nick: shop = ShopDBService.get_shop_by_nick(nick) if not shop or not shop.get('worker_id'): print nick + ',' + 'null' else: print nick + ',' + WORKER_DICT[shop['worker_id']]