Beispiel #1
0
    def get(self, request):
        user = request.user
        now = datetime.datetime.now()
        charge_pkgs = UserChargePackage.objects.select_related(
            'resume_package',
        ).filter(
            user=user,
            package_type=1,
            pay_status='finished',
            resume_end_time__gt=now,
        ).order_by('-resume_end_time')

        user_feeds = UserChargePackage.objects.select_related(
            'feed_package',
        ).filter(
            user=user,
            package_type=2,
            pay_status='finished',
            extra_feed_num__gt=0,
            feed_end_time__gt=now,
        ).order_by('-id')

        has_pkg = UserChargePackage.objects.filter(
            user=user,
            package_type=1,
            pay_status='finished',
            resume_end_time__gt=now,
        )

        user_point = point_utils.get_user_pinbot_point(user)
        pinbot_point = point_utils._get_pinbot_point(user)
        current_vip = VipRoleUtils.get_current_vip(user)
        highest_vip_level = VipRoleUtils.get_highest_vip_level()
        unsign_vip = VipRoleUtils.get_unsign_vip(user)
        rest_feed_count = PackageUtils.rest_feed_count(user)
        coin_stat = coin_utils.get_coin_statistic(user)
        withdraw_data = json.dumps(
            WithdrawUtils.get_withdraw_status(user),
            ensure_ascii=False
        )
        is_partner = PartnerUtils.is_partner(user)

        return render(
            request,
            self.template,
            {
                'charge_pkgs': charge_pkgs,
                'user_feeds': user_feeds,
                'user_point': user_point,
                'pinbot_point': pinbot_point,
                'current_vip': current_vip,
                'highest_vip_level': highest_vip_level,
                'unsign_vip': unsign_vip,
                'rest_feed_count': rest_feed_count,
                'has_pkg': has_pkg,
                'coin_stat': coin_stat,
                'withdraw_data': withdraw_data,
                'is_partner': is_partner,
            },
        )
    def get(self, request, username):

        user_query = User.objects.filter(
            username=username,
            vip_roles=None,
        ).exclude(userprofile=None, )

        if not user_query:
            return JsonResponse({
                'status': 'error',
                'data': '用户数据有误',
            })

        user = user_query[0]
        user.is_active = True
        user.save()

        experience_service = VipRoleUtils.get_experience_vip()
        srv_meta = {
            'service_name': 'self_service',
            'product': experience_service,
            'user': user,
        }
        experience_srv = SelfService(**srv_meta)
        srv = experience_srv.create_service()
        ret = experience_srv.active_service() if srv else False

        return JsonResponse({
            'status': 'ok',
            'data': '操作成功',
            'ret': ret,
        })
Beispiel #3
0
 def update_guide_switch(self, user):
     current_vip = VipRoleUtils.get_current_vip(user)
     if current_vip:
         return False
     user.userprofile.guide_switch = True
     user.userprofile.save()
     return user
    def get(self, request, username):

        user_query = User.objects.filter(
            username=username,
            vip_roles=None,
        ).exclude(
            userprofile=None,
        )

        if not user_query:
            return JsonResponse({
                'status': 'error',
                'data': '用户数据有误',
            })

        user = user_query[0]
        user.is_active = True
        user.save()

        experience_service = VipRoleUtils.get_experience_vip()
        srv_meta = {
            'service_name': 'self_service',
            'product': experience_service,
            'user': user,
        }
        experience_srv = SelfService(**srv_meta)
        srv = experience_srv.create_service()
        ret = experience_srv.active_service() if srv else False

        return JsonResponse({
            'status': 'ok',
            'data': '操作成功',
            'ret': ret,
        })
Beispiel #5
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 #6
0
    def set_experience_user(cls, user):
        '''
        将用户设置成体验用户
        如果用户有正在使用的自助套餐,将正在使用的自助套餐失效,将用户设置成体验用户
        '''

        # 失效用户当前正在使用的套餐
        user_vip_query = UserVip.objects.select_related(
            'user',
            'vip_role',
        ).filter(
            user=user,
            is_active=True,
        ).exclude(
            vip_role__code_name='experience_user',
        )

        if user_vip_query:
            user_vip = user_vip_query[0]
            user_vip.custom_feed = 0
            user_vip.custom_point = 0
            user_vip.is_active = False
            user_vip.save()
            point_utils.deduction_self_point(user, user_vip)

        PackageUtils.expire_uservip_package(user)

        # 体验用户生效
        experience_vip_query = UserVip.objects.select_related(
            'user',
            'vip_role',
        ).filter(
            vip_role__code_name='experience_user',
            user=user,
        )
        if experience_vip_query:
            experience_vip = experience_vip_query[0]
        else:
            experience_service = VipRoleUtils.get_experience_vip()
            experience_vip = UserVip(
                user=user,
                vip_role=experience_service,
                apply_status='success',
            )

        experience_vip.is_active = True
        experience_vip.expire_time
        experience_vip.expire_time += relativedelta(
            months=3
        )
        experience_vip.custom_feed = 0
        experience_vip.custom_point = 0
        experience_vip.save()
        PackageUtils.set_uservip_pkg_feed(experience_vip)

        return experience_vip
