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)
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)