def favorite_func() -> str: """公司客户收藏夹页面""" company_id = get_platform_session_arg("user_id") if company_id is None: return redirect(url_for("web_blueprint.login_func")) else: company = Company.find_by_id(company_id) url_path = request.path # 当前web路径 if isinstance(company, Company): page_index = 1 # 页码 index = request.args.get("index", "1") # 第几页 try: page_index = int(index) except Exception as e: print(e) company_dbref = company.get_dbref() f = {"company_id": company_dbref} s = {"time": -1} p = ['_id', "resume_id"] r = ResumeFavorite.query_by_page(filter_dict=f, sort_dict=s, projection=p, page_index=page_index, page_size=10) ids = [x['resume_id'].id for x in r['data']] f = {"_id": {"$in": ids}} resumes = DriverResume.find_plus(filter_dict=f, sort_dict=s, to_dict=True) for x in resumes: """转期望待遇的数组为字符串,以方便前端展示,此函数已集成在DriverResume类中""" expected_salary = x.get("expected_salary") if isinstance(expected_salary, list): expected_salary = expected_salary[0:2] if len(expected_salary) == 1: expected_salary = "{}k".format( round(expected_salary[0] / 1000, 1)) else: expected_salary = "{}k至{}k".format( round(expected_salary[0] / 1000, 1), round(expected_salary[1] / 1000, 1)) else: expected_salary = "面议" x['expected_salary'] = expected_salary favorite_map = Company.in_favorite(company_id=company_id, drivers=ids, to_str=False) return render_template("web/favorite.html", resumes=resumes, total_record=r['total_record'], total_page=r['total_page'], pages=r['pages'], page_index=page_index, favorite_map=favorite_map, url_path=url_path) else: return redirect(url_for("web_blueprint.login_func"))
def edit_consign_func(key): """ 公司账户对委托的撤回,修改 :return: """ company_id = get_platform_session_arg("user_id") method = request.method.lower() if method == 'get': return abort(405) else: if isinstance(company_id, ObjectId): company = Company.find_by_id(o_id=company_id) if isinstance(company, Company): mes = {"message": "success"} cid = get_arg(request, "cid", "") if isinstance(cid, str) and len(cid) == 24: consign = Consign.find_by_id(o_id=cid) if isinstance(consign, Consign): if key == "withdraw": """撤回委托""" status = consign.get_attr("status", None) if status is None or status not in [0, 1, 2, 3]: mes['message'] = "委托的状态异常" else: if status in [2, 3]: mes['message'] = "无法撤回" else: consign.set_attr("status", 0) r = consign.save_plus() if r is None: mes['message'] = '撤回失败' else: pass elif key == "resubmit": """重新提交""" elif key == "edit": """编辑委托""" else: mes['message'] = "不支持的操作" else: mes['message'] = "invalid cid" else: mes['message'] = "cid参数错误" return json.dumps(mes) else: return abort(401) else: return abort(403)
def consign_list_func() -> str: """公司客户委托列表的页面""" company_id = get_platform_session_arg("user_id") method = request.method.lower() if method == "get": if isinstance(company_id, ObjectId): company = Company.find_by_id(company_id) url_path = "/web/consign_list" # 当前web路径,固定值,和我的委托共用url if isinstance(company, Company): """页码""" page_index = 1 index = request.args.get("index", "1") # 第几页 try: page_index = int(index) except Exception as e: print(e) finally: pass f = {"company_id": company.get_dbref()} s = {"update_date": -1} page_size = 3 res = Consign.query_by_page(filter_dict=f, sort_dict=s, page_index=page_index, page_size=page_size) consign_list = res['data'] pages = res['pages'] total_page = res['total_page'] total_record = res['total_record'] return render_template("web/consign_list.html", url_path=url_path, consign_list=consign_list, pages=pages, total_page=total_page, total_record=total_record, page_index=page_index) else: return redirect(url_for("web_blueprint.login_func")) else: return redirect(url_for("web_blueprint.login_func")) else: return abort(405)
def resume_favorite_func(key): """ 对公司的简历搜藏夹的操作.目前主要是以下2种操作: 1. 把简历加入公司的收藏夹 2. 把简历移出公司的收藏夹 :return: """ mes = {"message": "success"} company_id = get_platform_session_arg("user_id") if company_id is None: return abort(403) else: company = Company.find_by_id(company_id) if isinstance(company, Company): if key == "add": """加入收藏夹""" resume_id = get_arg(request, "id", "") if isinstance(resume_id, str) and len(resume_id) == 24: resume = DriverResume.find_by_id(resume_id) if isinstance(resume, DriverResume): resume_dbref = resume.get_dbref() company_dbref = DBRef( database=db_name, collection=Company.get_table_name(), id=company_id) obj = ResumeFavorite(resume_id=resume_dbref, company_id=company_dbref) r = obj.save_plus() if isinstance(r, ObjectId): pass else: mes['message'] = "save fail" else: mes['message'] = "无效的id:{}".format(resume_id) else: mes['message'] = "invalid id:{}".format(resume_id) elif key == "remove": """从收藏夹移除""" resume_id = get_arg(request, "id", "") if isinstance(resume_id, str) and len(resume_id) == 24: resume = DriverResume.find_by_id(resume_id) if isinstance(resume, DriverResume): resume_dbref = resume.get_dbref() company_dbref = DBRef( database=db_name, collection=Company.get_table_name(), id=company_id) f = { "company_id": company_dbref, "resume_id": resume_dbref } r = ResumeFavorite.find_one_and_delete(filter_dict=f) if r is None: mes['message'] = "移除失败" else: pass else: mes['message'] = "无效的id:{}".format(resume_id) else: mes['message'] = "invalid id:{}".format(resume_id) elif key == "batch_remove": """从收藏夹批量移除""" ids = get_arg(request, "ids", "") if isinstance(ids, str) and len(ids) >= 24: ids = ids.split(",") fs = list() for x in ids: if len(x) == 24: d_id = ObjectId(x) dbref = DBRef( database=db_name, collection=DriverResume.get_table_name(), id=d_id) fs.append(dbref) f = { "company_id": company.get_dbref(), "resume_id": { "$in": fs } } ResumeFavorite.delete_many(filter_dict=f) else: mes['message'] = "invalid ids:{}".format(ids) else: mes['message'] = "无效的操作:{}".format(key) else: mes['message'] = "authenticity validate fail" return json.dumps(mes)
def resp_page_func(): """ 分页显示委托招聘的反馈页面信息 :return: """ company_id = get_platform_session_arg("user_id") method = request.method.lower() if method == 'get': if isinstance(company_id, ObjectId): company = Company.find_by_id(company_id) if isinstance(company, Company): args = dict() url_path = request.path # 当前web路径 q = dict() # 查询条件 projection = [ "_id", "education", "work_experience", "industry_experience", "driving_experience", "gender", "real_name", "age", "status", "dl_license_class", "dl_first_date", "rtqc_license_class", "rtqc_first_date", "want_job", "expected_salary", "birth_date", "last_company", "first_work_date", "update_date" ] args['projection'] = projection # 添加投影数组 """页码""" page_index = 1 index = request.args.get("index", "1") # 第几页 try: page_index = int(index) except Exception as e: print(e) finally: args['page_index'] = page_index page_size = 10 args['page_size'] = page_size f = {"company_id": company.get_dbref()} consign_id = get_arg(request, "cid", "") # consign的id, if isinstance(consign_id, str) and len(consign_id) == 24: consign = Consign.find_by_id(consign_id) if isinstance(consign, Consign): f['consign_id'] = consign.get_dbref() args['filter_dict'] = f s = {"time": -1} args['sort_dict'] = s resp_dict = Resp.query_by_page(**args) total_record = resp_dict['total_record'] total_page = resp_dict['total_page'] pages = resp_dict['pages'] ids = [x['resume_id'].id for x in resp_dict['data']] if len(ids) == 0: resumes = list() else: f = {"_id": {"$in": ids}} resumes = DriverResume.find_plus(filter_dict=f, to_dict=True) return render_template("web/consign_resp.html", url_path=url_path, resumes=resumes, total_record=total_record, total_page=total_page, pages=pages, page_index=page_index) else: return redirect(url_for("web_blueprint.login_func")) else: return redirect(url_for("web_blueprint.login_func")) else: mes = {"message": "success"} if isinstance(company_id, ObjectId): company = Company.find_by_id(company_id) if isinstance(company, Company): pass else: mes['message'] = "authentication fail" else: mes['message'] = "authentication fail" return json.dumps(mes)
def add_consign_func() -> str: """公司客户填写委托招聘的页面""" company_id = get_platform_session_arg("user_id") mes = {"message": "success"} method = request.method.lower() if company_id is None: if method == "get": return redirect(url_for("web_blueprint.login_func")) else: mes['message'] = "authentication fail" return json.dumps(mes) else: company = Company.find_by_id(company_id) url_path = "/web/consign_list" # 当前web路径,固定值,和我的委托共用url if isinstance(company, Company): if method == "get": """返回添加委托页面""" province_list = Region.get_province() # 取省的列表 """取sid,consign的id,如果这个id为空或者查找不到对应的对象,表示是新建委托""" consign = request.args.get("s_id", None) if isinstance(consign, str) and len(consign) == 24: consign = Consign.find_by_id(o_id=consign, can_json=True) consign = dict() if consign is None else consign return render_template("web/consign.html", url_path=url_path, province_list=province_list, consign=consign) else: """添加/编辑委托的请求""" args = get_args(request) the_type = args.pop("type", None) now = datetime.datetime.now() if the_type == "add": args.pop("_id", None) args['create_date'] = now args['update_date'] = now args['company_id'] = company.get_dbref() """对参数进行处理""" industry_experience = args.pop('industry_experience', "") if isinstance(industry_experience, int): args['industry_experience'] = industry_experience elif isinstance(industry_experience, str) and industry_experience.isdigit(): args['industry_experience'] = int(industry_experience) else: pass welfare = args.pop("welfare", "") # 福利待遇 welfare = [x.strip() for x in welfare.split(",")] args['welfare'] = welfare driving_experience = args.pop("driving_exp", None) # 驾龄 if driving_experience is None: pass else: if isinstance(driving_experience, int): args['driving_experience'] = driving_experience elif isinstance(driving_experience, str) and driving_experience.isdigit(): args['driving_experience'] = int( driving_experience) else: pass work_experience = args.pop("work_exp", None) # 工作年限 if work_experience is None: pass else: if isinstance(work_experience, int): args['work_experience'] = work_experience elif isinstance(work_experience, str) and work_experience.isdigit(): args['work_experience'] = int(work_experience) else: pass """创建并保存对象""" consign = Consign.instance(**args) object_id = None try: object_id = consign.save_plus() except Exception as e: print(e) logger.exception(e) finally: if isinstance(object_id, ObjectId): pass else: mes['message'] = "保存失败" elif the_type == "update": """编辑委托""" pass else: mes['message'] = "不支持的操作" return json.dumps(mes) else: if method == "get": return redirect(url_for("web_blueprint.login_func")) else: mes['message'] = "authentication fail" return json.dumps(mes)