Esempio n. 1
0
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))
Esempio n. 2
0
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))
Esempio n. 3
0
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))
Esempio n. 4
0
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))
Esempio n. 5
0
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))
Esempio n. 6
0
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))
Esempio n. 7
0
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))
Esempio n. 8
0
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))
Esempio n. 9
0
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))
Esempio n. 10
0
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))
Esempio n. 11
0
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))
Esempio n. 12
0
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))
Esempio n. 13
0
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))
Esempio n. 14
0
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']}))
Esempio n. 15
0
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))
Esempio n. 16
0
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))
Esempio n. 17
0
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))
Esempio n. 18
0
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))
Esempio n. 19
0
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))
Esempio n. 20
0
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)
Esempio n. 21
0
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))
Esempio n. 22
0
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))
Esempio n. 23
0
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))