예제 #1
0
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__)
예제 #2
0
    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
예제 #3
0
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__)
예제 #4
0
 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__)
예제 #6
0
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__)
예제 #7
0
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__)
예제 #8
0
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__)
예제 #9
0
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__)
예제 #10
0
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__)
예제 #11
0
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__)
예제 #12
0
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__)
예제 #13
0
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__)
예제 #14
0
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__)
예제 #15
0
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__)
예제 #16
0
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__)
예제 #17
0
 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
예제 #18
0
 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
예제 #19
0
 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__)
예제 #21
0
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__)
예제 #22
0
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__)
예제 #23
0
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__)
예제 #24
0
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)
예제 #25
0
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__)
예제 #26
0
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__)

예제 #27
0
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__)
예제 #28
0
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__)
예제 #29
0
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__)
예제 #30
0
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__)