コード例 #1
0
def lianjie_tijiao_detail(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']
            tid = request.GET.get('tid')
            order = request.GET.get('order', 'id')
            field_dict = {'id': '', 'url': '__contains', 'tid': tid}
            if tid:
                q = conditionCom(request, field_dict)
                print('q -->', q)
                objs = models.zhugedanao_lianjie_tijiao.objects.filter(
                    q).order_by(order)
                count = objs.count()
                print('count----> ', 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:
                    tijiaocishu = models.zhugedanao_lianjie_tijiao_log.objects.filter(
                        zhugedanao_lianjie_tijiao_id=obj.id).count()
                    obj.count = tijiaocishu
                    obj.save()
                    if int(tijiaocishu) >= 3 and int(obj.status) != 2:
                        obj.status = 3
                        obj.save()
                    #  将查询出来的数据 加入列表
                    ret_data.append({
                        'id':
                        obj.id,
                        'url':
                        obj.url,
                        'count':
                        obj.count,  # 详情数据提交次数
                        'status_text':
                        obj.get_status_display(),  # 查询状态
                        'beforeSubmit':
                        obj.get_beforeSubmitStatus_display(),
                    })
                #  查询成功 返回200 状态码
                response.code = 200
                response.msg = '查询成功'
                response.data = {
                    'ret_data': ret_data,
                    'data_count': count,
                }
        else:
            response.code = 301
            response.msg = "数据类型验证失败"
            response.data = json.loads(forms_obj.errors.as_json())
    else:
        response.code = 402
        response.msg = "请求异常"
    return JsonResponse(response.__dict__)
コード例 #2
0
ファイル: tongji_data.py プロジェクト: itcastpeng/danaoApi
def tongji_data(request):
    nowDate = datetime.datetime.now().strftime("%Y-%m-%d")
    print(request.GET)
    start_date = request.GET.get('create_date__gte', nowDate)
    stop_date = request.GET.get('create_date__lt', '')
    # 获取参数
    field_dict = {
        'id': '',
        'name': '__contains',
        'create_date__gte': start_date,
        'create_date__lt': stop_date,
    }
    print('field_dict -->', field_dict)
    q = conditionCom(request, field_dict)
    print('q -->', q)

    userCount = models.zhugedanao_userprofile.objects.count()  # 所有用户
    userNewCount = models.zhugedanao_userprofile.objects.filter(
        q).count()  # 新用户

    todayHuoyueCount = len(
        models.zhugedanao_oper_log.objects.filter(q).values(
            'user_id').annotate(Count('id')))  # 今日活跃

    data2 = []
    gongneng_objs = models.zhugedanao_gongneng.objects.filter(pid__isnull=True)

    for gongneng_obj in gongneng_objs:
        oper_log_q = Q(gongneng_id=gongneng_obj.id) | Q(
            gongneng__pid=gongneng_obj.id)
        if stop_date:
            gongneng_count = models.zhugedanao_oper_log.objects.filter(
                q).filter(oper_log_q).count()
        else:
            gongneng_count = models.zhugedanao_oper_log.objects.filter(
                oper_log_q).count()
        data2.append({"title": gongneng_obj.name, "value": gongneng_count})

    response.code = 200
    response.data = {
        "data1": [
            {
                "title": "用户总数",
                "value": userCount
            },
            {
                "title": "新增用户数",
                "value": userNewCount
            },
            {
                "title": "活跃用户数",
                "value": todayHuoyueCount
            },
        ],
        "data2":
        data2
    }

    return JsonResponse(response.__dict__)
コード例 #3
0
def form_management(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']
            order = request.GET.get('order', '-create_datetime')
            field_dict = {
                'id': '',
                'template_id': '',
                'form_id': '',
            }
            q = conditionCom(request, field_dict)
            print('q -->', q)
            objs = models.ReservationForm.objects.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:
                try:
                    form_content = json.loads(obj.form_content)
                except Exception:
                    form_content = obj.form_content

                ret_data.append({
                    'id':
                    obj.id,
                    'form_id':
                    obj.form_id,
                    'template_id':
                    obj.template_id,
                    'template_name':
                    obj.template.name,
                    'form_content':
                    form_content,
                    '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 = {}
        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #4
0
def goods_classify(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']
            order = request.GET.get('order', '-create_datetime')
            field_dict = {}
            q = conditionCom(request, field_dict)
            objs = models.GoodsClassify.objects.filter(
                q, oper_user_id=user_id).order_by(order)

            if length != 0:
                start_line = (current_page - 1) * length
                stop_line = start_line + length
                objs = objs[start_line:stop_line]
            data_count = objs.count()

            data_list = []
            for obj in objs:
                is_good = False
                if obj.goods_set.all():
                    is_good = True
                data_list.append({
                    'id':
                    obj.id,
                    'goods_classify':
                    obj.goods_classify,
                    'oper_user_id':
                    obj.oper_user_id,
                    'oper_user':
                    b64decode(obj.oper_user.name),
                    'create_datetime':
                    obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
                    'is_good':
                    is_good,
                })

            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': data_list,
                'count': data_count,
            }
            response.note = {
                'id': '商品分类ID',
                'goods_classify': '商品分类名称',
                'is_good': '该分类中是否有商品',
                'create_datetime': '该商品分类创建时间',
            }
        else:
            response.code = 301
            response.msg = json.loads(forms_obj.errors.as_json())
    else:
        response.code = 402
        response.msg = "请求异常"
    return JsonResponse(response.__dict__)
コード例 #5
0
def company(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': '******',
            }
            q = conditionCom(request, field_dict)
            print('q -->', q)
            objs = models.company.objects.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字段 等于本身名字
                if obj.oper_user:
                    oper_user_username = obj.oper_user.username
                else:
                    oper_user_username = ''
                # print('oper_user_username -->', oper_user_username)
                #  将查询出来的数据 加入列表
                ret_data.append({
                    'id':
                    obj.id,
                    'name':
                    obj.name,
                    'create_date':
                    obj.create_date.strftime('%Y-%m-%d %H:%M:%S'),
                    'oper_user__username':
                    oper_user_username,
                })
            #  查询成功 返回200 状态码
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': ret_data,
                'data_count': count,
            }
        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #6
0
def configurationHost(request):
    response = Response.ResponseObj()
    if request.method == "GET":
        user_id = request.GET.get('user_id')
        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': '',
                'hostName': '__contains',
                'hostUrl': '',
                'userProfile_id': '__contains',
                'talk_project_id':'',
            }
            q = conditionCom(request, field_dict)
            print('q -->', q)
            objs = models.configurationManagementHOST.objects.select_related('talk_project').filter(
                q,
                talk_project__back_developer=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,
                    'url':obj.hostUrl,
                    'username': obj.userProfile.username,
                    'talk_project_id': obj.talk_project_id,
                    'talk_project__name': obj.talk_project.name,
                    'user_id': obj.userProfile.id,
                    'describe_id': obj.describe,
                    'describe': obj.get_describe_display(),
                    '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 = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #7
0
ファイル: brand.py プロジェクト: itcastpeng/tianyanApi
def brand(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']
            print('forms_obj.cleaned_data -->', forms_obj.cleaned_data)
            order = request.GET.get('order', '-create_datetime')
            field_dict = {
                'id': '',
                'name': '__contains',
                'classify_id': '__in',
                'create_user_id': '',
                'create_datetime': '',
            }
            q = conditionCom(request, field_dict)
            user_id = request.GET.get('user_id')
            print('q -->', q)
            objs = models.Classify.objects.filter(create_user_id__in=[1, user_id]).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,
                    '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",
                'title': "品牌名称",
                'create_datetime': "创建时间",
            }

        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #8
0
ファイル: customer.py プロジェクト: itcastpeng/tianyanApi
def customer(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_datetime')
            field_dict = {
                'id': '',
                'name': '__contains',
                'create_datetime': '',
                'sex': '',
            }

            q = conditionCom(request, field_dict)

            print('q -->', q)
            objs = models.Customer.objects.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,
                    'phone_number': obj.phone_number,
                })
            #  查询成功 返回200 状态码
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': ret_data,
                'data_count': count,
            }
            response.note = {
                'id': "用户id",
                'name': "姓名",
                'phone_number': "手机号",
            }
        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__)
コード例 #9
0
ファイル: userMamagement.py プロジェクト: itcastpeng/danaoApi
def userManagementShow(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']
            order = request.GET.get('order', '-create_date')
            role_id = request.GET.get('role_id')
            # encode_username = request.GET.get('username')
            field_dict = {
                'id': '',
                'username': '******',
                'create_date': '',
                'role_id': role_id,
            }
            q = conditionCom(request, field_dict)
            print('q----------> ', q)
            objs = models.zhugedanao_userprofile.objects.select_related(
                'role').filter(q).order_by(order)
            obj_count = objs.count()
            # 分页
            if length != 0:
                start_line = (current_page - 1) * length
                stop_line = start_line + length
                objs = objs[start_line:stop_line]
            data_list = []
            for obj in objs:
                role_id = 0
                role_name = ''
                if obj.role:
                    role_name = obj.role.name
                    role_id = obj.role.id
                decode_username = base64.b64decode(obj.username)
                username = str(decode_username, 'utf-8')
                data_list.append({
                    'o_id':
                    obj.id,
                    'username':
                    username,
                    'level_id':
                    obj.level_name.id,
                    'level':
                    obj.level_name.name,
                    'create_date':
                    obj.create_date.strftime('%Y-%m-%d %H:%M:%S'),
                    'role':
                    role_name,
                    'role_id':
                    role_id
                })
            response.code = 200
            response.msg = '查询成功'
            response.data = {'data_list': data_list, 'obj_count': obj_count}
    return JsonResponse(response.__dict__)
コード例 #10
0
ファイル: task_info.py プロジェクト: itcastpeng/hzWebSiteApi
def task_info(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_datetime')
            field_dict = {
                'id': '',
                'task_list_id': '',
            }

            q = conditionCom(request, field_dict)

            # print('q -->', q)
            # q.add(Q(**{k + '__contains': value}), Q.AND)
            objs = models.TaskInfo.objects.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,
                    'to_email': obj.to_email,
                    'send_num': obj.send_num,
                    'status': obj.get_status_display()
                })
            #  查询成功 返回200 状态码
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': ret_data,
                'data_count': count,
            }
            response.note = {
                'id': "任务id",
                'to_email': "接收邮件的邮箱",
                'send_num': "发送次数",
                'status': "状态"
            }
        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__)
コード例 #11
0
def package_management(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']
            order = request.GET.get('order', '-create_datetime')
            field_dict = {
                'id': '',
                'package_type':'',
                'package_name':'__contains',
                'package_path':'__contains',
                'platform':'',
                'is_delete':'',
            }

            q = conditionCom(request, field_dict)

            objs = models.InstallationPackage.objects.filter(q, is_delete=0).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,
                    'package_type': obj.get_package_type_display(),
                    'package_type_id': obj.package_type,
                    'package_path': obj.package_path,
                    'package_name': obj.package_name,
                    'platform': obj.platform,
                    '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,
                'package_type_choices': [{'id':i[0], 'name':i[1]} for i in models.InstallationPackage.package_type_choices]
            }

        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__)
コード例 #12
0
ファイル: roleManagement.py プロジェクト: itcastpeng/danaoApi
def roleManagementShow(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']
            order = request.GET.get('order', '-create_date')
            field_dict = {
                'id': '',
                'name': '__contains',
                'create_date': '',
                'oper_user__username': '******',
            }
            q = conditionCom(request, field_dict)
            roleObjs = models.zhugedanao_role.objects.filter(q).order_by(order)
            roleCount = roleObjs.count()
            # 分页
            if length != 0:
                start_line = (current_page - 1) * length
                stop_line = start_line + length
                roleObjs = roleObjs[start_line:stop_line]
            retData = []
            for obj in roleObjs:
                permissionsData = []
                if obj.quanxian:
                    permissionsList = [
                        i['id'] for i in obj.quanxian.values('id')
                    ]
                    print('permissionsList=========> ', permissionsList)
                    permissionsData = init_data(selected_list=permissionsList)
                decode_username = base64.b64decode(obj.oper_user.username)
                username = str(decode_username, 'utf-8')
                retData.append({
                    'id':
                    obj.id,
                    'name':
                    obj.name,
                    'createDate':
                    obj.create_date.strftime('%Y-%m-%d %H:%M:%S'),
                    'permissionsData':
                    permissionsData,
                    'oper_user':
                    username
                })
            response.code = 200
            response.msg = '查询成功'
            response.data = {'retData': retData, 'roleCount': roleCount}
        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #13
0
def form(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']
            order = request.GET.get('order', '-create_datetime')

            field_dict = {
                'id': '',
                'template_id': '',
            }
            q = conditionCom(request, field_dict)
            objs = models.Form.objects.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,
                    'data':
                    obj.data,  # 表单数据
                    '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,
            }
        else:
            response.code = 301
            response.data = json.loads(forms_obj.errors.as_json())
    else:
        response.code = 402
        response.msg = '请求异常'

    return JsonResponse(response.__dict__)
コード例 #14
0
def service_management(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']
            order = request.GET.get('order', '-create_date')
            field_dict = {
                'id': '',
                'name': '__contains',
            }
            q = conditionCom(request, field_dict)
            print('q -->', q)
            objs = models.ServiceTable.objects.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:
                try:
                    main_figure = json.loads(obj.main_figure)
                except Exception:
                    main_figure = obj.main_figure

                ret_data.append({
                    'id':
                    obj.id,
                    'create_user_id':
                    obj.create_user_id,
                    'name':
                    obj.name,
                    'abstract':
                    obj.abstract,
                    'main_figure':
                    main_figure,
                    'service_classification':
                    obj.service_classification,
                    'price_type':
                    obj.price_type,
                    'price':
                    obj.price,
                    'remaining_amount':
                    0,  # 剩余量
                    'promotion_price':
                    obj.promotion_price,
                    'limit_amount':
                    obj.limit_amount,
                    'virtual_order_volume':
                    obj.virtual_order_volume,
                    'service_detail':
                    obj.service_detail,
                    'actual_order_quantity':
                    0,
                    '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',
                'create_user_id': '创建人ID',
                'name': '服务名称',
                'abstract': '服务简介',
                'main_figure': '主图',
                'service_classification': '服务分类',
                'price_type': '价格类型',
                'price': '价格',
                'promotion_price': '促销价格',
                'limit_amount': '限制总数',
                'virtual_order_volume': '虚拟订单量',
                'create_date': '创建时间',
            }

        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #15
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__)
コード例 #16
0
def ask_little_red_book(request):
    response = Response.ResponseObj()
    if request.method == 'POST':
        pass
        # objs = models.noteAssociationScreenshot.objects.filter(
        #     create_datetime__gte='2019-07-01 00:00:00'
        # )
        # print(objs.query)

    else:
        forms_obj = SelectForm(request.GET)
        if forms_obj.is_valid():
            current_page = forms_obj.cleaned_data['current_page']
            length = forms_obj.cleaned_data['length']
            field_dict = {
                'id': '',
                'comments_status': '',
                'request_type': '',
                'xhs_user_id': '',
                'status': '',
                'request_url': '__contains',
            }

            q = conditionCom(request, field_dict)
            order = request.GET.get('order', '-create_datetime')

            objs = models.AskLittleRedBook.objects.filter(q).order_by(order)
            error = request.GET.get('error')  # 0全部  1:非200 2:200
            if error:
                if error in [1, '1']:  # 查询异常的
                    objs = objs.exclude(response_data__contains=200)

                else:
                    objs = objs.filter(response_data__contains=200)

            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:
                get_request_parameter = obj.get_request_parameter
                if get_request_parameter:
                    get_request_parameter = eval(get_request_parameter)

                post_request_parameter = obj.post_request_parameter
                if post_request_parameter:
                    post_request_parameter = eval(post_request_parameter)

                response_data = obj.response_data
                if response_data:
                    response_data = eval(response_data)

                ret_data.append({
                    'request_url':
                    obj.request_url,
                    'get_request_parameter':
                    get_request_parameter,
                    'post_request_parameter':
                    post_request_parameter,
                    'response_data':
                    response_data,
                    'request_type_id':
                    obj.request_type,
                    'request_type':
                    obj.get_request_type_display(),
                    'status_id':
                    obj.status,
                    'status':
                    obj.get_status_display(),
                    'create_datetime':
                    obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
                })
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data':
                ret_data,
                'count':
                count,
                'status_choices': [{
                    'id': i[0],
                    'name': i[1]
                } for i in models.AskLittleRedBook.status_choices],
                'request_type_choices': [{
                    'id': i[0],
                    'name': i[1]
                } for i in models.AskLittleRedBook.request_type_choices]
            }

        else:
            response.code = 301
            response.msg = json.loads(forms_obj.errors.as_json())

    return JsonResponse(response.__dict__)
コード例 #17
0
def query_mobile_equipment_alarm_information(request):
    response = Response.ResponseObj()
    forms_obj = SelectForm(request.GET)
    if forms_obj.is_valid():
        current_page = forms_obj.cleaned_data['current_page']
        length = forms_obj.cleaned_data['length']
        field_dict = {
            'id': '',
            'error_msg': '__contains',
            'status': '',
        }

        q = conditionCom(request, field_dict)
        order = request.GET.get('order', '-create_datetime')
        objs = models.MobileEquipmentAbnormalSendMessageEnterpriseRecord.objects.filter(
            q)
        status = request.GET.get('status')
        if not status:
            objs = objs.exclude(status=2)

        objs = objs.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({
                'error_msg':
                obj.error_msg,
                'status_id':
                obj.status,
                'status':
                obj.get_status_display(),
                'create_datetime':
                obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
            })
        response.code = 200
        response.msg = '查询成功'
        response.data = {
            'ret_data':
            ret_data,
            'count':
            count,
            'status_choices':
            [{
                'id': i[0],
                'name': i[1]
            } for i in models.
             MobileEquipmentAbnormalSendMessageEnterpriseRecord.status_choices
             ],
        }

    else:
        response.code = 301
        response.msg = json.loads(forms_obj.errors.as_json())

    return JsonResponse(response.__dict__)
コード例 #18
0
def user(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_datetime')
            field_dict = {
                'id': '',
            }

            q = conditionCom(request, field_dict)

            print('q -->', q)
            objs = models.UserProfile.objects.select_related('role').filter(
                q, openid__isnull=False)

            exclude_role_admin = request.GET.get('exclude_role_admin',
                                                 False)  # 是否排除管理员角色
            if exclude_role_admin:
                role_admin_id_list = [6, 8]  # 管理员角色id
                objs = objs.exclude(role_id__in=role_admin_id_list)

            exclude_role_client = request.GET.get('exclude_role_client',
                                                  False)  # 是否排除普通用户角色
            if exclude_role_client:
                role_client_id_list = [7]  # 普通用户角色id
                objs = objs.exclude(role_id__in=role_client_id_list)

            inviter_id_is_null = request.GET.get('inviter_id_is_null', False)
            if inviter_id_is_null:
                objs = objs.filter(inviter_id__isnull=True)

            objs = objs.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:
                inviter = 0
                if obj.inviter:
                    inviter = 1

                role_obj = models.Role.objects.filter(id=obj.role_id)
                data_list = []
                for i in role_obj[0].permissions.all():
                    data_list.append(i.name)

                last_login_datetime = ''
                if obj.last_login_datetime:
                    last_login_datetime = obj.last_login_datetime.strftime(
                        '%Y-%m-%d %H:%M:%S')

                ret_data.append({
                    'id':
                    obj.id,
                    'name':
                    base64_encryption.b64decode(obj.name),
                    'role_id':
                    obj.role_id,
                    'role_name':
                    obj.role.name,
                    'head_portrait':
                    obj.head_portrait,
                    'token':
                    obj.token,
                    'sex_id':
                    obj.sex,
                    'sex':
                    obj.get_sex_display(),
                    'company_name':
                    obj.company_name,
                    'permissions_list':
                    data_list,
                    'inviter':
                    inviter,
                    'remark':
                    obj.remark,
                    'small_program_number':
                    obj.small_program_number,
                    'number_child_users':
                    obj.number_child_users,
                    'last_login_datetime':
                    last_login_datetime,
                    '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': "微信昵称",
                'role_id': "角色id",
                'role_name': "角色名称",
                'head_portrait': "头像",
                'sex_id': "性别id",
                'sex': "性别",
                'company_name': "公司名称",
                'remark': "备注",
                'last_login_datetime': "最后登录时间",
                'create_datetime': "创建时间",
                'number_child_users': "可创建子账号数量",
                'small_program_number': "可创建小程序数量",
            }

        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__)
コード例 #19
0
def user_oper(request, oper_type, o_id):
    response = Response.ResponseObj()
    user_id = request.GET.get('user_id')
    if request.method == "POST":

        # 修改用户角色    (即将废弃,被update取代)
        if oper_type == 'update_role':
            form_data = {
                'role_id': request.POST.get('role_id'),
                'user_id': user_id,
                'o_id': o_id
            }

            form_obj = UpdateRoleForm(form_data)
            if form_obj.is_valid():
                role_id = form_obj.cleaned_data.get('role_id')
                o_id = form_obj.cleaned_data.get('o_id')
                models.UserProfile.objects.filter(id=o_id).update(
                    role_id=role_id)
                response.code = 200
                response.msg = '修改成功'

            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())

        elif oper_type == "update":
            # 获取需要修改的信息
            form_data = {
                'o_id': o_id,
                'role_id': request.POST.get('role_id'),  # 角色id
                'company_name': request.POST.get('company_name'),  # 公司名称
                'remark': request.POST.get('remark'),  # 备注信息
                'small_program_number':
                request.POST.get('small_program_number'),  # 小程序数量
                'number_child_users':
                request.POST.get('number_child_users'),  # 子账号数量
            }

            forms_obj = UpdateForm(form_data)
            if forms_obj.is_valid():
                o_id = forms_obj.cleaned_data['o_id']
                role_id = forms_obj.cleaned_data['role_id']  # 角色id
                company_name = forms_obj.cleaned_data['company_name']  # 公司名称
                remark = forms_obj.cleaned_data['remark']  # 备注信息
                small_program_number = forms_obj.cleaned_data[
                    'small_program_number']  # 小程序数量
                number_child_users = forms_obj.cleaned_data[
                    'number_child_users']  # 子账号数量
                #  查询数据库  用户id
                objs = models.UserProfile.objects.filter(id=o_id)
                #  更新 数据
                if objs:
                    objs.update(
                        role_id=role_id,
                        company_name=company_name,
                        remark=remark,
                        small_program_number=small_program_number,
                        number_child_users=number_child_users,
                    )

                    response.code = 200
                    response.msg = "修改成功"
                else:
                    response.code = 303
                    response.msg = '不存在的数据'

            else:
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())

        # 转接 用户所有信息
        elif oper_type == 'transfer_all_user_information':
            cancel_transfer = request.POST.get('cancel_transfer')  # 拒绝交接
            form_data = {
                'user_id': user_id,
                'o_id': o_id,
                # 'transfer_template_id': request.POST.get('transfer_template_id'),
            }
            transfer_objs = models.Transfer.objects.filter(
                speak_to_people_id=user_id,
                by_connecting_people_id=o_id,
                whether_transfer_successful=2).order_by('-create_datetime')
            if transfer_objs:
                transfer_obj = transfer_objs[0]
                if cancel_transfer:
                    transfer_obj.whether_transfer_successful = 5
                    code = 200
                    msg = '已拒绝交接'

                else:
                    form_obj = TransferAllUserInformation(form_data)
                    if form_obj.is_valid():
                        o_id = form_obj.cleaned_data.get('o_id')
                        user_id = form_obj.cleaned_data.get('user_id')

                        applet_objs = models.ClientApplet.objects.filter(
                            user_id=user_id)  # 小程序
                        models.CustomerOfficialNumber.objects.filter(
                            user_id=user_id).update(user_id=o_id)  # 小程序版本
                        applet_objs.update(user_id=o_id)

                        models.TemplateClass.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 模板分类表
                        models.Template.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 模板表

                        models.PhotoLibraryGroup.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 图片分类
                        models.PhotoLibrary.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 图片

                        models.PageGroup.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 页面分组表
                        models.Page.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 页面表

                        models.CompomentLibraryClass.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 组件库分类
                        models.CompomentLibrary.objects.filter(
                            create_user_id=user_id).update(
                                create_user_id=o_id)  # 组件库

                        code = 200
                        msg = '转接成功'
                        transfer_obj.whether_transfer_successful = 4

                    else:
                        code = 301
                        msg = json.loads(form_obj.errors.as_json())
                transfer_obj.save()
            else:
                code = 301
                msg = '已过期, 请重新获取二维码'
            response.code = code
            response.msg = msg

        # 是否接受 团队邀请
        elif oper_type == 'accept_team_invitationss':
            new_user_id = request.POST.get('new_user_id')  # 受邀请人ID
            parent_id = request.POST.get('parent_id')  # 父级用户ID
            timestamp = request.POST.get('time_stamp')  # 时间戳
            refused_invite = request.POST.get('refused_invite')  # 拒绝邀请

            objs = models.InviteTheChild.objects.filter(
                parent_id=parent_id, child_id=new_user_id,
                timestamp=timestamp).order_by('-create_datetime')
            obj = objs[0]
            if objs:
                if refused_invite:
                    obj.whether_transfer_successful = 5  # 拒绝
                    msg = '已拒绝'

                else:
                    user_is_exists = request.POST.get(
                        'user_is_exists')  # 是否已有用户 如果有 则删除所有数据

                    models.UserProfile.objects.filter(id=new_user_id).update(
                        inviter_id=parent_id)

                    if user_is_exists:  # 删除所有数据
                        models.CustomerOfficialNumber.objects.filter(
                            user_id=new_user_id).delete()
                        models.ClientApplet.objects.filter(
                            user_id=new_user_id).delete()
                        models.PhotoLibrary.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.PhotoLibraryGroup.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.Page.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.PageGroup.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.Template.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.TemplateClass.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.CompomentLibrary.objects.filter(
                            create_user_id=new_user_id).delete()
                        models.CompomentLibraryClass.objects.filter(
                            create_user_id=new_user_id).delete()
                    msg = '已接受'
                    obj.whether_transfer_successful = 4

                obj.save()
                code = 200
            else:
                code = 301
                msg = '已过期, 请重新扫描二维码'

            response.code = code
            response.msg = msg

        # 删除团队成员
        elif oper_type == 'delete_team_members':
            form_data = {'o_id': o_id, 'user_id': user_id}
            form_obj = DeleteTeamMembers(form_data)
            if form_obj.is_valid():
                user_id = form_obj.cleaned_data.get('user_id')
                o_id = form_obj.cleaned_data.get('o_id')

                models.UserProfile.objects.filter(id=o_id).update(
                    inviter_id=None)
                response.code = 200
                response.msg = '删除成功'

            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())

        # 修改企业名称
        elif oper_type == 'modify_enterprise_name':
            template_id = request.POST.get('template_id')
            enterprise_name = request.POST.get('enterprise_name')
            models.Template.objects.filter(id=template_id).update(
                enterprise_name=enterprise_name)
            response.code = 200
            response.msg = '修改成功'

    else:

        # 获取团队成员
        if oper_type == 'acquire_team_members':
            forms_obj = SelectForm(request.GET)
            if forms_obj.is_valid():
                current_page = forms_obj.cleaned_data['current_page']
                length = forms_obj.cleaned_data['length']
                order = request.GET.get('order', '-create_datetime')
                field_dict = {
                    'id': '',
                    'name': '__contains',
                }

                q = conditionCom(request, field_dict)
                objs = models.UserProfile.objects.filter(
                    q, inviter_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,
                        'name':
                        base64_encryption.b64decode(obj.name),
                        'role_id':
                        obj.role_id,
                        'role_name':
                        obj.role.name,
                        'head_portrait':
                        obj.head_portrait,
                        'sex_id':
                        obj.sex,
                        'sex':
                        obj.get_sex_display(),
                        '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,
                }

            else:
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())

        else:
            response.code = 402
            response.msg = '请求异常'

    return JsonResponse(response.__dict__)
