示例#1
0
 def get(self, request: HttpRequest):
     three_days_ago = datetime.datetime.now() - datetime.timedelta(days=3)
     all_positions = Position.objects.filter(position_send_time__gt=three_days_ago,
                                             company__company_state=BaseModel.text2state("正常")) \
         .order_by('-position_send_time')
     newest = get_std_job_data(all_positions)
     rt = get_value_dict(newest)
     return ret_data(200, rt, "ok")
示例#2
0
    def get(self, request: HttpRequest):
        user_id = request.GET.get("userId")
        companies = Company.objects.filter(company_owner__user_id=user_id, company_state=BaseModel.text2state("正常")) \
            .values('company_id', 'company_name', 'company_establishment_date',
                    'company_logo_id',
                    position_count=Count('position'))

        return ret_data(200, get_value_dict(companies), "ok")
示例#3
0
 def get(self, request: HttpRequest):
     company_id = request.GET.get("companyId")
     # 加上过滤state为删除状态
     positions = Position.objects.filter(company__company_id=company_id, position_state=BaseModel.text2state("正常")) \
         .values('company_id', 'position_id', 'position_name', 'position_min_wages',
                 'position_max_wages', 'position_tags', 'position_region',
                 resume_count=Count('positionresume'))
     return ret_data(200, get_value_dict(positions), "ok")
示例#4
0
 def post(self, request: HttpRequest):
     question = request.POST.get("keyWord")
     start_index = int(request.POST.get("startIndex"))
     res = SearchJob(question)
     temp = SearchTemplate()
     word_type, inde = res.run()
     positions = temp.run(word_type, inde)
     all_positions = positions[start_index:start_index + 20]
     res = get_std_job_data(all_positions)
     return ret_data(200, get_value_dict(res), "ok")
示例#5
0
 def get(self, request: HttpRequest):
     position_id = request.GET.get("positionId")
     pr_dict = PositionResume.objects.filter(position_id=position_id) \
         .exclude(position_resume_checked__exact=BaseModel.text2state("已删除")) \
         .values('user__user_name', 'position_resume_time', 'resume__resume_name',
                 'resume__resume_type', 'resume__resume_size', 'resume__resume_id',
                 'resume__resume_file') \
         .order_by("-position_resume_time")
     return ret_data(
         200, get_value_dict(get_job_value_dict(pr_dict, "resume__")), "ok")
示例#6
0
        def get(self, request: HttpRequest):
            user_id = request.GET.get('userId')
            # 没登录
            if int(user_id) <= 0:
                all_positions = Position.objects.all().values(
                    'position_id', 'position_name', 'position_tags',
                    'position_region', 'position_min_wages',
                    'position_sender_position', 'position_max_wages',
                    'company__company_name', 'company__company_employees_num',
                    'company__company_financing_progress',
                    'company__company_owner__user_name',
                    'company__company_owner__user_avatar_url')
                data = {
                    "intent": None,
                    "positions": get_value_dict(all_positions),
                }
                return ret_data(200, data, "not login")

            # 登录了
            else:
                intent = JobIntent.objects.filter(user_id=user_id)
                if len(intent) > 0:
                    rec = Recommend(intent[0])
                    rec.run(user_id, 10)
                    result = rec.get_filter_positions()
                    recommend = rec.get_recommend_positions()
                    if recommend:
                        all_result = result | recommend
                    else:
                        all_result = result

                    intent = JobIntent.objects.filter(user_id=user_id)[0]
                    data = {
                        "intent": intent.dict(),
                        "positions":
                        get_value_dict(get_std_job_data(all_result)),
                    }
                    return ret_data(200, data, "logged in")
                else:
                    return ret_data(200, None, "user has no intent")
示例#7
0
        def get(self, request: HttpRequest):
            position_id = request.GET.get("positionId")
            user_id = request.GET.get("userId")

            Thread(target=self._create_or_update_history,
                   args=(position_id, user_id)).start()

            position = Position.objects.filter(pk=position_id) \
                .values('position_id', 'position_name', 'position_min_wages', 'position_max_wages', 'position_region',
                        'position_experience', 'position_education', 'company__company_owner__user_avatar_url',
                        'company__company_owner__user_name', 'company__company_name', 'position_sender_position',
                        'position_detail', 'position_tags', 'company__company_logo', 'position_detailed_location',
                        'company__company_financing_progress', 'company__company_employees_num')

            return ret_data(200, get_value_dict(position), "ok")