Ejemplo n.º 1
0
def student_apply(userindex):
    data = get_data_from_ajax()
    JobID = data.get("JobID", None)
    if JobID is None:
        abort(400, u"缺少 JobID")

    if JobID in userindex.JobTxMap.keys():
        tx = Tx.from_blockchain(unicode(userindex.JobTxMap[JobID]))
        if tx is not None:
            tx.save()
            print "tx from existed data!"
            return return_data(data=tx.dump_to_dict())

    tx = TxController.create_tx(userindex.UserID, JobID)

    # tx.save()
    # add tx status re-get
    # new_tx = Tx.from_blockchain(unicode(tx.id))
    # if new_tx is None:
    #     abort(403, u"创建 %s 没有成功" % tx.id)
    # new_tx.save()

    job = JobController.get_job_by_jobid(jobid=JobID)
    if job is not None:
        job.TotalApplied += 1
        job.Txs.append(tx)

        # 自动审核通过
        if userindex.CurrentCreditScore > 8:
            tx.Status = u"已通过"
            print("当前信用分数:")
            print(userindex.CurrentCreditScore)
            job.TotalHired += 1
        else:  # 自动审核未通过
            tx.Status = u"未通过"
            job.TotalWaitCheck += 1

        job.save()
        tx.save()
        userindex.JobTxMap[JobID] = unicode(tx.id)  # {jobid: txid}

        print "job dump to dict"
        print job.dump_to_dict()
        print "user job tx map"
        print userindex.JobTxMap
        userindex.save()

        u = UserController.get_user_byuserid(userindex.UserID)
        u.JobIDs.append(unicode(job.id))  # 注意这个 待会测一下
        u.save()

    return return_data(data=tx.dump_to_dict())
Ejemplo n.º 2
0
def userinfo(userindex):
    # data = get_data_from_ajax()
    # if data is None:
    #     return
    # u = User.from_blockchain(userindex.UserID)
    u = UserController.get_user_byuserid(userindex.UserID)
    u.userindex = userindex
    if u is None:
        abort(403, u"用户不存在于区块链记录中或访问区块链失败")
    # u.UserInfo.CurrentCreditScore = u.CreditScore.CurrentCreditScore
    # u.UserInfo.TotalCreditScore = u.CreditScore.TotalCreditScore
    # u.UserInfo.RateCount = u.CreditScore.Ratetimes
    # u.UserInfo.save()
    d = UserController.wrapper_userinfo(u)

    # return return_data(None, data=u.dump_to_dict())
    return return_data(None, data=d)
Ejemplo n.º 3
0
def finish_userdetail_info(userindex):
    data = get_data_from_ajax()
    userid = data.get("UserID", None)
    if userid is None:
        userid = data.get("IDNo", None)
    realname = data.get("RealName", None)
    gender = data.get("Gender", None)
    tele = data.get("Tele", None)

    userindex.IDNo = userid
    userindex.RealName = realname
    userindex.Gender = gender
    userindex.Tele = tele
    check_list = list()
    check_list.append(userid)
    check_list.append(realname)
    if userindex.Role == UserRole.Student:
        school = data.get("School")
        stuid = data.get("StuID")
        userindex.School = school
        userindex.StuID = stuid
        check_list.append(school)
        check_list.append(stuid)

        if check_list.count(None):
            abort(400, u"缺少完整参数: %d" % check_list.index(None))
        userindex.School = school
        userindex.StuID = stuid
    elif userindex.Role == UserRole.Agency:
        agencyname = data.get("AgencyName")
        check_list.append(agencyname)
        if check_list.count(None):
            abort(400, u"缺少完整参数: %d" % check_list.index(None))
        userindex.AgencyName = agencyname
    else:
        abort(400, "role error!")

    userindex.save()
    print(userindex.dump_to_dict())
    # user = UserController.create_user(userindex)
    # return return_data(None, data=user.dump_to_dict())
    u = UserController.get_user_byuserid(userindex.UserID)
    u.userindex = userindex
    d = UserController.wrapper_userinfo2(u)
    return return_data(None, data=d)
Ejemplo n.º 4
0
    if check_list.count(None):
        abort(400, u"缺少参数%d" % check_list.index(None))

    try:
        s = int(salary)
        if s <= 0 or s > 65535:
            abort(400, u"Salary 设置不合理")
    except ValueError, e:
        abort(400, u"Salary 必须是一个整数")

    job = JobController.create_jobinfo(userindex, title, jobtime, place,
                                       salary, day, demand)
    userindex.JobTxMap[unicode(job.id)] = ""
    userindex.save()

    u = UserController.get_user_byuserid(userindex.UserID)
    u.JobIDs.append(unicode(job.id))  # 注意这个 待会测一下
    u.save()

    return return_data(data=job.dump_to_dict())


@app.route('/job/agency/jobs', methods=['GET', 'POST'])
@allow_cross_domain
@check_auth
def get_agency_jobs(userindex):
    """
    from cache
    :param userindex: 
    :return: 
    """
Ejemplo n.º 5
0
    if tx is None:
        abort(403, u"提供的tx: %s 不存在" % txid)

    # tx.bc_evaluate(userid, score)
    # return tx state
    # lookup
    # tx = Tx.from_blockchain(txid)
    userindex.TotalCreditScore += score
    userindex.RateCount += 1
    userindex.CurrentCreditScore = int(userindex.TotalCreditScore /
                                       userindex.RateCount)
    userindex.save()

    # 只结算一次钱
    if tx.Status != u"已结算":
        user = UserController.get_user_byuserid(userindex.UserID)
        job = JobController.get_job_by_jobid(tx.JobID)
        salary = int(job.JobDetail.Salary)
        if userindex.Role == 0:  # user is student
            user.Balance += salary
            # get the agency
            agency = UserController.get_user_byuserid(job.UserID)
            agency.Balance -= salary
        else:  # user is agency
            user.Balance -= salary
            # get the student
            st = UserController.get_user_byuserid(tx.UserID)
            st.Balance += salary
        tx.Status = u"已结算"
        tx.save()
    return return_data(data=tx.dump_to_dict())