def checkPanelMission(self): """パネルミッション確認. """ model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() uid = v_player.id now = OSAUtil.get_now() # ミッション情報. missionplaydata = BackendApi.get_current_panelmission_data(model_mgr, uid, using=settings.DB_READONLY) if missionplaydata is None: # 全て終わっている. return panel = missionplaydata.mid # マイページで確認するミッション. mission_executer = PanelMissionConditionExecuter() # 更新確認. is_update = BackendApi.check_lead_update_panelmission(model_mgr, v_player, panel, now, mission_executer, using=settings.DB_READONLY) if is_update: try: model_mgr = db_util.run_in_transaction(self.tr_write_panelmission, uid, panel, mission_executer, v_player.req_confirmkey, now) model_mgr.write_end() except: return if not (settings_sub.IS_LOCAL and self.request.get('_test')): # 演出へリダイレクト. url = UrlMaker.panelmissionanim(panel) self.appRedirect(self.makeAppLinkUrlRedirect(url))
def setUp(self): # DMMID. self.__player = self.create_dummy(DummyType.PLAYER) self.__player.lbtime = OSAUtil.get_now() self.__player.getModel(PlayerLogin).save() # デッキ. deck = Deck(id=self.__player.id) cardmaster = self.create_dummy(DummyType.CARD_MASTER) deck.leader = self.create_dummy(DummyType.CARD, self.__player, cardmaster).id for i in xrange(9): cardmaster = self.create_dummy(DummyType.CARD_MASTER) setattr(deck, 'mamber%d' % i, self.create_dummy(DummyType.CARD, self.__player, cardmaster).id) deck.save() # お知らせ. for _ in range(5): self.create_dummy(DummyType.TOP_BANNER_MASTER) # イベント発生設定. config = BackendApi.get_current_scouteventconfig(ModelRequestMgr()) self.__preconfig_mid = config.mid BackendApi.update_scouteventconfig(0, config.starttime, config.endtime) # カード. table = [] cardmaster = self.create_dummy(DummyType.CARD_MASTER) data = GachaBoxCardData(cardmaster.id, 10000) table.append(data.to_data()) # グループ. group = self.create_dummy(DummyType.GACHA_GROUP_MASTER, table=table) # おまけ. item = self.create_dummy(DummyType.ITEM_MASTER) prize = self.create_dummy(DummyType.PRIZE_MASTER, item=item, itemnum=1) bonus = [prize.id] # ガチャ. continuity = 10 boxdata = GachaBoxGroupData(group.id, 10000, continuity+1) box = [boxdata.to_data()] self.__gachamaster = self.create_dummy(DummyType.GACHA_MASTER, box=box, bonus=bonus, continuity=continuity, consumetype=Defines.GachaConsumeType.RANKING, consumevalue=10) # ランキングガチャマスター. wholeprizes = { 'normal' : [(1, bonus),] } self.__rankingmaster = self.create_dummy(DummyType.RANKING_GACHA_MASTER, self.__gachamaster.boxid, wholeprizes=wholeprizes) # 達成報酬キュー. queue0 = self.create_dummy(DummyType.RANKING_GACHA_WHOLE_PRIZE_QUEUE, self.__rankingmaster.id, point=100, prizes=bonus) queue1 = self.create_dummy(DummyType.RANKING_GACHA_WHOLE_PRIZE_QUEUE, self.__rankingmaster.id, point=1000, prizes=bonus) self.__queue = queue1 # 初めてプレイした時間. self.create_dummy(DummyType.RANKING_GACHA_SCORE, self.__player.id, self.__rankingmaster.id, firstpoint=queue1.point) # 受け取ったキューのID. self.create_dummy(DummyType.RANKING_GACHA_WHOLE_PRIZE_DATA, self.__player.id, queue0.id - 1) # 全プレ. presenteveryone_list = BackendApi.get_presenteveryone_list_formypage(ModelRequestMgr()) prizeidlist = [] for presenteveryone in presenteveryone_list: prizeidlist.extend(presenteveryone.prizes) prizelist = BackendApi.get_prizelist(ModelRequestMgr(), prizeidlist) self.__presenteveryone_presentlist = BackendApi.create_present_by_prize(ModelRequestMgr(), 0, prizelist, 0, do_set_save=False) # ミッション報酬を受け取ってしまう. model_mgr = ModelRequestMgr() missionplaydata = BackendApi.get_current_panelmission_data(model_mgr, self.__player.id) if missionplaydata: panel = missionplaydata.mid # マイページで確認するミッション. mission_executer = PanelMissionConditionExecuter() # 更新確認. is_update = BackendApi.check_lead_update_panelmission(model_mgr, self.__player, panel, OSAUtil.get_now(), mission_executer) if is_update: def write(): model_mgr = ModelRequestMgr() if mission_executer.isNeedCheck(): BackendApi.tr_complete_panelmission(model_mgr, self.__player.id, mission_executer, OSAUtil.get_now()) BackendApi.tr_receive_panelmission(model_mgr, self.__player.id, panel, self.__player.req_confirmkey, OSAUtil.get_now()) model_mgr.write_all() model_mgr.write_end() write() self.__present_num = BackendApi.get_present_num(self.__player.id)