def comp_inform_infl(request): """ 企业相关资讯影响力 :param request: :return: """ comp_id = request.POST.get("comp_id", 2) start_time = request.GET.get("start_time", common.default_start_time) end_time = request.GET.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(comp_id)) tal_infl_dict = mongo_data.get_tal_infl(data_sour_id_list, paras=settings.MONGO_PARA, start_time=start_time, end_time=end_time) tal_usr_def_infl = tal_infl_dict["tal_usr_def_infl"] tal_usr_def_neg_infl = tal_infl_dict["tal_usr_def_neg_infl"] contents = { "tal_usr_def_infl": tal_usr_def_infl, "tal_usr_def_neg_infl": tal_usr_def_neg_infl } return JsonResponse(contents)
def app_comt(request): """ 目标app的评论信息,星级评分统计、不同情感值统计 :param request: :return: """ app_id = request.POST.get("app_id", 2) data_sour_id_list = mysql_data.get_data_sour_id_list(int(app_id)) app_obj = source_media.AppStore(paras=settings.MONGO_PARA) app_comt_info = app_obj.get_app_comts_info( data_sour_id_list=data_sour_id_list) return JsonResponse(app_comt_info)
def pro_weibo_usr_loc(request): """ 产品相关微博用户的地区分布详情 :param request: :return: """ pro_id = request.POST.get("pro_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(pro_id)) loc_stas_dict = mongo_data.get_weibo_usr_loc_stas( data_sour_id_list, paras=settings.MONGO_PARA, start_time=start_time, end_time=end_time) return JsonResponse(loc_stas_dict)
def pro_hot_med(request): """ 产品相关热门媒体排序 :param request: :return: """ pro_id = request.POST.get("pro_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(pro_id)) hot_med_sort_list = mongo_data.get_hot_med_sort_list( data_sour_id_list, paras=settings.MONGO_PARA, start_time=start_time, end_time=end_time)[:10] contents = {"hot_med_sort_list": hot_med_sort_list} return JsonResponse(contents)
def app_bd_info(request): """ 显示本应用最后一次出现在任意榜单的时间 目标app榜单信息,以及目标app在榜单的前后app名称 :param request: :return: """ app_id = request.POST.get("app_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(app_id)) app_obj = source_media.AppStore(paras=settings.MONGO_PARA) app_bd_info_obj = app_obj.get_app_bd_info_obj( data_sour_id_list=data_sour_id_list, start_time=start_time, end_time=end_time) return JsonResponse(app_bd_info_obj)
def event_propagation_trace(request): """ 事件传播轨迹 :param request: :return: """ event_id = request.POST.get("event_id", 2) start_time = request.GET.get("start_time", common.default_start_time) end_time = request.GET.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(event_id)) sort_dif_news_objs = mongo_data.get_sort_news_objs_list( data_sour_id_list, paras=settings.MONGO_PARA, start_time=start_time, end_time=end_time) contents = {"sort_dif_news_objs": sort_dif_news_objs[:5]} return JsonResponse(contents)
def inform_list(request): """ 根据不同的公司,产品,事件选项得到排序后的新闻对象列表 :param request: :return: """ comp_id = request.POST.get("comp_id", 2) # product_id = request.POST.get("product_id", 2) # event_id = request.POST.get("event_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(comp_id)) get_sort_news_objs_list = mongo_data.get_sort_news_objs_list(data_sour_id_list, paras=settings.MONGO_PARA, start_time=start_time, end_time=end_time)[:5] contents = {"get_sort_news_objs_list": get_sort_news_objs_list} return JsonResponse(contents)
def pro_data_stas(request): """ 产品相关各个媒体的影响力统计 :param request: :return: """ pro_id = request.POST.get("pro_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(pro_id)) sour_med_ins_dict = mongo_data.get_sour_med_ins_dict( paras=settings.MONGO_PARA) sgl_med_dict = {} for key in sour_med_ins_dict: sgl_med_dict[key] = sour_med_ins_dict[key].get_infl( data_sour_id_list, start_time=start_time, end_time=end_time)["usr_def_infl"] return JsonResponse(sgl_med_dict)
def event_infl_overview(request): """ 事件相关的各个数据源的情感值影响力的比例值 :param request: :return: """ event_id = request.POST.get("event_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) data_sour_id_list = mysql_data.get_data_sour_id_list(int(event_id)) sour_med_ins_dict = mongo_data.get_sour_med_ins_dict( paras=settings.MONGO_PARA) contents = {} for key in sour_med_ins_dict: contents[key] = sour_med_ins_dict[key].get_sent_infl( data_sour_id_list=data_sour_id_list, start_time=start_time, end_time=end_time)["usr_def_sent_infl_dict"] return JsonResponse(contents)
def event_atti_stas(request): """ 媒体或用户对事件的态度统计 :param request: :return: """ event_id = request.POST.get("event_id", 2) start_time = request.GET.get("start_time", mysql_data.get_event_createtime(1)) end_time = request.GET.get("end_time", common.default_end_time) atti_type = request.POST.get("atti_type", "media") data_sour_id_list = mysql_data.get_data_sour_id_list(int(event_id)) sour_med_ins_dict = mongo_data.get_sour_med_ins_dict( paras=settings.MONGO_PARA) sent_dict = {"negative": 0, "positive": 0, "neutral": 0} if atti_type == "media": for ins in [ sour_med_ins_dict["baidu_search"], sour_med_ins_dict["weixin"] ]: objs = ins.get_sent_stas(data_sour_id_list=data_sour_id_list, start_time=start_time, end_time=end_time) for obj in objs: sent_dict[obj["_id"]] += obj["count"] if atti_type == "user": for ins in [ sour_med_ins_dict["baidu_tieba"], sour_med_ins_dict["baidu_zhidao"], sour_med_ins_dict["weibo"], sour_med_ins_dict["zhihu"] ]: objs = ins.get_sent_stas(data_sour_id_list=data_sour_id_list, start_time=start_time, end_time=end_time) for obj in objs: sent_dict[obj["_id"]] += obj["count"] return JsonResponse(sent_dict)
def comp_offi_infl(request): """ 与企业相关的包含官网、微信官网、微博官网的新闻数量, 平均阅读量、点击量、转发量 :param request: :return: """ comp_id = request.POST.get("comp_id", 2) start_time = request.POST.get("start_time", common.default_start_time) end_time = request.POST.get("end_time", common.default_end_time) # 所有企业相关的data_sour_id data_sour_id_list = mysql_data.get_data_sour_id_list(int(comp_id)) sour_med_list = ["baidu_search", "weibo", "weixin"] sour_med_ins_dict = mongo_data.get_sour_med_ins_dict( paras=settings.MONGO_PARA) avg_cli_rep_comt_dict = {} for sour_med in sour_med_list: avg_cli_rep_comt_dict[sour_med] = sour_med_ins_dict[ sour_med].get_avg_cli_rep_comt_dict(data_sour_id_list, start_time=start_time, end_time=end_time) return JsonResponse(avg_cli_rep_comt_dict)