Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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'
    )
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
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'
    )