Beispiel #1
0
def operate_resume(request, resume_id, type):
    """
    @summary: if a user like some resume ,he can click watch on a resume page.
    @author: [email protected] 2013-09-17 17:55
    """
    if request.method == "GET":
        user = request.user
        p = request.GET.copy()
        feed_keywords = p.get('feed_keywords', '')
        feed_id = p.get('feed_id', '')
        if resume_id:
            resume_id = str(resume_id)
            watch_time = datetime.datetime.now()
            user_watch_resumes = UserWatchResume.objects.filter(user=user,
                                                                resume_id=resume_id)
            if user_watch_resumes:
                for user_watch_resume in user_watch_resumes:
                    user_watch_resume.resume_id = resume_id
                    user_watch_resume.feed_id = feed_id
                    user_watch_resume.type = type  # 修改搜有搜索词的改简历的关注状态.
                    user_watch_resume.add_time = watch_time
                    user_watch_resume.feed_keywords = feed_keywords
                    user_watch_resume.save()
            else:
                user_resume = UserWatchResume(user=user, resume_id=resume_id,
                                              type=type, add_time=watch_time, feed_id=feed_id,
                                              feed_keywords=feed_keywords)
                user_resume.save()

            # 反馈关注结果给算法
            FeedUtils.feed_result_watch(resume_id, feed_id, type)

            json_data = produce_return_json(data={})
            return HttpResponse(json_data, 'application/json')
Beispiel #2
0
def display(request, resume_id, resume_score):
    """
    @summary: 详细信息展示页面
    @author:liyao
    """
    from Pinbot.settings import STATIC_URL
    p = request.GET
    feed_id = p.get('feed_id')
    feed_result = FeedUtils.get_feed_result(feed_id, resume_id)
    if feed_result:
        calc_time = feed_result.calc_time
        if request.user.is_staff and feed_result.feed.username != request.user.username:
            read_user = '******'
        else:
            read_user = '******'
        FeedUtils.read_feed(request, feed_id, resume_id, read_user=read_user)
    try:
        if hasattr(feed_result, 'tags'):
            keywords_new = feed_result.tags.keywords
            feed_keywords = u' '.join(keywords_new)
        else:
            feed_keywords = feed_result.feed.keywords
    except:
        feed_keywords = u''
    try:
        resume = ResumeData.objects.get(id=resume_id)
        if resume.source == 'pinbot':
            resume['age'] = get_age(resume.birthday)

        resume.work_years = resume.get_work_years()

    except Exception, e:
        raise Http404()
Beispiel #3
0
def display(request, resume_id, resume_score):
    """
    @summary: 详细信息展示页面
    @author:liyao
    """
    from Pinbot.settings import STATIC_URL
    p = request.GET
    feed_id = p.get('feed_id')
    feed_result = FeedUtils.get_feed_result(feed_id, resume_id)
    if feed_result:
        calc_time = feed_result.calc_time
        if request.user.is_staff and feed_result.feed.username != request.user.username:
            read_user = '******'
        else:
            read_user = '******'
        FeedUtils.read_feed(request, feed_id, resume_id, read_user=read_user)
    try:
        if hasattr(feed_result, 'tags'):
            keywords_new = feed_result.tags.keywords
            feed_keywords = u' '.join(keywords_new)
        else:
            feed_keywords = feed_result.feed.keywords
    except:
        feed_keywords = u''
    try:
        resume = ResumeData.objects.get(id=resume_id)
        if resume.source == 'pinbot':
            resume['age'] = get_age(resume.birthday)

        resume.work_years = resume.get_work_years()

    except Exception, e:
        raise Http404()
Beispiel #4
0
def feed_get(request, feed_id, resume_id):

    if request.is_ajax():
        FeedUtils.read_feed(request, feed_id, resume_id)
        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
        })

    return redirect('/resumes/display/%s/?feed_id=%s' % (resume_id,feed_id))