Beispiel #7
0
 def active_experience_service(self, user):
     experience_service = VipRoleUtils.get_experience_vip()
     srv_meta = {
         'service_name': 'self_service',
         'product': experience_service,
         'user': user,
     }
     experience_srv = SelfService(**srv_meta)
     srv = experience_srv.create_service()
     ret = experience_srv.active_service() if srv else False
     return ret
Beispiel #8
0
 def active_experience_service(self, user):
     experience_service = VipRoleUtils.get_experience_vip()
     srv_meta = {
         'service_name': 'self_service',
         'product': experience_service,
         'user': user,
     }
     experience_srv = SelfService(**srv_meta)
     srv = experience_srv.create_service()
     ret = experience_srv.active_service() if srv else False
     return ret
def set_experience_vip(uservip):
    custom_feed = uservip.custom_feed
    custom_point = uservip.custom_point
    active_time = uservip.active_time
    expire_time = uservip.expire_time
    user = uservip.user

    experience_user_query = UserVip.objects.filter(
        vip_role__code_name='experience_user',
        user=user,
    )
    if experience_user_query:
        experience_user = experience_user_query[0]
        experience_user.custom_feed = custom_feed
        experience_user.custom_point = custom_point
        experience_user.active_time = active_time
        experience_user.expire_time = expire_time
        experience_user.is_active = True
    else:
        experience_service = VipRoleUtils.get_experience_vip()
        experience_user = UserVip(
            vip_role=experience_service,
            custom_feed=custom_feed,
            custom_point=custom_point,
            user=user,
            is_active=True,
            active_time=active_time,
            expire_time=expire_time,
        )

    uservip.is_active = False
    uservip.custom_point = 0
    uservip.custom_feed = 0

    with transaction.atomic():
        experience_user.save()
        uservip.save()
    return experience_user
def set_experience_vip(uservip):
    custom_feed = uservip.custom_feed
    custom_point = uservip.custom_point
    active_time = uservip.active_time
    expire_time = uservip.expire_time
    user = uservip.user

    experience_user_query = UserVip.objects.filter(
        vip_role__code_name='experience_user',
        user=user,
    )
    if experience_user_query:
        experience_user = experience_user_query[0]
        experience_user.custom_feed = custom_feed
        experience_user.custom_point = custom_point
        experience_user.active_time = active_time
        experience_user.expire_time = expire_time
        experience_user.is_active = True
    else:
        experience_service = VipRoleUtils.get_experience_vip()
        experience_user = UserVip(
            vip_role=experience_service,
            custom_feed=custom_feed,
            custom_point=custom_point,
            user=user,
            is_active=True,
            active_time=active_time,
            expire_time=expire_time,
        )

    uservip.is_active = False
    uservip.custom_point = 0
    uservip.custom_feed = 0

    with transaction.atomic():
        experience_user.save()
        uservip.save()
    return experience_user
Beispiel #11
0
    def add_user_vip_record(self, user, with_manual=False):
        if with_manual:
            product_id = get_object_or_none(VipRoleSetting, code_name='experience_user').id
        else:
            product_id = self.product.id

        self.current_vip = VipRoleUtils.get_current_vip(user)

        self.vip_role = get_object_or_none(
            VipRoleSetting,
            id=product_id,
            allow_apply=True,
        )

        if not self.vip_role:
            return False

        user_vip = UserVip(
            user=user,
            vip_role=self.vip_role,
            total_price=self.vip_role.price,
        )
        user_vip.save()
        return user_vip