コード例 #20
0
def equipment_management(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']
            order = request.GET.get('order', '-create_datetime')
            field_dict = {
                'id': '',
                'cardbaldata': '__contains',
                'select_number': '__contains',
                'cardnumber': '__contains',
                'phone__name': '__contains',
                'create_datetime': '',
            }

            q = conditionCom(request, field_dict)
            status = request.GET.get('status')
            if status:
                if status in [1, '1']:
                    q.add(Q(cardstatus='已激活'), Q.AND)
                else:
                    q.add(Q(cardstatus='已停用'), Q.AND)

            # print('q -->', q)
            objs = models.MobileTrafficInformation.objects.filter(q).order_by(
                order)
            # print(objs)
            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:
                cardstartdate = obj.cardstartdate
                if obj.cardstartdate:
                    cardstartdate = obj.cardstartdate.strftime(
                        '%Y-%m-%d %H:%M:%S')

                cardenddate = obj.cardenddate
                if obj.cardenddate:
                    cardenddate = obj.cardenddate.strftime('%Y-%m-%d %H:%M:%S')

                name = ''
                if obj.phone:
                    name = obj.phone.name

                phone_id = ''
                phone_number = ''
                phone_name = ''
                if obj.phone:
                    phone_number = obj.phone.phone_num
                    phone_name = obj.phone.name
                    phone_id = obj.phone_id

                ret_data.append({
                    'id':
                    obj.id,
                    'name':
                    name,
                    'phone_id':
                    phone_id,
                    'phone_name':
                    phone_name,
                    'phone_number':
                    phone_number,
                    'cardimsi':
                    obj.cardimsi,
                    'cardstatus':
                    obj.cardstatus,
                    'cardtype':
                    obj.cardtype,
                    'cardusedata':
                    obj.cardusedata,
                    'cardno':
                    obj.cardno,
                    'cardbaldata':
                    obj.cardbaldata,
                    'select_number':
                    obj.select_number,
                    'cardnumber':
                    obj.cardnumber,
                    'cardstartdate':
                    cardstartdate,
                    'cardenddate':
                    cardenddate,
                    'errmsg':
                    obj.errmsg,
                    '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,
                'status_choices': [{
                    'id': 1,
                    'name': '已激活'
                }, {
                    'id': 2,
                    'name': '已停用'
                }],
            }
            response.note = {
                'id': 'ID',
                'name': '设备名称',
                'cardimsi': 'ISMI号',
                'cardstatus': '用户状态',
                'cardtype': '套餐类型',
                'cardusedata': '已用流量',
                'cardno': '卡编号',
                'cardbaldata': '剩余流量',
                'select_number': '查询号码',
                'cardnumber': '卡号',
                'cardstartdate': '卡开户时间',
                'cardenddate': '卡到期时间',
                'errmsg': '错误日志',
                'create_datetime': '创建时间',
            }
        else:
            response.code = 301
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())

    return JsonResponse(response.__dict__)
コード例 #21
0
def lianjie_tijiao(request):
    response = Response.ResponseObj()
    if request.method == "GET":
        print('查询任务列表=========================', request.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']
            order = request.GET.get('order', '-create_date')
            field_dict = {
                'id': '',
                'task_name': '',
                'task_status': '',
                'task_progress': '',
                'create_date': '',
                'user_id': ''
            }
            q = conditionCom(request, field_dict)
            print('q -->', q)
            objs = models.zhugedanao_lianjie_task_list.objects.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:
                # print(type(datetime.datetime.now()))
                next_datetime_addoneday = (datetime.datetime.now() -
                                           datetime.timedelta(minutes=30))
                # print(type(next_datetime_addoneday))
                # print('=========next--->',next_datetime_addoneday, type(next_datetime_addoneday))
                if obj.create_date < next_datetime_addoneday:
                    obj.is_update = 1
                    obj.save()
                detail_task_count = models.zhugedanao_lianjie_tijiao.objects.filter(
                    tid=obj.id)

                # 该任务执行总数
                detail_count = detail_task_count.filter(is_zhixing=0).count()
                detail_count_jindu = detail_task_count.filter(
                    is_zhixing=1).count()

                # jindu = 0
                # if obj.task_progress:
                #     jindu = int((int(obj.task_progress) / int(obj.count_taskList)) * 100)
                yiwancheng_obj = 0
                wancheng = 0
                if count != 0:
                    # yiwancheng_obj = int(obj.count_taskList - detail_count)
                    yiwancheng_obj = detail_task_count.exclude(
                        status=1).count()
                    wancheng = detail_task_count.filter(is_zhixing=1).count()
                jindu = 0
                if wancheng:
                    jindu = int((wancheng / obj.count_taskList) * 100)
                obj.task_progress = jindu
                obj.save()
                if yiwancheng_obj == obj.count_taskList:
                    obj.task_status = True
                    obj.save()
                zhuangtai = '未完成'
                if obj.task_status:
                    zhuangtai = '已完成'
                shoulu_num = detail_task_count.filter(tid=obj.id).filter(
                    status=2).count()
                obj.shoulu_num = shoulu_num
                obj.save()
                shoulu_num = 0
                if obj.shoulu_num:
                    shoulu_num = obj.shoulu_num
                ret_data.append({
                    'id':
                    obj.id,  # 任务id
                    'task_name':
                    obj.task_name,  # 任务名称
                    'task_status':
                    zhuangtai,  # 任务状态 完成 未完成
                    'task_progress':
                    obj.task_progress,  # 进度条
                    'create_date':
                    obj.create_date.strftime('%Y-%m-%d %H:%M:%S'),  # 创建时间
                    'count_taskList':
                    obj.count_taskList,  # 详情数量
                    'yiwancheng_obj':
                    yiwancheng_obj,  # 已完成数量
                    'is_update':
                    int(obj.is_update),  # 是否可以修改和删除 1不可以 0可以
                    'shoulu_num':
                    shoulu_num,  # 已收录数量
                })
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': ret_data,
                'data_count': count,  # 任务总数
            }
        else:
            response.code = 301
            response.msg = "数据类型验证失败"
            response.data = json.loads(forms_obj.errors.as_json())
    else:
        response.code = 402
        response.msg = "请求异常"
    return JsonResponse(response.__dict__)
コード例 #22
0
def photo_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']
            no_group = request.GET.get('no_group')
            # create_user_id = forms_obj.cleaned_data['create_user_id']
            # print('forms_obj.cleaned_data -->', forms_obj.cleaned_data)
            # order = 'create_datetime'
            order = request.GET.get('order', '-create_datetime')
            field_dict = {
                'group_id': '',
                'name': '__contains',
                'create_datetime': '',
                'template_id': '',
            }
            q = conditionCom(request, field_dict)
            # print('q -->', q)

            if get_type == "system":  # 获取系统分组
                q.add(Q(create_user_id__in=admin_list), Q.AND)
                # objs = models.PhotoLibrary.objects.filter(create_user_id__isnull=True)
            elif get_type == "is_me":
                q.add(Q(**{'create_user_id': user_id}), Q.AND)

            if no_group:
                q.add(Q(**{'group_id__isnull': True}), Q.AND)

            objs = models.PhotoLibrary.objects.select_related('group').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,
                    'group_id':
                    obj.group_id,
                    'img_url':
                    obj.img_url,
                    '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",
                'group_id': "分组id",
                'img_url': '图片地址',
                'create_datetime': '创建时间',
            }
        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #23
