コード例 #1
0
    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)
コード例 #2
0
 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')
コード例 #3
0
 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
コード例 #4
0
ファイル: deckselect.py プロジェクト: hitandaway100/caba
    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
コード例 #5
0
 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
コード例 #6
0
ファイル: castremove.py プロジェクト: hitandaway100/caba
 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
コード例 #7
0
    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')
コード例 #8
0
ファイル: uado.py プロジェクト: hitandaway100/caba
 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
コード例 #9
0
 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')
コード例 #10
0
ファイル: apphandler.py プロジェクト: hitandaway100/caba
 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'店舗へ戻る'
     }
コード例 #11
0
 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')
コード例 #12
0
ファイル: eventanim.py プロジェクト: hitandaway100/caba
 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)
コード例 #13
0
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)))
コード例 #14
0
ファイル: rentyesno.py プロジェクト: hitandaway100/caba
 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')
コード例 #15
0
 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')
コード例 #16
0
ファイル: cancelyesno.py プロジェクト: hitandaway100/caba
 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')
コード例 #17
0
ファイル: useyesno.py プロジェクト: hitandaway100/caba
    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')