Exemple #1
0
def get_jielong_statistics(request, **kwargs):
    """
    数据统计-接龙统计
    :param request: activity_id,
    :return:
    """
    user_id = kwargs.get("userid")
    jielong_id = request.GET.get("jielong_id", None)
    if not jielong_id:
        code, msg = 90001, "缺少参数"
        result = {"meta": {"msg": msg, "code": code}, "results": {}}
        return JsonResponse(result, encoder=DjangoJSONEncoder)

    jielong_id = int(request.GET.get("jielong_id"))
    results = {}
    try:
        kwargs = {"jielong_id": jielong_id, "seller_id": user_id}
        jielong_json = OrderService.count_data(**kwargs)
        jielong = JieLong.objects.get(id=jielong_id)
        browse_num = jielong.browse_num
        share_num = ShareUserRelation.objects.filter(
            jielong_id=jielong_id, share_user_id=user_id).count()
        if browse_num == 0:
            rates = 0
        else:
            rates = round(jielong_json["order_num"] / browse_num * 100, 1)
        results = {
            "sequence": [{
                "label": "团购人数",
                "value": "%s" % jielong_json.get("order_user_num", 0)
            }, {
                "label": "团购订单数",
                "value": "%s" % jielong_json.get("order_num", 0)
            }, {
                "label": "浏览人数",
                "value": "%s" % browse_num
            }, {
                "label": "分享人数",
                "value": "%s" % share_num
            }, {
                "label": "转化率",
                "value": "%s" % rates + "%"
            }],
            "income": [
                {
                    "label": "订单收入",
                    "value": "%s元" % jielong_json.get("order_total_price", 0)
                },
                {
                    "label": "佣金支出",
                    "value":
                    "%s元" % jielong_json.get("order_commission_price", 0)
                },
                # {"label": "佣金支出", "value": "%s元" % jielong_json.get("order_commission_price", 0)},
                # {"label": "微信支付手续费(0.6%)", "value": "%s元" % jielong_json.get("order_wx_charge", 0)},
                # {"label": "净收入", "value": "%s元" % jielong_json.get("order_net_income", 0)}
            ]
        }
        logger.info("get_jielong_statistics result: %s;jielong_json: %s" %
                    (results, jielong_json))
        code, msg = 0, "success"
    except Exception as e:
        logger.info(
            "share_statictics, Exception: %s,user_id: %s, jielong_id: %s" %
            (e, user_id, jielong_id))
        code, msg = 90100, "服务器错误"
    result = {"meta": {"msg": msg, "code": code}, "results": results}
    return JsonResponse(result, encoder=DjangoJSONEncoder)
Exemple #2
0
def get_share_join_user_list(request, **kwargs):
    """
    我的分享:参与的人
    :param request: jielong_id
    :return:
    """
    user_id = kwargs.get("userid")
    pagination = Pagination(request)
    jielong_id = request.GET.get("jielong_id", None)

    if not jielong_id:
        code, msg = 2, "缺少参数"
        result = {"meta": {"msg": msg, "code": code}, "results": {}}
        return JsonResponse(result, encoder=DjangoJSONEncoder)

    jielong_id = int(jielong_id)
    jielong = JieLong.objects.get(id=jielong_id)
    inviter_id = jielong.passport_user_id
    spreader_ids, _ = CustomerService.get_my_spreaders_by_inviter_id(
        inviter_id, pagination=pagination, is_all=True)

    results, items, is_spreader = {}, [], False
    if user_id in spreader_ids:
        is_spreader = True
    logger.info(
        "share_join_users,user_id:%s; jielong_id: %s; inviter_id: inviter_id: %s; is_spreader: %s"
        % (user_id, jielong_id, inviter_id, is_spreader))

    order_list, count = OrderService.order_list(page_no=pagination.page_no,
                                                page_size=pagination.page_size,
                                                spread_user_id=user_id,
                                                jielong_id=jielong_id)
    commission_info = OrderService.count_data(spread_user_id=user_id,
                                              jielong_id=jielong_id)
    total_commssion_price = commission_info["order_commission_price"]
    total_order_num = commission_info["order_num"]
    has_next = False if len(order_list) <= pagination.page_size else True

    if len(order_list) > 0:
        for o in order_list:
            goods_info = []
            goods = o["goods"]
            if len(goods) > 0:
                for g in goods:
                    g_info = "%s(%s) x%s" % (g["title"], g["sku_desc"],
                                             g["buy_num"])
                    goods_info.append(g_info)

            items_dict = {
                "nick":
                jielong_service.get_covert_user_nickname(
                    o["user_id"], o["nickname"]),
                "avatar_url":
                jielong_service.covert_avatar_url(o["avatar_url"]),
                "create_time":
                get_time_span(o["order_time"].strftime("%Y-%m-%d %H:%M:%S")),
                "goods_info":
                goods_info,
            }
            if is_spreader:
                items_dict["commission_info"] = "奖励%s元" % o["reward_price"]
            items.append(items_dict)

    results = {
        "has_next": has_next,
        "subTitle": "%s人下单" % total_order_num,
        "items": items
    }
    if is_spreader:
        results["total_commission"] = "共获得%s元奖励" % total_commssion_price

    result = {
        "meta": {
            "msg": "success",
            "code": 0,
        },
        "results": results
    }
    logger.info("get_share_join_user_list, results: %s;" % (results))
    return JsonResponse(result, encoder=DjangoJSONEncoder)