Пример #1
0
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']))
Пример #2
0
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'])
                     )
Пример #3
0
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'])
Пример #4
0
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
Пример #5
0
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
Пример #6
0
def select_driver(member):
    return driver_dao.select_by_id(member['driver_id'])