def upload_logo(request): if not is_post(request): return resp_method_err() img = request.FILES['photo'] name = str(img) path = team.save_logo(name, img) return HttpResponse(json_helper.dump_err_msg(SUCCEED, path))
def login(request): """ 登陆 成功:返回 {'err': SUCCEED } 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() # if not is_valid_ok(request): # return resp_valid_err() acnt = request.POST.get('mail') pwd = request.POST.get('pwd') ret, tid, token = acc_mng.login(acnt, pwd) # 如果登陆成功 if ret == ACC_MNG_OK: return HttpResponse( json_helper.dumps({ 'err': 0, 'res': tid, 'token': token })) # 如果不匹配 elif ret == LOGIN_FAIL_NO_MATCH: return HttpResponse( json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_PWD_NO_MATCH)) # 如果账号未激活 elif ret == ACC_UNABLE: return HttpResponse( json_helper.dump_err_msg(ERR_ACC_UNABLE, MSG_ACC_UNABLE)) # 未知错误 else: return HttpResponse(json_helper.dump_err_msg(ERR_UNKNOWN, MSG_FAIL))
def job_info(request): """ 获取职位信息 成功: 返回职位信息 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() job_id = request.POST.get('id') rlt = job.info(job_id) if rlt != JOB_NOT_FOUND: return HttpResponse( json_helper.dumps({ 'err': SUCCEED, 'team_id': rlt.team.id, 'job_name': rlt.name, 'min_salary': rlt.min_salary, 'max_salary': rlt.max_salary, 'prince': rlt.prince, 'city': rlt.city, 'town': rlt.town, 'address': rlt.address, 'edu_cmd': rlt.edu_cmd, 'exp_cmd': rlt.exp_cmd, 'job_type': rlt.j_type, 'work_type': rlt.w_type, 'summary': rlt.summary, 'pub_date': rlt.pub_date, 'pub_state': rlt.pub_state, 'job_cmd': rlt.job_cmd, 'work_cmd': rlt.work_cmd, })) else: return HttpResponse( json_helper.dump_err_msg(ERR_JOB_NOT_FOUND, MSG_JOB_NOT_FOUND))
def add_job(request): """ 添加职位信息 成功: 返回职位ID 失败:返回相应的err和message的JSON """ if not is_post(request): return resp_method_err() if request.META.get('CONTENT_TYPE', request.META.get( 'CONTENT_TYPE', 'application/json')) == 'application/json': req_data = json.loads(request.body.decode('utf-8')) else: req_data = request.POST print(req_data) job_form = JobForm(req_data, request.FILES) if job_form.is_valid(): job = Job(**job_form.cleaned_data) job.save() return HttpResponse( json.dumps({ 'err': SUCCEED, 'message': MSG_SUCC, 'msg': job.id }, ensure_ascii=False)) return HttpResponse( json.dumps({ 'err': ERR_JOB_TYPE, 'message': dict(job_form._errors) }, ensure_ascii=False))
def add_team_label(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] name = request.POST['name'] ret = team.add_label(tid, name) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, ret))
def rm_team_photo(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] img_id = request.POST['img_id'] ret = team.rm_photo(tid, img_id) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC))
def update_team_contact(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] tel = request.POST['tel'] mail = request.POST['mail'] ret = team.update_contact(tid, tel, mail) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC))
def update_job(request): """ 修改职位信息 成功: 返回相应的err和message的JSON 失败:返回相应的err和message的JSON """ if not is_post(request): return resp_method_err() if request.META.get('CONTENT_TYPE', request.META.get( 'CONTENT_TYPE', 'application/json')) == 'application/json': req_data = json.loads(request.body.decode('utf-8')) id = req_data['id'] else: id = request.POST['id'] req_data = request.POST if not id.isdigit(): return HttpResponse( json.dumps({ 'err': ERR_JOB_TYPE, 'message': MSG_JOB_TYPE }, ensure_ascii=False)) if not Job.objects.filter(id=id): return HttpResponse( json.dumps({ 'err': ERR_JOB_NONE, 'message': MSG_JOB_NONE }, ensure_ascii=False)) job = Job.objects.get(id=id) job_form = JobForm(req_data, request.FILES) if job_form.is_valid(): for (key, value) in job_form.cleaned_data.items(): if value: job.__dict__[key] = value job.save() return HttpResponse( json.dumps({ 'err': SUCCEED, 'message': MSG_SUCC }, ensure_ascii=False)) return HttpResponse( json.dumps({ 'err': ERR_JOB_TYPE, 'message': dict(job_form._errors) }, ensure_ascii=False))
def add_team_stu(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] sid = request.POST['sid'] ret = team.add_stu(tid, sid) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) elif ret == team.STU_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STU_NOT_FOUND, MSG_STU_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC))
def add_team_photo(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] img = request.FILES['photo'] name = str(img) ret, path = team.save_photo(tid, name, img) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: photo_ret = {'img_id': ret, 'path': path} return HttpResponse(json_helper.dump_err_msg(SUCCEED, photo_ret))
def invite(request): if not is_post(request): return resp_method_err() name = request.POST['name'] leader = request.POST['leader'] tel = request.POST['tel'] mail = request.POST['mail'] inv_code = acc_mng.invite(name, leader, tel, mail) if inv_code is not None: return HttpResponse(json_helper.dump_err_msg(SUCCEED, inv_code)) else: return HttpResponse(json_helper.dump_err_msg(ERR_UNKNOWN, MSG_FAIL))
def invite_stu(request): """团队邀请成员""" if not is_post(request): return resp_method_err() mail = request.POST['mail'] tid = request.POST['tid'] ret, sid = account.invite(mail) add_ret = team.add_stu(tid, sid) if ret != OK_REG: return HttpResponse(json_helper.dump_err_msg(ERR_REG_IDEXIST, ERR_REG_IDEXIST_MSG)) if add_ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, sid))
def update_team_info(request): if not is_post(request): return resp_method_err() tid = request.POST['tid'] name = request.POST['name'] logo_path = request.POST['logo_path'] slogan = request.POST['slogan'] btype = request.POST['btype'] about = request.POST['about'] history = request.POST['history'] ret = team.update_info(tid, name, logo_path, slogan, about, history, btype) if ret == team.ACC_NO_FOUND: return HttpResponse(json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND)) else: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC))
def save_prod_img(request): """ 保存上传的项目照片文件,和更新项目照片 成功:返回{'err': PRODUCT_SUCCEED, 'msg': img_path} 失败:返回{'err': ERR_PROD_TABLE/ERR_PROD_NOT_EXIT/ERR_PROD_SAVE_IMG/ERR_PROD_CHECK_IMG, 'msg': 错误信息} """ if not is_post(request): return resp_method_err() prod_id = request.POST.get('id') prod_img = request.FILES.get('prod_img') res = product.save_img(prod_id=prod_id, prod_img=prod_img) return HttpResponse(json.dumps({'err': res['err'], 'msg': res['msg']}))
def reset(request): """ 发送账号重置邮件 reset: send reset mail 成功: 返回 {err: SUCCEED} 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() tid = request.POST.get('mail') ret = acc_mng.send_reset_mail(tid) if ret == ACC_MNG_OK: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC)) elif ret == ACC_NO_FOUND: return HttpResponse( json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_NOT_FOUND))
def update_pwd(request): """ 修改密码 成功: 返回 {err: SUCCEED} 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() mail = request.POST['mail'] hash_tid = request.POST['key'] pwd = request.POST['pwd'] if ACC_MNG_OK == acc_mng.update_pwd(mail, hash_tid, pwd): return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC)) else: return HttpResponse( json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_RESET_KEY_ERR))
def register(request): if not is_post(request): return resp_method_err() # 如果验证码错误 todo: 上线后启动验证码校验机制 if not is_valid_ok(request): return resp_valid_err() # 如果验证码正确 mail = request.POST.get('mail') pwd = request.POST.get('pwd') inv_code = request.POST.get('inv_code') ret = acc_mng.register(mail, pwd, inv_code) # 如果注册成功 if ret == ACC_MNG_OK: return HttpResponse(json_helper.dump_err_msg(SUCCEED, MSG_SUCC)) # 如果数据库异常导致注册失败 else: return HttpResponse( json_helper.dump_err_msg(ERR_STH_NO_MATCH, MSG_ACC_INV_NO_MATCH))
def delete_product(request): """ 删除项目信息 成功: 返回相应的err和msg的JSON 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() prod_id = request.POST.get('productId') res = db_product.select(prod_id) if res['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res, ensure_ascii=False)) prod = res['msg'] product.delete_img(prod_id=prod.id) prod.delete() return HttpResponse(json.dumps({'err': SUCCEED, 'msg': MSG_SUCC}, ensure_ascii=False))
def add_product(request): """ 添加项目信息 成功: 返回项目ID 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() # 判断是否插入 res = db_product.insert(**request.POST.DATA) if res['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res, ensure_ascii=False)) prod_img = request.FILES.get('prod_img') if prod_img: res_img = product.save_img(prod_id=res['msg'].id, prod_img=prod_img) if res_img['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res_img, ensure_ascii=False)) return HttpResponse(json.dumps({'err': SUCCEED, 'message': MSG_SUCC, 'msg': res['msg'].id}, ensure_ascii=False))
def search_job(request): """ 根据职位信息搜索职位信息 成功: 返回职位信息 失败:返回相应的err和message的JSON """ if not is_post(request): return resp_method_err() team_id = job_type = request.POST.get('teamId') job_tags = request.POST.getlist('jobTags[]') job_type = list() for job_tag in job_tags: if job_tag != '': job_type.append(job_tag) print(job_type) if False: # ToDo(wang) check param # not job_type[0].isdigit(): return HttpResponse( json.dumps({ 'err': ERR_POST_TYPE, 'message': MSG_POST_TYPE }, ensure_ascii=False)) res_list = Job.objects.filter(j_type__in=job_type, team_id=team_id).extra( select={ 'jobId': 'id', 'minSaraly': 'min_salary', 'maxSaraly': 'max_salary', 'exp': 'exp_cmd', 'job_state': 'pub_state' }).values('jobId', 'name', 'address', 'minSaraly', 'maxSaraly', 'city', 'town', 'exp', 'job_state') res = json.dumps({ 'err': SUCCEED, 'message': list(res_list) }, ensure_ascii=False) return HttpResponse(res)
def update_product(request): """ 编辑项目信息 成功: 返回项目ID 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() # # 判断POST请求类型 # if request.META.get('CONTENT_TYPE', request.META.get('CONTENT_TYPE', 'application/json')) == 'application/json': # req_data = json.loads(request.body.decode('utf-8')) # id = req_data['id'] # else: # req_data = request.POST # id = request.POST['id'] # if not id.isdigit(): # return HttpResponse(json.dumps({'err': ERR_PROD_TYPE, 'message': MSG_PROD_TYPE}, ensure_ascii=False)) # # # 判断参数类型 # prod_form = ProductForm(req_data, request.FILES) # if not prod_form.is_valid(): # return HttpResponse(json.dumps({'err': ERR_PROD_TYPE, 'message': dict(prod_form._errors)}, ensure_ascii=False)) res = db_product.select(prod_id=request.POST.DATA['id']) if res['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res, ensure_ascii=False)) # 判断是否插入 res = db_product.update(**request.POST.DATA) if res['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res, ensure_ascii=False)) prod_img = request.FILES.get('prod_img') if prod_img: res_img = product.save_img(prod_id=res['msg'].id, prod_img=prod_img) if res_img['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res_img, ensure_ascii=False)) return HttpResponse(json.dumps({'err': SUCCEED, 'message': MSG_SUCC, 'msg': res['msg'].id}, ensure_ascii=False))
def delete_job(request): """ 删除职位信息 成功: 返回相应的err和msg的JSON 失败:返回相应的err和msg的JSON """ if not is_post(request): return resp_method_err() job_id = request.POST.get('jobId') res = db_job.select(job_id) if res['err'] != PRODUCT_SUCCEED: return HttpResponse(json.dumps(res, ensure_ascii=False)) job = res['msg'] job.delete() return HttpResponse( json.dumps({ 'err': SUCCEED, 'msg': MSG_SUCC }, ensure_ascii=False))
def info_product(request): """ 查询项目信息 成功: 返回项目信息 失败:返回相应的err和message的JSON """ prod_list = ['name', 'img_path', 'content', 'reward', 'team_id', 'last_visit_cnt', 'week_visit_cnt'] if not is_post(request): return resp_method_err() prod_id = request.POST.get('productId') if prod_id is None: prod_id = request.GET.get('productId') print(prod_id) res = db_product.select(prod_id) if res['err'] == PRODUCT_SUCCEED: prod_dict = {key: res['msg'].__dict__[key] for key in prod_list} res = {'err': SUCCEED, 'msg': prod_dict} return HttpResponse(json.dumps(res, ensure_ascii=False))