Beispiel #12
0
    def get(self, request):
        '''
        兼容接口请求和页面请求
        '''
        ajax_request = request.is_ajax()
        all_feed = self.get_all_feed()
        has_rest_feed = self.has_rest_feed()

        if not all_feed:
            if ajax_request:
                return JsonResponse({
                    'status': 'no_feed',
                    'msg': '没有定制',
                })

            return render(
                request,
                'feed_home_page.html',
                {},
            )

        all_feed_dict = [{
            'feed': {
                'id': str(f.feed.id),
                'keywords': f.feed.keywords,
                'salary_min': f.feed.salary_min,
                'salary_max': f.feed.salary_max,
                'expect_area': f.feed.expect_area,
                'talent_level': f.feed.talent_level,
                'feed_type': f.feed.feed_type,
                'unread_count': f.feed.unread_count,
                'expire_status': f.feed.expire_status,
                'has_expire': f.feed.has_expire,
                'start_time': f.feed.start_time,
                'partner_feed': f.feed.partner_feed,
                'job_type': f.feed.job_type,
                'title': f.feed.title,
                'last_click_time': f.feed.last_click_time,
                'calced': f.feed.calced,
            },
        } for f in all_feed]
        current_vip = VipRoleUtils.get_current_vip(request.user)

        data = {
            'all_feed': all_feed_dict,
            'has_rest_feed': has_rest_feed,
            'vip_user': True if current_vip else False,
        }

        if ajax_request:
            return JsonResponse({
                'status': 'ok',
                'data': data,
                'msg': 'ok',
            })

        data_json = json.dumps(data, default=json_util.default)

        return render(
            request,
            self.template_name,
            {
                'data': data_json,
                'all_feed': all_feed,
                'has_rest_feed': has_rest_feed,
            },
        )
def trans_advance_user():
    vip_a = VipRoleSetting.objects.get(code_name='experience_user')

    UserVip.objects.filter(
        is_active=True,
        user__username__in=username_list,
    ).update(
        vip_role=vip_a
    )

    manual_service = list(PackageItem.objects.all(
    ).values_list(
        'id',
        'price',
    ))
    manual_mapper = {
        i[1]: i[0]
        for i in manual_service
    }

    user_list = User.objects.filter(
        username__in=username_list,
        manual_roles=None,
    )

    experience_service = VipRoleUtils.get_experience_vip()

    for i in user_list:
        user = i
        username = i.username
        user_price = users_mapper.get(username, {}).get('price', 0)
        if not user_price:
            print 'user %s is valid, no price' % username

        pid = manual_mapper.get(user_price, 0)
        if not pid:
            print 'user %s price %s is valid, valid price' % (username, user_price)

        start_time = str2datetime(users_mapper.get(username, {}).get('start_time', ''))
        end_time = str2datetime(users_mapper.get(username, {}).get('end_time', ''))

        with transaction.atomic():
            if not user.vip_roles.filter(is_active=True).exists():
                srv_meta = {
                    'service_name': 'self_service',
                    'product': experience_service,
                    'user': user,
                }
                experience_srv = SelfService(**srv_meta)
                experience_srv.create_service()
                experience_srv.active_service()

            order = OrderManage.create_order(
                user,
                pid,
                'manual_service',
                1,
                'offline',
            )
            OrderManage.paid_order(order.order_id, user)

            UserManualService.objects.filter(
                user=user,
                is_active=True,
            ).update(
                active_time=start_time,
                expire_time=end_time,
            )
            print 'trans %s success' % username
def trans_advance_user():
    vip_a = VipRoleSetting.objects.get(code_name='experience_user')

    UserVip.objects.filter(
        is_active=True,
        user__username__in=username_list,
    ).update(vip_role=vip_a)

    manual_service = list(PackageItem.objects.all().values_list(
        'id',
        'price',
    ))
    manual_mapper = {i[1]: i[0] for i in manual_service}

    user_list = User.objects.filter(
        username__in=username_list,
        manual_roles=None,
    )

    experience_service = VipRoleUtils.get_experience_vip()

    for i in user_list:
        user = i
        username = i.username
        user_price = users_mapper.get(username, {}).get('price', 0)
        if not user_price:
            print 'user %s is valid, no price' % username

        pid = manual_mapper.get(user_price, 0)
        if not pid:
            print 'user %s price %s is valid, valid price' % (username,
                                                              user_price)

        start_time = str2datetime(
            users_mapper.get(username, {}).get('start_time', ''))
        end_time = str2datetime(
            users_mapper.get(username, {}).get('end_time', ''))

        with transaction.atomic():
            if not user.vip_roles.filter(is_active=True).exists():
                srv_meta = {
                    'service_name': 'self_service',
                    'product': experience_service,
                    'user': user,
                }
                experience_srv = SelfService(**srv_meta)
                experience_srv.create_service()
                experience_srv.active_service()

            order = OrderManage.create_order(
                user,
                pid,
                'manual_service',
                1,
                'offline',
            )
            OrderManage.paid_order(order.order_id, user)

            UserManualService.objects.filter(
                user=user,
                is_active=True,
            ).update(
                active_time=start_time,
                expire_time=end_time,
            )
            print 'trans %s success' % username
