def delete_bus(self, Bus): client, cursor = getDatabase('bus_collections') condition = { 'Departure': Bus['Departure'], 'Destination': Bus['Destination'], 'BusDate': Bus['BusDate'], 'BusId': Bus['BusId'] } client1, cursor1 = getDatabase('purchase_collections') condition2 = { 'departure': Bus['Departure'], 'destination': Bus['Destination'], 'date': Bus['BusDate'], 'BusId': Bus['BusId'] } if cursor.find( condition) == None or cursor1.find_one(condition2) != None: client.close() client1.close() return False else: cursor.delete_one(condition) client.close() client1.close() return True
def buy(self, departure, destination, date, BusId): client, cursor = getDatabase('bus_collections') condition = { 'BusDate': date, 'BusId': BusId, 'Departure': departure, 'Destination': destination } b = None try: _id = cursor.find_one(condition)['_id'] b = cursor.find_and_modify(query={ '_id': _id, 'left_num': { '$gt': 0 } }, update={'$inc': { 'left_num': -1 }}) except TypeError: return False, 0 client.close() if b != None: return True, b['Price'] else: return False, 0
def find(self, username): client, cursor = getDatabase( 'identity_collections' ) # or cursor = db.test_collections auto create the collection _list = cursor.find({'username': username}) client.close() return _list
def exist(self, username): client, cursor = getDatabase('account_collections') if cursor.find_one({'username': username}) == None: client.close() return False else: client.close() return True
def insert_account(self, username, password, level): client, cursor = getDatabase('account_collections') cursor.insert_one({ 'username': username, 'password': password, 'level': level }) client.close()
def find_bus(self, departure, destination, date): client, cursor = getDatabase('bus_collections') _list = cursor.find({ 'Departure': departure, 'Destination': destination, 'BusDate': date }).sort('Busdate') client.close() return _list
def findRecordForOneBus(self, departure, destination, date, BusId): client, cursor = getDatabase('purchase_collections') _list = cursor.find({ 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId }) client.close() return _list
def update_bus(self, OBus, NBus): client, cursor = getDatabase('bus_collections') Ocondition = { 'Departure': OBus['Departure'], 'Destination': OBus['Destination'], 'BusDate': OBus['BusDate'], 'BusId': OBus['BusId'] } cursor.update(Ocondition, NBus) client.close()
def get_one_bus(self, departure, destination, date, BusId): client, cursor = getDatabase('bus_collections') condition = { 'Departure': departure, 'Destination': destination, 'BusDate': date, 'BusId': BusId } bus = cursor.find_one(condition) client.close() return bus
def delete(self, username, card): client, cursor = getDatabase('identity_collections') b = cursor.find_one({'username': username, 'card': card}) if b == None: client.close() return False # 该用户没绑定该身份证 else: cursor.delete_one(b) client.close() return True # 删除成功
def insert(self, username, card, name, phone): client, cursor = getDatabase('identity_collections') if cursor.find_one({'username': username, 'card': card}) == None: cursor.insert_one({ 'username': username, 'card': card, 'name': name, 'phone': phone }) client.close()
def deleteOneRecord(self, username, card, departure, destination, date, BusId): client, cursor = getDatabase('purchase_collections') cursor.delete_one({ 'username': username, 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId }) client.close()
def insertRecord(self, username, card, departure, destination, date, BusId, price): client, cursor = getDatabase('purchase_collections') cursor.insert_one({ 'username': username, 'card': card, 'departure': departure, 'destination': destination, 'date': date, 'BusId': BusId, 'price': price }) client.close()
def login(self, username, password): client, cursor = getDatabase('account_collections') if cursor.find_one({'username': username}) == None: return 0 #不存在账号 else: if cursor.find_one({ 'username': username, 'password': password }) == None: client.close() return 1 #密码错误 else: client.close() return 2 #登陆成功
def addOneSeat(self, departure, destination, date, BusId): client, cursor = getDatabase('bus_collections') _id = cursor.find_one({ 'Destination': destination, 'Departure': departure, 'BusDate': date, 'BusId': BusId })['_id'] cursor.find_and_modify(query={ '_id': _id, }, update={'$inc': { 'left_num': 1 }}) client.close()
def buy(self, departure, destination, date, BusId): client, cursor = getDatabase('bus_collections') condition = { 'BusDate': date, 'BusId': BusId, 'Departure': departure, 'Destination': destination } # print(cursor.find({})) b = cursor.find_one(condition) if b != None and b['left_num'] > 0: b['left_num'] = b['left_num'] - 1 cursor.update(condition, b) client.close() return True, b['Price'] return False, 0
def insert_bus(self, b): # client, cursor = getDatabase('bus_collections') # or cursor = db.test_collections auto create the collection # cursor.ensure_index('', unique=True) client, cursor = getDatabase('bus_collections') condition = { 'BusDate': b['BusDate'], 'BusId': b['BusId'], 'Departure': b['Departure'], 'Destination': b['Destination'] } if cursor.find_one(condition) == None: cursor.insert_one(b) client.close() return True else: client.close() return False
def addOneSeat(self, departure, destination, date, BusId): client, cursor = getDatabase('bus_collections') b = cursor.find_one({ 'Destination': destination, 'Departure': departure, 'BusDate': date, 'BusId': BusId }) t = b['left_num'] t = t + 1 cursor.update( { 'Destination': destination, 'Departure': departure, 'BusDate': date, 'BusId': BusId }, {'$set': { 'left_num': t }}) client.close()
def updateRecord(self, oldRecord, departure='undefined', destination='undefined', date='undefined', BusId=-1): client, cursor = getDatabase('purchase_collections') if departure == 'undefined': Ndeparture = oldRecord['departure'] else: Ndeparture = departure if destination == 'undefined': Ndestination = oldRecord['destination'] else: Ndestination = destination if date == 'undefined': Ndate = oldRecord['date'] else: Ndate = date if BusId == -1: NBusId = oldRecord['BusId'] else: NBusId = BusId cursor.update( oldRecord, { '$set': { 'departure': Ndeparture, 'destination': Ndestination, 'date': Ndate, 'BusId': NBusId } }) client.close() return
def update_bus(self, OBus, NBus): client, cursor = getDatabase('bus_collections') Ocondition = { 'Departure': OBus['Departure'], 'Destination': OBus['Destination'], 'BusDate': OBus['BusDate'], 'BusId': OBus['BusId'] } _id = cursor.find_one(Ocondition)['_id'] m = NBus['left_num'] - OBus['left_num'] cursor.find_and_modify(query={'_id': _id}, update={ '$inc': { 'left_num': m }, '$set': { 'BusId': NBus['BusId'] }, '$set': { 'Price': NBus['Price'] } }) client.close()
def insertRecord(self, record): client, cursor = getDatabase('expire_collections') cursor.insert_one(record) client.close()
def showRecord(self, username): client, cursor = getDatabase('expire_collections') _list = cursor.find({'username': username}) client.close() return _list
def getLevel(self, username): client, cursor = getDatabase('account_collections') a = cursor.find_one({'username': username}) client.close() return a['level']
def get_all(self): client, cursor = getDatabase('bus_collections') _list = cursor.find({}).sort('BusDate') client.close() return _list
def findRangeRecord(self, startDate, endDate, departure, destination): client, cursor = getDatabase('purchase_collections') condition = {} if startDate != "undefined": condition["date"] = {'$gte': startDate, '$lte': endDate} if departure != "undefined": condition["departure"] = departure if destination != "undefined": condition["destination"] = destination _list = cursor.find(condition).sort([('date', 1), ('BusId', 1), ('destination', 1)]) _list2 = [] data = {} date = '1' dest = '1' dep = '1' bid = '1' totalCustomer = 0 totalRevenue = 0 for i in _list: if i['date'] != date or i['destination'] != dest or i[ 'departure'] != dep or i['BusId'] != bid: data['date'] = date data['destination'] = dest data['departure'] = dep data['BusId'] = bid data['totalCustomer'] = totalCustomer data['totalRevenue'] = totalRevenue _list2.append({ 'date': date, 'destination': dest, 'departure': dep, 'BusId': bid, 'totalCustomer': totalCustomer, 'totalRevenue': totalRevenue }) date = i['date'] dest = i['destination'] dep = i['departure'] bid = i['BusId'] totalCustomer = 1 totalRevenue = i['price'] else: totalCustomer = totalCustomer + 1 totalRevenue = totalRevenue + i['price'] _list2.append({ 'date': date, 'destination': dest, 'departure': dep, 'BusId': bid, 'totalCustomer': totalCustomer, 'totalRevenue': totalRevenue }) for i in range(len(_list2)): if _list2[i]['date'] == '1': del _list2[i] break for i in _list2: print(i) totalCustomer = 0 totalRevenue = 0 for i in _list2: totalCustomer = totalCustomer + i['totalCustomer'] totalRevenue = totalRevenue + i['totalRevenue'] print(totalCustomer, totalRevenue) client.close() return totalCustomer, totalRevenue, _list2
def searchRecord(self, condition): client, cursor = getDatabase('purchase_collections') _list = cursor.find(condition) client.close() return [i for i in _list]