Пример #1
0
    def get(self, request):
        num = random.randint(1, 19)
        i = value(num)
        # print(i)
        list_data = globals()[i].objects.filter()
        sample = random.sample(xrange(list_data.count()), 1)
        result = [list_data[i] for i in sample]
        enterprise = result[0].company_name

        data = {"enterprise": enterprise}

        return Response(data)
Пример #2
0
    def get(self, request):

        # 1.需要的参数【行业id,企业id】
        enterpriseid = request.GET["enterpriseid"]
        # print(enterpriseid)
        industryid = request.GET["industryid"]
        # print(industryid)
        if not industryid:
            return Response({"message": "该企业没有信息"})
        try:
            i = value(int(industryid))
            list_data = globals()[i].objects.filter(
                company_id=enterpriseid).values()
            # print(list_data)
        except:
            return Response({"code": 1})

        data = {"basic": list_data, "code": 0}
        return Response(data)
Пример #3
0
    def get(self, request):
        try:
            token = jwt_decode_handler(request.query_params['token'])

        except Exception as e:
            return Response({"token_state": False})
        monitor(token, "index/info")

        try:

            data = EnterpriseCertificationInfo.objects.filter(
                user=token["user_id"], identity_status=2).first()
        except:
            return Response({"massage": False})
        if data:
            data_info = {
                "enterprise": data.name,  # 企业名字
                "enterpriseid": data.company_id,  # 企业id
                "code": 0,  # 成功
                "industryid": data.industryid,  # 行业
                # 临时数据推荐数量和访问数量
                "identity_status": True,
                "count": data.access,  # 访问数总量
                "number": data.recommended,  # 推荐数
                "matching": 0
            }
            return Response(data_info)

        #if data.exists() == False:
        # 随机
        num = random.randint(1, 19)

        i = value(num)
        # print(i)
        list_data = globals()[i].objects.filter()
        sample = random.sample(xrange(list_data.count()), 1)

        result = [list_data[i] for i in sample]
        # 字符串类查询
        #j = num_func(num)
        #str_num = str(result[0].company_id)
        # # obj_data = globals()[j].objects.filter(company_id=result[0].company_id).first()
        #obj_data = globals()[j].objects.get(company_id=str_num)
        #obj_data.access_count += 1
        #obj_data.save()

        # 分割出所有
        kind = result[0].kind

        if kind:

            #print(kind)
            matching = kind.split("|")
            #print(matching)
            dids_list = []
            for i in matching:
                bids = Bids.objects.filter(Title__contains=i)
                for p in bids:
                    dids_list.append(p)

            data_dict = {
                "enterprise": result[0].company_name,  # 企业名字
                "enterpriseid": result[0].company_id,  # 行业id
                "code": 0,  # 成功
                "industryid": num,  # 行业
                # 临时数据推荐数量和访问数量
                "identity_status": False,
                #"count": obj_data.access_count,  # 访问数总量
                #"number": obj_data.recommended_count,  # 推荐数
                "count": 0,
                "number": 0,
                "matching": len(dids_list)
            }
            return Response(data_dict)
        data_dict = {
            "enterprise": result[0].company_name,  # 企业名字
            "enterpriseid": result[0].company_id,  # 行业id
            "code": 0,  # 成功
            "industryid": num,  # 行业
            # 临时数据推荐数量和访问数量
            "identity_status": False,
            #"count": obj_data.access_count,  # 访问数总量
            #"number": obj_data.recommended_count,  # 推荐数
            "count": 0,
            "number": 0,
            "matching": 0
        }
        return Response(data_dict)