0
def task_list(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_datetime')
            field_dict = {
                'id': '',
                'name': '__contains',
                'create_datetime': '',
            }

            q = conditionCom(request, field_dict)

            # print('q -->', q)
            # q.add(Q(**{k + '__contains': value}), Q.AND)
            role_id = models.UserProfile.objects.get(id=user_id).role_id_id
            if role_id != 1:  # 非管理员角色只能看自己的
                q.add(Q(**{'create_user_id': user_id}), Q.AND)

            objs = models.TaskList.objects.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,
                    'status':
                    obj.get_status_display(),
                    'status_id':
                    obj.status,
                    'percentage_progress':
                    obj.percentage_progress,
                    'send_email_title':
                    obj.send_email_title,
                    'send_email_content':
                    obj.send_email_content,
                    'create_user__username':
                    obj.create_user.username,
                    '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': "任务名称",
                'percentage_progress': "任务进度",
                'send_email_title': "发送邮件标题",
                'send_email_content': "发送邮件内容",
                'create_user__username': "******",
                'create_datetime': "创建时间",
                'status': "状态名称",
                'status_id': "状态值",
            }
        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__)
コード例 #24
0
def xhs_account_management(request, oper_type):
    response = Response.ResponseObj()
    if request.method == "GET":
        user_id = request.GET.get('user_id')

        # 查询小红书所有账号
        if oper_type == 'get_xhs_account':
            forms_obj = SelectForm(request.GET)
            if forms_obj.is_valid():
                current_page = forms_obj.cleaned_data['current_page']
                length = forms_obj.cleaned_data['length']
                order = request.GET.get('order', '-create_datetime')
                field_dict = {
                    'id': '',
                    'phone_id': '__contains',
                    'name': '__contains',
                    'xiaohongshu_id': '__contains',
                    'home_url': '__contains',
                    'xhs_version': '__contains',
                    'phone_id__name': '__contains',
                }
                q = conditionCom(request, field_dict)
                objs = models.XiaohongshuUserProfile.objects.select_related(
                    'phone_id').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:
                    phone_id = ''
                    if obj.phone_id:
                        phone_id = obj.phone_id_id

                    phone_name = ''
                    if obj.phone_id.name:
                        phone_name = obj.phone_id.name
                    ret_data.append({
                        'id':
                        obj.id,
                        'name':
                        obj.name,
                        'phone_id':
                        phone_id,
                        'phone_number':
                        obj.phone_id.phone_num,
                        'xiaohongshu_id':
                        obj.xiaohongshu_id,
                        'xhs_version':
                        obj.xhs_version,
                        'package_version':
                        obj.package_version,
                        'home_url':
                        obj.home_url,
                        'phone_name':
                        phone_name,
                        'phone_type':
                        obj.phone_id.get_phone_type_display(),
                        'add_map_not':
                        obj.add_map_not,
                        'create_datetime':
                        obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
                    })

                response.code = 200
                response.msg = '查询成功'
                response.data = {
                    'ret_data': ret_data,
                    'count': count,
                }
            else:
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())

    else:
        response.code = 402
        response.msg = "请求异常"

    return JsonResponse(response.__dict__)
