Example #1
0
    def get(self, request, job_id):
        user = request.user

        receive_resume_query = ReceiveResume.objects.filter(
            hr_user=user,
            id=job_id,
            action='send',
            company_action='waiting',
        ).select_related(
            'job',
            'resume',
        )
        if receive_resume_query:
            with transaction.atomic():
                receive_resume = receive_resume_query[0]
                receive_resume.company_action = 'unfit'
                receive_resume.save()
                NotifyUtils.company_notify(receive_resume, 'fail')

        return JsonResponse({
            'status': 'ok',
            'msg': '操作成功',
        })
Example #2
0
    def post(self, request, vip_id):
        user_vip_query = UserVip.objects.select_related('user', ).filter(
            id=vip_id, )
        if not user_vip_query:
            raise Http404

        expire_time = datetime.datetime.now()
        user_vip = user_vip_query[0]
        user = user_vip.user
        user_vip.expire_time = expire_time

        user_vip.save()
        SelfServiceUtils.set_experience_user(user)

        return JsonResponse({
            'result': 'success',
            'new_data': {
                'offline_pay': u'操作成功'
            },
            'new_html': {
                'offline_pay': u'操作成功'
            },
        })
Example #3
0
    def get(self, request):
        today = get_today()
        time_limit = today + datetime.timedelta(days=-2)

        if time_limit < MARK_TIME:
            has_mark = False
        else:
            user = request.user
            need_mark_query = ResumeBuyRecord.objects.filter(
                user=user,
                status='LookUp',
                finished_time__gt=MARK_TIME,
                finished_time__lte=time_limit,
            ).exclude(
                resume_mark__current_mark__end_status=True,
                resume_mark__accu_status__in=(0, 1, 2),
            )
            has_mark = True if need_mark_query else False
        return JsonResponse({
            'status': 'ok',
            'has_mark': has_mark,
            'redirect_url': '/transaction/unmark_resume/',
            'msg': 'ok',
        })
Example #4
0
    def get(self, request):

        task_query = Task.objects.all()
        task_status_query = TaskFinishedStatus.objects.filter(
            user=request.user
        ).values(
            'task',
            'current_process',
            'finished_status',
            'reward_status',
        )
        task_status_dict = self.task_status_dict_mapper(task_status_query)
        task_status = self.add_task_finished_status(task_query, task_status_dict)
        task_status = self.check_once_task_is_finished(request.user, task_status)
        recent_reward_detail = self.get_recently_reward_records()
        task_status = self.order_status_list(task_status)

        all_task = {
            'status': 'ok',
            'task_count': len(task_status),
            'data': task_status,
            'recent': recent_reward_detail,
        }
        return JsonResponse(all_task)
Example #5
0
    def post(self, request, feed_id):
        feed_id = get_oid(feed_id)
        username = request.user.username
        now = datetime.datetime.now()

        update_data = json_util.loads(request.body)

        for r in update_data.get('remarks', []):
            if not r.get('username'):
                r['username'] = username
            if not r.get('op_time'):
                r['op_time'] = now
            r['necessary_keywords'] = r.get(
                'necessary_keywords', '').split() if r.get(
                    'necessary_keywords', '') else []
            r['exclude_job_keywords'] = r.get(
                'exclude_job_keywords', '').split() if r.get(
                    'exclude_job_keywords', '') else []
            r['latent_semantic_keywords'] = r.get(
                'latent_semantic_keywords', '').split() if r.get(
                    'latent_semantic_keywords', '') else []

        feed_query = Feed2.objects.filter(id=feed_id, )
        if feed_query:
            feed = feed_query[0]
            update_feed = update_document(
                feed,
                ignored=update_data.get('ignored', False),
                remarks=update_data.get('remarks'),
            )
            update_feed.save()

        return JsonResponse({
            'status': 'ok',
            'msg': '保存成功',
        })
 def get(self, request):
     gift_pool = cache.get(self.gift_pool_key, {})
     return JsonResponse(gift_pool)
