def feed_group_ajax(request, feed_id): """ @summary: 订阅数据获取核心接口 @change: [email protected] 调整修复系统bug,已读数量,已读简历 """ if not feed_id or feed_id == "": return HttpResponse("") all_tags = [] tag_names = [] limit = 36 p = request.GET.copy() try: start = int(p.get('start', 0)) except: start = 0 try: limit = int(p.get('limit', 36)) except: limit = 36 try: feed_id = ObjectId(feed_id) except Exception, e: json_data = produce_return_json(status=False, error_dict={"error":str(e)}) return HttpResponse(json_data)
def __inner_deco(request, group_name=group_name, *arg, **kw): pkg_point, pinbot_point = point_utils.get_user_point(request.user) total_points = pkg_point + pinbot_point if total_points >= 10: res = function(request, *arg, **kw) return res else: json_data = produce_return_json(data=3, status=False, error_dict=u'3.有效点数不够') return HttpResponse(json_data, "application/json")
def get(self, request): p = request.GET.copy() resume_id = p.get('resume_id', None) send_id = p.get('send_id', None) send_record = SendCompanyCard.objects.get(id=int(send_id)) 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: result = buy_resume( user=request.user, resume_id=resume_id, send_record=send_record) if result: send_record.points_used = 13 send_record.has_download = True send_record.save() else: send_record.download_status = False send_record.save() json_data = produce_return_json(data=8) return HttpResponse(json_data, "application/json")
def modify_feed_result(request): """ @summary: 功能1.修改机器推荐的结果 功能2.手工添加结果推荐结果 """ get_data = request.GET feed_id = get_data.get('feed_id') resume_id = get_data.get('resume_id') if not (feed_id and resume_id): data = produce_return_json(data='feed_id or resume_id is None', status=False) return JsonResponse(data) reco_index = get_data.get('reco_index', 100) feedback_list = get_data.getlist('feedback[]', []) user = request.user username = user.username now = datetime.datetime.now() feed = ObjectId(feed_id) resume = ObjectId(resume_id) reco_index = int(reco_index) manual_push_resume = ManualPushResume( username=username, feed=feed, resume=resume, reco_index=reco_index, op_time=now, ) manual_push_resume.save() recommend = True if reco_index >= 0 else False resume_update_time = get_today() feed_results = FeedResult.objects.filter(feed=feed, resume=resume) if not feed_results: # 对于搜索结果的推荐点击很合适 feed_result = FeedResult( feed=feed, resume=resume, algorithm='search_result' ) feed_results = [feed_result] for feed_result in feed_results: if not feed_result.is_recommended: feed_result.is_manual = True feed_result.is_recommended = recommend feed_result.resume_update_time = resume_update_time if reco_index >= 0: feed_result.calc_time = now feed_result.manual_ensure_time = now else: # 任务系统中会用到user_feedback_time字段,记录下用户反馈不感兴趣的时间 feed_result.user_feedback_time = now feed_result.reco_index += reco_index # 记录下管理员账号,如果是用户自己点击不合适,则留下用户的账号 feed_result.admin = username feed_result.feedback_list = feedback_list feed_result._data['is_staff'] = 1 if request.user.is_staff else 0 # 添加cls_score if reco_index >= 0 and request.user.is_staff: feed_result.score['cls_score'] = 100 feed_result.save() data = produce_return_json() return HttpResponse(data, 'application/json')
def add_manual_feed_result(request): """ @summary: 向订阅添加人工的结果 """ p = request.POST feed_id = p.get('feed_id') url = p.get('url') username = p.get('username') or request.user.username recommend = p.get('recommend', True) user = request.user if not recommend: recommend = False feed = ObjectId(feed_id) x_pinbot_admin_auth = request.META.get('HTTP_X_PINBOT_ADMIN_AUTH', '') if x_pinbot_admin_auth != PINBOT_ADMIN_AUTH_DICT['x-pinbot-admin-auth'] and not user.is_staff: data = produce_return_json(data=' x_pinbot_admin_auth is error', status=False) elif feed_id and url: try: resume = get_resume_from_url(url) try: if resume.update_time.find("-") > 0: resume_update_time = datetime.datetime.strptime(resume.update_time, "%Y-%m-%d") elif resume.update_time.find("/") > 0: resume_update_time = datetime.datetime.strptime(resume.update_time, "%Y/%m/%d") else: resume_update_time = datetime.datetime.today() except : resume_update_time = datetime.datetime.today() if resume: ManualPushResume(username=username, feed=feed, resume=resume, url=url, reco_index=300).save() feed_results = FeedResult.objects.filter(feed=feed, resume=resume) if feed_results: for feed_result in feed_results: # 判断是否用户自己已经屏蔽过了 if feed_result.is_manual and feed_result.is_recommended == False: data = produce_return_json(data='用户已经被人工屏蔽过了,这条推荐没有保存', status=False) break elif feed_result.is_manual == False and feed_result.is_recommended == False: feed_result.is_recommended = recommend feed_result.resume_update_time = resume_update_time feed_result.is_manual = True feed_result.calc_time = get_datetime(hours=12) feed_result.admin = username feed_result.is_staff = 1 if 'hopperclouds.com' in username else 0 feed_result.published = False feed_result.save() data = produce_return_json(data='已经成功修改结果(机器屏蔽数据)', status=False) else: reco_er = '' if '@' in feed_result.admin: reco_er = feed_result.admin else: reco_er = '算法%s_%s' % (feed_result.algorithm, feed_result.admin) hint = "[已推]%s 在 %s[added] 不会强推" % (reco_er, feed_result.calc_time) data = produce_return_json(data = hint , status = False) else: # 管理员,首次添加新的推荐 feed_result = FeedResult(feed=feed, resume=resume, \ is_recommended=recommend, reco_index=300, \ job_related=30) feed_result.resume_update_time = resume_update_time feed_result.is_manual = True feed_result.calc_time = datetime.datetime.today() feed_result.published = False feed_result.admin = username feed_result.is_staff = 1 if 'hopperclouds.com' in username else 0 feed_result.save() data = produce_return_json(data='首次添加成功') else: # 人工添加但是还不能在resumeData中找到 ManualPushResume(username=username, feed=feed, url=url, reco_index=110, has_collected=False).save() data = produce_return_json(data='Pinbot 还没有收集到这个简历.has not collected in pinbot sys', status=False) except Exception, e: data = produce_return_json(data=str(e), status=False)
feed_result.calc_time = datetime.datetime.today() feed_result.published = False feed_result.admin = username feed_result.is_staff = 1 if 'hopperclouds.com' in username else 0 feed_result.save() data = produce_return_json(data='首次添加成功') else: # 人工添加但是还不能在resumeData中找到 ManualPushResume(username=username, feed=feed, url=url, reco_index=110, has_collected=False).save() data = produce_return_json(data='Pinbot 还没有收集到这个简历.has not collected in pinbot sys', status=False) except Exception, e: data = produce_return_json(data=str(e), status=False) else: data = produce_return_json(data='feed_id or url is null', status=False) return HttpResponse(data, 'application/json') @login_required @feedback_finished def modify_feed_result(request): """ @summary: 功能1.修改机器推荐的结果 功能2.手工添加结果推荐结果 """ get_data = request.GET feed_id = get_data.get('feed_id') resume_id = get_data.get('resume_id')
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')