def userBuyTicket(username, card, departure, destination, date, BusId): # assert type(BusId) == int BT = BusTable() PT = PurchaseTable() num = 0 _list = PT.searchRecord({ 'username': username, 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId }) # print(_list) for i in _list: num += 1 if num != 0: print("db do not has the ticket {}".format(BusId)) return False f, price = BT.buy(departure, destination, date, BusId) if f: PT.insertRecord(username, card, departure, destination, date, BusId, price) return True else: print('{} buy error'.format(username)) return False
def adminUpdateBus(OBus, NBus): BT = BusTable() PT = PurchaseTable() _list = PT.findRecordForOneBus(OBus['Departure'], OBus['Destination'], OBus['BusDate'], OBus['BusId']) if NBus['BusId'] != OBus['BusId']: for i in _list: PT.updateRecord(i, 'undefined', 'undefined', 'undefined', NBus['BusId']) BT.update_bus(OBus, NBus)
def adminDeleteBus(departure, destination, date, BusId): BT = BusTable() b = BT.get_one_bus(departure, destination, date, BusId) flag = BT.delete_bus(b) PT = PurchaseTable() _list = PT.findRecordForOneBus(departure, destination, date, BusId) for i in _list: userAction.userDeleteTicket(i['username'], i['card'], departure, destination, date, BusId) return flag
def updateTicketInfo(username): BT = BusTable() PT = PurchaseTable() ET = ExpireTable() _list = PT.searchRecord({'username': username}) #找某个用户的所有购买记录 for i in _list: b = BT.get_one_bus(i['departure'], i['destination'], i['date'], i['BusId']) ticketTime = b['BusDate'] + b['dTime'] currTime = time.strftime('%Y-%m-%d%H:%M', time.localtime(time.time())) if currTime > ticketTime: #过期票,将记录从perchase表移入到expire表 PT.deleteOneRecord(username, i['card'], i['departure'], i['destination'], i['date'], i['BusId']) ET.insertRecord(i)
def userDeleteTicket(username, card, departure, destination, date, BusId): BT = BusTable() PT = PurchaseTable() DT = DeleteTable() condition = { 'username': username, 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId } p = PT.searchRecord(condition) i = p[0] PT.deleteOneRecord(username, card, departure, destination, date, BusId) DT.insertRecord(username, card, departure, destination, date, BusId, i['price']) BT.addOneSeat(departure, destination, date, BusId)
def checkBookList(username, card=-1): PT = PurchaseTable() BT = BusTable() condition = {} condition['username'] = username if card != -1: condition['card'] = card _list1 = PT.searchRecord(condition) _list2 = [] total_num = 0 for i in _list1: _list2.append( BT.get_one_bus(i['departure'], i['destination'], i['date'], i['BusId'])) _list2[total_num]['Price'] = i['price'] total_num = total_num + 1 return _list2, total_num
def checkBookList(username, card="-1"): PT = PurchaseTable() BT = BusTable() condition = {} condition['username'] = username if card != "-1": condition['card'] = str(card) _list1 = PT.searchRecord(condition) _list2 = [] total_num = 0 for i in _list1: ticket = TicketInterface.TicketInterface( BT.get_one_bus(i['departure'], i['destination'], i['date'], i['BusId']), i) _list2.append(ticket) _list2[total_num]['Price'] = i['price'] total_num = total_num + 1 return _list2, total_num
def test(): # 插入26个用户和一个管理员 for i in range(0, 26): userAction.userCreateAccount(chr(97 + i), 123, 0) userAction.userCreateAccount('admin', 123, 1) for i in range(0, 26): userAction.userAddCard(chr(97 + i), 440782199701018011, 'aaa', 12345678901) userAction.userAddCard(chr(97 + i), 440782199701018012, 'bbb', 12345678901) userAction.userAddCard(chr(97 + i), 440782199701018013, 'ccc', 12345678901) # 插入100辆车 每辆车有两个乘客 余票设为1 PT = PurchaseTable() for i in range(0, 100): B = Core.Bus.Bus('2018-12-1' + chr(48 + i % 20), i, '13:00', '15:00', chr(65 + i % 24) + chr(65 + i % 24), chr(66 + i % 24) + chr(66 + i % 24), 1, 100) adminAction.adminInsertBus(B) PT.insertRecord(chr(97 + i % 20), 440782199701018011, chr(65 + i % 24) + chr(65 + i % 24), chr(66 + i % 24) + chr(66 + i % 24), '2018-12-1' + chr(48 + i % 20), i, 100) PT.insertRecord(chr(97 + i % 20), 440782199701018012, chr(65 + i % 24) + chr(65 + i % 24), chr(66 + i % 24) + chr(66 + i % 24), '2018-12-1' + chr(48 + i % 20), i, 100)
def userBuyTicket(username, card, departure, destination, date, BusId): BT = BusTable() PT = PurchaseTable() num = 0 _list = PT.searchRecord({ 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId }) for i in _list: num = num + 1 if num != 0: return 0 f, price = BT.buy(departure, destination, date, BusId) if f: PT.insertRecord(username, card, departure, destination, date, BusId, price) return 2 else: return 1
def userDeleteTicket(username, card, departure, destination, date, BusId): BT = BusTable() PT = PurchaseTable() DT = DeleteTable() # <<<<<<< HEAD PT.deleteOneRecord(username, card, departure, destination, date, BusId) DT.insertRecord(username, card, departure, destination, date, BusId, 4396) # ======= condition = { 'username': username, 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId } p = PT.searchRecord(condition) i = p[0] PT.deleteOneRecord(username, card, departure, destination, date, BusId) DT.insertRecord(username, card, departure, destination, date, BusId, i['price']) # >>>>>>> 1dfb90fd307e946b179efd04504ebd442b8c498d BT.addOneSeat(departure, destination, date, BusId)
def adminSearchRecord(startDate, endDate, departure, destination): PT = PurchaseTable() totalCustomer, totalRevenue, _list1, _list2 = PT.findRangeRecord(startDate, endDate, departure, destination) return totalCustomer, totalRevenue, _list1, _list2 # 时间段内总乘客 时间段内总营收 巴士统计信息 每天统计信息