Example #7
0
    def post(self, request):

        data = request.POST
        user = request.user
        task_data = data.get('task_data')
        task_times, task_code = task_data.split('_', 1)
        task_times = int(task_times)
        task = Task.objects.filter(
            task_code=task_code,
            task_count=task_times
        )

        if not task:
            return JsonResponse({
                'status': 'error',
                'msg': 'error task_code',
            })

        task = task[0]

        if self.check_weixin_is_required(user, task):
            return JsonResponse({
                'status': 'error',
                'msg': 'weixin bind required',
            })
        if self.is_address_add(user, task):
            return JsonResponse({
                'status': 'error',
                'msg': 'address required'
            })

        if task.task_level in [1, 2, 3]:
            not_receive_num = TaskFinishedStatus.objects.filter(
                user=request.user,
                task=task,
                finished_status=2,
                task_times=task_times,
                reward_status=1,
            ).update(
                reward_status=2,
                reward_time=datetime.now()
            )
        elif task.task_level == 4:
            not_receive_num = TaskFinishedStatus.objects.filter(
                user=request.user,
                task=task,
                finished_status=2,
                task_times=task_times,
                reward_status=1,
            ).update(
                reward_status=1,
                finished_status=1,
            )
        elif task.task_level == 5:
            not_receive_num = TaskFinishedStatus.objects.filter(
                user=request.user,
                task=task,
                finished_status=2,
                task_times=task_times,
                reward_status=1,
            ).update(
                reward_status=1,
                finished_status=1,
                current_process=0,
                reward_time=None,
            )

        self.check_user_nofity_status(user)

        if not_receive_num == 0:
            return JsonResponse({
                'status': 'error',
                'msg': 'task_code error or reward_status is due'
            })

        self.reward_provide(task, user)
        return JsonResponse({
            'status': 'ok',
            'msg': 'success',
        })
Example #8
0
 def post(self, request):
     client_id = get_int(request.POST.get('client_id'))
     CRMClientInfo.objects.filter(client__id=client_id).update(admin=None)
     return JsonResponse({'status': 'ok', 'msg': '取消成功'})
Example #9
0
    def get(self, request):
        '''
        兼容接口请求和页面请求
        '''
        ajax_request = request.is_ajax()
        all_feed = self.get_all_feed()
        has_rest_feed = self.has_rest_feed()

        if not all_feed:
            if ajax_request:
                return JsonResponse({
                    'status': 'no_feed',
                    'msg': '没有定制',
                })

            return render(
                request,
                'feed_home_page.html',
                {},
            )

        all_feed_dict = [{
            'feed': {
                'id': str(f.feed.id),
                'keywords': f.feed.keywords,
                'salary_min': f.feed.salary_min,
                'salary_max': f.feed.salary_max,
                'expect_area': f.feed.expect_area,
                'talent_level': f.feed.talent_level,
                'feed_type': f.feed.feed_type,
                'unread_count': f.feed.unread_count,
                'expire_status': f.feed.expire_status,
                'has_expire': f.feed.has_expire,
                'start_time': f.feed.start_time,
                'partner_feed': f.feed.partner_feed,
                'job_type': f.feed.job_type,
                'title': f.feed.title,
                'last_click_time': f.feed.last_click_time,
                'calced': f.feed.calced,
            },
        } for f in all_feed]
        current_vip = VipRoleUtils.get_current_vip(request.user)

        data = {
            'all_feed': all_feed_dict,
            'has_rest_feed': has_rest_feed,
            'vip_user': True if current_vip else False,
        }

        if ajax_request:
            return JsonResponse({
                'status': 'ok',
                'data': data,
                'msg': 'ok',
            })

        data_json = json.dumps(data, default=json_util.default)

        return render(
            request,
            self.template_name,
            {
                'data': data_json,
                'all_feed': all_feed,
                'has_rest_feed': has_rest_feed,
            },
        )
Example #10
0
    def post(self, request):

        if self.malice_ip():
            return JsonResponse({
                'status': 'error',
                'msg': '错误次数太多,请稍后再试',
                'errors': {
                    "username": ['错误次数太多,请稍后再试']
                }
            })

        post_data = request.JSON
        username = post_data.get('username')
        password = post_data.get('password')

        next_url = post_data.get('next', reverse('special-feed-page'))

        if not error_phone(username) and not PinbotAccount.is_phone_bind(
                mobile=username):
            return JsonResponse({
                'status': 'error',
                'msg': '手机号未绑定,不能登录',
                'errors': {
                    "username": ['手机号未绑定,不能登录']
                }
            })

        user = authenticate(username=username, password=password)
        if not user:
            return JsonResponse({
                'status': 'error',
                'msg': '登陆失败,用户名或密码错误',
                'errors': {
                    "username": ['登陆失败,用户名或密码错误']
                }
            })

        if not hasattr(user, 'userprofile'):
            return JsonResponse({
                'status': 'error',
                'msg': '请使用新的企业邮箱重新注册聘宝企业端',
                'errors': {
                    "username": [
                        '请使用新的企业邮箱重新注册聘宝企业端',
                    ]
                }
            })

        redirect_url = get_valid_next_url(next_url)
        login(request, user)
        self.clean_malice()

        industrys = user.company_set.all().values_list(
            'category__industry__code_name', flat=True)
        user_industry = industrys[0] if len(industrys) > 0 else ''

        if user_industry == 'medicine':
            redirect_url = reverse('new_field_attent')

        return JsonResponse({
            'status': 'ok',
            'msg': '登陆成功',
            'username': user.username,
            'redirect_url': redirect_url,
            'user_industry': user_industry
        })
