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)
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
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
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: