def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id if BackendApi.check_cabaclub_lead_resultanim( model_mgr, uid, self.__now, using=settings.DB_READONLY): # 結果演出へ. self.setFromPage(Defines.FromPages.CABACLUB_STORE) self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubresultanim())) return # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubstore/') self.__ctype = int(self.request.get(Defines.URLQUERY_CTYPE, 0)) master_list = BackendApi.get_cabaretclub_store_master_all( model_mgr, using=settings.DB_READONLY) # storeset_dict = BackendApi.get_cabaretclub_storeset_dict(model_mgr, uid, [master.id for master in master_list], using=settings.DB_READONLY) # master_list.sort(key=lambda x:storeset_dict[x.id].playerdata.rtime if storeset_dict.get(x.id) else OSAUtil.get_datetime_max()) master_id_list = [master.id for master in master_list] mid = args.getInt(0) master = None if mid and mid in master_id_list: master = master_list[master_id_list.index(mid)] if master is None: # 指定がない場合は最後に見た店舗. master = self.getLastViewedStoreMaster() or master_list[0] mid = self.__mid = master.id # 店舗のページング. master_num = len(master_id_list) if 1 < master_num: current_index = master_id_list.index(mid) self.html_param.update( url_prev=self.makeAppLinkUrl( UrlMaker.cabaclubstore( master_id_list[(current_index + master_num - 1) % master_num])), url_next=self.makeAppLinkUrl( UrlMaker.cabaclubstore(master_id_list[(current_index + 1) % master_num])), ) # 店舗の更新. self.updateStore(self.__now, master) # 店舗情報. storeset = BackendApi.get_cabaretclub_storeset( model_mgr, uid, mid, using=settings.DB_READONLY) if storeset is None or not storeset.is_alive(self.__now): # レンタル画面. self.__process_rental(master) else: # 店舗画面. self.__process_store(storeset)
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubcastselect/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return self.__mid = master.id # 削除するID. cardid = args.getInt(1) card = None obj_card = None if cardid: cardlist = BackendApi.get_cards([cardid], model_mgr, using=settings.DB_READONLY) if not cardlist or cardlist[0].card.uid != uid: # カードの指定おかしい. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return card = cardlist[0] obj_card = Objects.card(self, card) obj_card['url_remove'] = self.makeAppLinkUrl( UrlMaker.cabaclubcastremove(mid, cardid)) self.__cardid = cardid or 0 # 絞り込みのパラメータ. self.loadSortParams(default_sortby=Defines.CardSortType.COST_REV, default_ckind_type=Defines.CardKind.NORMAL, default_maxrare=Defines.Rarity.LIST[-1]) # カード情報埋め込み. self.putCardList() # HTML書き出し. self.html_param.update( current_card=obj_card, url_store=self.makeAppLinkUrl(UrlMaker.cabaclubstore(mid)), ) self.writeBoxHtml('cabaclub/castselect')
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubopen/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master(model_mgr, mid, using=settings.DB_READONLY) if master is None: # 存在しない. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return mid = master.id # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id try: db_util.run_in_transaction(self.tr_write, uid, master, self.__now) except CabaretError, err: if err.code == CabaretError.Code.ALREADY_RECEIVED: pass elif err.code == CabaretError.Code.ILLEGAL_ARGS: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return else: raise
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() args = self.getUrlArgs('/cabaclubdeckselect/') # Retrieve the necessary arguments # mid : Cabaclubstore id # card_type : (全て、悪、知、癒) as defined in Defines.CharacterType.NAMES try: mid = args.getInt(0) card_type = int(self.request.get(Defines.URLQUERY_CTYPE, 0)) is_remove = self.request.get(Defines.URLQUERY_REM, '') == "rem" except: raise CabaretError(u'引数が想定外です', CabaretError.Code.ILLEGAL_ARGS) url = UrlMaker.cabaclubstore(mid=mid) # Automatically choose the casts and add them to the deck # for the Cabaclubstore of id `mid` if card_type: url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, card_type) # 一括編成 / 一括解除 self.processAuto(mid, card_type, is_remove=is_remove) if settings_sub.IS_BENCH: self.response.set_status(200) self.response.end() else: self.appRedirect(self.makeAppLinkUrlRedirect(url)) return
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubrentdo/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # 借りる日数. days = self.request.get(Defines.URLQUERY_DAYS) days = int(days) if days and days.isdigit() else 0 # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 書き込み. try: db_util.run_in_transaction(self.tr_write, uid, master, days, self.__now) except CabaretError, err: if err.code == CabaretError.Code.ALREADY_RECEIVED: pass elif err.code == CabaretError.Code.ILLEGAL_ARGS: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return else: raise
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubcastremove/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return mid = master.id # 削除するID. cardid = args.getInt(1) card = None if cardid: cardlist = BackendApi.get_cards([cardid], model_mgr, using=settings.DB_READONLY) if cardlist: card = cardlist[0] if card is None or card.card.uid != uid: # カードの指定おかしい. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # 書き込み. try: db_util.run_in_transaction(self.tr_write, uid, master, self.__now, cardid) except CabaretError, err: if err.code in CabaretError.Code.ALREADY_RECEIVED: pass elif err.code == CabaretError.Code.ILLEGAL_ARGS: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return else: raise
def process(self): # 現在時刻. now = OSAUtil.get_now() # 各店舗の更新. self.updateStore(now) # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id if BackendApi.check_cabaclub_lead_resultanim( model_mgr, uid, now, using=settings.DB_READONLY): # 結果演出へ. self.setFromPage(Defines.FromPages.CABACLUB_STORE) self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubresultanim())) return # 経営情報. scoredata = BackendApi.get_cabaretclub_scoreplayerdata( model_mgr, uid, using=settings.DB_READONLY) scoredata_weekly = BackendApi.get_cabaretclub_scoreplayerdata_weekly( model_mgr, uid, now, using=settings.DB_READONLY) obj_cabaclub_management_info = Objects.cabaclub_management_info( self, scoredata, scoredata_weekly) # 店舗のイベント発生情報. BackendApi.put_cabaretclub_eventinfo(self, uid, now, using=settings.DB_READONLY) # 次の集計時間. section_endtime = BackendApi.to_cabaretclub_section_endtime(now) # 開催中または最新の開催したイベントの開催情報 event_config = BackendApi.get_current_cabaclubrankeventconfig( model_mgr, using=settings.DB_READONLY) if BackendApi.is_cabaclubrankevent_open(model_mgr): # 経営イベントのランキングURL cabaclub_event_ranking_url = UrlMaker.cabaclubrank( event_config.mid) else: cabaclub_event_ranking_url = UrlMaker.cabaclubrank( event_config.previous_mid) self.set_event_period(model_mgr, self.html_param, event_config) if self.html_param['is_event_open']: self.html_param[ 'eventmaster'] = BackendApi.get_cabaclubrankeventmaster( model_mgr, event_config.mid, using=settings.DB_READONLY) # HTML書き込み. self.html_param.update( cabaclub_management_info=obj_cabaclub_management_info, url_store=self.makeAppLinkUrl(UrlMaker.cabaclubstore()), url_title=self.makeAppLinkUrl(UrlMaker.titletop()), url_current_week_rank=self.makeAppLinkUrl( cabaclub_event_ranking_url), section_timelimit=Objects.timelimit(section_endtime, now), ) self.writeAppHtml('cabaclub/top')
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubuado/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 書き込み前店舗情報. storeset = BackendApi.get_cabaretclub_storeset( model_mgr, uid, mid, using=settings.DB_READONLY) if storeset is None or not storeset.is_alive(self.__now): # 店舗を借りていない. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return eventmaster = storeset.get_current_eventmaster(self.__now) if eventmaster is None or storeset.playerdata.ua_flag: # イベントが発生していない.もしくはユーザアクションを実行済み. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # 書き込み. try: db_util.run_in_transaction(self.tr_write, uid, master, self.__now) except CabaretError, err: if err.code == CabaretError.Code.ALREADY_RECEIVED: pass elif err.code == CabaretError.Code.ILLEGAL_ARGS: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return else: raise
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubuayesno/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master(model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗情報. storeset = BackendApi.get_cabaretclub_storeset(model_mgr, uid, mid, using=settings.DB_READONLY) if storeset is None or not storeset.is_alive(self.__now): # 店舗を借りていない. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return eventmaster = storeset.get_current_eventmaster(self.__now) if eventmaster is None or storeset.playerdata.ua_flag: # イベントが発生していない.もしくはユーザアクションを実行済み. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return elif eventmaster.ua_type == Defines.CabaClubEventUAType.NONE: # ユーザアクションのないイベント. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # スコア情報. scoredata = BackendApi.get_cabaretclub_scoreplayerdata(model_mgr, uid, using=settings.DB_READONLY) obj_cabaclub_management_info = Objects.cabaclub_management_info(self, scoredata) # イベント情報. obj_cabaclubstoreeventmaster = Objects.cabaclubstoreeventmaster(self, eventmaster) # HTML書き込み. self.html_param.update( cabaclubstoreeventmaster = obj_cabaclubstoreeventmaster, cabaclub_management_info = obj_cabaclub_management_info, url_store = self.makeAppLinkUrl(UrlMaker.cabaclubstore(mid)), url_write = self.makeAppLinkUrl(UrlMaker.cabaclubuado(mid)), ) self.writeAppHtml('cabaclub/uayesno')
def __makeBackLinkUrlCabaClubStore(self, args): if args and 0 < len(args) and str(args[0]).isdigit(): url = UrlMaker.cabaclubstore(int(args[0])) else: url = UrlMaker.cabaclubtop() return { 'url': self.makeAppLinkUrl(url, add_frompage=False), 'text': u'店舗へ戻る' }
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubuaend/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master(model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # イベント情報. eventmaster_id = self.request.get(Defines.URLQUERY_ID) eventmaster = None if eventmaster_id and eventmaster_id.isdigit(): eventmaster_id = int(eventmaster_id) eventmaster = BackendApi.get_cabaretclub_event_master(model_mgr, eventmaster_id, using=settings.DB_READONLY) if eventmaster is None: # 存在しないイベント. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return obj_cabaclubstoreeventmaster = Objects.cabaclubstoreeventmaster(self, eventmaster) # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # スコア情報. scoredata = BackendApi.get_cabaretclub_scoreplayerdata(model_mgr, uid, using=settings.DB_READONLY) obj_cabaclub_management_info = Objects.cabaclub_management_info(self, scoredata) # HTML書き込み. self.html_param.update( cabaclubstoreeventmaster = obj_cabaclubstoreeventmaster, cabaclub_management_info = obj_cabaclub_management_info, url_store = self.makeAppLinkUrl(UrlMaker.cabaclubstore(mid)), ) self.writeAppHtml('cabaclub/uaend')
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubeventanim/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master(model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗情報. storeset = BackendApi.get_cabaretclub_storeset(model_mgr, uid, mid, using=settings.DB_READONLY) if storeset is None or not storeset.is_alive(self.__now): # 店舗を借りていない. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return eventmaster = storeset.get_current_eventmaster(self.__now) if eventmaster is None: # イベントが発生していない. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # 閲覧時間の更新. CabaClubRecentlyViewedTime.create(uid, mid, self.__now).save() # 演出用パラメータ. params = dict( backUrl = self.makeAppLinkUrl(UrlMaker.cabaclubstore(mid)), ) # 仮. self.appRedirectToEffect('cb_system/warning/effect.html', params)
class Handler(CabaClubHandler): """キャバクラ店舗キャスト配置書き込み. """ def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubcastselectdo/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return self.__mid = master.id # 削除するID. cardid_remove = args.getInt(1) # 設定するID. cardid_add = args.getInt(2) if not cardid_add: # 設定するカードが設定されていない. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return try: db_util.run_in_transaction(self.tr_write, uid, master, self.__now, cardid_remove, cardid_add) except CabaretError, err: if err.code == CabaretError.Code.ALREADY_RECEIVED: pass elif err.code == CabaretError.Code.ILLEGAL_ARGS: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return else: raise # 店舗に戻る. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid)))
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubrentyesno/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master(model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # 借りる日数. days = self.request.get(Defines.URLQUERY_DAYS) days = int(days) if days and days.isdigit() else 0 # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗情報. storeset = BackendApi.get_cabaretclub_storeset(model_mgr, uid, mid, using=settings.DB_READONLY) if storeset and (storeset.is_alive(self.__now) or storeset.get_rental_cost(days) is None): # 既に借り入れ済み. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # スコア情報. scoredata = BackendApi.get_cabaretclub_scoreplayerdata(model_mgr, uid, using=settings.DB_READONLY) obj_cabaclub_management_info = Objects.cabaclub_management_info(self, scoredata) # 店舗マスター. obj_cabaclubstoremaster = Objects.cabaclubstoremaster(self, master) # 書き込みのURL. url_write = UrlMaker.cabaclubrentdo(mid) url_write = OSAUtil.addQuery(url_write, Defines.URLQUERY_DAYS, days) # HTML書き込み. self.html_param.update( cabaclub_management_info = obj_cabaclub_management_info, cabaclubstoremaster = obj_cabaclubstoremaster, url_write = self.makeAppLinkUrl(url_write), days = days, ) self.writeAppHtml('cabaclub/rentyesno')
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubrentend/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # 借りる日数. days = self.request.get(Defines.URLQUERY_DAYS) days = int(days) if days and days.isdigit() else 0 # HTML書き込み. self.html_param.update(url_store=self.makeAppLinkUrl( UrlMaker.cabaclubstore(mid)), ) self.writeAppHtml('cabaclub/rentend')
def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubcancelyesno/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗情報. storeset = BackendApi.get_cabaretclub_storeset( model_mgr, uid, mid, using=settings.DB_READONLY) if storeset is None or not storeset.is_alive(self.__now): # 既に解約済み. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return # 店舗マスター. obj_cabaclubstoremaster = Objects.cabaclubstoremaster(self, master) # 書き込みのURL. url_write = UrlMaker.cabaclubcanceldo(mid) # HTML書き込み. self.html_param.update( cabaclubstoremaster=obj_cabaclubstoremaster, url_write=self.makeAppLinkUrl(url_write), ) self.writeAppHtml('cabaclub/cancelyesno')
def process(self): args = self.getUrlArgs('/item_useyesno/') try: mid = int(args.get(0)) use_num = int(self.request.get(Defines.URLQUERY_NUMBER, 1)) if use_num < 1: raise CabaretError() except: raise CabaretError(u'リクエストが正しくありません', CabaretError.Code.ILLEGAL_ARGS) model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() # 使用するアイテム情報. num = BackendApi.get_item_nums(model_mgr, v_player.id, [mid], using=settings.DB_READONLY).get(mid, 0) if num < 1: # 手に入れたことすらない. if settings_sub.IS_LOCAL: raise CabaretError(u'リクエストが正しくありません', CabaretError.Code.ILLEGAL_ARGS) url = UrlMaker.itemlist() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return master = BackendApi.get_itemmaster(model_mgr, mid, using=settings.DB_READONLY) self.html_param['item'] = Objects.item(self, master, num) self.html_param['use_num'] = use_num if num < use_num: self.html_param['is_not_enough'] = True elif mid in Defines.ItemEffect.ACTION_RECOVERY_ITEMS: if v_player.get_ap() == v_player.get_ap_max(): self.html_param['is_overlimit'] = True # テンション全回復. elif mid in Defines.ItemEffect.TENSION_RECOVERY_ITEMS: if v_player.get_bp() == v_player.get_bp_max(): self.html_param['is_overlimit'] = True elif mid == Defines.ItemEffect.CARD_BOX_EXPANSION: if Defines.CARDLIMITITEM_MAX < (v_player.cardlimititem + master.evalue): self.html_param['is_overlimit'] = True elif mid in Defines.ItemEffect.SCOUT_GUM_ITEMS: eventmaster = BackendApi.get_current_scouteventmaster( model_mgr, using=settings.DB_READONLY) if eventmaster is None: self.html_param['is_noevent'] = True else: playdata = BackendApi.get_event_playdata( model_mgr, eventmaster.id, v_player.id, using=settings.DB_READONLY) now = OSAUtil.get_now() if now <= playdata.feveretime: self.html_param['is_fever'] = True elif mid == Defines.ItemEffect.CABACLUB_SCOUTMAN: # 店舗. cabaclubstoremaster = None if Defines.FromPages.CABACLUB_STORE == self.getFromPageName(): args = self.getFromPageArgs() if args: cabaclubstoremaster = BackendApi.get_cabaretclub_store_master( model_mgr, int(args[0]), using=settings.DB_READONLY) if cabaclubstoremaster is None: raise CabaretError(u'店舗が存在しません', CabaretError.Code.ILLEGAL_ARGS) playerdata = BackendApi.get_cabaretclub_storeplayerdata( model_mgr, v_player.id, cabaclubstoremaster.id, using=settings.DB_READONLY) storeset = CabaclubStoreSet(cabaclubstoremaster, playerdata) if not storeset.is_alive(OSAUtil.get_now()): self.appRedirect( self.makeAppLinkUrlRedirect( UrlMaker.cabaclubstore(cabaclubstoremaster.id))) return # 使用可能にする. self.html_param['item']['master']['useable'] = True # 残りを確認. rest = cabaclubstoremaster.scoutman_add_max - storeset.playerdata.scoutman_add if rest < (master.evalue * use_num): self.html_param['is_overlimit'] = True elif mid == Defines.ItemEffect.CABACLUB_PREFERENTIAL: itemdata = BackendApi.get_cabaretclub_item_playerdata( model_mgr, v_player.id, using=settings.DB_READONLY) storeset = CabaclubStoreSet(None, None, itemdata=itemdata) if storeset.get_current_preferential_item_id( OSAUtil.get_now()) == mid: self.html_param['is_overlimit'] = True elif mid == Defines.ItemEffect.CABACLUB_BARRIER: itemdata = BackendApi.get_cabaretclub_item_playerdata( model_mgr, v_player.id, using=settings.DB_READONLY) storeset = CabaclubStoreSet(None, None, itemdata=itemdata) if storeset.get_current_barrier_item_id(OSAUtil.get_now()) == mid: self.html_param['is_overlimit'] = True # アイテム結果URLを取得. # url = OSAUtil.addQuery(UrlMaker.item_use(mid, num), Defines.URLQUERY_NUMBER, use_num) url = OSAUtil.addQuery( UrlMaker.item_use2(mid, v_player.req_confirmkey), Defines.URLQUERY_NUMBER, use_num) self.html_param['url_use'] = self.makeAppLinkUrl(url) self.putFromBackPageLinkUrl() if mid in Defines.ItemEffect.SCOUT_GUM_ITEMS: eventmaster = BackendApi.get_current_scouteventmaster( model_mgr, using=settings.DB_READONLY) if eventmaster is not None: self.html_param[ 'url_scoutevent_scouttop'] = self.makeAppLinkUrl( UrlMaker.scoutevent()) self.writeAppHtml('item/useyesno')