def sendRewards(rewards, userId, matchId, disKey): ''' 退还比赛费用 MATCH_RETURN_FEE ''' user_remote.addAssets(DIZHU_GAMEID, userId, rewards, disKey, matchId) ftlog.debug('CommonMatchIF.sendRewards matchId=', matchId, 'userId=', userId, 'rewards=', rewards) rewardsInfo = [] for reward in rewards: kindId = reward['itemId'] rItem = hallitem.itemSystem.findAssetKind(kindId) rInfo = {} rInfo['icon'] = kindId rInfo['name'] = rItem.displayName rInfo['count'] = reward['count'] rInfo['iconPath'] = rItem.pic rewardsInfo.append(rInfo) ftlog.debug('CommonMatchIF.sendRewards rewardsInfo=', rewardsInfo) # 更新排行榜 if disKey == 'MATCH_REWARD': hallranking.rankingSystem.setUserByInputType(DIZHU_GAMEID, MATCH_RANK_TEMPLATE_NAME, userId, 1, pktimestamp.getCurrentTimestamp()) # 返回结果 return rewardsInfo
def returnFee(self, inst, userId, fee, mixId=None): ''' 退还报名费 ''' try: if userId <= 10000: return if not fee: return contentItemList = [] contentItemList.append({ 'itemId': fee.assetKindId, 'count': fee.count }) from dizhu.games.matchutil import returnSignInfFees contentItemList = returnSignInfFees(userId, self._room.roomId, contentItemList) user_remote.addAssets( self._room.gameId, userId, contentItemList, 'MATCH_RETURN_FEE', int(mixId) if mixId else None or self._room.roomId) ftlog.info('SigninFeeDizhu.returnFee matchId=', inst.matchId, 'userId=', userId, 'mixId=', mixId, 'signinParams=', {'mixId': mixId} if mixId else {}, 'fees=', contentItemList) except: ftlog.error()
def returnFee(feeDict, userId, matchId, disKey): ''' 退还比赛费用 MATCH_RETURN_FEE ''' user_remote.addAssets(DIZHU_GAMEID, userId, feeDict, disKey, matchId) ftlog.debug('CommonMatchIF.returnFee matchId=', matchId, 'userId=', userId, 'fees=', feeDict) return True
def sendBigWinnerRewards(userId, roomId): creatorConf = getCreatorConf(userId) if creatorConf.bigWinnerRewardContent: items = creatorConf.bigWinnerRewardContent.getItems() if items: contentItems = [item.toDict() for item in items] user_remote.addAssets(DIZHU_GAMEID, userId, contentItems, 'DIZHU_BIG_WINNER', roomId) ftlog.info('ft_service.sendBigWinnerRewards', 'userId=', userId, 'roomId=', roomId, 'rewards=', contentItems)
def sendRewards(self, player, group, rankRewards): '''给用户发送奖励''' try: matchlog('MatchRewardsDizhu.sendRewards', self._room.roomId, group.groupId, player.userId, player.rank, rankRewards.rewards) user_remote.addAssets(self._room.gameId, player.userId, rankRewards.rewards, 'MATCH_REWARD', self._room.roomId) if rankRewards.message: pkmessage.sendPrivate(self._room.gameId, player.userId, 0, rankRewards.message) datachangenotify.sendDataChangeNotify(self._room.gameId, player.userId, 'message') except: ftlog.error()
def returnFees(self, inst, userId, fees): ''' 退还报名费 ''' try: if userId <= 10000: return contentItemList = [] for fee in fees: contentItemList.append({ 'itemId': fee.assetKindId, 'count': fee.count }) user_remote.addAssets(self._room.gameId, userId, contentItemList, 'MATCH_RETURN_FEE', self._room.roomId) except: ftlog.error()
def returnFee(self, inst, userId, fee): ''' 退还报名费 ''' try: if userId <= 10000: return contentItemList = [] contentItemList.append({ 'itemId': fee.assetKindId, 'count': fee.count }) user_remote.addAssets(self._room.gameId, userId, contentItemList, 'MATCH_RETURN_FEE', self._room.roomId) ftlog.info('SigninFeeDizhu.returnFee matchId=', inst.matchId, 'userId=', userId, 'fees=', contentItemList) except: ftlog.error()
def sendRankRewards(self, player, rankRewards): ''' 给用户发奖 ''' try: ftlog.info('MatchRankRewardsSenderDizhu.sendRankRewards matchId=', player.matchInst.matchId, 'instId=', player.matchInst.instId, 'userId=', player.userId, 'rank=', player.rank, 'rewards=', rankRewards.rewards) user_remote.addAssets(self._room.gameId, player.userId, rankRewards.rewards, 'MATCH_REWARD', player.matchInst.matchId) if rankRewards.message: pkmessage.sendPrivate(self._room.gameId, player.userId, 0, rankRewards.message) datachangenotify.sendDataChangeNotify(self._room.gameId, player.userId, 'message') except: ftlog.error()
def sendRewards(self, player, rankRewards): '''给用户发送奖励''' try: self._logger.info('MatchRewardsDizhu.sendRewards', 'groupId=', player.group.groupId if player.group else None, 'score=', player.score, 'rank=', player.rank, 'rankRewards=', rankRewards.rewards) user_remote.addAssets(self._room.gameId, player.userId, rankRewards.rewards, 'MATCH_REWARD', self._room.roomId) if rankRewards.message: pkmessage.sendPrivate(self._room.gameId, player.userId, 0, rankRewards.message) datachangenotify.sendDataChangeNotify(self._room.gameId, player.userId, 'message') except: self._logger.error('MatchRewardsDizhu.sendRewards', 'groupId=', player.group.groupId if player.group else None, 'score=', player.score, 'rank=', player.rank, 'rankRewards=', rankRewards.rewards)
def sendReward(self, rankingDefine, issueNumber, rankingUser, content): contentItemList = [] contentItems = content.getItems() for contentItem in contentItems: contentItemList.append({ 'itemId': contentItem.assetKindId, 'count': contentItem.count }) try: intRankingId = int(rankingDefine.rankingId) ret = user_remote.addAssets(HALL_GAMEID, rankingUser.userId, contentItemList, 'RANK_REWARD', intRankingId) if ret: mail = None if rankingDefine.rewardMail: rewardContent = hallitem.buildContentsString(contentItems) if rewardContent: params = { 'rankingName': rankingDefine.name, 'rank': rankingUser.rank + 1, 'rewardContent': hallitem.buildContentsString(contentItems) } mail = strutil.replaceParams(rankingDefine.rewardMail, params) if mail: gameId = rankingDefine.gameIds[ 0] if rankingDefine.gameIds else 0 if gameId == 0: gameId = 9999 pkmessage.sendPrivate(gameId, rankingUser.userId, 0, mail) ftlog.info('RankRewardSender.sendReward Succ userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList, 'mail=', mail) else: ftlog.warn('RankRewardSender.sendReward Fail userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList) except: ftlog.error('RankRewardSender.sendReward Exception userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList)
def sendReward(self, rankingDefine, issueNumber, rankingUser, content): contentItemList = [] contentItems = content.getItems() for contentItem in contentItems: contentItemList.append({'itemId': contentItem.assetKindId, 'count': contentItem.count}) try: intRankingId = int(rankingDefine.rankingId) ret = user_remote.addAssets(HALL_GAMEID, rankingUser.userId, contentItemList, 'RANK_REWARD', intRankingId) if ret: mail = None if rankingDefine.rewardMail: rewardContent = hallitem.buildContentsString(contentItems) if rewardContent: params = { 'rankingName': rankingDefine.name, 'rank': rankingUser.rank + 1, 'rewardContent': hallitem.buildContentsString(contentItems) } mail = strutil.replaceParams(rankingDefine.rewardMail, params) if mail: gameId = rankingDefine.gameIds[0] if rankingDefine.gameIds else 0 if gameId == 0: gameId = 9999 pkmessage.sendPrivate(gameId, rankingUser.userId, 0, mail) ftlog.info('RankRewardSender.sendReward Succ userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList, 'mail=', mail) else: ftlog.warn('RankRewardSender.sendReward Fail userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList) except: ftlog.error('RankRewardSender.sendReward Exception userId=', rankingUser.userId, 'rankingId=', intRankingId, 'issueNumber=', issueNumber, 'rank=', rankingUser.rank + 1, 'rewards=', contentItemList)
def sendUserAssets(gameId, userId, contentItems, rankNumber): if ftlog.is_debug(): ftlog.debug('replay_ranking_prize_sender.sendUserAssets', 'gameId=', gameId, 'userId=', userId, 'contentItems=', contentItems, 'rankNumber=', rankNumber) dictContentItems = [{'itemId': item.assetKindId, 'count': item.count} for item in contentItems] ok = user_remote.addAssets(gameId, userId, dictContentItems, 'REPLAY_RANK_PRIZE', 0) if ok: prizeContent = hallitem.buildContentsString(contentItems, True) mail = strutil.replaceParams(getReplayRankingPrizeSentMail(), {'prizeContent':prizeContent, 'rankNumber': rankNumber}) if mail: pkmessage.sendPrivate(9999, userId, 0, mail) else: ftlog.warn('replay_ranking_prize_sender.sendUserAssets: send error', 'gameId=', gameId, 'userId=', userId, 'contentItems=', contentItems) return ok
def _sendAuthReawrd(cls, userId): """发送认证奖励""" assets = cls.getConf('auth_reward') if ftlog.is_debug(): ftlog.debug('PlayerControl._sendAuthReawrd', 'userId=', userId, 'assets=', assets) if assets: contentItems = [{ 'itemId': assets.get('itemId'), 'count': assets.get('count') }] if user_remote.addAssets(DIZHU_GAMEID, userId, contentItems, 'ERDAYI_AUTH_REWARD', 0): ftlog.info('PlayerControl._sendAuthReawrd Succ', 'userId=', userId, 'assets=', assets) rewardDesc = hallitem.buildContent(assets.get('itemId'), assets.get('count'), False) mail = strutil.replaceParams(cls.getConf('auth_reward_mail'), {'reward_desc': rewardDesc}) pkmessage.sendPrivate(9999, userId, 0, mail) cls.sendPopTip(userId, mail) else: ftlog.warn('PlayerControl._sendAuthReawrd Fail', 'userId=', userId, 'assets=', assets)
def sendRankRewards(self, player, rankRewards): ''' 给用户发奖 ''' conf = configure.getGameJson(DIZHU_GAMEID, 'wx.share.control', {}) matchRewardSwitch = conf.get('matchRewardSwitch') if matchRewardSwitch: return try: ftlog.info('MatchRankRewardsSenderDizhu.sendRankRewards matchId=', player.matchInst.matchId, 'instId=', player.matchInst.instId, 'userId=', player.userId, 'rank=', player.rank, 'signinParams=', player.signinParams, 'rewards=', rankRewards.rewards) playerMixId = int(player.mixId) if player.mixId else None user_remote.addAssets(self._room.gameId, player.userId, rankRewards.rewards, 'MATCH_REWARD', playerMixId or player.matchInst.matchId) from dizhu.game import TGDizhu from dizhu.entity.common.events import ActiveEvent TGDizhu.getEventBus().publishEvent( ActiveEvent(DIZHU_GAMEID, player.userId, 'redEnvelope')) if rankRewards: # 发邮件 rewardDesc = matchutil.buildRewardsDesc(rankRewards) roomName = player.matchInst.matchConf.getRoomName(player.mixId) mailstr = '红包赛奖励#恭喜您在%s' % roomName + '中, 获得%s。' % rewardDesc message.send(DIZHU_GAMEID, message.MESSAGE_TYPE_SYSTEM, player.userId, mailstr) if rankRewards.message: pkmessage.sendPrivate(self._room.gameId, player.userId, 0, rankRewards.message) datachangenotify.sendDataChangeNotify(self._room.gameId, player.userId, 'message') sequence = int(player.matchInst.instId.split('.')[1]) rewardsLen = len(rankRewards.rewards) for reward in rankRewards.rewards: # 如果是红包券则广播红包券事件 if reward['itemId'] == 'user:coupon': from hall.game import TGHall TGHall.getEventBus().publishEvent( UserCouponReceiveEvent( HALL_GAMEID, player.userId, reward['count'], user_coupon_details.USER_COUPON_SOURCE_MATCH_ARENA) ) chipType = matchutil.getBiChipType(reward['itemId']) kindId = 0 if chipType == daoconst.CHIP_TYPE_ITEM: kindId = reward['itemId'].strip('item:') matchutil.report_bi_game_event( 'MATCH_REWARD', player.userId, player.matchInst.matchId, 0, sequence, 0, 0, 0, [ chipType, reward['count'], kindId, player.rank, int(player.mixId) if player.mixId else 0, rewardsLen ], 'match_reward') except: ftlog.error()
def _sendReward(gameId, activityId, quizResult): if not quizResult in ('l', 'm', 'r'): ftlog.warn('hotfix_match_quiz._sendReward BadQuizResult gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return actConf = _getActivityConf(activityId) if not actConf: ftlog.warn('hotfix_match_quiz._sendReward NotActConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return serverConf = actConf.get('server_config') if not serverConf: ftlog.warn('hotfix_match_quiz._sendReward NotActServerConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return oddsMap = { 'l':serverConf['leftOdds'], 'm':serverConf['middleOdds'], 'r':serverConf['rightOdds'], } odds = oddsMap.get(quizResult) gameId = int(serverConf['gameId']) intActId = int(serverConf['intActId']) chipAssetId = 'user:chip' #serverConf['chipAssetId'] ftlog.info('hotfix_match_quiz._sendReward sending... gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap) totalBets = {'l':0, 'm':0, 'r':0} totalReward = 0 needTotalReward = 0 userIds = _getActUsers(gameId, activityId) for userId in userIds: # class UserQuizStatus(object): # def __init__(self, userId): # self._userId = userId # self._betMap = {} # self._totalBet = 0 status = activity_match_quiz.loadUserQuizStatus(gameId, userId, activityId) if not status: ftlog.error('hotfix_match_quiz._sendReward NotUserStatus gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', None) status = UserQuizStatus(userId) betAmount = status.getBet(quizResult, 0) totalBets['l'] += status.getBet('l', 0) totalBets['m'] += status.getBet('m', 0) totalBets['r'] += status.getBet('r', 0) quizResultTitleMap = {'l':serverConf['leftTitle']+'获胜', 'm':'平局', 'r':serverConf['rightTitle']+'获胜'} if betAmount > 0: rewardCount = int(math.ceil(betAmount * odds)) needTotalReward += rewardCount addState = 2 if _setAlreadySentReward(gameId, activityId, userId): try: # 给用户发奖 addOk = user_remote.addAssets(gameId, userId, [{'itemId':chipAssetId, 'count':rewardCount}], 'ACTIVITY_CONSUME', intActId) msg = '恭喜您在%s活动%sVS%s场次押注%s金币猜中%s,赔率为%s,获得%s金币奖励。' % (actConf['name'], serverConf['leftTitle'], serverConf['rightTitle'], int(betAmount), quizResultTitleMap[quizResult], odds, rewardCount) pkmessage.sendPrivate(HALL_GAMEID, userId, 0, msg) except: ftlog.error('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'status=', status.toDict()) addOk = False addState = 1 if addOk else 0 if addOk: totalReward += rewardCount ftlog.info('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'addState=', addState, 'status=', status.toDict()) else: ftlog.info('hotfix_match_quiz._sendReward NotRewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', status.toDict()) ftlog.info('hotfix_match_quiz._sendReward sent gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'totalBets=', totalBets, 'totalReward=', totalReward, 'needTotalReward=', needTotalReward) return {'actId':activityId, 'intActId':intActId, 'chipAssetId':chipAssetId, 'quizResult':quizResult, 'totalBets':totalBets, 'totalReward':totalReward, 'odds':odds, 'oddsMap':oddsMap, 'needTotalReward':needTotalReward, }
def _sendReward(gameId, activityId, quizResult): if not quizResult in ('l', 'm', 'r'): ftlog.warn('hotfix_match_quiz._sendReward BadQuizResult gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return actConf = _getActivityConf() if not actConf: ftlog.warn('hotfix_match_quiz._sendReward NotActConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return serverConf = actConf.get('serverConf') if not serverConf: ftlog.warn('hotfix_match_quiz._sendReward NotActServerConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return oddsMap = { 'l': serverConf['leftOdds'], 'm': serverConf['middleOdds'], 'r': serverConf['rightOdds'], } odds = oddsMap.get(quizResult) gameId = int(serverConf['gameId']) intActId = int(serverConf['intActId']) chipAssetId = serverConf['chipAssetId'] ftlog.info('hotfix_match_quiz._sendReward sending... gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap) totalBet = 0 totalReward = 0 needTotalReward = 0 userIds = _getActUsers(gameId, activityId) for userId in userIds: # class UserQuizStatus(object): # def __init__(self, userId): # self._userId = userId # self._betMap = {} # self._totalBet = 0 status = activity_match_quiz.loadUserQuizStatus( gameId, userId, activityId) betAmount = status.getBet(quizResult, 0) totalBet += status.totalBet if betAmount > 0: rewardCount = betAmount * odds needTotalReward += rewardCount addState = 2 if _setAlreadySentReward(gameId, activityId, userId): try: # 给用户发奖 addOk = user_remote.addAssets(gameId, userId, [{ 'itemId': chipAssetId, 'count': rewardCount }], 'ACTIVITY_CONSUME', intActId) except: ftlog.error( 'hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'status=', status.toDict()) addOk = False addState = 1 if addOk else 0 if addOk: totalReward += rewardCount ftlog.info('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'addState=', addState, 'status=', status.toDict()) else: ftlog.info('hotfix_match_quiz._sendReward NotRewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', status.toDict()) ftlog.info('hotfix_match_quiz._sendReward sent gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'totalBet=', totalBet, 'totalReward=', totalReward, 'needTotalReward=', needTotalReward)
def _sendReward(gameId, activityId, quizResult): if not quizResult in ('l', 'm', 'r'): ftlog.warn('hotfix_match_quiz._sendReward BadQuizResult gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return actConf = _getActivityConf(activityId) if not actConf: ftlog.warn('hotfix_match_quiz._sendReward NotActConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return serverConf = actConf.get('server_config') if not serverConf: ftlog.warn('hotfix_match_quiz._sendReward NotActServerConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return oddsMap = { 'l': serverConf['leftOdds'], 'm': serverConf['middleOdds'], 'r': serverConf['rightOdds'], } odds = oddsMap.get(quizResult) gameId = int(serverConf['gameId']) intActId = int(serverConf['intActId']) chipAssetId = 'user:chip' # serverConf['chipAssetId'] ftlog.info('hotfix_match_quiz._sendReward sending... gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap) totalBets = {'l': 0, 'm': 0, 'r': 0} totalReward = 0 needTotalReward = 0 userIds = _getActUsers(gameId, activityId) for userId in userIds: # class UserQuizStatus(object): # def __init__(self, userId): # self._userId = userId # self._betMap = {} # self._totalBet = 0 status = activity_match_quiz.loadUserQuizStatus(gameId, userId, activityId) if not status: ftlog.error('hotfix_match_quiz._sendReward NotUserStatus gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', None) status = UserQuizStatus(userId) betAmount = status.getBet(quizResult, 0) totalBets['l'] += status.getBet('l', 0) totalBets['m'] += status.getBet('m', 0) totalBets['r'] += status.getBet('r', 0) quizResultTitleMap = {'l': serverConf['leftTitle'] + '获胜', 'm': '平局', 'r': serverConf['rightTitle'] + '获胜'} if betAmount > 0: rewardCount = int(betAmount * odds * 1000) needTotalReward += rewardCount addState = 2 if _setAlreadySentReward(gameId, activityId, userId): try: # 给用户发奖 addOk = user_remote.addAssets(gameId, userId, [{'itemId': chipAssetId, 'count': rewardCount}], 'ACTIVITY_CONSUME', intActId) msg = '恭喜您在欧洲杯竞猜活动%sVS%s场次押注%s钻石猜中%s,赔率为%s,获得%s金币奖励。' % (serverConf['leftTitle'], serverConf['rightTitle'], int(betAmount), quizResultTitleMap[quizResult], odds, rewardCount) pkmessage.sendPrivate(HALL_GAMEID, userId, 0, msg) except: ftlog.error('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'status=', status.toDict()) addOk = False addState = 1 if addOk else 0 if addOk: totalReward += rewardCount ftlog.info('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'addState=', addState, 'status=', status.toDict()) else: ftlog.info('hotfix_match_quiz._sendReward NotRewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', status.toDict()) ftlog.info('hotfix_match_quiz._sendReward sent gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'totalBets=', totalBets, 'totalReward=', totalReward, 'needTotalReward=', needTotalReward) return {'actId': activityId, 'intActId': intActId, 'chipAssetId': chipAssetId, 'quizResult': quizResult, 'totalBets': totalBets, 'totalReward': totalReward, 'odds': odds, 'oddsMap': oddsMap, 'needTotalReward': needTotalReward, }
def _sendReward(gameId, activityId, quizResult): if not quizResult in ('l', 'm', 'r'): ftlog.warn('hotfix_match_quiz._sendReward BadQuizResult gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return actConf = _getActivityConf() if not actConf: ftlog.warn('hotfix_match_quiz._sendReward NotActConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return serverConf = actConf.get('serverConf') if not serverConf: ftlog.warn('hotfix_match_quiz._sendReward NotActServerConf gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult) return oddsMap = { 'l': serverConf['leftOdds'], 'm': serverConf['middleOdds'], 'r': serverConf['rightOdds'], } odds = oddsMap.get(quizResult) gameId = int(serverConf['gameId']) intActId = int(serverConf['intActId']) chipAssetId = serverConf['chipAssetId'] ftlog.info('hotfix_match_quiz._sendReward sending... gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap) totalBet = 0 totalReward = 0 needTotalReward = 0 userIds = _getActUsers(gameId, activityId) for userId in userIds: # class UserQuizStatus(object): # def __init__(self, userId): # self._userId = userId # self._betMap = {} # self._totalBet = 0 status = activity_match_quiz.loadUserQuizStatus(gameId, userId, activityId) betAmount = status.getBet(quizResult, 0) totalBet += status.totalBet if betAmount > 0: rewardCount = betAmount * odds needTotalReward += rewardCount addState = 2 if _setAlreadySentReward(gameId, activityId, userId): try: # 给用户发奖 addOk = user_remote.addAssets(gameId, userId, [{'itemId': chipAssetId, 'count': rewardCount}], 'ACTIVITY_CONSUME', intActId) except: ftlog.error('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'status=', status.toDict()) addOk = False addState = 1 if addOk else 0 if addOk: totalReward += rewardCount ftlog.info('hotfix_match_quiz._sendReward RewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'rewardCount=', rewardCount, 'addState=', addState, 'status=', status.toDict()) else: ftlog.info('hotfix_match_quiz._sendReward NotRewardUser gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'userId=', userId, 'status=', status.toDict()) ftlog.info('hotfix_match_quiz._sendReward sent gameId=', gameId, 'activityId=', activityId, 'quizResult=', quizResult, 'intActId=', intActId, 'chipAssetId=', chipAssetId, 'odds=', odds, 'oddsMap=', oddsMap, 'totalBet=', totalBet, 'totalReward=', totalReward, 'needTotalReward=', needTotalReward)