def get_permissions(request): response = Response.ResponseObj() token = request.GET.get('token') user_objs = models.UserProfile.objects.filter(token=token) if user_objs: user_obj = user_objs[0] if user_obj.role: role_obj = models.Role.objects.filter(id=user_obj.role_id) data_list = [] for i in role_obj[0].permissions.all(): data_list.append(i.name) user_info = { 'id': user_obj.id, 'username': user_obj.username, 'role_id': user_obj.role_id, 'role_name': user_obj.role.name, 'create_datetime': user_obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'), 'head_portrait': user_obj.head_portrait, # 'create_user_id': user_obj.create_user_id, # 'create_user': user_obj.create_user.username } response.code = 200 response.msg = '查询成功' response.data = { 'data_list': data_list, 'user_info': user_info, } response.note = { 'user_info, 用户信息': { 'id': '用户ID', 'username': '******', 'role_id': '角色ID', 'role_name': '角色名称', 'create_datetime': '用户创建时间', 'head_portrait': '头像', }, 'data_list': '权限列表' } else: response.code = 301 response.msg = '未设置角色' else: response.code = 301 response.msg = '非法用户' return JsonResponse(response.__dict__)
def upload_small_program_code(self, data): url = 'https://openapi.baidu.com/rest/2.0/smartapp/package/upload' whether_audit = True if not data.get('whether_audit'): whether_audit = False ext_json = { "extEnable": True, "extAppid": data.get('appid'), "directCommit": whether_audit, "ext": { 'template_id': data.get('id'), # 小程序ID 查询改小程序模板 # 'user_id': 4, # 'token': 'f0b813db005dd5273cd9d6129c75fc4c', 'user_id': data.get('user_id'), 'token': data.get('user_token'), }, # "window": { # 用于设置 SWAN 的状态栏、导航条、标题、窗口背景色。 # "backgroundTextStyle": "light", # "navigationBarBackgroundColor": "#fff", # "navigationBarTitleText": "Demo", # "navigationBarTextStyle": "black" # }, # "tabBar": { # 用于设置客户端底部的tab栏:可通过tabBar设置tab的颜色、个数、位置、背景色等内容。 # }, "networkTimeout": { # 网络超时 # "request": 20000, # "downloadFile": 20000 } } post_data = { 'access_token': data.get('token'), 'template_id': data.get('template_id'), 'ext_json': json.dumps(ext_json), # ext 'user_version': data.get('version'), # 版本号 'user_desc': data.get('version'), # 描述 } print('ext_json-------------------------------------> ', 'post_data-----------> ', post_data) response = Response.ResponseObj() ret = requests.post(url, data=post_data) print('r未授权的小程序账号上传小程序代码et.json()------------> ', ret.json()) code = 301 if ret.json().get('errno') in [0, '0']: code = 200 msg = ret.json().get('msg') response.code = code response.msg = msg return response
def article_oper(request, oper_type): response = Response.ResponseObj() # 获取分类 if oper_type == 'get_classify': now = datetime.datetime.today() q = Q() q.add( Q(last_update_time__isnull=True) | Q(last_update_time__lt=now), Q.AND) objs = models.Classify.objects.filter(q, create_user__isnull=True) ret_data = {} if objs: obj = objs[0] ret_data['id'] = obj.id ret_data['name'] = obj.name obj.last_update_time = now obj.save() response.code = 200 response.data = ret_data # 判断库里是否有该文章 elif oper_type == 'is_there_article': title = request.GET.get('title') q = Q() q.add(Q(title=title) & Q(create_user__isnull=True), Q.AND) objs = models.Article.objects.filter(q) print('objs-----> ', objs, title) flag = True if objs: flag = False response.data = flag # 获取链接 加入文章 elif oper_type == 'get_url_add_article': url = request.GET.get('url') classify_id = request.GET.get('classify_id') data = get_article(url) title = data.get('title') # 标题 content = json.dumps(data.get('content')) # 标题 objs = models.Article.objects.filter(title=title) if not objs: if len(content) > 20 and title: add_article_public(data, classify_id) return JsonResponse(response.__dict__)
def small_procedure_review_withdrawal(self, package_id, token): url = 'https://openapi.baidu.com/rest/2.0/smartapp/package/withdraw?access_token={}'.format( token) post_data = {'package_id': package_id} ret = requests.post(url, data=post_data) response = Response.ResponseObj() code = 301 msg = ret.json().get('error_msg') if not msg: msg = ret.json().get('msg') if ret.json().get('errno') in [0, '0']: code = 200 response.code = code response.msg = msg return response
def show_api_log_oper(request, oper_type, o_id): response = Response.ResponseObj() if request.method == "GET": if oper_type == "showLog": # o_id 要获取的项目id lineNum = request.GET.get( 'lineNum') # 表示要获取从多少行开始的数据,如果该值为0,则表示首次获取 filterKeyWorld = request.GET.get('filterKeyWorld') # 匹配过滤条件 form_data = {"lineNum": lineNum, "filterKeyWorld": filterKeyWorld} # form 验证 forms_obj = ShowLogForm(form_data) if forms_obj.is_valid(): lineNum = forms_obj.cleaned_data.get('lineNum') filterKeyWorld = forms_obj.cleaned_data.get('filterKeyWorld') # print("lineNum --->", type(lineNum)) objs = models.showApiLog.objects.filter(id=o_id) if objs: obj = objs[0] tgt = obj.tgt logPath = obj.logPath response.data = salt_api_showApiLog( lineNum, tgt, logPath, filterKeyWorld) # lineNum += 10 # response.data = { # 'lineNum': lineNum, # 'logData': ['{lineNum}fdsafdafdas'.format(lineNum=lineNum)] # } response.code = 200 response.msg = "查询成功" else: response.code = 302 response.msg = "查询ID不存在" else: print("验证不通过") # print(forms_obj.errors) response.code = 301 # print(forms_obj.errors.as_json()) response.msg = json.loads(forms_obj.errors.as_json()) else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def userIntegralOper(request, oper_type, o_id): response = Response.ResponseObj() user_id = request.GET.get('user_id') if request.method == "POST": # 调用支付二维码 if oper_type == 'callTheDrCode': print('========================') # 添加用户积分 if oper_type == "addUserIntegral": pass else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def compoment_library_oper(request, oper_type, o_id): response = Response.ResponseObj() user_id = request.GET.get('user_id') if request.method == "POST": # 添加 if oper_type == "add": form_data = { 'create_user_id': user_id, 'name': request.POST.get('name'), 'compoment_library_class_id': request.POST.get('compoment_library_class_id'), 'data': request.POST.get('data'), } print('form_data -->', form_data) # 创建 form验证 实例(参数默认转成字典) forms_obj = AddForm(form_data) if forms_obj.is_valid(): print("验证通过") obj = models.CompomentLibrary.objects.create( **forms_obj.cleaned_data) response.code = 200 response.msg = "添加成功" response.data = {'testCase': obj.id} else: print("验证不通过") response.code = 301 response.msg = json.loads(forms_obj.errors.as_json()) elif oper_type == "delete": # 删除 ID objs = models.CompomentLibrary.objects.filter(id=o_id) if objs: objs.update(is_delete=True) response.code = 200 response.msg = "删除成功" else: response.code = 302 response.msg = '删除ID不存在' else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def last_active_time(request): response = Response.ResponseObj() try: now = datetime.datetime.today() stop_Yesterday = (now - datetime.timedelta(days=1)) start_Yesterday = (now - datetime.timedelta(days=1, minutes=5)) # 最后活跃时间 至当前 差5分钟 满24小时 objs = models.Userprofile.objects.filter( openid__isnull=False, last_active_time__isnull=False, is_send_msg=0, # 未发送过消息的 ) for obj in objs: last_active_time = obj.last_active_time if last_active_time >= start_Yesterday and last_active_time <= stop_Yesterday: obj.is_send_msg = 1 obj.save() print('----------------e----马上超过24小时, 发送消息', obj.id) emj = caidai + xiajiantou + caidai post_data = { "touser": obj.openid, "msgtype": "text", "text": { "content": """天眼将暂停为您推送消息!\n微信限制于超过24小时未互动,公众号则不能发送消息{}\n快来点击下方获客文章解除限制吧!!\n{}""".format( nanshou, emj ) } } data = get_ent_info(obj.id) weixin_objs = WeChatApi(data) # 发送客服消息 post_data = bytes(json.dumps(post_data, ensure_ascii=False), encoding='utf-8') weixin_objs.news_service(post_data) response.code = 200 else: continue except Exception as e: msg = '警告:{}, \n错误:{}, \n时间:{}'.format( 'celery_活跃即将超时发送消息报错---警告', e, datetime.datetime.today() ) celery_error_warning(msg) return JsonResponse(response.__dict__)
def get_permissions(request): response = Response.ResponseObj() token = request.GET.get('token') user_objs = models.UserProfile.objects.filter(token=token) if user_objs: user_obj = user_objs[0] role_obj = models.Role.objects.filter(id=user_obj.role_id_id) data_list = [] for i in role_obj[0].permissions.all(): if i.pid: data_list.append(i.pid.name) data_list.append(i.name) user_info = { 'id': user_obj.id, 'username': user_obj.username, 'role_id': user_obj.role_id_id, 'role_name': user_obj.role_id.name, 'create_datetime': user_obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'), 'head_portrait': user_obj.head_portrait, 'status_id': user_obj.status, 'status': user_obj.get_status_display(), 'create_user_id': user_obj.create_user_id, 'create_user': user_obj.create_user.username } response.code = 200 response.msg = '查询成功' response.data = { 'data_list': data_list, 'user_info': user_info, } else: response.code = 301 response.msg = '非法用户' return JsonResponse(response.__dict__)
def abnormal_number_columns(request): response = Response.ResponseObj() if request.method == 'POST': pass else: exclude_list = [22, 10, 6] yidongshebei_num = models.XiaohongshuPhone.objects.filter( name__isnull=False, status=2).exclude(id__in=exclude_list).exclude( is_debug=True).count() biji_num = models.XiaohongshuBiji.objects.filter(status=3).count() huifupinglun_num = models.commentResponseForm.objects.filter( comment_completion_time__isnull=True).count() sixin_num = models.XiaohongshuDirectMessagesReply.objects.filter( status=1).count() delete_little_num = models.littleRedBookReviewForm.objects.filter( delete=2).count() unregistered_num = models.XiaohongshuUserProfileRegister.objects.filter( is_register=False).count() response.code = 200 response.msg = '查询成功' response.data = { 'yidongshebei_num': yidongshebei_num, 'biji_num': biji_num, 'huifupinglun_num': huifupinglun_num, 'sixin_num': sixin_num, 'delete_little_num': delete_little_num, 'unregistered_num': unregistered_num, } response.note = { 'yidongshebei_num': '移动设备异常总数', 'biji_num': '笔记异常总数', 'huifupinglun_num': '待回复评论总数', 'delete_little_num': '待删除的评论总数', 'sixin_num': '待回复私信总数', 'unregistered_num': '未注册数量', } return JsonResponse(response.__dict__)
def my_business_card_oper(request, oper_type): response = Response.ResponseObj() user_id = request.GET.get('user_id') if request.method == 'POST': # 修改 名片简介 if oper_type == 'update_introduction': introduction = request.POST.get('introduction') models.Userprofile.objects.filter(id=user_id).update(introduction=introduction) response.code = 200 response.msg = '修改成功' else: response.code = 402 response.msg = '请求异常' return JsonResponse(response.__dict__)
def show_api_log(request): response = Response.ResponseObj() if request.method == "GET": objs = models.showApiLog.objects.all() print('objs -->', objs) ret_data = [] for obj in objs: ret_data.append({"id": obj.id, "name": obj.name}) response.code = 200 response.msg = '查询成功' response.data = { 'ret_data': ret_data, } return JsonResponse(response.__dict__)
def html_oper(request, oper_type): response = Response.ResponseObj() user_id = request.GET.get('user_id') # 用户ID if oper_type == 'zhengnengliang': pass # posters = request.GET.get('posters') # 海报ID # posters_objs = models.Posters.objects.get(id=posters) # img_path = posters_objs.posters_url # # user_obj = models.Userprofile.objects.get(id=user_id) # # img_url = img_path.split(host_url)[1] # 切除域名 # image = Image.open(img_url).convert('RGBA') # color = image_color_recognition(image) # 识别图片颜色 给出对应文字颜色 # print('b64decode(user_obj.name)----------> ', b64decode(user_obj.name)) # # color = (0,0,0) # data = { # 'img_path': img_path, # 'name': b64decode(user_obj.name), # 'phone': user_obj.phone_number, # 'set_avator': user_obj.set_avator, # 'color': color, # } # print('data====----> ', data) # return render(request, 'zhengnengliang.html', locals()) elif oper_type == 'tuiguang': data = get_ent_info(user_id) weichat_api_obj = WeChatApi(data) qc_code_url = weichat_api_obj.generate_qrcode( {'inviter_user_id': user_id}) print(qc_code_url) expire_date = (datetime.datetime.now().date() + datetime.timedelta(days=30)).strftime("%Y-%m-%d") data = { 'qc_code_url': qc_code_url, 'expire_date': expire_date, 'user_name': data.get('user_name'), # 用户名称 'user_set_avator': data.get('user_set_avator'), # 头像 } return render(request, 'tuiguang.html', locals()) return JsonResponse(response.__dict__)
def img_merge(request): response = Response.ResponseObj() forms_obj = imgMergeForm(request.POST) if forms_obj.is_valid(): img_name = forms_obj.cleaned_data.get('img_name') # 图片名称 timestamp = forms_obj.cleaned_data.get('timestamp') # 时间戳 chunk_num = forms_obj.cleaned_data.get('chunk_num') # 一共多少份 expanded_name = img_name.split('.')[-1] # 扩展名 picture_type = request.POST.get('picture_type') # 图片的类型 (1, '产品封面的图片'), (2, '产品介绍的图片') img_name = timestamp + '.' + expanded_name img_source = forms_obj.cleaned_data.get('img_source') # user_photo 代表用户上传的照片 user_avtor 代表用户的头像。 print('-----img_source----->', img_source) file_dir = os.path.join('statics', 'imgs') fileData = '' for chunk in range(chunk_num): file_name = timestamp + "_" + str(chunk) + '.' + expanded_name file_save_path = os.path.join('statics', 'imgs', file_name) with open(file_save_path, 'r') as f: fileData += f.read() os.remove(file_save_path) # user_id = request.GET.get('user_id') img_path = os.path.join(file_dir, img_name) # img_save_path = os.path.join(BasePath, img_path) file_obj = open(img_path, 'ab') img_data = base64.b64decode(fileData) file_obj.write(img_data) # obj = models.zgld_user_photo.objects.create(user_id=user_id, photo_url=img_path,photo_type=2) # 用户名片头像 response.data = { 'picture_url': img_path, } response.code = 200 response.msg = "添加图片成功" else: response.code = 303 response.msg = "上传异常" response.data = json.loads(forms_obj.errors.as_json()) return JsonResponse(response.__dict__)
def updatePassword(request, oper_type, o_id): response = Response.ResponseObj() if request.method == "POST": user_id = request.GET.get('user_id') if oper_type == "update": if user_id: form_data = { 'newPwd': request.POST.get('newPwd'), 'oldPwd': request.POST.get('oldPwd') } userObjs = models.userprofile.objects.filter(id=user_id) forms_obj = UpdateForm(form_data) if userObjs: if forms_obj.is_valid(): oldPwd = forms_obj.cleaned_data.get('oldPwd') if oldPwd != forms_obj.cleaned_data.get('newPwd'): md5OldPwd = account.str_encrypt(oldPwd) if md5OldPwd == userObjs[0].password: md5NewPwd = account.str_encrypt( forms_obj.cleaned_data.get('newPwd')) userObjs.update(password=md5NewPwd) response.code = 200 response.msg = "修改成功" else: response.code = 402 response.msg = '原始密码错误,请重新输入!' else: response.code = 402 response.msg = '两次输入密码一样!' else: print("验证不通过") # print(forms_obj.errors) response.code = 301 # print(forms_obj.errors.as_json()) response.msg = json.loads(forms_obj.errors.as_json()) else: response.code = 402 response.msg = '未查询到此用户!' else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def letter_operation(request, oper_type): response = Response.ResponseObj() if oper_type == 'js_sdk_permissions': user_id = request.GET.get('user_id') inviter_user_id = request.GET.get('inviter_user_id') if inviter_user_id: user_id = inviter_user_id data = get_ent_info(user_id) weixin_obj = weixin_gongzhonghao_api.WeChatApi(data) response.code = 200 response.msg = '查询成功' response.data = {'data': weixin_obj.get_signature()} response.note = { 'signature': 'signature', 'timestamp': '时间戳', 'noncestr': '随机值(32位)', 'appid': 'appid', } return JsonResponse(response.__dict__)
def release_approved_applet(self, package_id, token): url = 'https://openapi.baidu.com/rest/2.0/smartapp/package/release?access_token={}'.format( token) post_data = { 'package_id': package_id, } print('package_id=------------------------------------------> ', package_id) ret = requests.post(url, data=post_data) print('r发布已审核的小程序et.json()--------------------> ', ret.json()) response = Response.ResponseObj() code = 301 msg = ret.json().get('error_msg') if not msg: msg = ret.json().get('msg') if ret.json().get('errno') in [0, '0']: code = 200 response.code = code response.msg = msg return response
def gets_the_template_draft_list(self, page, page_size): url = 'https://openapi.baidu.com/rest/2.0/smartapp/template/gettemplatedraftlist' params = { 'access_token': self.access_token, 'page': page, 'page_size': page_size } ret = requests.get(url, params=params) print('获取模板草稿列表-------------------> ', ret.json()) response = Response.ResponseObj() code = 301 msg = ret.json().get('error_msg') if not msg: msg = ret.json().get('msg') if ret.json().get('errno') in [0, '0']: code = 200 response.code = code response.msg = msg response.data = ret.json().get('data') return response
def submit_approval_authorized_mini_program(self, data): url = 'https://openapi.baidu.com/rest/2.0/smartapp/package/submitaudit?access_token={}'.format( data.get('token')) post_data = { 'content': data.get('content'), # 送审描述 'package_id': data.get('package_id'), # 代码包id 'remark': data.get('remark'), # 备注 } ret = requests.post(url, data=post_data) print('ret.json(), post_data----------------------> ', ret.json(), post_data) response = Response.ResponseObj() code = 301 msg = ret.json().get('error_msg') if not msg: msg = ret.json().get('msg') if ret.json().get('errno') in [0, '0']: code = 200 response.code = code response.msg = msg return response
def switch_nginx_huidu_ip(request): response = Response.ResponseObj() if request.method == "GET": print('os.getcwd()-->', os.getcwd()) print('request.META -->', request.META) old_ip = json.loads( open( os.path.join( os.getcwd() + '/api/data/switch_nginx_huidu_ip.json')).read())['ip'] if request.META.get('HTTP_X_FORWARDED_FOR'): new_ip = request.META['HTTP_X_FORWARDED_FOR'] else: new_ip = request.META['REMOTE_ADDR'] response.code = 200 response.data = {'new_ip': new_ip, 'old_ip': old_ip} response.msg = "获取成功" return JsonResponse(response.__dict__)
def get_userinfo(request): response = Response.ResponseObj() if request.method == "GET": token = request.GET.get('token') objs = models.UserProfile.objects.filter(token=token) if objs: obj = objs[0] response.code = 200 response.data = { 'id': obj.id, 'username': obj.username, 'head_portrait': obj.head_portrait } else: response.code = 402 response.msg = "token异常" else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def login(request): response = Response.ResponseObj() if request.method == "POST": # print('request.POST -->', request.POST) forms_obj = LoginForm(request.POST) if forms_obj.is_valid(): # print('forms_obj.cleaned_data -->', forms_obj.cleaned_data) objs = models.UserProfile.objects.select_related('role_id').filter( **forms_obj.cleaned_data) if objs: obj = objs[0] if obj.status != 1: response.code = 300 response.msg = "账号异常,请联系管理员处理" else: if not obj.token: obj.token = account.get_token(obj.password) obj.save() response.code = 200 # print(obj.role_id.id) response.data = { 'token': obj.token, 'id': obj.id, 'username': obj.username, # 'access': json.loads(obj.role_id.access_name), 'head_portrait': obj.head_portrait, 'is_update_pwd': obj.is_update_pwd, } else: response.code = 402 response.msg = "账号或密码错误" else: response.code = 401 response.msg = json.loads(forms_obj.errors.as_json()) else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def xcx_view_log_oper(request, oper_type): user_id = request.GET.get('user_id') response = Response.ResponseObj() if request.method == 'POST': pass else: # 记录日志 if oper_type == 'record_log': template_id = request.GET.get('template_id') log_type = request.GET.get('log_type', 1) source = request.GET.get('source', 1) # 1微信小程序 2百度小程序 log_data = { 'customer_id': user_id, 'template_id': template_id, 'source': source, 'log_type': log_type } if source in [1, '1']: applet_objs = models.ClientApplet.objects.filter( template_id=template_id) log_data['client_applet_id'] = applet_objs[0].id else: applet_objs = models.BaiduSmallProgramManagement.objects.filter( template_id=template_id) log_data['baidu_client_applet_id'] = applet_objs[0].id models.ViewCustomerSmallApplet.objects.create(**log_data) # 记录日志 response.code = 200 response.msg = '记录成功' else: response.code = 402 response.msg = '请求异常' return JsonResponse(response.__dict__)
def forbidden_words_oper(request, oper_type): response = Response.ResponseObj() if request.method == 'POST': # 禁词查询 if oper_type == 'forbidden_words_query': form_data = { 'forbidden_words': request.POST.get('forbidden_words') } form_obj = ForbiddenWordsQuery(form_data) if form_obj.is_valid(): data, forbidden_word = form_obj.cleaned_data.get( 'forbidden_words') response.code = 200 response.msg = '查询成功' response.data = data else: response.code = 301 response.msg = json.loads(form_obj.errors.as_json()) else: if oper_type == '': pass else: response.code = 402 response.msg = '请求异常' return JsonResponse(response.__dict__) # if __name__ == '__main__': # context = """ # 孕吐严重试试这款蜂蜜糖!没想到!怀个孕能这么难受!天天吐,不吃吐,吃也吐!机缘巧合,我在朋友圈发现了一样好东西!麦卢卡蜂蜜糖!这个蜂蜜糖对孕妇hin友好,它含有天然寡糖,不是蔗糖,也不会囤积脂肪,作为孕期健康小零食不错!那个蜂蜜糖的牌子是AUSTRALIAN BY NATURE,澳洲本土品牌,代·购说它家的蜂场在奥克兰周边的原始森林,是世界上优·质的麦卢卡蜂源地。 # """ # request_post(context)
def compoment_library(request): response = Response.ResponseObj() user_id = request.GET.get('user_id') if request.method == "GET": forms_obj = SelectForm(request.GET) if forms_obj.is_valid(): current_page = forms_obj.cleaned_data['current_page'] length = forms_obj.cleaned_data['length'] # get_type = forms_obj.cleaned_data['get_type'] # create_user_id = forms_obj.cleaned_data['create_user_id'] # print('forms_obj.cleaned_data -->', forms_obj.cleaned_data) order = 'create_datetime' field_dict = { 'compoment_library_class_id': '', 'name': '__contains', 'create_datetime': '', } q = conditionCom(request, field_dict) print('q -->', q) objs = models.CompomentLibrary.objects.select_related( 'compoment_library_class').filter( is_delete=False).filter(q).order_by(order) count = objs.count() if length != 0: start_line = (current_page - 1) * length stop_line = start_line + length objs = objs[start_line:stop_line] # 返回的数据 ret_data = [] for obj in objs: # 将查询出来的数据 加入列表 ret_data.append({ 'id': obj.id, 'name': obj.name, 'data': obj.data, 'compoment_library_class_id': obj.compoment_library_class_id, 'compoment_library_class_name': obj.compoment_library_class.name, 'create_datetime': obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'), }) # 查询成功 返回200 状态码 response.code = 200 response.msg = '查询成功' response.data = {'ret_data': ret_data, 'data_count': count} response.note = { 'id': "组件id", 'name': "组件名称", 'data': "组件数据", 'compoment_library_class_id': "组件分类id", 'compoment_library_class_name': "组件分类名称", 'create_datetime': '创建时间', } else: response.code = 402 response.msg = "请求异常" response.data = json.loads(forms_obj.errors.as_json()) return JsonResponse(response.__dict__)
from zhugedanao import models from publicFunc import Response from publicFunc import account from django.http import JsonResponse import time from django.db.models import Q from django.views.decorators.csrf import csrf_exempt, csrf_protect import datetime response = Response.ResponseObj() # 收录查询 判断是否有任务 @csrf_exempt def baiDuXiaLaDecideIsTask(request): now_time = int(time.time()) q = Q() q.add(Q(is_zhixing=0), Q.AND) q.add(Q(time_stamp__isnull=True) | Q(time_stamp__lte=now_time), Q.AND) objs = models.zhugedanao_baiduxiala_chaxun.objects.filter(q)[0:1] flag = False response.code = 403 response.msg = '无任务' if objs: flag = True response.code = 200 response.msg = '查询成功' response.data = {'flag': flag} return JsonResponse(response.__dict__)
def baiDuXiaLa(request, oper_type, o_id): response = Response.ResponseObj() user_id = request.GET.get('user_id') if request.method == "POST": # 增加下拉任务 if oper_type == "add": form_data = { 'search_list': request.POST.get('searchEngineModel'), 'keywords_list': request.POST.get('editor_content'), } querysetlist = [] forms_obj = AddForm(form_data) if forms_obj.is_valid(): models.zhugedanao_baiduxiala_chaxun.objects.filter( user_id_id=user_id).delete() chongfu = int(len( forms_obj.cleaned_data.get('keywords_list'))) - int( len(set(forms_obj.cleaned_data.get('keywords_list')))) print('chongfu=======> ', chongfu) redis_rc.set('danao_baiduxiala_chongfu', '{}'.format(chongfu), ex=None, px=None, nx=False, xx=False) now_date = datetime.datetime.today().strftime( '%Y-%m-%d %H:%M:%S') for search in eval(forms_obj.cleaned_data.get('search_list')): for keyword in set( forms_obj.cleaned_data.get('keywords_list')): querysetlist.append( models.zhugedanao_baiduxiala_chaxun( user_id_id=user_id, keyword=keyword, search=search, is_zhixing=0, createAndStart_time=now_date)) models.zhugedanao_baiduxiala_chaxun.objects.bulk_create( querysetlist) response.code = 200 response.msg = "添加成功" response.data = {} else: print("验证不通过") response.code = 301 response.msg = json.loads(forms_obj.errors.as_json()) elif request.method == 'GET': # 点击返回 删除任务 if oper_type == 'clickReturn': response.code = 200 response.msg = '退出成功' models.zhugedanao_baiduxiala_chaxun.objects.filter( user_id_id=user_id).delete() return JsonResponse(response.__dict__) # 生成excel if oper_type == 'generateExcel': now_date = datetime.date.today().strftime('%Y-%m-%d') wb = Workbook() ws = wb.active ws.cell(row=1, column=1, value="序号") ws.cell(row=1, column=2, value="关键词") ws.cell(row=1, column=3, value="下拉词") ws.cell(row=1, column=4, value="搜索引擎") ws.cell(row=1, column=5, value="制表日期:{}".format(now_date)) ft1 = Font(name='宋体', size=22) # a1 = ws['A1'] # a1.font = ft1 # 合并单元格 开始行 结束行 用哪列 占用哪列 # ws.merge_cells(start_row=1, end_row=2, start_column=1, end_column=8) # print('设置列宽') ws.column_dimensions['A'].width = 9 ws.column_dimensions['B'].width = 10 ws.column_dimensions['C'].width = 20 ws.column_dimensions['D'].width = 10 ws.column_dimensions['E'].width = 20 # print('设置行高') ws.row_dimensions[1].height = 20 # print('文本居中') ws['A1'].alignment = Alignment(horizontal='center', vertical='center') ws['B1'].alignment = Alignment(horizontal='center', vertical='center') ws['C1'].alignment = Alignment(horizontal='center', vertical='center') ws['D1'].alignment = Alignment(horizontal='center', vertical='center') ws['E1'].alignment = Alignment(horizontal='center', vertical='center') row = 2 objs = models.zhugedanao_baiduxiala_chaxun.objects.filter( user_id_id=user_id) yinqing = '百度' number = 0 num = 0 for obj in objs: if int(obj.search) == 1: yinqing = '百度' elif int(obj.search) == 4: yinqing = '手机百度' number += 1 number_ws = ws.cell(row=row, column=1, value="{number}".format(number=number)) number_ws.alignment = Alignment(horizontal='center', vertical='center') number_ws.font = Font(size=10) if obj.xialaci: for xialaci in eval(obj.xialaci): num += 1 ws.cell(row=row, column=2, value="{title}".format( title=obj.keyword)).font = Font(size=10) xialaci_ws = ws.cell( row=row, column=3, value="{title}".format(title=xialaci)) xialaci_ws.alignment = Alignment(horizontal='center', vertical='center') xialaci_ws.font = Font(size=10) else: ws.cell(row=row, column=2, value="{title}".format( title=obj.keyword)).font = Font(size=10) search_ws = ws.cell(row=row, column=4, value="{search}".format(search=yinqing)) search_ws.alignment = Alignment(horizontal='center', vertical='center') search_ws.font = Font(size=10) row += 1 ws.cell(row=2, column=5, value="数据总数:{}".format( objs.count())).font = Font('宋体', color='0066CD', size=10) ws.cell(row=3, column=5, value="重复:{}".format(0)).font = Font('宋体', color='0066CD', size=10) ws.cell(row=4, column=5, value="下拉数:{}".format(num)).font = Font('宋体', color='0066CD', size=10) ws.cell(row=5, column=5, value="异常:{}".format(0)).font = Font('宋体', color='0066CD', size=10) ws.cell(row=6, column=5, value="百度下拉数:{}".format(0)).font = Font('宋体', color='0066CD', size=10) randInt = random.randint(1, 100) nowDateTime = int(time.time()) excel_name = str(randInt) + str(nowDateTime) wb.save( os.path.join(os.getcwd(), 'statics', 'zhugedanao', 'baiDuXiaLa', '{}.xlsx'.format(excel_name))) response.code = 200 response.msg = '生成成功' response.data = { 'excel_name': 'http://api.zhugeyingxiao.com/' + os.path.join('statics', 'zhugedanao', 'baiDuXiaLa', '{}.xlsx'.format(excel_name)) } return JsonResponse(response.__dict__) else: response.code = 402 response.msg = "请求异常" return JsonResponse(response.__dict__)
def renewal_oper(request, oper_type, o_id): response = Response.ResponseObj() form_data = { 'o_id': o_id, 'user_id': request.GET.get('user_id'), 'price': request.POST.get('price'), 'original_price': request.POST.get('original_price'), # 原价 'the_length': request.POST.get('the_length') # 时长ID } if request.method == "POST": # 修改续费 if oper_type == "update": form_obj = UpdateForm(form_data) if form_obj.is_valid(): o_id, objs = form_obj.cleaned_data.get('o_id') user_id = request.GET.get('user_id') user_obj = models.Enterprise.objects.get(id=user_id) price = form_obj.cleaned_data.get('price') original_price = form_obj.cleaned_data.get('original_price') try: obj = models.renewal_management.objects.get( id=o_id, create_user_id=user_id) data = { 'renewal_id': o_id, 'price': obj.price, # 原 价格 'original_price': obj.original_price, # 原 原价 'update_price': price, # 现价格 'update_original_price': original_price, # 现原价 } if int(user_obj.role) == 2: data['status'] = 1 obj.price = price obj.original_price = original_price obj.save() renewal_log_objs = models.update_renewal_log.objects.filter( renewal__create_user_id=user_id, status=3) if renewal_log_objs: response.code = 301 response.msg = '修改金额申请中, 请勿重复操作!' else: models.update_renewal_log.objects.create(**data) response.code = 200 response.msg = '已申请, 请耐心等待!~' except Exception as e: response.code = 301 response.msg = '操作异常' else: response.code = 301 response.msg = json.loads(form_obj.errors.as_json()) else: response.code = 402 response.msg = '请求异常' return JsonResponse(response.__dict__)
def renewal(request): response = Response.ResponseObj() if request.method == "GET": forms_obj = SelectForm(request.GET) if forms_obj.is_valid(): user_id = request.GET.get('user_id') current_page = forms_obj.cleaned_data['current_page'] length = forms_obj.cleaned_data['length'] print('forms_obj.cleaned_data -->', forms_obj.cleaned_data) order = request.GET.get('order', '-create_date') field_dict = { 'id': '', 'price': '__contains', 'the_length': '', 'renewal_number_days': '', 'create_date': '', 'create_user_id': '', } q = conditionCom(request, field_dict) print('q -->', q) objs = models.renewal_management.objects.filter( q, create_user_id=user_id).order_by(order) count = objs.count() if length != 0: start_line = (current_page - 1) * length stop_line = start_line + length objs = objs[start_line:stop_line] # 返回的数据 ret_data = [] for obj in objs: # 将查询出来的数据 加入列表 ret_data.append({ 'id': obj.id, 'price': obj.price, 'original_price': obj.original_price, 'the_length_id': obj.the_length, 'the_length': obj.get_the_length_display(), 'create_user_id': obj.create_user_id, 'create_user__name': obj.create_user.name, 'create_date': obj.create_date.strftime('%Y-%m-%d %H:%M:%S') }) # 查询成功 返回200 状态码 response.code = 200 response.msg = '查询成功' response.data = { 'ret_data': ret_data, 'data_count': count, } response.note = { 'id': "id", 'price': '钱数', 'the_length_id': '时长ID(一个月, 一年....)', 'the_length': '时长', 'create_user_id': '创建人ID', 'create_user__name': '创建人名字', 'original_price': '原价', 'create_date': '创建时间', } else: print("forms_obj.errors -->", forms_obj.errors) response.code = 402 response.msg = "请求异常" response.data = json.loads(forms_obj.errors.as_json()) return JsonResponse(response.__dict__)
def permissions(request): response = Response.ResponseObj() if request.method == "GET": forms_obj = SelectForm(request.GET) if forms_obj.is_valid(): current_page = forms_obj.cleaned_data['current_page'] length = forms_obj.cleaned_data['length'] print('forms_obj.cleaned_data -->', forms_obj.cleaned_data) order = request.GET.get('order', '-create_date') field_dict = { 'id': '', 'name': '__contains', 'create_date': '', 'oper_user__username': '******', 'pid_id': '__isnull' } q = conditionCom(request, field_dict) # print('q -->', q) objs = models.Permissions.objects.select_related('pid').filter( q).order_by(order) count = objs.count() if length != 0: start_line = (current_page - 1) * length stop_line = start_line + length objs = objs[start_line:stop_line] # 返回的数据 ret_data = [] for obj in objs: # 如果有oper_user字段 等于本身名字 oper_user_username = '' oper_user_id = '' if obj.oper_user: oper_user_username = obj.oper_user.username oper_user_id = obj.oper_user_id # 将查询出来的数据 加入列表 pid_name = '' if obj.pid: pid_name = obj.pid.name ret_data.append({ 'id': obj.id, 'name': obj.name, # 权限名字 'title': obj.title, # 权限路径 'pid_id': obj.pid_id, # 权限父级ID 'pid_name': pid_name, # 权限父级名称 'oper_user_id': oper_user_id, # 操作人ID 'oper_user__username': oper_user_username, # 操作人 'create_date': obj.create_date.strftime('%Y-%m-%d %H:%M:%S'), }) # 查询成功 返回200 状态码 response.code = 200 response.msg = '查询成功' response.data = { 'ret_data': ret_data, 'data_count': count, } else: response.code = 301 response.data = json.loads(forms_obj.errors.as_json()) else: response.code = 402 response.msg = '请求异常' return JsonResponse(response.__dict__)