def format_invite(objs, num): data = [] for x in objs: num += 1 user = None if x.qrcode.state == 0: user = UserBase().get_user_by_id(x.from_user_id) to_user = UserBase().get_user_by_id(x.to_user_id) data.append({ 'num': num, 'id': x.id, 'user_name': user.nick if user else x.qrcode.name, 'user_id': user.id if user else '', 'user_avatar': user.get_avatar_65() if user else '', 'to_user_name': to_user.nick if to_user else '', 'to_user_id': x.to_user_id, 'to_user_avatar': to_user.get_avatar_65() if to_user else '', 'to_user_des': to_user.des, 'create_time': str(x.create_time) }) return data
def format_info(objs, num): data = [] for x in objs: num += 1 user = UserBase().get_user_by_id(x.user_id) data.append({ 'num': num, 'id': x.id, 'user_name': user.nick if user else '', 'user_id': x.user_id, 'user_avatar': user.get_avatar_65() if user else '', 'name': x.name, 'mobile': x.mobile, 'title': x.title, 'company_name': x.company_name, 'company_short_name': x.company_short_name, 'state': x.state, 'create_time': str(x.create_time), 'update_time': str(x.update_time) }) return data
def get_statistics_commission_data(request): start_date = request.POST.get('start_date') end_date = request.POST.get('end_date') start_date, end_date = utils.get_date_range(start_date, end_date) data = {} for x in StatisticsBase().statistics_commission(start_date, end_date): key = x.company.invite_by user = UserBase().get_user_by_id(key) if not data.has_key(key): data[key] = { 'user_id': key, 'user_nick': user.nick, 'user_avatar': user.get_avatar_65(), 'total_price': 0, 'meals': [] } # 订单金额 199以上的奖励100 其他奖励50 temp_price = 100 if x.price >= 199 else 50 data[key]['total_price'] += temp_price data[key]['meals'].append({ 'company_name': x.company.name, 'company_short_name': x.company.short_name, 'meal_name': x.name, 'meal_price': str(x.price), 'date': str(x.company.sale_date)[:10], 'user_nick': user.nick, 'price': str(temp_price) }) for x in data.values(): x['total_price'] = str(x['total_price']) return HttpResponse( json.dumps(data.values()), mimetype='application/json' )
def format_active(objs, num): data = [] for x in objs: num += 1 user = UserBase().get_user_by_id(x.user_id) data.append({ 'num': num, 'id': x.id, 'name': user.nick if user else '', 'avatar': user.get_avatar_65() if user else '', 'gender': user.get_gender_display() if user else '', 'des': user.des if user else '', 'ip': x.ip, 'last_active_time': str(x.last_active_time), 'last_active_source': x.get_last_active_source_display() }) return data
def format_feeds_by_id(self, feed_ids): from www.question.interface import QuestionBase, AnswerBase from www.stock.interface import StockFeedBase feeds = [] for feed_id in feed_ids: feed = self.get_feed_by_id(feed_id) dict_feed = dict(feed_id=feed.id, create_time=feed.create_time.strftime('%Y-%m-%d %H:%M:%S'), feed_type=feed.feed_type) if feed.source == 0: # 用户产生的动态 user = UserBase().get_user_by_id(feed.user_id) obj_info = dict(user_id=feed.user_id, user_avatar=user.get_avatar_65(), user_nick=user.nick) if feed.feed_type in (1,): obj_info.update(QuestionBase().get_question_summary_by_id(feed.obj_id)) elif feed.feed_type in (2, 3): obj_info.update(AnswerBase().get_answer_summary_by_id(feed.obj_id)) if feed.source == 1: # 股票产生的动态 obj_info = StockFeedBase().get_stock_feed_summary_by_id(feed.obj_id) dict_feed.update(obj_info) feeds.append(dict_feed) return feeds
def format_invite_user(self, show_invite_users, invited_users): from www.custom_tags.templatetags.custom_filters import str_display show_invite_users_json = [] invited_users_json = [] invited_user_ids = [iu.to_user_id for iu in invited_users] for siu in show_invite_users: user = UserBase().get_user_by_id(siu.user_id) show_invite_users_json.append(dict(user_id=user.id, user_nick=user.nick, user_avatar=user.get_avatar_65(), gender=user.gender, user_des=str_display((user.des or '').strip(), 17), is_invited=siu.user_id in invited_user_ids)) for iu in invited_users: invited_users_json.append(dict(user_id=iu.to_user_id, user_nick=UserBase().get_user_by_id(iu.to_user_id).nick)) return show_invite_users_json, invited_users_json
def get_statistics_sale_top_data(request): start_date = request.POST.get('start_date') end_date = request.POST.get('end_date') start_date, end_date = utils.get_date_range(start_date, end_date) # 获取所有销售人员列表 sale_man_dict = {} for x in SaleManBase().get_all_sale_man(True): user = UserBase().get_user_by_id(x.user_id) sale_man_dict[x.user_id] = { 'sale_by_id': x.user_id, 'sale_by_nick': user.nick, 'sale_by_avatar': user.get_avatar_65(), 'total': 0, 'meals': [], 'companys': [] } # 获取符合条件的销售数据 data = {} objs = StatisticsBase().statistics_sale(start_date, end_date) for x in objs: key = x.company.sale_by if not data.has_key(key): user = UserBase().get_user_by_id(key) data[key] = { 'sale_by_id': key, 'sale_by_nick': user.nick, 'sale_by_avatar': user.get_avatar_65(), 'total': 0, 'meals': [], 'companys': [] } data[key]['total'] += x.get_expect_price_per_month(start_date, end_date, x.company.sale_date) data[key]['meals'].append({ 'meal_name': x.name, 'company_name': x.company.name, 'sale_date': str(x.company.sale_date)[:10], 'cycle': x.cycle, 't_type': x.get_t_type_display(), 'price': str(x.price), 'expect_price': str(x.get_expect_price_per_month(start_date, end_date, x.company.sale_date)) }) data[key]['companys'].append(x.company.id) # 合并数据 sale_man_dict.update(data) data = sale_man_dict.values() data.sort(key=lambda x: x['total'], reverse=True) # 获取最大的销售额,用于计算比率 max_total = data[0]['total'] if data else 0 all_company = 0 all_total = 0 for x in data: # 计算比率 x['rate'] = round(x['total'] / max_total * 100, 1) if max_total != 0 else 0 # 转json all_total += x['total'] x['total'] = str(x['total']) if x['total'] > 0 else '0' # 计算总公司 x['companys'] = len(set(x['companys'])) all_company += x['companys'] average_company = round(all_total / (all_company or 1 ), 1) average_company = str(average_company) all_total = str(all_total) return HttpResponse( json.dumps({'data': data, 'all_total': all_total, 'all_company': all_company, 'average_company': average_company}), mimetype='application/json' )