Пример #1
0
def get_sellers(store_id):
    db = g._imdb
    sellers = Seller.get_sellers(db, store_id)
    for s in sellers:
        if 'number' in s and not s['number']:
            s.pop('number')
    return make_response(200, sellers)
Пример #2
0
def get_one_supporter(db, rds, store_id):
    online_sellers = []
    sellers = Seller.get_sellers(db, store_id)

    if not sellers:
        return None

    for seller in sellers:
        status = Supporter.get_user_status(rds, seller['id'])
        seller['status'] = status
        if status == Supporter.STATUS_ONLINE:
            online_sellers.append(seller)

    if len(online_sellers) == 0:
        #假设第一个客服是管理员
        seller = sellers[0]
    else:
        index = random.randint(0, len(online_sellers) - 1)
        seller = sellers[index]

    name = ""
    if seller.has_key('name') and seller['name']:
        name = seller['name'].split('@')[0]

    resp = {
        "seller_id": seller['id'],
        "name": name,
        "status": seller["status"]
    }
    return resp
Пример #3
0
def get_one_supporter(db, rds, store_id):
    online_sellers = []
    sellers = Seller.get_sellers(db, store_id)

    if not sellers:
        return None

    for seller in sellers:
        status = Supporter.get_user_status(rds, seller['id'])
        seller['status'] = status
        if status == Supporter.STATUS_ONLINE:
            online_sellers.append(seller)

    if len(online_sellers) == 0:
        #假设第一个客服是管理员
        seller = sellers[0]
    else:
        index = random.randint(0, len(online_sellers) - 1)
        seller = sellers[index]

    name = ""
    if seller.has_key('name') and seller['name']:
        name = seller['name'].split('@')[0]

    resp = {
        "seller_id":seller['id'], 
        "name":name,
        "status":seller["status"]
    }
    return resp
Пример #4
0
        else:
            logging.debug("unsupport msg type:%s", msg_type)
            obj = None

        now = int(time.time())
        if u.seller_id == 0:
            seller = get_one_supporter(db, rds, u.store_id)
            if not seller:
                logging.warning("no supporter:%d", u.store_id)
            else:
                logging.debug("got seller id:%s", seller['seller_id'])
                WXUser.set_seller_id(rds, gh_id, openid, seller['seller_id'])
                WXUser.set_seller_timestamp(rds, gh_id, openid, now)
                u.seller_id = seller['seller_id']
        elif now - u.seller_timestamp > 3600:
            sellers = Seller.get_sellers(db, u.store_id)
            if not sellers:
                raise ResponseMeta(400, 'store no supporter')

            deleted = True
            for s in sellers:
                if s['id'] == u.seller_id:
                    deleted = False
                    break

            if not deleted:
                WXUser.set_seller_timestamp(rds, gh_id, openid, now)
            else:
                #客服已经被删除
                seller = get_one_supporter(db, rds, u.store_id)
                if not seller:
Пример #5
0
        else:
            logging.debug("unsupport msg type:%s", msg_type)
            obj = None

        now = int(time.time())
        if u.seller_id == 0:
            seller = get_one_supporter(db, rds, u.store_id)
            if not seller:
                logging.warning("no supporter:%d", u.store_id)
            else:
                logging.debug("got seller id:%s", seller['seller_id'])
                WXUser.set_seller_id(rds, gh_id, openid, seller['seller_id'])
                WXUser.set_seller_timestamp(rds, gh_id, openid, now)
                u.seller_id = seller['seller_id']
        elif now - u.seller_timestamp > 3600:
            sellers = Seller.get_sellers(db, u.store_id)
            if not sellers:
                raise ResponseMeta(400, 'store no supporter')

            deleted = True
            for s in sellers:
                if s['id'] == u.seller_id:
                    deleted = False
                    break
                            
            if not deleted:
                WXUser.set_seller_timestamp(rds, gh_id, openid, now)
            else:
                #客服已经被删除
                seller = get_one_supporter(db, rds, u.store_id)
                if not seller: