def tr(): model_mgr = ModelRequestMgr() playerfriend = model_mgr.get_model(PlayerFriend, v_player.id) playerfriend.friendnum = friend_num model_mgr.set_save(playerfriend) model_mgr.write_all() return model_mgr, playerfriend
def update_from_json(jsonstr): """JSONからマスターデータに保存. """ data = Json.decode(jsonstr) model_mgr = ModelRequestMgr() modellist = [] for cls_id in xrange(MasterData.MASTER_NUM_MAX): model_cls = MasterData.CLASSES.get(cls_id) if model_cls is None: raise CabaretError("Not Found:%d" % cls_id, CabaretError.Code.INVALID_MASTERDATA) clsname = model_cls.__name__ arr = data.get(clsname) or [] for dic in arr: ins = model_cls() for k, v in dic.items(): setattr(ins, k, v) model_mgr.set_save(ins) modellist.append(ins) def tr(): model_mgr.write_all() db_util.run_in_transaction_custom_retries(0, tr) model_mgr.write_end() MasterData.incrementEditCacheVersion() return modellist
def tr(): model_mgr = ModelRequestMgr() appconfig = BackendApi.get_appconfig(model_mgr, using=settings.DB_DEFAULT) appconfig.master += 1 model_mgr.set_save(appconfig) model_mgr.write_all() return model_mgr, appconfig
def setUp(self): # DMMID. self.__player = self.create_dummy(DummyType.PLAYER) model_mgr = ModelRequestMgr() protects = [] for _ in xrange(5): cardmaster = self.create_dummy(DummyType.CARD_MASTER) card = self.create_dummy(DummyType.CARD, self.__player, cardmaster) card.protection = True model_mgr.set_save(card) protects.append(card.id) not_protects = [] for _ in xrange(5): cardmaster = self.create_dummy(DummyType.CARD_MASTER) card = self.create_dummy(DummyType.CARD, self.__player, cardmaster) card.protection = False model_mgr.set_save(card) not_protects.append(card.id) model_mgr.write_all() model_mgr.write_end() self.__protects = protects self.__not_protects = not_protects
def tr_prezent(self, uid, prizelist, data, userlog, text): model_mgr = ModelRequestMgr() model_mgr.set_save(data) model_mgr.set_save(userlog) BackendApi.tr_add_prize(model_mgr, uid, prizelist, text) model_mgr.write_all() model_mgr.write_end()
def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_scouteventconfig(model_mgr) config.mid = self.__preconfig_mid model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def tr_send_point(uid, starttime): """名誉ポイントの配布. """ model_mgr = ModelRequestMgr() scoredata_weekly = CabaClubScorePlayerDataWeekly.getByKeyForUpdate( CabaClubScorePlayerDataWeekly.makeID( uid, starttime)) if scoredata_weekly is None or scoredata_weekly.flag_aggregate: return 0 # 配布する数を計算. cabaclub_honor = int( math.ceil(scoredata_weekly.proceeds / 1000.0)) if 0 < cabaclub_honor: # 報酬付与. prizedata = PrizeData.create( cabaclub_honor=cabaclub_honor) BackendApi.tr_add_prize( model_mgr, uid, [prizedata], Defines.TextMasterID.CABARETCLUB_WEEKLY_PRIZE) # 重複防止. scoredata_weekly.flag_aggregate = True model_mgr.set_save(scoredata_weekly) model_mgr.write_all() model_mgr.write_end() return cabaclub_honor
def tr_write_pc(name, mp4_name, filepath, weblist, edittime=None): """マスターデータ書き込み(PC用). """ model_mgr = ModelRequestMgr() exists_masterdata = PcMoviePlayList.getValues( ['id'], filters={'filename': mp4_name}) if exists_masterdata: master = PcMoviePlayList.getByKeyForUpdate(exists_masterdata.id) else: master = PcMoviePlayList() master.filename = mp4_name master.name = name master.edittime = edittime or OSAUtil.get_now() model_mgr.set_save(master) model_mgr.write_all() if settings_sub_props.ENVIRONMENT_TYPE != settings_sub_props.EnvironmentType.MANAGER: errlog = MovieUtil.distribute_wowza(master.filename) if errlog: raise CabaretError(errlog) if weblist: errlog = MovieUtil.distribute_pc(master.filename, weblist, settings_sub.SERVER_PASS) if errlog: raise CabaretError(errlog) return model_mgr
def __tr_send_wholeprize(self, uid, queuelist, rankingmaster_dict, win_boxidlist, close_model_boxid): close_model = RankingGachaClose.getByKeyForUpdate(close_model_boxid) if uid <= close_model.prize_flag_whole: raise CabaretError(u'整合が取れていないので終了します(総計)') model_mgr = ModelRequestMgr() # 受け取っていない報酬. if queuelist: BackendApi.tr_rankinggacha_receive_wholeprize( model_mgr, uid, queuelist, rankingmaster_dict) # 勝利報酬. for win_boxid in win_boxidlist: master = rankingmaster_dict[win_boxid] textid = master.wholewinprize_text prizelist = BackendApi.get_prizelist(model_mgr, master.wholewinprizes) if prizelist: BackendApi.tr_add_prize(model_mgr, uid, prizelist, textid) close_model.prize_flag_whole = uid model_mgr.set_save(close_model) model_mgr.write_all() return model_mgr, close_model
def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_raideventconfig(model_mgr) config.endtime = self.__preconfig_endtime model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def tr(tip_prize_flag): model_mgr = ModelRequestMgr() config = CurrentScoutEventConfig.getByKeyForUpdate( CurrentScoutEventConfig.SINGLE_ID) if config.tip_prize_flag != tip_prize_flag: raise CabaretError(u'整合が取れていないので終了します') uid_max = 0 for data in records: uid = data[0] # 報酬付与. for idx, number in enumerate(winner): # 短冊のマスター. tanzakumaster = tanzakumaster_dict[number] # 規定チップを満たしているかを確認. if max(1, tanzakumaster.tip_quota) <= data[idx + 1]: BackendApi.tr_add_prize( model_mgr, uid, prize_dict[number], tanzakumaster.prize_text) uid_max = max(uid_max, uid) config.tip_prize_flag = uid_max model_mgr.set_save(config) model_mgr.write_all() return model_mgr, config
def tr_write_buydata(uid, mid): """購入情報がないので用意. """ model_mgr = ModelRequestMgr() ins = ShopItemBuyData.makeInstance(ShopItemBuyData.makeID(uid, mid)) model_mgr.set_save(ins) model_mgr.write_all() return model_mgr
def tr_write(self, users): model_mgr = ModelRequestMgr() for user in users: ins = GachaBoxResetPlayerData.makeInstance(user.id) ins.is_get_targetrarity = True model_mgr.set_save(ins) model_mgr.write_all() model_mgr.write_end()
def tr(codelist, mid): model_mgr = ModelRequestMgr() for code in codelist: model = SerialCode() model.serial = code model.mid = mid model_mgr.set_save(model) model_mgr.write_all() return model_mgr
def tr_write_regist(self, uid, ptype, is_set_conversion): model_mgr = ModelRequestMgr() BackendApi.tr_regist_player(model_mgr, uid, ptype) player_dxp = PlayerDXPWallConversion.makeInstance(uid) player_dxp.is_set_conversion = is_set_conversion model_mgr.set_save(player_dxp) model_mgr.write_all() return model_mgr
def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_scouteventconfig(model_mgr) config.mid = self.__preconfig_mid config.starttime = self.__preconfig_starttime config.endtime = self.__preconfig_endtime config.epilogue_endtime = self.__preconfig_epetime model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, userdata, tradecount_data): model_mgr = ModelRequestMgr() if userdata is not None: model_mgr.set_save(userdata) for key, value in tradecount_data.iteritems(): if value is None: model_mgr.set_save(TradeShopPlayerData.createInstance(key)) model_mgr.write_all() return model_mgr
def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_raideventconfig(model_mgr) config.mid = self.__preconfig_mid config.starttime = self.__preconfig_starttime config.endtime = self.__preconfig_endtime config.timebonus_time = self.__preconfig_timebonus model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() for ticket in tickets: if ticket.num == 0: continue print 'mid: {}, num: {} => 0'.format(ticket.mid, ticket.num) ticket.num = 0 model_mgr.set_save(ticket) model_mgr.write_all() model_mgr.write_end() return model_mgr
def tr_write(self, uid, scoredata_weekly_id): """閲覧フラグの更新. """ model_mgr = ModelRequestMgr() ins = model_mgr.get_model_forupdate(CabaClubScorePlayerDataWeekly, scoredata_weekly_id) ins.view_result = True model_mgr.set_save(ins, ['view_result']) model_mgr.write_all() model_mgr.write_end() return ins
def __checkLevelUpBonus_tr_write(self, prizelistdata, levelup_bonus_logs, playerdata): model_mgr = ModelRequestMgr() for prizelist_data in prizelistdata: BackendApi.tr_add_prize(model_mgr, playerdata.uid, prizelist_data.prizelist, prizelist_data.text) for levelup_prize_log in levelup_bonus_logs: model_mgr.set_save(levelup_prize_log) model_mgr.set_save(playerdata) model_mgr.write_all() model_mgr.write_end()
def tr_write_playdata(uid, midlist): """プレイ情報がないので用意. """ playdatas = {} model_mgr = ModelRequestMgr() for mid in midlist: ins = GachaPlayData.makeInstance(GachaPlayData.makeID(uid, mid)) model_mgr.set_save(ins) playdatas[mid] = ins model_mgr.write_all() return model_mgr, playdatas
def tr(): model_mgr = ModelRequestMgr() performance_result = ScoutEventCastPerformanceResult.makeInstance( eventmaster.id) for idx, tanzakumaster in enumerate(tanzakumaster_list): tip = record[idx] setattr(performance_result, 'tip_{}'.format(tanzakumaster.number), tip) model_mgr.set_save(performance_result) model_mgr.write_all() return model_mgr, performance_result
def tr(model_cls, uid, status_table): model_mgr = ModelRequestMgr() for k, v in status_table.items(): key = model_cls.makeID(uid, k) model = model_mgr.get_model(model_cls, key, get_instance=True) if model.status != v: model.status = v if model.status == Defines.PromotionStatus.RECEIVED: model.rtime = OSAUtil.get_now() model_mgr.set_save(model) model_mgr.write_all() return model_mgr
def set_scoutevent_close(self): if self.__config_pre is None: return model_mgr = ModelRequestMgr() config = BackendApi.get_current_scouteventconfig(model_mgr) for k, v in self.__config_pre.items(): setattr(config, k, v) model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def tr(rows): model_mgr = ModelRequestMgr() for row in rows: key = LevelUpBonusPlayerData.makeID(int(row[0]), Defines.LEVELUP_BONUS_VERSION) playerdata = model_mgr.get_model(LevelUpBonusPlayerData, key) if not playerdata: print "irregular user {}".format(row[0]) else: playerdata.last_prize_level = row[1] model_mgr.set_save(playerdata) model_mgr.write_all() model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() config = CurrentScoutEventConfig.getByKeyForUpdate( CurrentScoutEventConfig.SINGLE_ID) if getattr(config, att_prize_flag) != idx: raise CabaretError(u'整合が取れていないので終了します') for uid in uidlist: BackendApi.tr_add_prize(model_mgr, uid, prizelist, textid) setattr(config, att_prize_flag, idx + 1) model_mgr.set_save(config) model_mgr.write_all() return model_mgr, config
def handle(self, *args, **options): print "===============================" print "insert_user_deckcost" print "===============================" model_mgr = ModelRequestMgr() def calculate_deck_cost(uidlist): decks = BackendApi.get_decks(uidlist, using=settings.DB_READONLY) deckcost = {} for uid, deck in decks.items(): cost = sum([ x.master.cost for x in BackendApi.get_cards(deck.to_array()) ]) deckcost[uid] = cost return deckcost limit = 1000 offset = 0 while True: playerdeck = PlayerDeck.fetchValues(limit=limit, offset=offset, using=settings.DB_DEFAULT) if not playerdeck: break playerdeck_dict = {p.id: p for p in playerdeck} player_deckcost = calculate_deck_cost(playerdeck_dict.keys()) for uid, deck_cost in player_deckcost.items(): player = playerdeck_dict[uid] player.deckcost = deck_cost model_mgr.set_save(player) offset += limit def tr_update(): model_mgr.write_all() model_mgr.write_end() return model_mgr try: tmp_model_mgr = db_util.run_in_transaction(tr_update) except CabaretError, err: print "error ...%s" % err.value return tmp_model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() config = CurrentBattleEventConfig.getByKeyForUpdate( CurrentBattleEventConfig.SINGLE_ID) if config.getDailyPrizeFlag(date_today) != pre_prize_flag: raise CabaretError(u'整合が取れていないので終了します') for uid in uidlist: BackendApi.tr_add_prize(model_mgr, uid, prizelist, textid) config.daily_prize_flag = prize_flag + 1 config.daily_prize_date = date_today model_mgr.set_save(config) model_mgr.write_all() return model_mgr, config
def createPlayer(): player = self.create_dummy(DummyType.PLAYER) model_mgr = ModelRequestMgr() model = player.getModel(PlayerFriend) model.friendlimit = 30 model_mgr.set_save(model) model = player.getModel(PlayerExp) model.level = 1 model_mgr.set_save(model) BackendApi.tr_updatelogintime(model_mgr, player, False) model_mgr.write_all() model_mgr.write_end() return player