def add_accu_mark(cls, user, resume_id, accu_type): if accu_type != 'accusation': return False buy_record = get_object_or_none( ResumeBuyRecord, user=user, resume_id=resume_id, ) if hasattr(buy_record, 'resume_mark'): return False mark = get_object_or_none( ResumeMarkSetting, code_name='accusation', ) resume_mark = DownloadResumeMark( buy_record=buy_record, current_mark=mark, accu_status=1, ) resume_mark.save() mark_log = UserMarkLog( resume_mark=resume_mark, mark=mark, ) mark_log.save() return resume_mark
def init_mark_relation(): for key, value in CHOICES_META.iteritems(): null_parent = get_object_or_none( ResumeMarkRelation, mark__code_name=key, parent=None, ) if not null_parent: null_parent = save_relation(key) null_parent.save() parent = get_object_or_none( ResumeMarkSetting, code_name=key, ) if not parent: parent = save_mark(key) parent.save() for c in value: choice = get_object_or_none( ResumeMarkRelation, parent=parent, mark__code_name=c, ) if choice: continue choice = save_relation(c) choice.parent = parent choice.save() print key, 'save_success'
def fix_mysql_feed(username): feed_id_list = Feed2.objects.filter( username=username, feed_type=1, deleted=False, ) for feed in feed_id_list: mongo_feed = feed feed_oid = feed.id feed_id = str(feed_oid) expire_time = mongo_feed.expire_time username = mongo_feed.username user = get_object_or_none( User, username=username, ) feed_pkg = get_object_or_none( UserChargePackage, feed_end_time=expire_time, user=user, ) mysql_feed = create_mysql_feed(mongo_feed, user) create_mysql_userfeed(mongo_feed, user, mysql_feed, feed_pkg) print 'save %s success' % feed_id
def get(self, request, token): user = request.user today = get_today() promotion_token = get_object_or_none( PromotionToken, promotion_user=user, token=token, ) if not promotion_token: return JsonResponse({ 'status': 'token_error', 'msg': 'token 不存在', }) click_record = get_object_or_none( PromotionClickRecord, user=user, click_date=today, ) if click_record: click_record.click_times += 1 else: click_record = PromotionClickRecord( user=user, ) click_record.save() return JsonResponse({ 'status': 'ok', 'msg': u'记录成功', })
def get_order_info(self, order_id, user=None): if user: order = get_object_or_none( UserOrder, order_id=order_id, user=user, ) else: order = get_object_or_none( UserOrder, order_id=order_id, ) return order
def update_vip_perms(self, user_vip, admin=False): if user_vip.vip_role.auto_active or admin: user = user_vip.user taocv_perm = get_object_or_none( Permission, codename='visit_taocv', ) feed_perm = get_object_or_none( Permission, codename='visit_feed', ) user.user_permissions.add(taocv_perm, feed_perm) return True return False
def get(self, request, token, user): if self.malice_ip(): return JsonResponse({ 'status': 'malice_check', 'msg': '失败次数太多,请稍后尝试', }) user = get_object_or_none( User, id=user, ) if not user: return JsonResponse({ 'status': 'token_error', 'msg': '无效token', }) is_valid = token_generator.check_token(user, token) industrys = user.company_set.all().values_list('category__industry__code_name', flat=True) user_industry = industrys[0] if len(industrys) > 0 else '' if is_valid: self.clean_malice() return JsonResponse({ 'status': 'ok', 'msg': '成功', 'user_industry': user_industry }) return JsonResponse({ 'status': 'token_error', 'msg': '无效token', })
def qrcode_bind_user(self, uid_key, openid): uid = cache.get(uid_key) user = get_object_or_none(User, id=uid) weixin_user = WeixinService.get_weixin_user(openid=openid) ret = {'status': 'error', 'msg': 'fail_str'} if not user: ret['status'] = 'error' ret['msg'] = 'fail_str' return ret if self.is_bind(user): if weixin_user: if weixin_user.user.id == user.id: ret['status'] = 'ok' ret['msg'] = 'success_str' ret['username'] = user.username else: ret['status'] = 'error' ret['msg'] = 'has_bind' else: if weixin_user: if weixin_user.user.id != user.id: ret['status'] = 'error' ret['msg'] = 'has_bind' return ret WeixinService.bind_weixin_openid(user, openid) WeixinService.update_weixin_userinfo(openid) ret['status'] = 'ok' ret['msg'] = 'success_str' ret['username'] = user.username return ret
def get(self, request, role_id): self.user = request.user unsign_vip = VipRoleUtils.get_unsign_vip(self.user) if unsign_vip: return JsonResponse({ 'status': 'error', 'msg': '还有未签订协议的vip服务,请先签订协议', 'download_url': '/vip/download_contact/%s/' % unsign_vip.vip_role.id, }) self.current_vip = VipRoleUtils.get_current_vip(self.user) current_vip_level = self.current_vip.vip_role.level if self.current_vip else 0 self.vip_role = get_object_or_none( VipRoleSetting, id=role_id, allow_apply=True, level__gt=current_vip_level, ) if not self.vip_role: return JsonResponse({ 'status': 'invalid', 'msg': '请选择正确的vip服务', }) self.create_user_vip() return JsonResponse({ 'status': 'ok', 'msg': '申请成功', 'redirect_url': reverse('vip-select-payway') if not self.current_vip else reverse('vip-upgrade-payment'), })
def post(self, request, mark_id): remark = request.POST.get('remark', '').strip() if not remark: return JsonResponse({ 'result': 'success', 'new_data': {'remark': '请填写备注'}, 'new_html': {'remark': '请填写备注'}, }) mark = get_object_or_none( DownloadResumeMark, id=mark_id, ) if not mark: return JsonResponse({ 'result': 'success', 'new_data': {'remark': '数据有误'}, 'new_html': {'remark': '数据有误'}, }) user = request.user admin_log = AdminMarkLog( resume_mark=mark, user=user, desc=remark, ) admin_log.save() return JsonResponse({ 'result': 'success', 'new_data': {'remark': '备注成功'}, 'new_html': {'remark': '备注成功'}, })
def add_malice_user(cls, feedback_record): resume_id = feedback_record.resume_id user_resume_query = UserTaskResume.objects.filter( resume__resume_id=resume_id ) if not user_resume_query: return False user_resume = user_resume_query[0] accusation_user = user_resume.resume.user malice_group = get_object_or_none( Group, name='malice_partner', ) if malice_group in accusation_user.groups.all(): return True has_accu_count = UserTaskResume.objects.filter( resume__user=accusation_user, resume_status=5 ).count() if has_accu_count >= 2: accusation_user.groups.add(malice_group) return True return False
def has_mark_record(cls, user, resume_id): buy_record = get_object_or_none( ResumeBuyRecord, user=user, resume_id=resume_id, ) return True if buy_record and hasattr(buy_record, 'resume_mark') else False
def get(self, request, record_id): buy_record = self.get_buy_record(record_id) resume_id = buy_record.resume_id resume_oid = get_oid(resume_id) mark_choices = self.get_mark_choices(buy_record) mark_logs = self.get_mark_logs(buy_record) contact_info = get_object_or_none( ContactInfoData, resume_id=resume_id, ) resume_info = ResumeData.objects.filter( id=resume_oid, ).first() referer_url = self.get_referer_url() return render( request, self.template_name, { 'contact_info': contact_info, 'resume_info': resume_info, 'mark_choices': mark_choices, 'mark_logs': mark_logs, 'referer_url': referer_url, 'buy_record': buy_record, }, )
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, } })
def change_service_status(self, status): model = service_map_model.get(self.service_name) service_obj = get_object_or_none(model, id=self.service_id) service_obj.status = status service_obj.save() return True
def get_exist_contact(self): resume_id = self.cleaned_data['resume_id'] contact_info = get_object_or_none( ContactInfoData, resume_id=resume_id, ) return contact_info
def order_already_success(self, order_id): order = get_object_or_none( UserOrder, order_id=order_id, order_status='paid', ) return order if order else False
def update_order(self, order_id, actual_price=None, payment_terms=None): order = get_object_or_none( UserOrder, order_id=order_id, ) if not actual_price: actual_price = order.order_price now = datetime.datetime.now() order.order_status = 'paid' order.actual_price = actual_price order.pay_time = now if payment_terms: order.payment_terms = payment_terms order.save() UserOrder.objects.filter( order_status='unpay', item_content_type=ContentType.objects.get_for_model(order.item), user=order.user, ).delete() return order
def get(self, request, record_id): buy_record = self.get_buy_record(record_id) resume_id = buy_record.resume_id resume_oid = get_oid(resume_id) mark_choices = self.get_mark_choices(buy_record) mark_logs = self.get_mark_logs(buy_record) contact_info = get_object_or_none( ContactInfoData, resume_id=resume_id, ) resume_info = ResumeData.objects.filter(id=resume_oid, ).first() referer_url = self.get_referer_url() return render( request, self.template_name, { 'contact_info': contact_info, 'resume_info': resume_info, 'mark_choices': mark_choices, 'mark_logs': mark_logs, 'referer_url': referer_url, 'buy_record': buy_record, }, )
def deactive_feed(self, user_vip): now = datetime.datetime.now() user_charge_pack = get_object_or_none( UserChargePackage, user=user_vip.user, package_type=2, feed_package__name='会员定制', pkg_source=1, ) user_charge_pack.extra_feed_num = user_vip.item.feed_count user_charge_pack.rest_feed = user_vip.item.feed_count user_charge_pack.save() user_feeds = UserFeed.objects.select_related('feed').filter( user_charge_pkg=user_charge_pack, is_deleted=False) feed_ids = [user_feed.feed.id for user_feed in user_feeds] feed_obj_ids = [ get_oid(user_feed.feed.feed_obj_id) for user_feed in user_feeds ] user_feeds.update(expire_time=now) Feed.objects.filter(id__in=feed_ids).update(expire_time=now) Feed2.objects.filter(id__in=feed_obj_ids).update(set__expire_time=now) UserFeed2.objects.filter(feed__in=feed_obj_ids).update( set__expire_time=now) return True
def get_contact_info(self): resume_id = self.kwargs.get('resume_id', '') contact_info = get_object_or_none( ContactInfoData, resume_id=resume_id, ) return contact_info
def confirm_refund_order(self, user, order_id): order = get_object_or_none(UserOrder, order_id=order_id) item_record = self.get_item_record_by_order(order_id) product_type = item_record.item.get_product_type service_id = item_record.item.id # 只允许人工服务退款 if product_type != 'manual_service': return False # connect service protcol_data = self.create_protcol_data( service_name=product_type, event=sys._getframe().f_code.co_name, dest=product_type, order_id=order.order_id, product_type=product_type, user=user, service_id=service_id) service_obj = protcol_data.get('service_class')(**protcol_data) result = service_obj.process() order.order_status = 'refunded' order.save() return result
def confirm_refund_order(self, user, order_id): order = get_object_or_none(UserOrder, order_id=order_id) item_record = self.get_item_record_by_order(order_id) product_type = item_record.item.get_product_type service_id = item_record.item.id # 只允许人工服务退款 if product_type != 'manual_service': return False # connect service protcol_data = self.create_protcol_data( service_name=product_type, event=sys._getframe().f_code.co_name, dest=product_type, order_id=order.order_id, product_type=product_type, user=user, service_id=service_id ) service_obj = protcol_data.get('service_class')(**protcol_data) result = service_obj.process() order.order_status = 'refunded' order.save() return result
def post(self, request, op_id): user = request.user service = get_object_or_none( UserManualService, id=op_id, ) if not service: return JsonResponse({ 'status': 'error', 'msg': 'not found service', }) order = ServiceUtils.get_service_order(service) if not order: return JsonResponse({ 'status': 'error', 'msg': 'not found order', }) order_id = order.order_id OrderManage.confirm_refund_order( order_id=order_id, user=user ) return JsonResponse({ 'status': 'ok', 'msg': '确认订单退款成功' })
def post(self, request): admin_id = request.POST.get('admin_id', 0) admin = get_object_or_none( User, id=get_int(admin_id), is_staff=True, ) contact_id_list = request.POST.get('contact_id_list', '') contact_id_list = contact_id_list.split(',') if not contact_id_list: return JsonResponse({ 'status': 'contact_error', 'msg': '请选择联系人信息', }) self.assign_contact(admin, contact_id_list) admin_name = '' if admin is None else admin.username return JsonResponse({ 'status': 'ok', 'msg': '分配成功', 'admin_name': admin_name })
def active_service(self, service_id=None, user=None): now = datetime.datetime.now() if service_id and user: service_id = service_id user = user else: service_id = self.service_id user = self.user manual_service = get_object_or_none(UserManualService, id=service_id) expire_time = get_after_month( months=manual_service.item.service_month ) manual_service.is_active = True manual_service.status = 'success' manual_service.active_time = now manual_service.expire_time = expire_time manual_service.save() user_vip = SelfServiceUtils.set_experience_user(self.user) user_vip.custom_feed = 5 user_vip.custom_point = 200 user_vip.active_time = now user_vip.expire_time = expire_time user_vip.save() self_srv = SelfService() self_srv.update_vip_pkg(user_vip) self_srv.update_vip_point(user_vip) return True
def deactive_manual_service(self, status): manual_service = get_object_or_none(UserManualService, id=self.service_id) manual_service.is_active = False manual_service.status = status manual_service.save() self.user = manual_service.user return True
def active_service(self, service_id=None, user=None): now = datetime.datetime.now() if service_id and user: service_id = service_id user = user else: service_id = self.service_id user = self.user manual_service = get_object_or_none(UserManualService, id=service_id) expire_time = get_after_month(months=manual_service.item.service_month) manual_service.is_active = True manual_service.status = 'success' manual_service.active_time = now manual_service.expire_time = expire_time manual_service.save() user_vip = SelfServiceUtils.set_experience_user(self.user) user_vip.custom_feed = 5 user_vip.custom_point = 200 user_vip.active_time = now user_vip.expire_time = expire_time user_vip.save() self_srv = SelfService() self_srv.update_vip_pkg(user_vip) self_srv.update_vip_point(user_vip) return True
def get_context_data(self, *args, **kwargs): vip_id = self.kwargs.get('vip_id', 0) vip_setting = get_object_or_none(VipRoleSetting, id=vip_id) return { 'vip_setting': vip_setting, 'protocol_id': get_protocol_id(length=4), }
def post(self, request): money = get_int(request.POST.get('money') or 0) if money <= 0: return JsonResponse({ 'status': 'money_error', 'msg': '提现金额必须是大于0的整数', }) user = request.user pinbot_point = coin_utils._get_pinbot_point(user) if money > pinbot_point.coin: return JsonResponse({ 'status': 'no_coin', 'msg': '金币不足', }) now = datetime.datetime.now() has_withdraw = get_object_or_none( WithdrawRecord, user=user, verify_status__in=(0, 1), create_time__year=now.year, create_time__month=now.month, ) if has_withdraw: return JsonResponse({ 'status': 'has_withdraw', 'msg': '您本月已经提现过一次,请下个月再来', }) withdraw = WithdrawRecord.objects.create( user=user, money=money, ) order = UserOrder.objects.create( user=user, order_price=-money, actual_price=-money, item=withdraw, order_desc='提现', order_type=5, ) order.order_id = create_order_id() order.save() ItemRecord.objects.create( num=1, total_price=order.order_price, order=order, item=withdraw, ) return JsonResponse({ 'status': 'ok', 'msg': '提现请求提交成功', })
def get(self, request, task_id, resume_id): user = request.user task = get_object_or_none( RecoResumeTask, user=user, id=task_id, ) if not task: return JsonResponse({ 'status': 'task_error', 'msg': '任务数据有误', }) user = request.user resume = get_object_or_none( UploadResume, user=user, id=resume_id, ) if not resume: return JsonResponse({ 'status': 'resume_error', 'msg': '上传简历数据有误', }) feed = task.feed is_valid, status = self.is_valid_task_resume(feed, resume) if is_valid: self.accept_task(feed, resume) now = datetime.datetime.now() task.action = 1 task.action_time = now task.save() return JsonResponse({ 'status': status, 'msg': '接受任务成功', }) else: return JsonResponse({ 'status': status, 'msg': status, })
def clean_name(self): name = self.cleaned_data['name'].lower() exist_tpl_name = get_object_or_none(MailTemplateCategory, name=name) if exist_tpl_name: raise forms.ValidationError('标签名已存在!') return name
def clean_tag_name(self): tag_name = self.cleaned_data['tag_name'].lower() exist_tpl_name = get_object_or_none(MailTemplate, name=tag_name) if exist_tpl_name: raise forms.ValidationError('模板标签已存在!') return tag_name
def clean_email(self): email = self.cleaned_data["email"] if error_email(email): raise forms.ValidationError("邮件格式有误,请重新填写") has_apply = get_object_or_none(InviteCodeApply, email=email) if has_apply: raise forms.ValidationError("一个邮箱只能申请一次") return email
def __getattr__(self, point_rule): rule = get_object_or_none( PointRule, point_rule=point_rule, ) assert rule, 'not found point rule' apply_rule_point = partial(self.add_rule_point, rule) return apply_rule_point
def add_item_record(self, item, order_id, num, total_price): order = get_object_or_none(UserOrder, order_id=order_id) item_record = ItemRecord(order=order, item=item, num=num, total_price=total_price) item_record.save() return True
def post(self, request): username = request.POST.get('username') feed_id = request.POST.get('feed_id') title = request.POST.get('title') reco_num = int(request.POST.get('reco_num')) # calc_num = request.POST.get('calc_num') display_time = request.POST.get('display_time') user = get_object_or_none(User, email=username) weixin_user = WeixinService.get_weixin_user_by_uid(user=user) if not weixin_user: return JsonResponse( { 'msg': 'not found weixin user', 'status': 'error' } ) openid = weixin_user.openid send_data = WeixinService.get_feed_notify_msg_tpl() url = '{0}{1}/'.format( WeixinService.get_recommand_url(), feed_id ) send_data['first']['value'] = "聘宝刚刚为您推荐了{0}封简历,优质候选人不能等,请尽快查阅简历".format(reco_num), send_data['remark']['value'] = "小宝提示:手机上每个职位定制只能浏览最多5封简历哦,请返回PC上查看全部的简历推荐." if reco_num == 0: send_data['first']['value'] = "小宝遗憾的通知您,以下职位暂时没有合适的人才匹配:", send_data['remark']['value'] = "不要气馁!小宝秘籍在此:你可以尝试修改定制内容,可能会有惊喜哦!" url = WeixinService.get_customize_url() send_data['keyword1']['value'] = title send_data['keyword2']['value'] = reco_num send_data['keyword3']['value'] = display_time ret = WxUtils.send_tpl_msg( openid=openid, tpl_id=WeixinService.get_template_msg_id(), data=send_data, url=url, ) if ret.get('errcode') != 0: return JsonResponse( { 'status': 'error', 'msg': ret.get('errmsg') } ) return JsonResponse( { 'status': 'ok', 'msg': 'success' } )
def post(self, request, resume_id=None): ''' 简历保存 ''' post_data = json.loads(request.body) update_resume = self.get_resume(resume_id) valid_result = self.__valid_post_data(post_data, update_resume) if valid_result['is_valid']: with transaction.atomic(): resume = self.save_resume(post_data, update_resume) resume_id = resume.id # save resume to pinbot resume = self.get_resume(resume.id) resume_dict = UploadResumeUtils.get_sync_resume_dict(resume) PinbotResumeUtils.save(resume_dict) resume_dict.pop('created_at', None) resume_dict.pop('updated_at', None) resume_dict.pop('resume_id', None) resume_dict.pop('contact_info', None) ParseUtils.insert_resume(resume_dict) task_id = post_data.get('task_id', 0) task = get_object_or_none( Feed, id=task_id, ) if task: is_valid, status = self.is_valid_task_resume(task, resume) if is_valid: self.accept_task(task, resume) msg = '接受任务成功' resume_source = 'add_task' else: status = 'ok' msg = '保存成功' resume_source = 'edit_resume' if update_resume else 'add_resume' result = { 'status': status, 'msg': msg, 'resume_id': resume_id, 'resume_source': resume_source, } return JsonResponse(result) else: result = { 'status': 'form_error', 'msg': '表单错误', 'errors': valid_result, } return JsonResponse(result)
def add_item_record(self, item, order_id, num, total_price): order = get_object_or_none(UserOrder, order_id=order_id) item_record = ItemRecord( order=order, item=item, num=num, total_price=total_price ) item_record.save() return True
def get_context_data(self, *args, **kwargs): vip_id = self.kwargs.get('vip_id', 0) vip_setting = get_object_or_none( VipRoleSetting, id=vip_id ) return { 'vip_setting': vip_setting, 'protocol_id': get_protocol_id(length=4), }