Beispiel #5
0
    def post(self, request):
        json_data = json.loads(request.body)
        user = request.user
        company_obj = get_object_or_none(
            Company,
            user=user,
        )
        form = CompanyForm(json_data) if not company_obj else CompanyForm(
            json_data, instance=company_obj)

        if form.is_valid():
            company = form.save(commit=False)
            company.user = user
            company.save()
            form.save_m2m()
            redirect_url = '' if FeedUtils.has_use_feed(
                user) else reverse('feed-add-new')
            return JsonResponse({
                "status": "ok",
                "id": company.id,
                'msg': 'ok',
                'redirect_url': redirect_url,
            })
        else:
            return JsonResponse({
                'status': 'form_error',
                'msg': form.get_first_errors(),
                'data': {
                    'errors': form.errors,
                }
            })
Beispiel #6
0
 def save_feed_result(self, feed, resume):
     feed_result = FeedUtils.add_feed_result(
         feed.feed_obj_id,
         resume.resume_id,
         source='talent_partner',
     )
     return feed_result
Beispiel #7
0
    def post(self, request):
        resume_id = request.POST.get('resume_id', '')
        feed_id = request.POST.get('feed_id', '')
        username = request.user.username

        feed_result = FeedUtils.add_feed_result(
            feed_id,
            resume_id,
            admin=username,
        )

        if not feed_result:
            result = {
                'status': 'data_error',
                'msg': '数据有误',
            }
        else:
            candidate = self.get_candidate_by_resume_id(resume_id)
            candidate.has_contact = True
            candidate.save()

            result = {
                'status': 'ok',
                'msg': '加入成功',
            }
        return JsonResponse(result)
Beispiel #8
0
 def save_feed_result(self, feed, resume):
     feed_result = FeedUtils.add_feed_result(
         feed.feed_obj_id,
         resume.resume_id,
         source='talent_partner',
     )
     return feed_result
Beispiel #9
0
    def get(self, request):
        user = request.user

        company = Company.objects.select_related(
            'category',
        ).filter(
            user=user
        )
        company_card_dict = {}
        jobs_arr = []
        companycard_css = 'curr'
        company_category = []
        if len(company) >= 1:
            company = company[0]
            company.desc = company.desc.strip()
            company_json = model_to_dict(company)
            company_card_dict['company'] = company_json
            jobs = Job.objects.filter(company=company, deleted=False)
            for job in jobs:
                job_json = model_to_dict(job)
                jobs_arr.append(job_json)
            company_card_dict['jobs'] = jobs_arr
            company_category = company.category.all()
            company_card_dict['select_category'] = [
                {
                    'category': c.category,
                    'id': c.id,
                }
                for c in company_category
            ]

        all_company_category = CompanyCategory.objects.filter(
            display=True,
        ).order_by(
            '-sort',
        )

        select_id_list = [c.id for c in company_category]
        company_card_dict['all_company_category'] = [
            {
                'category': c.category,
                'id': c.id,
                'select': True if c.id in select_id_list else False
            }
            for c in all_company_category
        ]
        company_card_dict['show_mission'] = True if (
            not FeedUtils.has_use_feed(user)
            and VipRoleUtils.get_current_vip(user)
        ) else False
        company_card_json = json.dumps(company_card_dict)
        return render(
            request,
            self.template_name,
            {
                'company_json': company_card_json,
                'companycard_css': companycard_css,
            },
        )
Beispiel #10
0
def main():
    reco_task_query = RecoResumeTask.objects.select_related(
        'feed',
        'resume',
    ).filter(
        action=1,
    )

    for rt in reco_task_query:
        feed_obj_id = rt.feed.feed_obj_id
        resume_id = rt.upload_resume.resume_id

        FeedUtils.add_feed_result(
            feed_obj_id,
            resume_id,
            source='talent_partner',
        )
        print feed_obj_id, 'success'
    def read_feed_result(self, feed_result):
        if not feed_result:
            return False

        request = self.request
        feed_id = self.request.GET.get('feed_id', '')
        resume_id = self.kwargs.get('resume_id', '')

        if request.user.is_staff and feed_result.feed.username != request.user.username:
            read_user = '******'
        else:
            read_user = '******'
        ret = FeedUtils.read_feed(request, feed_id, resume_id, read_user=read_user)
        return ret