Пример #4
0
    def get(self, request):
        # 获取用户点击的维度名称
        # 1.下链需要获取的参数
        conn = get_redis_connection("default")
        logo = request.GET["logo"]
        provinces = request.GET['provinces']
        industryid = request.GET['industryid']
        # name = request.GET['name']
        try:
            token = jwt_decode_handler(request.query_params['token'])

        except Exception as e:
            return Response({"token_state": False})
        name = token["username"]
        if logo == "down":

            try:
                # 查询行业对应的省份的所有企业返回F
                # # 参数对应的行业
                i = value(int(industryid))
                # # orm查询总数
                all_data = globals()[i].objects.filter(
                    province__startswith=provinces).filter()

            except:
                return Response({"code": 1})
            # 如果查询为空字符集
            if all_data.exists() == False:
                return Response({"code": 1})

            list_data = []
            for j in all_data:
                dict_data = {}
                if j.phone:
                    dict_data["mobile"] = j.phone[:7] + "****"

                dict_data["enterprises"] = j.company_name
                dict_data["enterprisesid"] = j.company_id
                dict_data["kind"] = j.kind

                list_data.append(dict_data)

            # # print(all_data.count())
            # if all_data.count() < 16:
            #     conn.set(name, pickle.dumps(all_data), 1024 * 500)
            #     data = {
            #         "count": all_data.count(),
            #         "enterprises_data": list_data,
            #         .
            #
            #     }
            #     return Response(data)

            conn.set(name, pickle.dumps(all_data), 1024 * 500)
            # conn.expire('name', 1024 * 500)
            sample = random.sample(xrange(all_data.count()), 16)
            result = [list_data[i] for i in sample]
            data = {
                "count": all_data.count(),
                "enterprises_data": result,
                "code": 0
            }
            # serializer = ListSerializer(all_data, many=True)
            # print(list(serializer.data))
            # 处理数据庞大返回个数
            # sample = random.sample(xrange(all_data.count()), 10)
            # result = [serializer.data[i] for i in sample]
            return Response(data)

        up_industry = request.GET['up_industry']

        try:
            # 查询行业对应的省份的所有企业返回
            # # 参数对应的行业
            i = value(int(industryid))
            # print(i)
            # # orm查询总数
            all_data = globals()[i].objects.filter(
                province__startswith=provinces,
                industry_involved=up_industry).filter()
            # print(all_data)

        except:
            return Response({"code": 1})
        # 如果查询为空字符集
        if all_data.exists() == False:
            return Response({"code": 1})

        list_data = []
        for j in all_data:
            dict_data = {}
            if j.phone:
                dict_data["mobile"] = j.phone[:7] + "****"

            dict_data["enterprises"] = j.company_name
            dict_data["enterprisesid"] = j.company_id
            dict_data["kind"] = j.kind
            list_data.append(dict_data)

        # print(all_data.count())
        # if all_data.count() < 16:
        #     conn.delete("enterprises_data")
        #     data = {
        #         "count": all_data.count(),
        #         "enterprises_data": list_data,
        #         "code": 2
        #
        #     }
        #     return Response(data)

        conn.set(name, pickle.dumps(all_data), 1024 * 500)
        # conn.expire('name', 1024 * 500)
        sample = random.sample(xrange(all_data.count()), 16)
        result = [list_data[i] for i in sample]

        data = {
            "count": all_data.count(),
            "enterprises_data": result,
            "code": 0
        }
        # serializer = ListSerializer(all_data, many=True)
        # print(list(serializer.data))
        # 处理数据庞大返回个数
        # sample = random.sample(xrange(all_data.count()), 10)
        # result = [serializer.data[i] for i in sample]
        return Response(data)
