#coding:utf8
import sys
import MySQLdb
//数据库temp,表单count
//python2.7
class TransferMoney(object):
def __init__( self, conn): //构造函数
self.conn = conn
def cheak_acct_available( self, acctid):
curser = self.conn.curser()
try:
sql = "select * from count where acctid = %s " %acctid
curser.execute(sql)
print "check_acct_available:" + sql
re = cursor.fetchall()
if len(re) != 1:
raise Exception("账号%s不存在" %acctid)
finally:
cursor.close()
def has_enough_money(self, acctid, money):
curser = self.conn.curser()
try:
sql = "select * from count where acctid = %s and money > %s" %(acctid,money)
curser.execute(sql)
print "has_enough_money:" + sql
re = cursor.fetchall()
if len(re) != 1:
raise Exception("账号%s没有足够的钱" %acctid)
finally:
cursor.close()
def reduce_money(self, acctid, money):
curser = self.conn.curser()
try:
sql = "updat accunt set money=money-%s where acctid = %s" %(money,acctid)
curser.execute(sql)
print "reduce_money:" + sql
re = cursor.fetchall()
if cursor.rowcount != 1:
raise Exception("账号%s减款失败" %acctid)
finally:
cursor.close()
def add_money(self, acctid, money)
curser = self.conn.curser()
try:
sql = "updat accunt set money=money+%s where acctid = %s" %(money,acctid)
curser.execute(sql)
print "add_money:" + sql
re = cursor.fetchall()
if cursor.rowcount != 1:
raise Exception("账号%s加款失败" %acctid)
finally:
cursor.close()
def transfer( self , source_acctid, target_acctid, money):
try:
self.cheak_acct_available(source_acctid)
self.cheak_acct_available(target_acctid)
self.has_enough_money(source_acctid, money)
self.reduce_money(source_acctid, money)
self.add_money(target_acctid, money)
self.conn.commit()
except Except as e:
self.conn.rollback()
raise e
if __name__=="__main__":
source_acctid = sys.argv[1]
target_acctid = sys.argv[2]
money = sys.argv[3]
tr_money.transfer(source_acctid,target_acctid,money)
except Exception as e:
print "出现问题:" + str(e)
finally:
conn.close()