Beispiel #12
0
def operate_resume(request, resume_id, type):
    """
    @summary: if a user like some resume ,he can click watch on a resume page.
    @author: [email protected] 2013-09-17 17:55
    """
    if request.method == "GET":
        user = request.user
        p = request.GET.copy()
        feed_keywords = p.get('feed_keywords', '')
        feed_id = p.get('feed_id', '')
        if resume_id:
            resume_id = str(resume_id)
            watch_time = datetime.datetime.now()
            user_watch_resumes = UserWatchResume.objects.filter(
                user=user, resume_id=resume_id)
            if user_watch_resumes:
                for user_watch_resume in user_watch_resumes:
                    user_watch_resume.resume_id = resume_id
                    user_watch_resume.feed_id = feed_id
                    user_watch_resume.type = type  # 修改搜有搜索词的改简历的关注状态.
                    user_watch_resume.add_time = watch_time
                    user_watch_resume.feed_keywords = feed_keywords
                    user_watch_resume.save()
            else:
                user_resume = UserWatchResume(user=user,
                                              resume_id=resume_id,
                                              type=type,
                                              add_time=watch_time,
                                              feed_id=feed_id,
                                              feed_keywords=feed_keywords)
                user_resume.save()

            # 反馈关注结果给算法
            FeedUtils.feed_result_watch(resume_id, feed_id, type)

            json_data = produce_return_json(data={})
            return HttpResponse(json_data, 'application/json')
Beispiel #13
0
    def read_feed_result(self, feed_result):
        if not feed_result:
            return False

        request = self.request
        feed_id = self.request.GET.get('feed_id', '')
        resume_id = self.kwargs.get('resume_id', '')

        if request.user.is_staff and feed_result.feed.username != request.user.username:
            read_user = '******'
        else:
            read_user = '******'
        ret = FeedUtils.read_feed(request,
                                  feed_id,
                                  resume_id,
                                  read_user=read_user)
        return ret
Beispiel #14
0
        tag_list.append((str(resume_tag.tag_id), resume_tag.tag_content))
    if not user.is_anonymous():
        check_status, type_desc, feedback_str, re_points = get_feedback_str(
            request.user, str(resume.id))
        offical_feedback = get_offical_feedback(str(resume.id))
    if request.user.is_staff == 1:
        feedback_dict = get_feedback(str(resume.id))
        if feedback_dict and len(feedback_dict) >= 1:
            has_feedback = True

    display_aside = True

    if not user.is_anonymous():
        # 第二次领取红包任务
        is_user_feed = False
        if FeedUtils.is_user_feed(user, feed_id):
            username = user.username
            is_user_feed = True

        is_send_resume = True if FeedUtils.is_send_resume(user,
                                                          resume_id) else False

        # 人才伙伴添加点数
        PartnerCoinUtils.check_resume(feed_id, resume_id)

        # 是否是人才伙伴自己在查看简历
        self_upload_resume = True if UploadResumeUtils.is_self_upload(
            user, resume_id) else False

        # 获取投递工作
        job_id = request.GET.get('job_id', '0')
