Пример #1
0
    def post(self):
        msgReq = msg_pb2.Msg()
        msgReq.ParseFromString(self.request.body)

        msgResp = msg_pb2.Msg()
        msgResp.type = msg_pb2.EnumMsg.Value('welfareresponse')
        user = Dal_User().getUser(msgReq.request.welfareRequest.nUserID)
        if user == None:
            msgResp.response.welfareResponse.nErrorCode = config_error['userinvaild']
        elif  user.welfaretime and Utils().dbTime2Number(user.welfaretime) >= Utils().LastDayEndTime():
            msgResp.response.welfareResponse.nErrorCode = config_error['luckytimeerror']
        elif user.gold >=  configs_default['welfare']:
            msgResp.response.welfareResponse.nErrorCode = config_error['welfareerror']
        else:
            msgResp.response.welfareResponse.nErrorCode = config_error['success']

            #发福利逻辑
            user.gold = user.gold + configs_default['welfare']

            user.welfaretime = Utils().dbTimeCreate()
            msgResp.response.welfareResponse.newAssets.nUserID = user.id
            msgResp.response.welfareResponse.newAssets.nGold = user.gold
            kwargs = {"gold": user.gold,"welfaretime":user.welfaretime}
            Dal_User().uqdateUser(user.id, **kwargs)


        dataR = msgResp.SerializeToString()
        self.write(dataR)
Пример #2
0
    def post(self):
        msgReq = msg_pb2.Msg()
        msgReq.ParseFromString(self.request.body)

        msgResp = msg_pb2.Msg()
        msgResp.type = msg_pb2.EnumMsg.Value('luckyresponse')
        user = Dal_User().getUser(msgReq.request.luckyRequest.nUserID)
        if user == None:
            msgResp.response.luckyResponse.nErrorCode = config_error[
                'userinvaild']
        elif user.luckytime and Utils().dbTime2Number(
                user.luckytime) >= Utils().LastDayEndTime():
            msgResp.response.luckyResponse.nErrorCode = config_error[
                'luckytimeerror']
        else:
            msgResp.response.luckyResponse.nErrorCode = config_error['success']

            #抽奖逻辑
            randNum = Utils().random_index(configs_default['luckysRate'])
            msgResp.response.luckyResponse.nLucky = randNum
            luckGood = configs_default['luckys'][randNum]

            if luckGood['type'] == configs_default['goodType']['money']:
                user.money = user.money + luckGood['extra']
            elif luckGood['type'] == configs_default['goodType']['gold']:
                user.gold = user.gold + luckGood['extra']

            user.luckytime = Utils().dbTimeCreate()
            msgResp.response.luckyResponse.newAssets.nUserID = user.id
            msgResp.response.luckyResponse.newAssets.nGold = user.gold
            msgResp.response.luckyResponse.newAssets.nMoney = user.money
            kwargs = {
                "gold": user.gold,
                "money": user.money,
                "luckytime": user.luckytime
            }
            Dal_User().uqdateUser(user.id, **kwargs)

            # 邮件记录
            mail = Mail()
            mail.uid = user.id
            mail.type = configs_default['mail']['type']['luckyaward']
            mail.content = str(luckGood['type']) + ':' + str(luckGood['extra'])
            mail.time = Utils().dbTimeCreate()
            Dal_Mail().addMail(mail)
            Dal_User().addMails(mail.uid, mail.id)

        dataR = msgResp.SerializeToString()
        self.write(dataR)
Пример #3
0
    def post(self):
        msgReq = msg_pb2.Msg()
        msgReq.ParseFromString(self.request.body)

        msgResp = msg_pb2.Msg()
        msgResp.type = msg_pb2.EnumMsg.Value('rankawardresponse')
        user = Dal_User().getUser(msgReq.request.rankAwardRequest.nUserID)
        if user == None:
            msgResp.response.rankAwardResponse.nErrorCode = config_error[
                'userinvaild']
        elif Dal_User().getRankedFlag(
                user.id, msgReq.request.rankAwardRequest.nRankType):
            msgResp.response.rankAwardResponse.nErrorCode = config_error[
                'rankawarderror']
        else:
            msgResp.response.rankAwardResponse.nErrorCode = config_error[
                'success']
            #这里取排名
            rankOrder = Dal_Record().getRankOrder(
                user.id, msgReq.request.rankAwardRequest.nRankType)
            rankAwardConfig = Dal_Record().getRankAward(
                rankOrder, msgReq.request.rankAwardRequest.nRankType)
            if rankAwardConfig == None:
                msgResp.response.rankAwardResponse.nErrorCode = config_error[
                    'rankawarderror']
            else:
                if rankAwardConfig['aType'] == configs_default['goodType'][
                        'money']:
                    user.money = user.money + rankAwardConfig['award']
                elif rankAwardConfig['aType'] == configs_default['goodType'][
                        'gold']:
                    user.gold = user.gold + rankAwardConfig['award']

                msgResp.response.rankAwardResponse.newAssets.nUserID = user.id
                msgResp.response.rankAwardResponse.newAssets.nGold = user.gold
                msgResp.response.rankAwardResponse.newAssets.nMoney = user.money
                kwargs = {"gold": user.gold, "money": user.money}
                Dal_User().uqdateUser(user.id, **kwargs)

                Dal_User().updateRankFlag(
                    user.id, msgReq.request.rankAwardRequest.nRankType)

        dataR = msgResp.SerializeToString()
        self.write(dataR)
Пример #4
0
    def post(self):
        Aid = self.getData("Aid")
        post_data = {}
        for key in self.request.arguments:
            post_data[key] = self.get_arguments(key)[0]

        #判断是否有超级管理员权限
        response = self.IsSuperadmin(post_data)
        if response != None:
            respon_json = json.dumps(response)
            self.write(respon_json)
            return

        uid = int(post_data['uid'])
        money = int(post_data['money'])
        gold = int(post_data['gold'])

        user = Dal_User().getUser(uid)
        if user == None:
            respon = {'errorcode': config_error['userinvaid']}
        else:
            respon = {'errorcode': config_error['success']}
            user.money = user.money + money
            user.gold = user.gold + gold
            # 更新用户信息
            update_data = {'money': user.money, 'gold': user.gold}
            Dal_User().uqdateUser(user.id, **update_data)

            # 充值
            re = Recharge(id=None,
                          time=Utils().dbTimeCreate(),
                          money=money,
                          uid=uid,
                          good='admin',
                          count=1,
                          fromc=2)
            Dal_Recharge().addRecharge(re)
            #     更新操作
            operate = configs_default['adminOperate']['recharge']
            Dal_Admin().addOperate(Aid, operate)

        respon_json = json.dumps(respon)
        self.write(respon_json)
Пример #5
0
    def post(self):
        msgReq = msg_pb2.Msg()
        msgReq.ParseFromString(self.request.body)

        msgResp = msg_pb2.Msg()
        msgResp.type = msg_pb2.EnumMsg.Value('buyresponse')
        user = Dal_User().getUser(msgReq.request.buyRequest.nUserID)
        if user == None:
            msgResp.response.buyResponse.nErrorCode = config_error['userinvaild']
        else:
              msgResp.response.buyResponse.nErrorCode = config_error['success']
              totalG = 0
              totalM = 0
              for i,v in enumerate(msgReq.request.buyRequest.goods):
                   gID = v.nID
                   gConfig = configs_default['goods'][str(gID)]
                   gType = gConfig['type']
                   #这里只能用钻石购买金币
                   if gType != configs_default['goodType']['gold']:continue
                   gMoney = gConfig['money']#需要花费的钻石数量
                   gExtra = gConfig['extra']#能兑换的金币数量
                   totalG = totalG + gExtra
                   totalM = totalM + gMoney


              if user.money < totalM:
                  msgResp.response.buyResponse.nErrorCode = config_error['moneyerror']
              else:
                  user.gold = user.gold  + totalG
                  user.money = user.money  - totalM
                  msgResp.response.buyResponse.newAssets.nUserID = user.id
                  msgResp.response.buyResponse.newAssets.nGold = user.gold
                  msgResp.response.buyResponse.newAssets.nMoney = user.money
                  kwargs = {"gold": user.gold,"money": user.money}
                  Dal_User().uqdateUser(user.id,**kwargs)


        dataR = msgResp.SerializeToString()
        self.write(dataR)
Пример #6
0
    def onAppleBuy(self,uID,gID,nMoney,nCount):
        # 处理回调结果
        user = Dal_User().getUser(uID)
        goodConfig = configs_default['goods'][gID]
        if goodConfig['type'] == configs_default['goodType']['money']:
            user.money = user.money + goodConfig['extra']
            user.totalmoney = user.totalmoney + goodConfig['extra']
            user.totalrmb = user.totalrmb + goodConfig['rmb']

            # 检测代理充值奖励
            delegater = Dal_Delegate().getDelegate(user.id)
            dLv = str(delegater.slevel)
            parentDelegater = Dal_Delegate().getDelegate(delegater.parent)
            if parentDelegater:  # 对上级代理做奖励
                parentUser = Dal_User().getUser(parentDelegater.gid)
                awardPercent = configs_default['delegate']['payAwards'][dLv]
                awardPay = math.ceil(goodConfig['extra'] * awardPercent)
                parentUser.money = parentUser.money + awardPay
                parentDelegater.awards = parentDelegater.awards + awardPay

                # 给上级代理奖励的钻石
                kwargs = {"money": parentUser.money}
                Dal_User().uqdateUser(parentUser.id, **kwargs)

                # 上级代理获得的奖励总数
                kwargs = {"awards": parentDelegater.awards}
                Dal_Delegate().uqdateDelegate(parentDelegater.id, **kwargs)

        elif goodConfig['type'] == configs_default['goodType']['gold']:
            user.gold = user.gold + goodConfig['extra']

        kwargs = {"gold": user.gold, "money": user.money, "totalmoney": user.totalmoney, "totalrmb": user.totalrmb}
        Dal_User().uqdateUser(user.id, **kwargs)

        # 充值
        re = Recharge(id=None, time=Utils().dbTimeCreate(), money=nMoney,
                      uid=uID, good=gID, count=nCount,fromc=1)
        Dal_Recharge().addRecharge(re)