Пример #5
0
    def get(self, request):

        conn = get_redis_connection("sms_code")
        provinces = request.GET['provinces']
        industryid = request.GET['industryid']
        business = request.GET['bussiness']
        phone = request.GET["mobile"]
        try:
            token = jwt_decode_handler(request.query_params['token'])

        except Exception as e:
            return Response({"token_state": False})
        try:
            obj = EnterpriseCertificationInfo.objects.filter(
                user=token["user_id"], identity_status=2)

        except:
            return Response({"message": "查询出错"})
        if not obj:
            return Response({"message": "没有认证企业"})
        try:
            pay_obj = Top_up_Payment.objects.filter(userid=obj[0].company_id)
        except:
            return Response({"message": "error"})
        if business:
            try:
                # 查询行业对应的省份的所有企业返回F
                # # 参数对应的行业
                i = value(int(industryid))

                # # orm查询总数
                all_obj = globals()[i].objects.filter(
                    province__startswith=provinces, kind__contains=business)

            except:
                return Response({"code": 2})

            list_data = []

            for mobile in all_obj:
                # 获取对象对应的手机号
                mobile = mobile.phone
                if mobile:
                    #     2.1用正则提取手机号
                    # 提取出来的手机
                    # 匹配多个手机号
                    # "18620885204,18922440038,17603048308,13612238280"
                    new_mobile = re.findall(r"1\d{10}", mobile)

                    if new_mobile:
                        # 别遍历字符串
                        for number in new_mobile:

                            mobile = re.split(r",", number)
                            for num in mobile:

                                # 放入列表
                                list_data.append(num)
            if phone:
                list_data.append(phone)
            conn.set(token["user_id"], pickle.dumps(list_data), 600)
            count_money = len(list_data) * 0.05  # 电话号码数乘单价
            money = pay_obj[0].balance  # 用户余额
            # consumption_money = money - count_money
            data = {
                "count_money": round(count_money, 2),
                "money": money,
                "mobile_count": len(list_data),
                "company_name": obj[0].name
            }
            return Response(data)

        try:
            # 查询行业对应的省份的所有企业返回F
            # # 参数对应的行业
            i = value(int(industryid))
            # # orm查询总数
            all_obj = globals()[i].objects.filter(
                province__startswith=provinces).filter()

        except:
            return Response({"code": 2})

        list_data = []

        for mobile in all_obj:
            # 获取对象对应的手机号
            mobile = mobile.phone
            if mobile:
                #     2.1用正则提取手机号
                # 提取出来的手机
                # 匹配多个手机号
                # "18620885204,18922440038,17603048308,13612238280"
                new_mobile = re.findall(r"1\d{10}", mobile)

                if new_mobile:
                    # 别遍历字符串
                    for number in new_mobile:

                        mobile = re.split(r",", number)
                        for num in mobile:
                            # 放入列表
                            list_data.append(num)
        if phone:
            list_data.append(phone)
        print(list_data)
        conn.set(token["user_id"], pickle.dumps(list_data), 600)
        count_money = len(list_data) * 0.05  #电话号码数乘单价
        money = pay_obj[0].balance  #用户余额
        # consumption_money = money-count_money# 消费后还剩多少钱
        data = {
            "count_money": round(count_money, 2),
            "money": money,
            "mobile_count": len(list_data),
            "company_name": obj[0].name
        }
        return Response(data)
Пример #6
0
    def get(self, request):

        provinces = request.GET['provinces']

        industryid = request.GET['industryid']

        business = request.GET['business']

        if business:
            try:
                # 查询行业对应的省份的所有企业返回F
                # # 参数对应的行业
                i = value(int(industryid))

                # # orm查询总数
                all_obj = globals()[i].objects.filter(
                    province__startswith=provinces, kind__contains=business)

            except:
                return Response({"code": 2})
                # 如果查询为空字符集
            if all_obj.exists() == False:
                return Response({"code": 1})

            data_list = []
            # 遍历obj对象
            all_data_list = []
            for obj in all_obj:
                all_data_dict = {}
                mobile = obj.phone

                all_data_dict["enterprises"] = obj.company_name
                all_data_dict["kind"] = obj.kind
                all_data_dict["enterprisesid"] = obj.company_id

                if mobile:
                    #     2.1用正则提取手机号
                    all_data_dict["mobile"] = mobile[:7] + "****"
                    # 提取出来的手机
                    # 匹配多个手机号
                    # "18620885204,18922440038,17603048308,13612238280"
                    new_mobile = re.findall(r"1\d{10}", mobile)
                    data_dict = {}
                    if new_mobile:
                        # 别遍历字符
                        data_dict["mobile"] = new_mobile[0][:7] + "****"
                        data_dict["enterprises"] = obj.company_name
                        data_dict["kind"] = obj.kind
                        data_dict["enterprisesid"] = obj.company_id
                        data_list.append(data_dict)
                all_data_list.append(all_data_dict)
            if len(data_list) < 16 or len(all_data_list) < 16:
                data = {
                    "count": len(data_list),
                    "info": data_list,
                    "all_count": all_obj.count(),
                    "all_info": all_data_list
                }
                return Response(data)

            # 随机16个筛选后的数据
            sample = random.sample(xrange(len(data_list)), 16)
            result = [data_list[i] for i in sample]
            # 随机16个没有筛选的数据
            s = random.sample(xrange(len(all_data_list)), 16)
            r = [all_data_list[i] for i in s]

            data = {
                "count": len(data_list),
                "info": result,
                "all_count": all_obj.count(),
                "all_info": r
            }

            return Response(data)

        try:
            # 查询行业对应的省份的所有企业返回F
            # # 参数对应的行业
            i = value(int(industryid))
            # # orm查询总数
            all_obj = globals()[i].objects.filter(
                province__startswith=provinces).filter()

        except:
            return Response({"code": 2})
            # 如果查询为空字符集
        if all_obj.exists() == False:
            return Response({"code": 1})
        data_list = []
        #遍历obj对象
        all_data_list = []
        for obj in all_obj:

            all_data_dict = {}
            mobile = obj.phone

            all_data_dict["enterprises"] = obj.company_name
            all_data_dict["kind"] = obj.kind
            all_data_dict["enterprisesid"] = obj.company_id

            if mobile:
                all_data_dict["mobile"] = mobile[:7] + "****"
                #     2.1用正则提取手机号
                # 提取出来的手机
                # 匹配多个手机号
                # "18620885204,18922440038,17603048308,13612238280"
                new_mobile = re.findall(r"1\d{10}", mobile)
                data_dict = {}
                if new_mobile:
                    # 别遍历字符
                    data_dict["mobile"] = new_mobile[0][:7] + "****"
                    data_dict["enterprises"] = obj.company_name
                    data_dict["kind"] = obj.kind
                    data_dict["enterprisesid"] = obj.company_id
                    data_list.append(data_dict)
            all_data_list.append(all_data_dict)

        if len(data_list) < 16 or len(all_data_list) < 16:
            data = {
                "count": len(data_list),
                "info": data_list,
                "all_count": all_obj.count(),
                "all_info": all_data_list
            }

            return Response(data)
        #随机16个筛选后的数据
        sample = random.sample(xrange(len(data_list)), 16)
        result = [data_list[i] for i in sample]
        #随机16个没有筛选的数据
        s = random.sample(xrange(len(all_data_list)), 16)
        r = [all_data_list[i] for i in s]

        data = {
            "count": len(data_list),
            "info": result,
            "all_count": all_obj.count(),
            "all_info": r
        }

        return Response(data)