Beispiel #15
0
def buy(request):
    """
    @summary: 购买简历
    """
    try:
        p = request.GET.copy()
        resume_id = p.get('resume_id', '')
        feed_id = p.get('feed_id', '')
        keywords = p.get('feed_keywords', '')
        job_id = p.get('job_id', '')
        user = request.user

        if ResumeBuyRecord.objects.filter(user=request.user, resume_id=resume_id).count():
            json_data = produce_return_json(data=2, status=False, error_dict=u'2.已购买过此简历_has bought this resume')
        else:
            pkg_points, user_points = point_utils.get_user_point(user)
            result, point = point_utils.consume_download_point(user)
            if result == 'success':
                status = 'LookUp' if ContactInfoData.objects.filter(resume_id=ObjectId(resume_id)).count() > 0 else 'Start'
                if status == 'LookUp':
                    # pinbot系统已经购买过,可以马上查阅了
                    json_data = produce_return_json(data=8)
                else:
                    # pinbot系统还没有,要等一段时间,后边邮件提醒一下
                    json_data = produce_return_json(data=9)

                resume = ResumeData.objects.get(pk=ObjectId(resume_id))
                record = ResumeBuyRecord(user=user, resume_id=resume_id, \
                                         feed_id=feed_id,
                                         keywords=keywords,
                                          op_time=datetime.now(), status=status, resume_url=resume.url)
                if status == 'LookUp':
                    record.finished_time = datetime.now()

                PartnerCoinUtils.download_resume(feed_id, resume_id)
                JobUtils.download_send_resume(job_id, user)

                # 反馈结果给算法,修改feed_result
                FeedUtils.feed_result_download(resume_id, feed_id)
                send_id = p.get('sendid',None)
                if send_id:
                    send_record = SendCompanyCard.objects.get(id=int(send_id))
                    record.send_card = send_record
                    send_record.points_used = 13
                    send_record.has_download = True
                    send_record.save()

                record.save()

                # 如果状态是start,就表示是当前库中没有该简历的联系信息,先发送一个通知给管理员
                # 然后需要通知爬虫去下载
                if record.status == 'Start':
                    notify_buy_resume(user, str(resume_id), resume.source)
                    asyn_send_download_msg.delay(record.id)
            else:
                json_data = produce_return_json(
                    data=5,
                    status=False,
                    error_dict=u'点数不足10点',
                    msg=u'聘点不足10点'
                )
    except Exception, e:
        if resume_id:
            json_data = produce_return_json(data=4, status=False, error_dict=str(e))
        else:
            json_data = produce_return_json(data=4, status=False, error_dict='4.resume_id is null')
Beispiel #16
0
 def is_user_feed(self):
     user = self.request.user
     feed_id = self.request.GET.get('feed_id', '')
     return FeedUtils.is_user_feed(user, feed_id)
Beispiel #17
0
 def get_feed_result(self):
     resume_id = self.kwargs.get('resume_id', '')
     feed_id = self.request.GET.get('feed_id', '')
     feed_result = FeedUtils.get_feed_result(feed_id, resume_id)
     return feed_result
 def is_user_feed(self):
     user = self.request.user
     feed_id = self.request.GET.get('feed_id', '')
     return FeedUtils.is_user_feed(user, feed_id)
 def get_feed_result(self):
     resume_id = self.kwargs.get('resume_id', '')
     feed_id = self.request.GET.get('feed_id', '')
     feed_result = FeedUtils.get_feed_result(feed_id, resume_id)
     return feed_result
Beispiel #20
0
        tag_list.append((str(resume_tag.tag_id), resume_tag.tag_content))
    if not user.is_anonymous():
        check_status, type_desc, feedback_str, re_points = get_feedback_str(
            request.user, str(resume.id))
        offical_feedback = get_offical_feedback(str(resume.id))
    if request.user.is_staff == 1:
        feedback_dict = get_feedback(str(resume.id))
        if feedback_dict and len(feedback_dict) >= 1:
            has_feedback = True

    display_aside = True

    if not user.is_anonymous():
        # 第二次领取红包任务
        is_user_feed = False
        if FeedUtils.is_user_feed(user, feed_id):
            username = user.username
            is_user_feed = True

        is_send_resume = True if FeedUtils.is_send_resume(
            user, resume_id) else False

        # 人才伙伴添加点数
        PartnerCoinUtils.check_resume(feed_id, resume_id)

        # 是否是人才伙伴自己在查看简历
        self_upload_resume = True if UploadResumeUtils.is_self_upload(
            user, resume_id) else False

        # 获取投递工作
        job_id = request.GET.get('job_id', '0')