Example #11
0
 def post(self, request):
     feed = json.loads(request.body)
     feed = self.api_post_data(feed)
     result = ParseUtils.parse_related(feed)
     return JsonResponse(result)
Example #12
0
 def post(self, request):
     feed = json.loads(request.body)
     result = ParseUtils.parse_num(feed)
     return JsonResponse(result)
Example #13
0
    def post(self, request):
        post_data = json.loads(request.body)
        post_data = self.strip_post_data(post_data)
        feed_id = post_data.get('feed_id', '')
        self.user = request.user

        feed = get_object_or_none(
            Feed,
            feed_obj_id=feed_id,
            user=self.user,
        )
        if feed_id and not feed:
            return JsonResponse({
                'status': 'feed_error',
                'msg': '定制数据有误',
            })

        form = self.get_form(feed)
        self.form = form(post_data, post_data=post_data) if not feed else form(
            post_data, post_data=post_data, instance=feed)

        if not self.form.is_valid():
            return JsonResponse({
                'status': 'form_error',
                'msg': self.form.get_first_errors(),
                'errors': self.form.errors,
            })

        user = request.user
        self.data = self.form.cleaned_data
        self.company = get_object_or_none(Company, user=user)

        if not feed:
            if not self.has_rest_feed():
                return JsonResponse({
                    'status': 'no_feed',
                    'msg': '没有剩余订制可用',
                })

            feed = self.create_feed()

            self.send_feed_email(feed)
            result = {
                'status': 'ok',
                'msg': '添加成功',
                'show_mission': False,
                'mission_time': None,
                'username': user.username,
                'redirect_url': '/feed',
                'feed_id': feed.feed_obj_id,
            }
        else:
            feed = self.update_feed()
            result = {
                'status': 'ok',
                'msg': '保存成功',
                'redirect_url': '/feed',
                'feed_id': feed.feed_obj_id,
            }

        FeedParserUtils.save_feed_parser(
            feed.feed_obj_id,
            post_data.get('keywords', '').split(','),
            post_data.get('block_keywords', '').split(','),
            post_data.get('analyze_titles', '').split(','),
            post_data.get('block_titles', '').split(','),
        )
        CeleryUtils.user_feed_task(feed.feed_obj_id)
        return JsonResponse(result)
Example #14
0
    def get(self, request, feed_id=''):
        '''
        兼容接口请求和页面请求
        '''
        ajax_request = request.is_ajax()
        user = request.user
        feed_query = Feed.objects.prefetch_related(
            'job_domain',
            'company_prefer',
        ).filter(
            feed_obj_id=feed_id,
            user=user,
            deleted=False,
        )

        feed_error = feed_id and not feed_query
        if feed_error:
            if not ajax_request:
                return redirect('payment-my-account')

            return JsonResponse({
                'status': 'feed_error',
                'msg': '请选择正确的定制',
            })

        no_rest_feed = not feed_query and not feed_id and not self.has_rest_feed(
        )

        if no_rest_feed:
            if not ajax_request:
                return redirect('payment-my-account')

            return JsonResponse({
                'status': 'no_rest_feed',
                'msg': '没有剩余定制数,无法添加定制',
            })

        feed_dict = self.get_feed_dict(feed_query)
        company_dict = self.get_company_dict()
        expect_area = list(City.objects.all().values_list('name', flat=True))
        company_prefer = list(CompanyCategoryPrefer.objects.all().order_by(
            '-sort', ).values(
                'id',
                'name',
            ))
        job_welfare = list(CompanyWelfare.objects.all().order_by(
            '-sort', ).values_list(
                'name',
                flat=True,
            ))

        data = {
            'company': company_dict,
            'feed': feed_dict,
            'expect_area': expect_area,
            'company_prefer': company_prefer,
            'job_welfare': job_welfare,
        }

        if not ajax_request:
            response = render(
                request,
                self.template_name,
                {'data': json.dumps(data, ensure_ascii=False)},
            )
        else:
            response = JsonResponse({
                'status': 'ok',
                'msg': 'ok',
                'data': data
            },
                                    ensure_ascii=False)
        return response