Пример #7
0
    def post(self, request):
        data = request.data
        # print(data)
        # 1.获取对应省份的总数电话号码
        conn = get_redis_connection("sms_code")
        i = value(data["industry"])
        # print(i)
        #     1.1查询对应的行业,省份,模糊查询主营信息
        mobile_list = []
        try:
            # 处理多个省份
            for province in data["provinces"]:
                # print(province)

                obj_data = globals()[i].objects.filter(
                    province=province, industry_involved=data["main"])

                for obj in obj_data:
                    mobile = obj.phone
                    # 2.对电话号码进行处理,只发手机号
                    if not mobile == None:
                        #     2.1用正则提取手机号
                        mobile = re.match(r"1[0-9]\d{9}$", mobile)
                        if not mobile == None:
                            mobile_list.append(mobile.group(0))

        except:
            return Response({"message": "查询出错"})
        # print(mobile_list)

        # 计算时间
        time_num = len(mobile_list) / data["limited"]
        int_time_num = math.ceil(time_num)
        # 3.按用户限定的条数做分批
        n = 0
        while n < len(mobile_list):
            # 每批数据
            list_data = mobile_list[n:n + data["limited"]]

            # 4.处理多少天的分批任务,保证每天批号不一样,可用单号标记
            order_no = str(time.strftime('%Y%m%d', time.localtime(
                time.time()))) + str(time.time()).replace('.', '')[-7:]

            obj = AutomateMessagePost()

            obj.task_id = order_no  # 单号
            obj.industry = data["industry"]  # 行业
            obj.province = data["provinces"]  # 省份
            obj.business_scope = ""  # 经营范围
            obj.filter = list_data
            obj.content = data["content"]  # 发送内容
            obj.trade_name = data["trade_name"]  # 营销名称
            obj.sending_time_setting = data["time"]  # 发送时段
            obj.amount = data["limited"]  # 发送数量
            obj.customer = data["username"]  # 发送数量
            print(obj)
            # obj.commit()
            obj.save()

            # conn.set(data["username"]+order_no,list_data,int_time_num*24*60*60)

            # 是发送了再保存还是设置的时候保存

            n += data["limited"]
        print(1111111111)