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, })
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, })
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, }, )
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
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 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
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
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')
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')