コード例 #25
0
def xiaohongshu_biji(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_datetime')
            field_dict = {
                'id': '',
                'status': '',
                'select_type': '',
                'keywords': '__contains',
                'create_datetime': '',
            }

            q = conditionCom(request, field_dict)

            # print('q -->', q)
            objs = models.XiaohongshuFugai.objects.filter(q).order_by(order)
            # print(objs)
            count = objs.count()

            if length != 0:
                if count < 10:
                    current_page = 1
                start_line = (current_page - 1) * length
                stop_line = start_line + length
                objs = objs[start_line: stop_line]

            ret_data = []
            for obj in objs:
                #  将查询出来的数据 加入列表
                update_datetime = ""
                if obj.update_datetime:
                    update_datetime = obj.update_datetime.strftime('%Y-%m-%d %H:%M:%S')

                keywords = "({select_type}) {keywords}".format(
                    keywords=obj.keywords,
                    select_type=obj.get_select_type_display()
                )
                ret_data.append({
                    'id': obj.id,
                    'keywords': keywords,
                    'url': obj.url,
                    'rank': obj.rank,
                    'biji_num': obj.biji_num,
                    'status': obj.get_status_display(),
                    'status_id': obj.status,
                    'select_type': obj.get_select_type_display(),
                    'select_type_id': obj.select_type,
                    'create_user__username': obj.create_user.username,
                    'create_datetime': obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
                    'update_datetime': update_datetime,
                })
            #  查询成功 返回200 状态码
            response.code = 200
            response.msg = '查询成功'
            response.data = {
                'ret_data': ret_data,
                'data_count': count,
                'status_choices': models.XiaohongshuFugai.status_choices,
                'select_type_choices': models.XiaohongshuFugai.select_type_choices,
            }
            response.note = {
                'id': "下拉词id",
                'keywords': "搜索词",
                'url': "匹配url",
                'rank': "排名",
                'biji_num': "笔记数",
                'status': "状态",
                'status_id': "状态id",
                'select_type': "搜索类型",
                'select_type_id': "搜索类型id",
                'create_user__username': "******",
                'create_datetime': "创建时间",
                'update_datetime': "更新时间",

                'exist_content': "比较是否存在内容"
            }
        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__)
