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())
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)
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)
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: """
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())