def putEventPoint(self, mid, uid, playdata): """獲得イベントポイントの埋め込み. """ model_mgr = self.getModelMgr() points = playdata.result.get('point') or (0, 0, 0) if len(points) == 2: point, pointeffect = points successpoint = 0 elif len(points) == 3: point, pointeffect, successpoint = points self.osa_util.logger.trace('%s,%s' % (point, pointeffect)) scorerecord = BackendApi.get_scoutevent_scorerecord( model_mgr, mid, uid, using=settings.DB_READONLY) self.html_param['eventscore'] = Objects.scoutevent_score( scorerecord, point, pointeffect, successpoint)
def process(self): model_mgr = self.getModelMgr() using = settings.DB_READONLY eventmaster = BackendApi.get_current_scouteventmaster(model_mgr, using=using) if eventmaster is None: raise CabaretError(u'Event Closed.', CabaretError.Code.EVENT_CLOSED) mid = eventmaster.id v_player = self.getViewerPlayer() uid = v_player.id # 短冊情報. obj_tanzakulist = BackendApi.put_scoutevent_tanzakudata(self, uid) if not obj_tanzakulist: # 短冊が無いイベント. url = UrlMaker.scoutevent_top() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return # 所持チップ数. scorerecord = BackendApi.get_scoutevent_scorerecord( model_mgr, mid, uid, using=settings.DB_READONLY) self.html_param['scouteventscore'] = Objects.scoutevent_score( scorerecord) # トピック. self.putEventTopic(mid) # このページのURL. url = UrlMaker.scouteventtiptradedo(v_player.req_confirmkey) self.html_param['url_do'] = self.makeAppLinkUrl(url) self.writeScoutEventHTML('tip_trade', eventmaster)
class Handler(ScoutHandler): """スカウトイベントキャスト指名. """ @classmethod def getViewerPlayerClassList(cls): return [] def process(self): model_mgr = self.getModelMgr() using = settings.DB_READONLY eventmaster = BackendApi.get_current_scouteventmaster(model_mgr, using=using) if eventmaster is None: raise CabaretError(u'Event Closed.', CabaretError.Code.EVENT_CLOSED) mid = eventmaster.id v_player = self.getViewerPlayer() uid = v_player.id # 短冊情報. obj_tanzakulist = BackendApi.put_scoutevent_tanzakudata(self, uid) if not obj_tanzakulist: # 短冊が無いイベント. url = UrlMaker.scoutevent_top() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return obj_tanzaku = None # 短冊所持情報. tanzakudata = BackendApi.get_scoutevent_tanzakucastdata( model_mgr, uid, mid, using=settings.DB_READONLY) current_cast_number = tanzakudata.current_cast if tanzakudata else -1 if current_cast_number != -1: for obj in obj_tanzakulist: if obj['number'] == current_cast_number: obj_tanzaku = obj break # 一応データの不具合を防いでおく. if obj_tanzaku is None: if settings_sub.IS_DEV: raise CabaretError( u'存在しないキャストを指名しています.{}'.format(current_cast_number)) def tr(): model_mgr = ModelRequestMgr() BackendApi.tr_scoutevent_nominate_cast( model_mgr, uid, mid, None) model_mgr.write_all() return model_mgr try: db_util.run_in_transaction(tr).write_end() except CabaretError, err: if err.code == CabaretError.Code.ALREADY_RECEIVED: pass else: raise url = UrlMaker.scouteventcastnomination() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return self.html_param['scoutevent_tanzaku'] = obj_tanzaku # 所持チップ数. scorerecord = BackendApi.get_scoutevent_scorerecord( model_mgr, mid, uid, using=settings.DB_READONLY) self.html_param['scouteventscore'] = Objects.scoutevent_score( scorerecord) # トピック. self.putEventTopic(mid) # このページのURL. url = UrlMaker.scouteventcastnomination() self.html_param['url_self'] = self.makeAppLinkUrl(url) if obj_tanzaku: # 指名後. self.process_tip(eventmaster) else: # 指名前. self.process_tanzaku(eventmaster)