Exemple #1
0
    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 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
Exemple #5
0
    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'记录成功',
        })
Exemple #6
0
 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
Exemple #7
0
 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
Exemple #8
0
 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
Exemple #9
0
 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
Exemple #10
0
    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
Exemple #12
0
    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
Exemple #15
0
 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,
            },
        )
Exemple #17
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,
                }
            })
Exemple #18
0
    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
Exemple #19
0
 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
Exemple #20
0
 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
Exemple #21
0
    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
Exemple #22
0
    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
Exemple #23
0
    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,
            },
        )
Exemple #24
0
    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
Exemple #25
0
 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
Exemple #26
0
    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
Exemple #27
0
 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
Exemple #28
0
    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': '确认订单退款成功'
        })
Exemple #30
0
    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 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
Exemple #32
0
    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 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
Exemple #35
0
    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
Exemple #36
0
 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),
     }
Exemple #37
0
    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': '提现请求提交成功',
        })
Exemple #38
0
    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': '提现请求提交成功',
        })
Exemple #39
0
    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,
            })
Exemple #40
0
    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
Exemple #41
0
    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
Exemple #42
0
 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
Exemple #43
0
 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
Exemple #44
0
    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,
            })
Exemple #45
0
 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
Exemple #46
0
 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
Exemple #47
0
    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'
            }
        )
Exemple #48
0
    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)
Exemple #49
0
    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)
Exemple #50
0
 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
Exemple #51
0
 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),
     }