Beispiel #15
0
def return_secret_points(request, bought_id):
    """
    @summary:
        简历信息设置为保密,管理员下载时,发现这个情况后就
    # 1.将该条购买记录更改为保密状态,xadmin操作链接.
    # 2. 套餐积点加回去,加到返还点数里,并且已购买此简历的用户会在管理员确认后看见返还点数
    # 3. 把这个信息存储到联系人信息表,后续查看此简历的客户不能看到下载和反馈按钮
    """
    resumes_buy_recds = ResumeBuyRecord.objects.filter(
        id=int(bought_id),
        status='Start',
    )

    if resumes_buy_recds and request.user.is_staff:
        now = datetime.now()
        # 1.将该条购买记录更改为保密状态
        buy_recd = resumes_buy_recds[0]
        resume_id = buy_recd.resume_id
        buy_recd.status = 'Secret'
        buy_recd.finished_time = now
        buy_recd.save()

        data = ''

        resume_oid = get_oid(buy_recd.resume_id)
        ResumeData.objects.filter(
            id=resume_oid,
        ).update(
            set__is_secret=True,
        )

        user = buy_recd.user
        # 2. 套餐积点加回去,加到返还点数里
        # 套餐为基础套餐,服务未到期,并且已付款
        user_base_pkgs = UserChargePackage.objects.filter(user=user, package_type=1,
                                                          resume_end_time__gte=datetime.now(),
                                                          pay_status='finished'
                                                          ).order_by('-start_time')

        current_vip = VipRoleUtils.get_current_vip(user)
        if user_base_pkgs:
            base_pkg = user_base_pkgs[0]
            base_pkg.re_points += 10
            base_pkg.save()
            data += '已返还10点 到套餐'
        elif current_vip:
            point_utils.secret_return(user)
        else:
            data += '套餐不满足(有基础套餐,服务未到期,已付款)之一'


        # 3. 把这个信息存储到联系人信息表
        contact_infos = ContactInfoData.objects.filter(resume_id=resume_id)
        if contact_infos:
            data += ' 联系信息已存在'
        else:
            ContactInfoData(resume_id=resume_id, status='secret', \
                            name='保密', source='', \
                            email=' ', \
                            source_id=''
                            ).save()
            data += ' 新建了该简历联系信息保密'

        json_data = json.dumps({'status':'ok', 'data':data})
    else:
        json_data = json.dumps({'status':'ok', 'data':'没有该购买,或者你不是管理员'})

    return HttpResponse(json_data, 'application/json')
Beispiel #16
0
def return_points(request, op_type, user_fd_back_id):
    """
    @summary: 返还用户返还的极点. 管理员审核通过后返还用户的积点.
    @author: likaiguo 2014-6-17 10:38:29
    """
    json_data = ''
    user_fd_backs = UserResumeFeedback.objects.filter(pk=int(user_fd_back_id))
    if user_fd_backs:
        user_fd_back = user_fd_backs[0]
        if op_type == 'deny':
            user_fd_back.check_status = 'deny'
            json_data = json.dumps({'status':'ok', 'data':'已拒绝返点'})
            user_fd_back.save()
            MarkUtils.accu_mark_result(
                user_fd_back.user,
                user_fd_back.resume_id,
                'deny',
            )
        elif user_fd_back.check_status != 'checking':
            json_data = json.dumps({'status':'error', 'data':'重复操作,当前返点状态-%s' % user_fd_back.check_status})
        elif request.user.is_staff:
            now = datetime.now()

            user_base_pkgs = UserChargePackage.objects.filter(
                user=user_fd_back.user,
                package_type=1,
                pay_status='finished',
                resume_end_time__gt=now,
            ).order_by('-start_time')

            if user_base_pkgs:
                base_pkg = user_base_pkgs[0]
                base_pkg.re_points += user_fd_back.feedback_info.type.re_points
                base_pkg.save()

                user_fd_back.check_status = 'pass'
                PartnerCoinUtils.resume_accusation(user_fd_back)
                PartnerCoinUtils.add_malice_user(user_fd_back)
                user_fd_back.save()

                json_data = json.dumps({'status':'ok', 'data':'已返还%d点' % user_fd_back.feedback_info.type.re_points})
                MarkUtils.accu_mark_result(
                    user_fd_back.user,
                    user_fd_back.resume_id,
                    'pass',
                )
            else:
                # 新服务模式返点到聘点中
                user = user_fd_back.user
                current_vip = VipRoleUtils.get_current_vip(user)
                if current_vip:
                    user_fd_back.check_status = 'pass'
                    user_fd_back.save()
                    point_utils.accu_return(user)
                    json_data = json.dumps({'status':'ok', 'data':'返点成功'})

                    MarkUtils.accu_mark_result(
                        user_fd_back.user,
                        user_fd_back.resume_id,
                        'pass',
                    )
                    PartnerCoinUtils.resume_accusation(user_fd_back)
                    PartnerCoinUtils.add_malice_user(user_fd_back)
                else:
                    json_data = json.dumps({'status':'error', 'data':'用户没有基础套餐'})
        else:
            json_data = json.dumps({'status':'error', 'data':'请使用员工号'})
    return HttpResponse(json_data, 'application/json')