def get_max_round_id(cls): with sessionCM() as session: ret = session.query(MRoundRecord).order_by( desc(MRoundRecord.created_date)).limit(1).first() if ret: return ret.id return -1
def get_user_info_by_id(cls, user_id): with sessionCM() as session: user = session.query(MUser).filter_by(id=user_id).first() if user: return 1, user.to_dict() else: return 0, {}
def set_user_gold(cls, user_id, user_gold): with sessionCM() as session: user = session.query(MUser).filter_by(id=user_id).first() if user: user.gold = user_gold session.commit() return 1, {"gold": user.gold} return 0, {}
def update_user_gold(cls, user_id, gold_change): with sessionCM() as session: user = session.query(MUser).filter_by(id=user_id).first() if user: user.gold += gold_change session.commit() return 1, {"gold": user.gold} return 0, {}
def get_card_probability(cls): with sessionCM() as session: ret = session.query(GameConfig).first() if ret: return [ ret.card_spade, ret.card_heart, ret.card_club, ret.card_diamond, ret.card_joker ] return []
def create(cls, cur_award_pool, consume_gold, spade_bet_num, heart_bet_num, club_bet_num, diamond_bet_num, joker_bet_num, award_card): new_record = cls(cur_award_pool, consume_gold, spade_bet_num, heart_bet_num, club_bet_num, diamond_bet_num, joker_bet_num, award_card) with sessionCM() as session: session.add(new_record) session.commit() return new_record.id
def validate_passwd(cls, user_name, passwd): if not user_name or not passwd: return 0, {} with sessionCM() as session: user = session.query(MUser).filter_by(name=user_name).first() if user and user.passwd == passwd: return 1, user.to_dict() else: return 0, {}
def get_round_record(cls, num=50): with sessionCM() as session: ret = session.query(MRoundRecord).order_by( desc(MRoundRecord.created_date)).limit(num).all() if ret: return [{ "award_card": r.award_card, "modified_date": r.modified_date } for r in ret] return []
def del_user(cls, user_id): """ 删除用户,慎用!!!!!!!!!!!!!!! :param accid: :return: """ with sessionCM() as session: session.query(MUser).filter_by(id=user_id).delete() session.commit() return 0
def update_award_info(cls, award_pool_change, consume_gold_change): """ """ with sessionCM() as session: ret = session.query(MRoundRecord).first() if ret: ret.cur_award_pool += award_pool_change ret.all_consume_gold += consume_gold_change session.commit() return 1, ret.to_dict return 0, {}
def get_round_static(cls, passed_day=0): ''' 获取指定日期的统计数据 :param passed_day: 过去第几天的数据,0表示当天 :return: ''' with sessionCM() as session: start_day = get_date_time(passed_day=passed_day) end_day = get_date_time(passed_day=passed_day - 1) # ret = session.query(MRoundRecord).order_by(desc(MRoundRecord.created_date)).limit(1000).all() ret = session.query(MRoundRecord).order_by(asc(MRoundRecord.created_date)) \ .filter(and_(MRoundRecord.created_date>=start_day, MRoundRecord.created_date<end_day)).all() static = { "spade": 0, "heart": 0, "club": 0, "diamond": 0, "joker": 0, "total": 0 } card_info = [] if ret: for r in ret: # print u"t=", r, r.award_card card_type = r.award_card >> 4 card_info.append(r.award_card) if 0 == card_type: static["spade"] += 1 elif 1 == card_type: static["heart"] += 1 elif 2 == card_type: static["club"] += 1 elif 3 == card_type: static["diamond"] += 1 elif 4 == card_type: static["joker"] += 1 else: logger.error("get_round_static error!({0})".format( str(r.to_dict))) return {}, [] static["total"] += 1 print u"get_round_static", static return static, card_info
def create(cls, passwd, name, nickname, device_id='', phone='', introduction=''): with sessionCM() as session: user = session.query(MUser).filter_by(name=name).first() if user: return 0 new_user = cls(passwd, name, nickname, device_id, phone, introduction=introduction) session.add(new_user) session.commit() return new_user.id
def get_game_config_info(cls): with sessionCM() as session: ret = session.query(GameConfig).first() if ret: return ret.to_dict() return {}
def get_user_by_name(cls, user_name): with sessionCM() as session: user = session.query(MUser).filter_by(name=user_name).first() return user
def get_award_info(cls): with sessionCM() as session: ret = session.query(MAwardPool).first() if ret: return ret.to_dict() return {}