Пример #7
0
    def post(self):

        post_data = json.loads(self.request.body)
        if (post_data["token"] != "FAK^&*#$BHI*&(*#@NFSADF"):
            return
        uid = int(post_data['uid'])
        money = int(post_data['money'])
        gold = 0
        user = Dal_User().getUser(uid)
        if user == None:
            respon = {'errorcode': config_error['userinvaid']}
        else:

            user.money = user.money + money
            user.gold = user.gold + gold
            # 更新用户信息
            update_data = {'money': user.money, 'gold': user.gold}
            Dal_User().uqdateUser(user.id, **update_data)

            # 充值
            re = Recharge(id=None,
                          time=Utils().dbTimeCreate(),
                          money=money,
                          uid=uid,
                          good='admin',
                          count=1,
                          fromc=2)
            Dal_Recharge().addRecharge(re)
            respon = {
                'errorcode': config_error['success'],
                'money': user.money,
                "gold": user.gold
            }

        respon_json = json.dumps(respon)
        self.write(respon_json)
Пример #8
0
    def post(self):
        root = ElementTree.fromstring(self.request.body)
        node_result_code = root.find('result_code')
        node_return_code = root.find('return_code')
        attach = root.find('attach')
        totle_fee = root.find('total_fee')
        time_end = root.find('time_end')

        userData = str(attach.text)
        arrData = userData.split(';')
        UID = arrData[0]
        GID = arrData[1]
        Count = arrData[2]
        Money = arrData[3]

        if node_result_code.text == 'SUCCESS' and node_return_code.text == 'SUCCESS':
            #给支付返回结果
            # returnMsg = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"#self.createReturnXML()

            self.write("SUCCESS")

            #避免重复通知
            if Dal_CZTime().getCZTime(time_end.text) != None: return

            # 记录支付通知结果时间 避免重复通知
            czT = CZTime(time=time_end.text)
            Dal_CZTime().addCZTime(czT)

            #处理回调结果
            user = Dal_User().getUser(UID)
            goodConfig = configs_default['goods'][GID]
            if goodConfig['type'] == configs_default['goodType']['money']:
                user.money = user.money + goodConfig['extra']
                user.totalmoney = user.totalmoney + goodConfig['extra']
                user.totalrmb = user.totalrmb + goodConfig['rmb']

                # 检测代理充值奖励
                delegater = Dal_Delegate().getDelegate(user.id)
                dLv = str(delegater.slevel)  #原始等级
                parentDelegater = Dal_Delegate().getDelegate(delegater.parent)
                if parentDelegater:  # 对上级代理做奖励
                    parentUser = Dal_User().getUser(parentDelegater.id)
                    awardPercent = configs_default['delegate']['payAwards'][
                        dLv]
                    awardPay = math.ceil(goodConfig['extra'] * awardPercent)
                    parentUser.money = parentUser.money + awardPay
                    parentDelegater.awards = parentDelegater.awards + awardPay

                    #给上级代理奖励的钻石
                    kwargs = {"money": parentUser.money}
                    Dal_User().uqdateUser(parentUser.id, **kwargs)

                    #上级代理获得的奖励总数
                    kwargs = {"awards": parentDelegater.awards}
                    Dal_Delegate().uqdateDelegate(parentDelegater.id, **kwargs)

                    # 邮件记录
                    mail = Mail()
                    mail.uid = parentDelegater.id
                    mail.type = configs_default['mail']['type'][
                        'deleparentaward']
                    mail.content = str(awardPay)
                    mail.time = Utils().dbTimeCreate()
                    Dal_Mail().addMail(mail)
                    Dal_User().addMails(mail.uid, mail.id)

            elif goodConfig['type'] == configs_default['goodType']['gold']:
                user.gold = user.gold + goodConfig['extra']

            kwargs = {
                "gold": user.gold,
                "money": user.money,
                "totalmoney": user.totalmoney,
                "totalrmb": user.totalrmb
            }
            Dal_User().uqdateUser(user.id, **kwargs)

            # 充值
            re = Recharge(id=None,
                          time=Utils().dbTimeCreate(),
                          money=Money,
                          uid=UID,
                          good=GID,
                          count=Count,
                          fromc=0)
            Dal_Recharge().addRecharge(re)