def handle(bot, update): logger.info("chatId: %s,first_name: %s,text: %s", update.message.chat_id, update.message.from_user.first_name, update.message.text) from_user = update.message.from_user cmd, text = parse_cmd(update.message.text) logger.info("%s %s", cmd, text) # 入参校验 if text == None or len(text) == 0 or text.isdigit() == False: update.message.reply_text(follow_notice_msg) return driver = driver_dao.select_by_id(text) if (len(driver) == 0): update.message.reply_text(follow_null_notice_msg) return member = member_service.select_by_tele_id(from_user) if text != member[0]['driver_id']: member_dao.update_driver(from_user.id, text) driver_info = member_dao.select_by_teleId(driver[0]['tele_id']) bot.send_message(chat_id=from_user.id, text=follow_send_msg.format(from_user.first_name, member[0]['id'], driver_info[0]['nickName']))
def handle(bot, update): logger.info("chatId: %s,first_name: %s,text: %s", update.message.chat_id, update.message.from_user.first_name, update.message.text) from_user = update.message.from_user # 用户校验 member = member_service.select_by_tele_id(from_user) driver = driver_dao.select_by_id(member[0]['driver_id']) if driver == None or len(driver) == 0 or driver[0]['open_status'] == '1': update.message.reply_text(driver_close_msg.format(driver[0]['id'])) return cmd, text = parse_cmd(update.message.text) logger.info("%s %s", cmd, text) order_info = update.message.text.replace("/order ", "").split("#") # 入参校验 if text == None or len(text) == 0 or text.find('#') == -1 or (len(order_info) != 2): update.message.reply_text(order_notice_msg) return item, price = order_info item = item.strip() price = price.strip().replace("p", "").replace("P", "").strip() if price.isdigit() == False: update.message.reply_text(order_notice_msg) return balance = balance_service.select_amount_by_member(member[0]) if balance["amount"] < 0: bot.send_message(chat_id=from_user.id, text=order_fail_notice_msg) if balance["amount"] < int(price): bot.send_message(chat_id=from_user.id, text=order_balance_notice_msg) send_text = balance_service.select_all_by_tele_id(member[0]) bot.send_message(chat_id=from_user.id, text=send_text) driver = member_service.select_driver(member[0]) bot.send_message(chat_id=driver[0]['tele_id'], text=send_text) # return # 单号生成 order_id = str(int(time.time()))[4:] + from_user.first_name[:1] logging.info("order id: %s", order_id) order_info_dao.insert(order_id=order_id, tele_id=from_user.id, first_name=member[0]['nickName'], price=price, item=item, driver_id=member[0]['driver_id'] ) bot.send_message(chat_id=from_user.id, text=order_detail_msg.format(from_user.first_name, item, price, order_id, member[0]['driver_id']) )
def select_by_from_user(from_user): logger.info("select_by_from_user %s", from_user) member = member_service.select_by_tele_id(from_user) driver = driver_dao.select_by_id(member[0]['driver_id']) return store_dao.select_by_id(driver[0]['store_id'])
def insert_without_check(tele_id, driver_tele_id=None, driver_id=None): follow = member_dao.select_by_teleId(tele_id) if driver_tele_id != None: driver = driver_dao.select_by_teleId(driver_tele_id)[0] if driver_id != None: driver = driver_dao.select_by_id(driver_id)[0] balance_dao.insert(tele_id=tele_id, nick_name=follow[0]['nickName'], member_id=follow[0]['id'], driver_id=driver['id'], driver_tele_id=driver['tele_id']) balance = balance_dao.select_by_teleId(follow[0]['tele_id'], driver['tele_id']) logging.info(balance) return balance
def cancel_order(bot, from_user, order, send_msg): logging.info("cancel orders:{0}".format(order)) if len(order) == 0: bot.send_message(chat_id=from_user.id, text=null_notice_send_text.format(order[0]['id'])) return driver = driver_dao.select_by_id(order[0]['driver_id']) tele_id = order[0]['member_id'] if order[0]['order_status'] == '1': bot.send_message(chat_id=from_user.id, text=status_note_msg.format(order[0]['id'])) return if order[0]['order_status'] == '0': order_info_dao.update_status(status='1', id=order[0]['id']) if (order[0]['order_status'] == "2" or order[0]['order_status'] == "3") and len(driver) == 1 and order[0]['driver_id'] == str( driver[0]['id']): order_info_dao.update_status(status='1', id=order[0]['id']) balance_service.update_amount(order[0]['member_id'], order[0]['price'], from_user.id) bot.send_message(chat_id=from_user.id, text='订单:{0}\n清退金额:{1}'.format( order[0]['id'], order[0]['price'])) bot.send_message(chat_id=order[0]['member_id'], text='订单:{0}\n清退金额:{1}'.format( order[0]['id'], order[0]['price'])) if order[0]['order_status'] == "2" and ( len(driver) == 0 or order[0]['driver_id'] != str(driver[0]['id'])): bot.send_message(chat_id=from_user.id, text='订单<{0}>状态为已接单,请联系司机处理'.format(order[0]['id'])) order = order_info_dao.select_by_id(order[0]['id']) logging.info("cancel orders:{0}".format(order)) send_msg = send_msg + order_info_msg.format( order[0]['id'], order[0]['item'], order[0]['price'], order_status[order[0]['order_status']], order[0]['create_time']) return tele_id, send_msg
def select_driver(member): return driver_dao.select_by_id(member['driver_id'])