Пример #1
0
 def _doInviteeInfo(cls, userId, gameId, clientId):
     mo = MsgPack()
     mo.setCmd('hall_invite')
     mo.setResult('action', 'invitee_info')
     status = hall_invite.loadUserInviteStatus(userId)
     mo.setResult('invitees', cls._encodeInvitees(status, clientId))
     return mo
Пример #2
0
 def _doGainInviteeReward(cls, userId, gameId, clientId, invitee):
     mo = MsgPack()
     mo.setCmd('hall_invite')
     mo.setResult('action', 'gain_invitee_reward')
     status = hall_invite.loadUserInviteStatus(userId)
     received = hall_invite.receiveInviteeReward(status, invitee)
     mo.setResult('reward', {'itemId': 'user:coupon', 'count': received})
     return mo
Пример #3
0
def addInvitee(userId, invitee):
    try:
        if not userdata.checkUserData(userId):
            raise TYBizConfException(-1, 'ID不存在')

        status = hall_invite.loadUserInviteStatus(userId)
        if not status.findInvitee(invitee):
            hall_invite.addInvitee(status, invitee)
        return 0, None
    except TYBizException, e:
        return e.errorCode, e.message
Пример #4
0
def sendInviteeReward(userId, invitee, rewardCount):
    if ftlog.is_debug():
        ftlog.debug('hall_invite_remote.sendInviteeReward', 'userId=', userId,
                    'invitee=', invitee, 'rewardCount=', rewardCount)
    try:
        if not userdata.checkUserData(userId):
            raise TYBizConfException(-1, 'ID不存在')

        status = hall_invite.loadUserInviteStatus(userId)
        if status.findInvitee(invitee):
            hall_invite.sendInviteeReward(status, invitee, rewardCount,
                                          pktimestamp.getCurrentTimestamp())
        return 0, None
    except TYBizException, e:
        return e.errorCode, e.message
Пример #5
0
    def _doBindInviter(cls, userId, gameId, clientId, inviter):
        mo = MsgPack()
        mo.setCmd('hall_invite')
        mo.setResult('action', 'bind_inviter')
        mo.setResult('gameId', gameId)
        mo.setResult('userId', userId)

        try:
            status = hall_invite.loadUserInviteStatus(userId)
            assetList = hall_invite.setInviter(status, inviter)
            mo.setResult('inviter', inviter)
            if assetList:
                TodoTaskHelper.sendTodoTask(
                    HALL_GAMEID, userId,
                    TodoTaskShowRewards(cls.buildRewards(assetList)))
        except TYBizException, e:
            mo.setResult('ec', e.errorCode)
            mo.setResult('info', e.message)
Пример #6
0
def getUserInfo(userId, gameId, clientId):
    '''
    取得用户的基本账户的信息
    '''
    ukeys = [
        'email', 'pdevid', 'mdevid', 'isbind', 'snsId', 'name', 'source',
        'diamond', 'address', 'sex', 'state', 'payCount', 'snsinfo', 'vip',
        'dayang', 'idcardno', 'phonenumber', 'truename', 'detect_phonenumber',
        'lang', 'country', "signature", "set_name_sum", "coupon",
        "exchangedCoupon", 'purl', 'beauty', 'charm', 'password', 'bindMobile',
        'chip_exp', 'chip_level', 'myCardNo', 'myRealName'
    ]

    udataDb = userdata.getAttrs(userId, ukeys)

    udata = dict(zip(ukeys, udataDb))
    udata['coin'] = udata['diamond']  # 数据补丁: 再把diamond转换到coin返回, 老版本用的是coin
    udata['chip'] = userchip.getChip(userId)
    myCardNo = udata.get('myCardNo')
    myRealName = udata.get('myRealName')
    udata['myCardNo'] = str(myCardNo) if myCardNo else ''
    udata['myRealName'] = str(myRealName) if myRealName else ''

    # 头像相关
    purl, isbeauty = getUserHeadUrl(userId, clientId, udata['purl'],
                                    udata['beauty'])
    udata['purl'] = purl
    udata['isBeauty'] = isbeauty

    # vip信息
    udata['vipInfo'] = hallvip.userVipSystem.getVipInfo(userId)

    # 等级系统 2017-05-25增加
    udata['chip_exp'] = udata.get('chip_exp') or 0
    udata['chip_level'] = udata.get('chip_level') or 0
    chip_level = udata['chip_level']
    try:
        maxlevel = configure.getGameJson(HALL_ID,
                                         'chiplevel')['max']['maxlevel']
        maxexp = configure.getGameJson(HALL_ID, 'chiplevel')['max']['maxexp']
    except:
        maxlevel = 0
        maxexp = 0

    try:
        if chip_level == maxlevel:
            next_level_exp = maxexp
        else:
            chip_level_ = configure.getGameJson(HALL_ID, 'chiplevel')['level']
            next_level = str(chip_level + 1)
            next_level_exp = chip_level_[next_level]
        udata['next_level_exp'] = next_level_exp
    except:
        udata['next_level_exp'] = 0

    # 江湖救急次数
    udata['assistance'] = {
        'count': hallvip.userVipSystem.getAssistanceCount(gameId, userId),
        'limit': hallvip.vipSystem.getAssistanceChipUpperLimit()
    }
    # 推荐人
    from hall.entity import hall_invite
    inviteStatus = hall_invite.loadUserInviteStatus(userId)
    if inviteStatus.inviter >= 0:
        udata['inviter'] = inviteStatus.inviter

    assetRateMap = {}
    for assetKind in hallitem.itemSystem.getAllRateAssetKind():
        assetRateMap[assetKind.kindId] = assetKind.displayRate
    udata['assetRate'] = assetRateMap
    userdata.updateUserGameDataAuthorTime(userId, gameId)
    return udata