def reserve_parking_space(self): if (self.carID < 0): return #==================状态更新=================== self.cur_state = 1 # 下了单但未停车 update_parking_data(self.carID, 'openning',True) # 车位可用 insert_ucs_data(self.openid,self.carID) # 建立映射关系 update_user_data(self.openid,'cur_state',self.cur_state) # 状态变为预订没停车
def carLeave(self): #wx_user = carID_to_Wx[self.carID] openid = search_ucs_carID_to_openId(self.carID,'openId') # 获取openid if openid is None: self.raise_error() return #=====计算时间====== stop_Time = time_tool.get_Current_Time() sec = time_tool.time_subtract(self.start_time, stop_Time) # 获取持续时间 cost_money = self.cal_Cost(sec) #根据持续时间计算费用 #wx_user.balance = wx_user.balance - cost_money balance = search_from_user_db(openid,'balance') balance = balance - cost_money #================== #=====给wx发消息===== msg = {} msg['header'] = 'timer_stop' msg['cost'] = cost_money msg['last_time'] = sec msg['current_time'] = stop_Time msg['current_money'] = balance msg = json.dumps(msg) user_state = 0 # 订单完成 try: print(carID_to_Wx[self.carID].Data['userInfo']['nickName'],'还活着') carID_to_Wx[self.carID].sendMessage(msg.encode()) print('%d号车位已空...' % self.carID) except Exception as err: # ++++++++++++++++和用户的连接断开了++++++++++++++++ user_state = 3 # 订单完成但没发数据 print('和用户连接断开...发送订单完成信息失败') # ++++++++++++++++++存入数据库++++++++++++++++++++ #================== #=====注意,更新状态的时候,记得改变用户的状态->cur_state+++++++ #=====更新状态======= #-----order状态------ update_orders_data(openid,self.start_time,'cur_state',user_state) update_user_data(openid,'cur_state',user_state) print('cur_state更新成功为',user_state) update_orders_data(openid,self.start_time,'stop_time',stop_Time) update_orders_data(openid,self.start_time,'last_time',sec) update_orders_data(openid,self.start_time,'cost',cost_money) #------------------- a=update_user_data(openid, 'balance',balance) #更新余额 b=delete_ucs_data(openid) # 删除user to carspace 的映射关系 c=update_user_data(openid , 'start_time', '-') # 用户开始时间为'-',说明未使用 d=update_parking_data(self.carID,'start_time','-') # 车位开始时间变为'-' e=update_parking_data(self.carID,'openning',False) # 关闭可用状态 f=update_parking_data(self.carID,'occupied',False) # 车位变为空
def carCome(self): if self.openning: openid = search_ucs_carID_to_openId(self.carID, 'openId') if openid is None: self.raise_error() return #========开始计时======= self.start_time = time_tool.get_Current_Time() #====================== #========给wx发消息====== msg = {} msg['header'] = 'timer_start' msg['time'] = self.start_time msg = json.dumps(msg) try: print(carID_to_Wx[self.carID].Data, '还活着') carID_to_Wx[self.carID].sendMessage(msg.encode()) carID_to_Wx[self.carID].cur_state = 2 print('%d号车位被占...' % self.carID) except Exception as err: print(err) print('和wx用户连接断开...') #+++++++++和微信的连接断开了+++++++++++ pass #+++++++++++++++++++++++++++++++++++ #======================= # 注意。 记得更新用户的状态信息-> cur_state++++++++ #=======更新状态======== order_data = self.get_order_json(openid) # 获取一个order_json数据 a = insert_orders_data(order_data) # 在订单中插入一条 print(order_data) print(a) update_user_data(openid, 'cur_state', 2) # 正在停车状态 update_parking_data(self.carID, 'start_time', self.start_time) # 更新车位数据库的开始时间 update_user_data(openid, 'start_time', self.start_time) # 更新用户计时的开始时间 update_parking_data(self.carID, 'occupied', True) # 车位被占 #====================== else: print('有人非法占领车位!!!!!!!!!!!!!!!!!!!')
#print(a,b,c,d,e) ======= update_orders_data(openid,self.start_time,'cur_state',user_state) update_user_data(openid,'cur_state',user_state) print('cur_state更新成功为',user_state) update_orders_data(openid,self.start_time,'stop_time',stop_Time) update_orders_data(openid,self.start_time,'last_time',sec) update_orders_data(openid,self.start_time,'cost',cost_money) >>>>>>> 4af6067e442ce1217930abd63a62a1d757df1851 #------------------- a=update_user_data(openid, 'balance',balance) #更新余额 b=delete_ucs_data(openid) # 删除user to carspace 的映射关系 c=update_user_data(openid , 'start_time', '-') # 用户开始时间为'-',说明未使用 d=update_parking_data(self.carID,'start_time','-') # 车位开始时间变为'-' e=update_parking_data(self.carID,'openning',False) # 关闭可用状态 f=update_parking_data(self.carID,'occupied',False) # 车位变为空 #print(a,b,c,d,e,f) # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>情况 #================== #====================车开来了============================= # 若合法: 1.开始计时 2.给微信发消息 3.更新状态 # 若非法: 给当地管理员发送预警 def carCome(self): if self.openning : openid = search_ucs_carID_to_openId(self.carID,'openId') if openid is None: self.raise_error() return