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