コード例 #26
0
def template_class(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_datetime')
            field_dict = {
                'id': '',
                'name': '__contains',
                'create_datetime': '',
            }
            q = conditionCom(request, field_dict)
            # print('q -->', q)
            class_type = request.GET.get('class_type', 2)
            objs = models.TemplateClass.objects.filter(q).filter(
                class_type=class_type)
            objs = objs.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,
                    'class_type':
                    obj.class_type,
                    'class_type_text':
                    obj.get_class_type_display(),
                    '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': '模板名称',
                'class_type': "分类类型id",
                'class_type_text': "分类类型",
                'create_datetime': '创建时间',
            }
        else:
            response.code = 402
            response.msg = "请求异常"
            response.data = json.loads(forms_obj.errors.as_json())
    return JsonResponse(response.__dict__)
コード例 #27
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__)
コード例 #28
0
ファイル: role.py プロジェクト: itcastpeng/hzWebSiteApi
def role(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']
            order = request.GET.get('order', '-create_datetime')
            user_id = request.GET.get('user_id')
            userObjs = models.UserProfile.objects.filter(id=user_id)

            field_dict = {
                'id': '',
                'name': '__contains',
                'create_date': '',
                'create_user__username': '******',
            }
            q = conditionCom(request, field_dict)
            objs = models.Role.objects.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:

                # 获取选中的id,然后组合成前端能用的数据
                permissionsData = []
                if obj.permissions:
                    permissionsList = [
                        i['id'] for i in obj.permissions.values('id')
                    ]
                    if len(permissionsList) > 0:
                        permissionsData = init_data(
                            selected_list=permissionsList)

                #  如果有oper_user字段 等于本身名字
                create_user_username = ''
                create_user_id = ''
                if obj.create_user:
                    create_user_id = obj.create_user_id
                    create_user_username = obj.create_user.username

                #  将查询出来的数据 加入列表
                ret_data.append({
                    'id':
                    obj.id,
                    'name':
                    obj.name,  # 角色名称
                    'permissionsData':
                    permissionsData,  # 角色权限
                    'oper_user_id':
                    create_user_id,  # 操作人ID
                    'create_user__username':
                    create_user_username,  # 操作人
                    'create_date':
                    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,
            }
        else:
            response.code = 301
            response.data = json.loads(forms_obj.errors.as_json())
    else:
        response.code = 402
        response.msg = '请求异常'

    return JsonResponse(response.__dict__)
コード例 #29
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__)
コード例 #30
0
def xiaohongshu_biji_oper(request, oper_type, o_id):
    response = Response.ResponseObj()
    user_id = request.GET.get('user_id')
    # print('request.POST -->', request.POST)
    if request.method == "POST":
        # 添加
        if oper_type == "add":
            form_data = {
                'xiaohongshu_id': request.POST.get('xiaohongshu_id'),
                'content': request.POST.get('content'),
                'release_time': request.POST.get('release_time', datetime.datetime.now())
            }
            #  创建 form验证 实例(参数默认转成字典)
            forms_obj = AddForm(form_data)
            if forms_obj.is_valid():
                print("验证通过")


                xiaohongshu_id = forms_obj.cleaned_data.get('xiaohongshu_id')
                title, content, biji_type = forms_obj.cleaned_data.get('content')
                release_time = forms_obj.cleaned_data.get('release_time')
                platform = request.POST.get('platform', 1)
                xiaohongshu_user_objs = models.XiaohongshuUserProfile.objects.filter(xiaohongshu_id=xiaohongshu_id, platform=platform)
                if xiaohongshu_user_objs:
                    xiaohongshu_user_obj = xiaohongshu_user_objs[0]

                    biji_id = request.POST.get('biji_id') # 如果有 该值 则更新 待审核状态
                    if biji_id:
                        biji_objs = models.XiaohongshuBiji.objects.filter(id=biji_id)
                        obj = biji_objs[0]
                        biji_objs.update(status=3, content=content, release_time=release_time, title=title, biji_type=biji_type, user_id_id=xiaohongshu_user_obj.id)
                        response.code = 200
                        response.msg = "更新成功"

                    else:
                        objs = models.XiaohongshuBiji.objects.filter(
                            title=title,
                            user_id_id=xiaohongshu_user_obj.id,
                            user_id__platform=platform
                        )
                        if objs:
                            response.code = 301
                            response.msg = '笔记已存在, 请勿重复添加'
                            return JsonResponse(response.__dict__)

                        else:
                            obj = models.XiaohongshuBiji.objects.create(
                                user_id=xiaohongshu_user_obj,
                                content=content,
                                release_time=release_time,
                                title=title,
                                biji_type=biji_type
                            )
                            response.msg = "添加成功"
                        response.code = 200
                    response.data = {
                        'biji_id': obj.id
                    }
                else:
                    response.code = 0
                    response.msg = "添加失败, 小红书id不存在"

            else:
                print("验证不通过")
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())
            create_xhs_admin_response(request, response, 2)

        # 提交反链
        elif oper_type == "upload_url":
            form_data = {
                'task_id': request.POST.get('task_id'),
                'url': request.POST.get('url'),
            }
            forms_obj = UploadUrlForm(form_data)
            if forms_obj.is_valid():
                print("验证通过")

                task_id = forms_obj.cleaned_data.get('task_id')
                url = forms_obj.cleaned_data.get('url')
                link = get_existing_url(url) # 获取真实链接

                completion_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                biji_objs = models.XiaohongshuBiji.objects.filter(id=task_id)
                biji_objs.update(
                    biji_existing_url=link,
                    biji_url=link,
                    status=2,
                    completion_time=completion_time
                )

                api_url = "https://www.ppxhs.com/api/v1/sync/sync-screen-article"
                data = {
                    "id": task_id,
                    "link": link,
                    "platform": biji_objs[0].user_id.platform,
                    "pubTime": completion_time,
                    "online_pic": "http://qiniu.bjhzkq.com/xiaohongshu_fabu_1560934704790"
                }
                ret = requests.post(url=api_url, data=data)
                create_xhs_admin_response(request, ret.json(), 1, url=api_url, req_type=2)  # 记录请求日志
                response.code = 200
                response.msg = "提交成功"

            else:
                print("验证不通过")
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())
            create_xhs_admin_response(request, response, 3)

        # 发布笔记(后台)
        elif oper_type == 'published_articles':
            now = datetime.datetime.today()
            flag = False
            hms_date = datetime.datetime.today().strftime('%H:%M:%S')
            hms_date = datetime.datetime.strptime(hms_date, '%H:%M:%S')

            if datetime.datetime.strptime('8:30:00', '%H:%M:%S') >= hms_date >= datetime.datetime.strptime('7:30:00', '%H:%M:%S'):
                flag = True
            elif datetime.datetime.strptime('13:30:00', '%H:%M:%S') >= hms_date >= datetime.datetime.strptime('12:00:00', '%H:%M:%S'):
                flag = True
            elif datetime.datetime.strptime('21:30:00', '%H:%M:%S') >= hms_date >= datetime.datetime.strptime('17:00:00', '%H:%M:%S'):
                flag = True

            if flag:
                id_list = json.loads(request.POST.get('id_list'))
                objs = models.XiaohongshuBiji.objects.filter(id__in=id_list)
                for obj in objs:
                    obj.status = 1
                    obj.save()
                response.code = 200
                response.msg = '发布成功'

            else:
                response.code = 301
                response.msg = '当前时间不在发布时间段'
            create_xhs_admin_response(request, response, 3)  # 创建请求日志(手机端)

        # 阅读量更改(后台)
        elif oper_type == 'update_reding':
            """
            o_id: 笔记ID
            reading_num: 阅读量
            """
            form_data = {
                'o_id': o_id,
                'reading_num': request.POST.get('reading_num')
            }

            form_obj = UpdateReding(form_data)
            if form_obj.is_valid():
                o_id = form_obj.cleaned_data.get('o_id')
                reading_num = int(form_obj.cleaned_data.get('reading_num'))
                if reading_num > 0:

                    objs = models.XiaohongshuBiji.objects.filter(
                        id=o_id
                    )
                    objs.update(
                        reading_num=reading_num,
                        update_reding_num_time=datetime.datetime.today()
                    )
                    form_data['num'] = reading_num
                    form_data['transfer_type'] = 3
                    form_data['id'] = o_id
                    form_data['platform'] = objs[0].user_id.platform
                    asynchronous_transfer_data.delay(form_data) # 传递到小红书后台
                response.code = 200
                response.msg = '阅读量更新完成'

            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())
            create_xhs_admin_response(request, response, 3)

        # 发布中的笔记 可以改为发布异常(后台)
        elif oper_type == 'instead_abnormal_release_notes':
            form_data = {
                'o_id': o_id,
                'error_msg': request.POST.get('error_msg')
            }
            form_obj = InsteadAbnormalReleaseNotes(form_data)
            if form_obj.is_valid():
                o_id = form_obj.cleaned_data.get('o_id')
                error_msg = form_obj.cleaned_data.get('error_msg')
                obj = models.XiaohongshuBiji.objects.get(id=o_id)
                obj.status = 4
                obj.error_msg = error_msg
                obj.save()
                response.code = 200
                response.msg = '更改发布异常成功'

                form_data['transfer_type'] = 5
                form_data['id'] = o_id
                form_data['platform'] = obj.user_id.platform
                form_data['content'] = error_msg
                asynchronous_transfer_data.delay(form_data)  # 传递到小红书后台
            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())
            create_xhs_admin_response(request, response, 2)

        # 已发布的可修改回链(后台)
        elif oper_type == 'published_notes_back_chain':
            form_data = {
                'o_id': o_id,
                'back_url': request.POST.get('back_url')
            }
            form_obj = PublishedNotesBackChain(form_data)
            if form_obj.is_valid():
                o_id = form_obj.cleaned_data.get('o_id')
                back_url, link = form_obj.cleaned_data.get('back_url')
                obj = models.XiaohongshuBiji.objects.get(id=o_id)
                obj.biji_url = back_url
                obj.biji_existing_url = link
                obj.save()
                response.code = 200
                response.msg = '修改反链成功'
                asynchronous_synchronous_trans.delay(o_id) # 异步更改小红书后台回链
            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())
            create_xhs_admin_response(request, response, 1)

        # 修改笔记是否存在内容的状态
        elif oper_type == "update_exist_content":
            status = request.POST.get('status')
            form_data = {
                'status': request.POST.get('status'),
                'o_id': o_id,
            }
            print("status -->", status, type(status))
            #  创建 form验证 实例(参数默认转成字典)
            forms_obj = UpdateExistContentForm(form_data)
            if forms_obj.is_valid():
                status = forms_obj.cleaned_data.get('status')
                models.XiaohongshuBiji.objects.filter(id=o_id).update(exist_content=status)
                response.code = 200
                response.msg = "修改成功"

            else:
                print("验证不通过")
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())

        # 已发布的笔记 改为重新发布(小红书后台) 404
        elif oper_type == 'republish_instead':
            form_data = {
                'o_id':o_id,
            }
            form_obj = RepublishInsteadForm(form_data)
            if form_obj.is_valid():
                o_id = form_obj.cleaned_data.get('o_id')
                models.XiaohongshuBiji.objects.filter(id=o_id).update(
                    status=5,
                    is_delete_old_biji=False
                )
                response.code = 200
                response.msg = '修改成功'

            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())
            create_xhs_admin_response(request, response, 2)

        # 重新发布的笔记 改为待审核(后台)
        elif oper_type == 'change_pending_review':
            form_data = {
                'biji_id_list': request.POST.get('biji_id_list')
            }
            form_obj = ChangePendingReview(form_data)
            if form_obj.is_valid():
                biji_id_list = form_obj.cleaned_data.get('biji_id_list')
                objs = models.XiaohongshuBiji.objects.filter(
                    id__in=biji_id_list
                )
                objs.update(
                    is_delete_old_biji=True
                )
                for obj in objs:
                    url = 'https://www.ppxhs.com/api/v1/sync/screen-notfound'
                    data = {
                        'id':obj.id,
                        'platform':obj.user_id.platform
                    }
                    ret = requests.post(url, data=data)
                    models.AskLittleRedBook.objects.create(  # 更新日志
                        request_type=2,  # POST请求
                        request_url=url,
                        get_request_parameter='',
                        post_request_parameter=data,
                        response_data=ret.json(),
                        status=1
                    )
                response.code = 200
                response.msg = '删除成功'

            else:
                response.code = 301
                response.msg = json.loads(form_obj.errors.as_json())
            create_xhs_admin_response(request, response, 2)

        else:
            response.code = 402
            response.msg = "请求异常"

    else:
        # 获取发布任务
        if oper_type == "get_release_task":
            form_data = {
                'imsi': request.GET.get('imsi'),
                'iccid': request.GET.get('iccid'),
                'platform': request.GET.get('platform', 1),
            }
            forms_obj = GetReleaseTaskForm(form_data)
            if forms_obj.is_valid():
                iccid = forms_obj.cleaned_data['iccid']
                imsi = forms_obj.cleaned_data['imsi']
                platform = forms_obj.cleaned_data['platform']

                objs = models.XiaohongshuBiji.objects.select_related('user_id').filter(
                    user_id__platform=platform,
                    user_id__phone_id__iccid=iccid,
                    user_id__phone_id__imsi=imsi,
                    status=1,
                    release_time__lt=datetime.datetime.now()
                )

                if objs:
                    obj = objs[0]

                    response.data = {
                        "id": obj.id,
                        "content": obj.content,
                        "platform": obj.user_id.platform,
                    }
                else:
                    response.msg = "当前无任务"
                response.code = 200

            else:
                # print("forms_obj.errors -->", forms_obj.errors)
                response.code = 402
                response.msg = "请求异常"
                response.data = json.loads(forms_obj.errors.as_json())
            create_xhs_admin_response(request, response, 3)
        # 查询 小红书笔记(后台)
        elif oper_type == 'get_xhs_notes':
            forms_obj = select_form(request.GET)
            if forms_obj.is_valid():
                current_page = forms_obj.cleaned_data['current_page']
                length = forms_obj.cleaned_data['length']
                order = request.GET.get('order', '-create_datetime')
                field_dict = {
                    'id': '',
                    'uid': '__contains',
                    'status': '',
                    'biji_type': '',
                    'user_id__name': '__contains',
                    'is_delete_old_biji': '',
                    'user_id__phone_id__name': '',
                    'biji_existing_url': '__contains',
                    'reading_num': '',
                }
                q = conditionCom(request, field_dict)
                content = request.GET.get('content')
                xhs_user_id = request.GET.get('xhs_user_id')
                if content:
                    q.add(Q(title__contains=b64encode(content)), Q.AND)
                if xhs_user_id:
                    q.add(Q(user_id=xhs_user_id), Q.AND)
                objs = models.XiaohongshuBiji.objects.select_related('user_id').filter(
                    q,
                ).exclude(user_id_id=5).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:
                    # biji_type = 'img'
                    # if json.loads(obj.content).get('type') and json.loads(obj.content).get('type') != 'images':
                    #     biji_type = 'video'
                    release_time = obj.release_time
                    if release_time:
                        release_time = obj.release_time.strftime('%Y-%m-%d %H:%M:%S')

                    completion_time = obj.completion_time
                    if completion_time:
                        completion_time = obj.completion_time.strftime('%Y-%m-%d %H:%M:%S')

                    update_reding_num_time = ''
                    if obj.update_reding_num_time:
                        update_reding_num_time = obj.update_reding_num_time.strftime('%Y-%m-%d %H:%M:%S')
                    result_data = {
                        'id': obj.id,
                        'user_id': obj.user_id_id,
                        'phone_id': obj.user_id.phone_id_id,
                        'phone_name': obj.user_id.phone_id.name,
                        'phone_number': obj.user_id.phone_id.phone_num,
                        'user_name': obj.user_id.name,
                        'status_id': obj.status,
                        'reading_num': obj.reading_num,
                        'status': obj.get_status_display(),
                        'release_time': release_time,
                        'completion_time': completion_time,
                        'biji_url': obj.biji_url,
                        'error_msg': obj.error_msg,
                        'biji_type_id': obj.biji_type,
                        'biji_type': obj.get_biji_type_display(),
                        'biji_existing_url': obj.biji_existing_url,
                        'is_delete_old_biji': obj.is_delete_old_biji,
                        'update_reding_num_time': update_reding_num_time,
                        'platform': obj.user_id.platform,
                        'exist_content': obj.exist_content,
                        'create_datetime': obj.create_datetime.strftime('%Y-%m-%d %H:%M:%S'),
                    }
                    result_data['content'] = json.loads(obj.content)
                    ret_data.append(result_data)
                response.code = 200
                response.msg = '查询成功'
                response.data = {
                    'ret_data': ret_data,
                    'count': count,
                    'status_choices': [{'id':i[0], 'name':i[1]} for i in models.XiaohongshuBiji.status_choices],
                    'biji_type_choices': [{'id':i[0], 'name':i[1]} for i in models.XiaohongshuBiji.biji_type_choices]
                }
            else:
                response.code = 301
                response.msg = json.loads(forms_obj.errors.as_json())

        # 获取 exist_content 字段为False的笔记链接,请求小红书接口进行获取数据,判断文章内容是否正常
        elif oper_type == "exist_content_get_url":
            objs = models.XiaohongshuBiji.objects.filter(status=2, exist_content=0)
            if objs:
                obj = objs[0]
                response.code = 200
                biji_id = obj.biji_existing_url.split('/')[-1]
                response.data = {
                    'biji_id': biji_id,
                    'task_id': obj.id
                }
            else:
                response.code = 0
                response.msg = "当前无任务"


        else:
            response.code = 402
            response.msg = "请求异常"
    return JsonResponse(response.__dict__)