Exemple #1
0
def handleHttp(dict_param: dict):
    """
    后台添加新闻公告系统消息
    """
    objRsp = cResp()
    strAccountId = dict_param.get('accountId')
    iMsgType = int(dict_param.get("type", 0))
    strMsgTitle = dict_param.get("title", "")
    strMsgDetail = dict_param.get("detail", "")
    strMsgId = dict_param.get("msgId", "")
    if not all([iMsgType, strMsgTitle, strMsgDetail]):
        raise exceptionLogic(errorLogic.client_param_invalid)

    if iMsgType == getMsgType.getNoticeType:

        iBroadcast = int(dict_param.get("broadcast", 0))

        objNewMsg = addMsgInfo(strMsgTitle, strMsgDetail, iMsgType,
                               strAccountId, strMsgId)
        objNewMsg.iBroadcast = iBroadcast
        yield from classDataBaseMgr.getInstance().addMsg(
            iMsgType, objNewMsg, strMsgId)
        # 构造回包
        objRsp.data = cData(objNewMsg.strMsgId, objNewMsg.strMsgTitle,
                            objNewMsg.strMsgDetail, objNewMsg.iMsgTime,
                            iMsgType)
        objRsp.data.iBroadcast = iBroadcast
        yield from asyncio.sleep(1)
        return classJsonDump.dumps(objRsp)

    elif iMsgType == getMsgType.getNewsType:
        objNewMsg = addMsgInfo(strMsgTitle, strMsgDetail, iMsgType,
                               strAccountId, strMsgId)
        yield from classDataBaseMgr.getInstance().addMsg(
            iMsgType, objNewMsg, strMsgId)
        # 构造回包
        objRsp.data = cData(objNewMsg.strMsgId, objNewMsg.strMsgTitle,
                            objNewMsg.strMsgDetail, objNewMsg.iMsgTime,
                            iMsgType)

        yield from asyncio.sleep(1)
        fileName = __name__
        nameList = fileName.split('.')
        methodName = nameList.pop()
        # 日志
        dictActionBill = {
            'billType': 'adminActionBill',
            'accountId': dict_param.get('accountId', ''),
            'action': "发送新闻公告",
            'actionTime': timeHelp.getNow(),
            'actionMethod': methodName,
            'actionDetail': "发送新闻公告Id:{},标题:{}".format(strMsgId, strMsgTitle),
            'actionIp': dict_param.get('srcIp', ''),
        }
        logging.getLogger('bill').info(json.dumps(dictActionBill))
        return classJsonDump.dumps(objRsp)

    else:
        logging.error("unknown msg type [{}]".format(iMsgType))
        raise exceptionLogic(errorLogic.client_param_invalid)
Exemple #2
0
def handleHttp(request: dict):
    """获取域名"""
    objRep = cResp()

    try:
        sql = "select * from dj_domain"
        result = yield from classSqlBaseMgr.getInstance()._exeCute(sql)
        if result.rowcount <= 0:
            return classJsonDump.dumps(objRep)
        else:
            pcDomainName = []
            appDomainName = []
            for var_row in result:
                if var_row.domainType == 'pc':
                    domainDict = {}
                    domainDict['domainId'] = var_row.domainId
                    domainDict['domainName'] = var_row.domainName
                    pcDomainName.append(domainDict)
                elif var_row.domainType == 'app':
                    domainDict = {}
                    domainDict['domainId'] = var_row.domainId
                    domainDict['domainName'] = var_row.domainName
                    appDomainName.append(domainDict)
            objRep.data = cData()
            objRep.data.pc = pcDomainName
            objRep.data.app = appDomainName
            return classJsonDump.dumps(objRep)
    except Exception as e:
        logging.exception(e)
        raise e
Exemple #3
0
def handleHttp(dict_param: dict):
    """
    后台查询历史系统消息
    """
    objRsp = cResp()

    pn = dict_param.get("pn", 1)
    if not checkIsInt(pn):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)

    conn = classSqlBaseMgr.getInstance()
    # 去重获取msgId
    sql = "select distinct msgId from dj_all_msg WHERE type=3 "
    listRest = yield from conn._exeCute(sql)
    msgIds = yield from listRest.fetchall()
    if len(msgIds) == 0:
        return classJsonDump.dumps(objRsp)
    else:
        ids = []
        for x in msgIds:
            ids.append(x[0])

    # 根据id获取消息
    for x in msgIds:
        sql = "select msgId,msgTime,msgDetail,msgTitle,sendFrom,sendTo from dj_all_msg WHERE msgId='{}' ".format(
            x[0])
        listRest = yield from conn._exeCute(sql)
        msgs = yield from listRest.fetchall()
        if len(msgs) == 0:
            return classJsonDump.dumps(objRsp)

        if len(msgs) > 5:
            # 全体发送
            data = cData()
            data.msgId = msgs[0]['msgId']
            data.msgTime = msgs[0]['msgTime']
            data.detail = msgs[0]['msgDetail']
            data.title = msgs[0]['msgTitle']
            data.sendFrom = msgs[0]['sendFrom']
            data.receiver = '全体'
            objRsp.data.append(data)
            continue
        else:
            for x in msgs:
                data = cData()
                data.msgId = x['msgId']
                data.msgTime = x['msgTime']
                data.detail = x['msgDetail']
                data.title = x['msgTitle']
                data.receiver = x['sendTo']
                data.sendFrom = x['sendFrom']
                objRsp.data.append(data)
    objRsp.count = len(objRsp.data)
    objRsp.data = sorted(objRsp.data,
                         key=lambda data: data.msgTime,
                         reverse=True)
    objRsp.data = objRsp.data[(pn - 1) * MSG_PAGE_COUNT:pn * MSG_PAGE_COUNT:]

    return classJsonDump.dumps(objRsp)
Exemple #4
0
def handleHttp(dict_param: dict):
    """绑定手机"""
    objRsp = cResp()

    strAccountId = dict_param.get("accountId", "")
    objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
    ).getPlayerDataByLock(strAccountId)
    if objPlayerData.strPhone:
        # 构造回包
        objRsp.data = cData()
        objRsp.data.phone = objPlayerData.strPhone
        return classJsonDump.dumps(objRsp)
    else:
        sCode = str(dict_param.get("iCode", ""))
        strPhone = dict_param.get("phoneNum", "")
        if not all([sCode, strPhone]):
            raise exceptionLogic(errorLogic.client_param_invalid)
        iCode = yield from classDataBaseMgr.getInstance().getPhoneVerify(
            strPhone)
        if not iCode:
            raise exceptionLogic(errorLogic.verify_code_expired)
        if iCode != sCode:
            raise exceptionLogic(errorLogic.verify_code_not_valid)
        else:
            yield from classDataBaseMgr.getInstance().delPhoneVerify(strPhone)
            objPlayerData.strPhone = strPhone
            yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
                objPlayerData, objLock)
            yield from classDataBaseMgr.getInstance().setPhoneAccountMapping(
                strPhone, strAccountId)

        # 构造回包
        objRsp.data = cData()
        objRsp.data.phone = strPhone
        return classJsonDump.dumps(objRsp)
Exemple #5
0
def handleHttp(dict_param: dict):
    """代理申请查询"""
    objRsp = cResp()

    startTime = dict_param.get("startTime", 0)
    endTime = dict_param.get("endTime", 0)

    if not all([startTime,endTime]):
        sql = "select * from dj_agent_apply"
        params = []
    else:
        sql = "select * from dj_agent_apply where applyTime between %s and %s"
        params = [startTime,endTime]
    try:
        with (yield from classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
            result = yield from conn.execute(sql,params)
            if result.rowcount <= 0:
                return classJsonDump.dumps(objRsp)
            else:
                for var_row in result:
                    applyInfo = {}
                    applyInfo['agentId'] = var_row.agentId
                    applyInfo['time'] = var_row.applyTime
                    applyInfo['qq'] = var_row.qq
                    applyInfo['website'] = var_row.website
                    applyInfo['introduction'] = var_row.introduction
                    applyInfo['status'] = var_row.status
                    objRsp.data.append(applyInfo)
                return classJsonDump.dumps(objRsp)
    except Exception as e:
        logging.error(repr(e))
        raise e
Exemple #6
0
def handleHttp(request: dict):
    """获取推广素材"""

    objRep = cResp()

    try:
        sql = "select * from dj_material order by update_time desc"
        result = yield from classSqlBaseMgr.getInstance()._exeCute(sql)
        if result.rowcount <= 0:
            return classJsonDump.dumps(objRep)
        else:
            for var in result:
                materialData = {}
                materialData['imageId'] = var.imageId
                materialData['image_url'] = var.image_url
                materialData['imageSize'] = var.imageSize
                objRep.data.append(materialData)
        fileName = __name__
        nameList = fileName.split('.')
        methodName = nameList.pop()
        # 日志
        dictActionBill = {
            'billType': 'adminActionBill',
            'accountId': request.get('accountId', ''),
            'action': "获取推广素材",
            'actionTime': timeHelp.getNow(),
            'actionMethod': methodName,
            'actionDetail': "获取推广素材",
            'actionIp': request.get('srcIp', ''),
        }
        logging.getLogger('bill').info(json.dumps(dictActionBill))
        return classJsonDump.dumps(objRep)
    except Exception as e:
        logging.exception(e)
        raise exceptionLogic(errorLogic.db_error)
Exemple #7
0
def handleHttp(dict_param: dict):
    """
    获取指定消息
    """
    objRsp = cResp()

    strMsgId = dict_param.get("msgId", "")
    iType = dict_param.get("type", 0)
    if not strMsgId:
        raise exceptionLogic(errorLogic.client_param_invalid)

    MsgData = yield from classDataBaseMgr.getInstance().getOneMsg(iType, strMsgId)

    if MsgData is None:
        return classJsonDump.dumps(objRsp)
    # 构造回包
    objRsp.data = cData()
    objRsp.data.Msg = MsgData
    fileName = __name__
    nameList = fileName.split('.')
    methodName = nameList.pop()
    # 日志
    dictActionBill = {
        'billType': 'adminActionBill',
        'accountId': dict_param.get('accountId', ''),
        'action': "获取消息",
        'actionTime': getNow(),
        'actionMethod': methodName,
        'actionDetail': "获取消息Id:{}".format(strMsgId),
        'actionIp': dict_param.get('srcIp', ''),
    }
    logging.getLogger('bill').info(json.dumps(dictActionBill))
    return classJsonDump.dumps(objRsp)
Exemple #8
0
def handleHttp(dict_param: dict):
    """
    获取维护状态
    :param dict_param: json数据
    :return:
    """
    objRsp = cResp()
    objRsp.data = cData()

    platform = dict_param.get('platform', 1)
    if not platform:
        raise exceptionLogic(errorLogic.client_param_invalid)
    try:
        with (yield from classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
            sql = "select start_time,end_time,repairFlag from dj_repair where repairFlag=1 and platform=%s"
            result = yield from conn.execute(sql, [platform])
            if result.rowcount <= 0:
                return classJsonDump.dumps(objRsp)
            else:
                for var_row in result:
                    start_time = var_row.start_time
                    end_time = var_row.end_time
                    repairFlag = var_row.repairFlag
                    surplus_time = end_time - timeHelp.getNow()
                    if (surplus_time < 0) or (start_time > timeHelp.getNow()):
                        surplus_time = 0
                        repairFlag = 0
                    objRsp.data.surplus_time = surplus_time
                    objRsp.data.repairFlag = repairFlag
                return classJsonDump.dumps(objRsp)
    except Exception as e:
        logging.exception(e)
Exemple #9
0
def handleHttp(request: dict):
    # 更新轮播图信息
    bannerId = request.get('bannerId')
    title = request.get('title', '')
    link_url = request.get('link_url', '')
    bytesBase64Png = request.get("base64Png", "")

    if not bannerId:
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)
    if bytesBase64Png:
        bannerName = hashlib.md5(bytesBase64Png.encode()).hexdigest()
        imageData = base64.b64decode(bytesBase64Png[22:])
        dirPrefix = "banner/"
        image_url = "http://probet-avator.oss-us-west-1.aliyuncs.com/{}{}.png".format(dirPrefix, bannerName)
        uploadDataFileToOss(imageData, dirPrefix, bannerName + ".png")
        sql = "update dj_banner set title='{}',link_url='{}',image_url='{}' WHERE id={} ".format(title, link_url,image_url, bannerId)
    else:
        sql = "update dj_banner set title='{}',link_url='{}' WHERE id={} ".format(title, link_url, bannerId)

    conn=classSqlBaseMgr.getInstance()
    try:
        yield from conn._exeCuteCommit(sql)

        sql="select * from dj_banner"
        listRest=yield from conn._exeCute(sql)
        banners=yield from listRest.fetchall()
        objRsp=cResp()
        if len(banners) == 0:
            return classJsonDump.dumps(objRsp)
        else:
            for var_row in banners:
                dataDict = cData()
                dataDict.index = var_row['index']
                dataDict.title = var_row['title']
                dataDict.image_url = var_row['image_url']
                dataDict.link_url = var_row['link_url']
                dataDict.update_time = var_row['update_time']
                dataDict.addAccount = var_row['addAccount']
                dataDict.id = var_row['id']
                objRsp.data.append(dataDict)

        fileName = __name__
        nameList = fileName.split('.')
        methodName = nameList.pop()
        # 日志
        dictActionBill = {
            'billType': 'adminActionBill',
            'accountId': request.get('accountId', ''),
            'action': "修改轮播图信息",
            'actionTime': timeHelp.getNow(),
            'actionMethod': methodName,
            'actionDetail': "修改轮播图信息Id:{}".format(bannerId),
            'actionIp': request.get('srcIp', ''),
        }
        logging.getLogger('bill').info(json.dumps(dictActionBill))
        return classJsonDump.dumps(objRsp)
    except Exception as e:
        logging.exception(e)
        raise exceptionLogic(errorLogic.db_error)
Exemple #10
0
def handleHttp(request: dict):
    """新增推广素材"""
    objRep = cResp()

    bytesBase64Png = request.get("base64Png", "")
    imageSize = request.get("imageSize", "")

    if not all([bytesBase64Png, imageSize]):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)

    materialName = hashlib.md5(bytesBase64Png.encode()).hexdigest()
    imageData = base64.b64decode(bytesBase64Png[22:])
    dirPrefix = "material/"
    uploadDataFileToOss(imageData, dirPrefix, materialName + ".png")
    image_url = "http://probet-avator.oss-us-west-1.aliyuncs.com/{}{}.png".format(
        dirPrefix, materialName)
    imageId = str(uuid.uuid1())
    try:
        sql = tb_material.insert().values(imageId=imageId,
                                          image_url=image_url,
                                          imageSize=imageSize,
                                          create_time=timeHelp.getNow(),
                                          update_time=timeHelp.getNow())
        yield from classSqlBaseMgr.getInstance()._exeCuteCommit(sql)

        sql = "select * from dj_material order by update_time desc"
        result = yield from classSqlBaseMgr.getInstance()._exeCute(sql)
        if result.rowcount <= 0:
            return classJsonDump.dumps(objRep)
        else:
            for var in result:
                materialData = {}
                materialData['imageId'] = var.imageId
                materialData['image_url'] = var.image_url
                materialData['imageSize'] = var.imageSize
                objRep.data.append(materialData)
        fileName = __name__
        nameList = fileName.split('.')
        methodName = nameList.pop()
        # 日志
        dictActionBill = {
            'billType': 'adminActionBill',
            'accountId': request.get('accountId', ''),
            'action': "新增推广素材",
            'actionTime': timeHelp.getNow(),
            'actionMethod': methodName,
            'actionDetail': "新增推广素材imageId:{}".format(imageId),
            'actionIp': request.get('srcIp', ''),
        }
        logging.getLogger('bill').info(json.dumps(dictActionBill))
        return classJsonDump.dumps(objRep)

    except Exception as e:
        logging.exception(e)
        raise exceptionLogic(errorLogic.db_error)
Exemple #11
0
def handleHttp(request: dict):
    """编辑域名"""
    objRep = cResp()

    domainName = request.get('domainName', '')
    domainId = request.get('domainId', '')

    if not all([domainName, domainId]):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)
    try:
        sql = "update dj_domain set domainName='{}' where domainId='{}' ".format(
            domainName, domainId)
        yield from classSqlBaseMgr.getInstance()._exeCuteCommit(sql)

        sql = "select * from dj_domain"
        result = yield from classSqlBaseMgr.getInstance()._exeCute(sql)
        if result.rowcount <= 0:
            return classJsonDump.dumps(objRep)
        else:
            pcDomainName = []
            appDomainName = []
            for var_row in result:
                if var_row.domainType == 'pc':
                    domainDict = {}
                    domainDict['domainId'] = var_row.domainId
                    domainDict['domainName'] = var_row.domainName
                    pcDomainName.append(domainDict)
                elif var_row.domainType == 'app':
                    domainDict = {}
                    domainDict['domainId'] = var_row.domainId
                    domainDict['domainName'] = var_row.domainName
                    appDomainName.append(domainDict)
            objRep.data = cData()
            objRep.data.pc = pcDomainName
            objRep.data.app = appDomainName
            fileName = __name__
            nameList = fileName.split('.')
            methodName = nameList.pop()
            # 日志
            dictActionBill = {
                'billType': 'adminActionBill',
                'accountId': request.get('accountId', ''),
                'action': "修改域名",
                'actionTime': getNow(),
                'actionMethod': methodName,
                'actionDetail': "修改域名Id:{},域名:{}".format(domainId, domainName),
                'actionIp': request.get('srcIp', ''),
            }
            logging.getLogger('bill').info(json.dumps(dictActionBill))
            return classJsonDump.dumps(objRep)

    except Exception as e:
        logging.exception(e)
        raise e
Exemple #12
0
def handleHttp(dict_param: dict):
    """找回密码时校验验证码"""
    objRsp = cResp()

    strPhone = dict_param.get("phoneNum", "")
    strEmail = dict_param.get("email", "")
    if strPhone and strEmail:
        raise exceptionLogic(errorLogic.player_Email_is_none)
    if strPhone == "" and strEmail == "":
        raise exceptionLogic(errorLogic.client_param_invalid)
    if strPhone:

        try:
            sCode = str(dict_param["iCode"])
        except Exception as e:
            raise exceptionLogic(errorLogic.client_param_invalid)

        iCode = yield from classDataBaseMgr.getInstance().getPhoneVerify(
            strPhone)

        if not iCode:
            raise exceptionLogic(errorLogic.verify_code_expired)
        if iCode != sCode:
            raise exceptionLogic(errorLogic.verify_code_not_valid)
        yield from classDataBaseMgr.getInstance().delPhoneVerify(strPhone)

        # 构造回包
        objRsp.data = cData()
        objRsp.data = strPhone

        return classJsonDump.dumps(objRsp)

    if strEmail:
        try:
            sCode = str(dict_param["iCode"])
        except Exception as e:
            raise exceptionLogic(errorLogic.client_param_invalid)

        iCode = yield from classDataBaseMgr.getInstance().getEmailVerify(
            strEmail)

        if not iCode:
            raise exceptionLogic(errorLogic.verify_code_expired)
        if iCode != sCode:
            raise exceptionLogic(errorLogic.verify_code_not_valid)

        yield from classDataBaseMgr.getInstance().delEmailVerify(strEmail)

        # 构造回包
        objRsp.data = cData()
        objRsp.data = strEmail

        return classJsonDump.dumps(objRsp)
Exemple #13
0
def handleHttp(dict_param: dict):
    """校验验证码"""
    objRsp = cResp()
    try:
        strPhone = dict_param["phoneNum"]
        strEmail = dict_param["email"]
    except Exception as e:
        raise exceptionLogic(errorLogic.client_param_invalid)

    if all([strPhone, strEmail]):
        raise exceptionLogic(errorLogic.client_param_invalid)

    if strPhone:
        sCode = dict_param.get("iCode", "")
        if not sCode:
            raise exceptionLogic(errorLogic.client_param_invalid)
        iCode = yield from classDataBaseMgr.getInstance().getPhoneVerify(
            strPhone)
        if not iCode:
            raise exceptionLogic(errorLogic.verify_code_expired)
        if iCode != sCode:
            raise exceptionLogic(errorLogic.verify_code_not_valid)
        yield from classDataBaseMgr.getInstance().delPhoneVerify(strPhone)

        # 构造回包
        objRsp.data = cData()
        objRsp.data = strPhone

        return classJsonDump.dumps(objRsp)

    if strEmail:
        sCode = dict_param.get("iCode", "")
        if not sCode:
            raise exceptionLogic(errorLogic.client_param_invalid)

        iCode = yield from classDataBaseMgr.getInstance().getEmailVerify(
            strEmail)

        if not iCode:
            raise exceptionLogic(errorLogic.verify_code_expired)

        if iCode != sCode:
            raise exceptionLogic(errorLogic.verify_code_not_valid)

        yield from classDataBaseMgr.getInstance().delEmailVerify(strEmail)

        # 构造回包
        objRsp.data = cData()
        objRsp.data = strEmail

        return classJsonDump.dumps(objRsp)
Exemple #14
0
def handleResultGuess(objHead: dataHeaderDefine.classResultHead,
                      objDataCenterReq, *args, **kwargs):

    logging.info(objDataCenterReq.__dict__)

    strMatchId = objDataCenterReq.strMatchId
    strGuessId = objDataCenterReq.strGuessId
    strWinKey = objDataCenterReq.strWinKey

    iHalfGet = objDataCenterReq.iHalfGet

    logging.getLogger("result").info(
        "matchId[{}] guessId[{}] winKey[{}] result".format(
            strMatchId, strGuessId, strWinKey))

    objMatchData = yield from classDataBaseMgr.getInstance().getMatchData(
        strMatchId)
    if objMatchData is None:
        logging.getLogger('result').error(
            "result match data not found [{}]".format(strMatchId))
        return

    objGuessData = yield from classDataBaseMgr.getInstance().getGuessData(
        strGuessId)
    if objGuessData is None:
        logging.getLogger('result').error(
            "result guess data not found [{}]".format(strGuessId))
        return

    # 获取竞猜比赛的比例
    fRate = objGuessData.dictCTR[strWinKey].fRate
    if fRate >= 10 or fRate <= 0:
        logging.getLogger('result').error(
            "guessId[{}] dictKey[{}] dictContent [{}]".format(
                strGuessId, strWinKey,
                classJsonDump.dumps(objGuessData.dictCTR)))
    else:
        logging.info("guessId[{}] dictKey[{}] dictContent[{}]".format(
            strGuessId, strWinKey, classJsonDump.dumps(objGuessData.dictCTR)))

    while True:
        try:
            strGuessUId = yield from classDataBaseMgr.getInstance(
            ).getMatchCancelResultGuessUIds(strGuessId)
            yield from doGuessMemberTask(objMatchData, objGuessData,
                                         strGuessUId, fRate, strWinKey,
                                         iHalfGet)

        except Exception as e:
            logging.getLogger('result').error(repr(e))
def handleHttp(dict_param: dict):

    dictApprovalvar_match_data = yield from classDataBaseMgr.getInstance(
    ).getPreMatchDataListRetDict()

    respMatchData = []
    for var_match_id, var_match_data in dictApprovalvar_match_data.items():
        objNewData = gmProtocol.classGmMatchData()
        objNewData.strProjectName = var_match_data.strMatchType
        objNewData.strMatchId = var_match_data.strMatchId
        objNewData.iGameState = var_match_data.iMatchState
        objNewData.strActivityName = var_match_data.strMatchName
        try:
            objNewData.strGameStartTime = timeHelp.timestamp2Str(
                var_match_data.iMatchStartTimestamp)
        except:
            objNewData.strGameStartTime = timeHelp.timestamp2Str(0)

        objNewData.strTeam1Name = var_match_data.strTeamAName
        objNewData.strTeam2Name = var_match_data.strTeamBName
        objNewData.strTeam1Logo = var_match_data.strTeamALogoUrl
        objNewData.strTeam2Logo = var_match_data.strTeamBLogoUrl
        objNewData.iMatchRoundNum = var_match_data.iMatchRoundNum
        objNewData.iHideFlag = var_match_data.iHideFlag
        #objNewData.strTeamAId = var_match_data.strTeamAId
        #objNewData.strTeamBId = var_match_data.strTeamBId
        objNewData.iTeamAScore = var_match_data.iTeamAScore
        objNewData.iTeamBScore = var_match_data.iTeamBScore
        objNewData.iSupportA = var_match_data.iSupportA
        objNewData.iSupportB = var_match_data.iSupportB

        for var_round_num, var_guess_list in var_match_data.dictGuess.items():
            for var_guess_id in var_guess_list:
                objGuessData = yield from classDataBaseMgr.getInstance(
                ).getGuessData(var_guess_id)
                objGmPlayData = gmProtocol.classGmPlayData()
                objGmPlayData.strPlayTypeName = objGuessData.strGuessName  # gmProtocol.getTypeMapNameFun(objGuessData.iGuessType,matchData.strTeamAName,matchData.strTeamBName,objGuessData.fSplitScore)
                objGmPlayData.iGuessState = objGuessData.iGuessState
                objGmPlayData.dictTeamInfo = objGuessData.dictCTR
                objGmPlayData.strGuessId = objGuessData.strGuessId
                objGmPlayData.iRoundNum = var_round_num
                objNewData.arrPlayTypeList.append(objGmPlayData)

        respMatchData.append(objNewData)

    logging.debug(classJsonDump.dumps(respMatchData))

    return classJsonDump.dumps(respMatchData)
Exemple #16
0
def handleHttp(dictParam: dict):

    fRmbFen = float(dictParam.get('rmb', "0"))
    if not checkIsFloat(fRmbFen):
        raise exceptionLogic(errorLogic.client_param_invalid)
    # 客户的给的是分
    iRmbFen = int(fRmbFen * 100)

    if iRmbFen < 100 or iRmbFen > 300000:
        raise exceptionLogic(errorLogic.pay_online_amount_limit)

    try:
        #检查用户是否登录,检查用户token
        strAccountId = str(dictParam.get("accountId", ""))
        strToken = str(dictParam.get("token", ""))
    except:
        raise exceptionLogic(errorLogic.client_param_invalid)

    if len(strAccountId) <= 0:
        raise exceptionLogic(errorLogic.player_id_empty)

    if not procVariable.debug:
        certify_token(strAccountId, strToken)

    objResp = cResp()
    objResp.data = yield from lpayPayOrder(strAccountId, iRmbFen, "wx_wap",
                                           dictParam.get("srcIp", ""))

    return classJsonDump.dumps(objResp)
Exemple #17
0
def handleHttp(dict_param: dict):
    """设置交易密码"""
    objRsp = cResp()

    TradePwd = dict_param.get("tradePwd", "")
    TradePwd2 = dict_param.get("tradePwd2", "")
    strAccountId = dict_param.get("accountId", "")

    if not all([TradePwd, TradePwd2]):
        raise exceptionLogic(errorLogic.client_param_invalid)
    if TradePwd != TradePwd2:
        raise exceptionLogic(errorLogic.player_pwd_pwd2_not_same)
    if precompile.TradePassword.search(TradePwd) is None:
        raise exceptionLogic(errorLogic.player_TradePwd_length_out_of_range)
    objPlayerData, objLock = yield from classDataBaseMgr.getInstance().getPlayerDataByLock(strAccountId)
    strTradePwd = PwdEncrypt().create_md5(TradePwd)
    objPlayerData.strTradePassword = strTradePwd
    yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objLock)

    objRsp.data = cData()
    if objPlayerData.strTradePassword:
        objRsp.data.tradePwd = 1
    else:
        objRsp.data.tradePwd = 0

    return classJsonDump.dumps(objRsp)
def handleHttp(dict_param: dict):
    """找回密码时获取邮件验证码"""
    objRsp = cResp()

    strEmail = dict_param.get('email', '')
    if not strEmail:
        raise exceptionLogic(errorLogic.player_Email_is_none)

    if precompile.EmailRegex.search(strEmail) is None:
        raise exceptionLogic(errorLogic.player_Email_invalid)

    accountId = yield from classDataBaseMgr.getInstance(
    ).getEmailAccountMapping(strEmail)
    if not accountId:
        raise exceptionLogic(errorLogic.player_Email_is_not_bind)

    iCode = random.randint(1000, 9999)

    future = asyncio.get_event_loop().run_in_executor(None,
                                                      sendmailsms.send_mail,
                                                      strEmail, iCode)
    ret = yield from asyncio.wait_for(future, 10)

    logging.debug("send sms email{} response:".format(strEmail) + str(ret))

    yield from classDataBaseMgr.getInstance().setEmailVerify(strEmail, iCode)

    # 构造回包
    objRsp.data = cData()
    objRsp.data.iCode = iCode

    return classJsonDump.dumps(objRsp)
Exemple #19
0
def handleHttp(dict_param: dict):
    """
    app消息详情
    """
    objRsp = cResp()

    agentId = dict_param.get("agentId", "")

    with (yield from classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
        sql_read = "update dj_all_msg set readFlag=1 where dj_all_msg.type=3 and sendTo=%s"
        yield from conn.execute(sql_read, [agentId])
        sql = "select msgTime,msgTitle,msgDetail,msgId,readFlag from dj_all_msg where sendTo=%s and dj_all_msg.type=3 order by msgTime desc limit 0,10"
        result = yield from conn.execute(sql, [agentId])
        if result.rowcount<=0:
            agentMsgList = []
        else:
            agentMsgList = []
            for var in result:
                agentMsgData = {}
                agentMsgData['msgTime'] = var.msgTime
                agentMsgData['msgTitle'] = var.msgTitle
                agentMsgData['msgDetail'] = var.msgDetail
                agentMsgData['readFlag'] = var.readFlag
                agentMsgData['msgId'] = var.msgId
                agentMsgList.append(agentMsgData)

    # 构造回包
    objRsp.data = agentMsgList
    return classJsonDump.dumps(objRsp)
Exemple #20
0
def handleHttp(dict_param: dict):
    """删除银行卡"""
    objRsp = cResp()

    strAccountId = dict_param.get("accountId", "")
    strCardNum = str(dict_param.get("cardNum", ""))
    if not strCardNum:
        raise exceptionLogic(errorLogic.client_param_invalid)
    objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
    ).getPlayerDataByLock(strAccountId)
    for var in objPlayerData.arrayBankCard:
        ret = list(var.values())
        print(type(ret))
        if strCardNum in ret:
            try:
                objPlayerData.arrayBankCard.remove(var)
            except Exception as e:
                logging.exception(e)
    yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
        objPlayerData, objLock)

    objRsp.data = cData()
    objRsp.data.BankCard = objPlayerData.arrayBankCard

    return classJsonDump.dumps(objRsp)
Exemple #21
0
def handleHttp(request: dict):
    """获取渠道LTV数据"""
    channel = request.get('channel', '')
    startTime = request.get('startTime', 0)
    endTime = request.get('endTime', 0)

    objRep = cResp()

    if not all([startTime,endTime]):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)

    if (not checkIsInt(startTime)) or (not checkIsInt(endTime)):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)

    try:
        # conn=classSqlBaseMgr.getInstance(instanceName='probet_oss')
        with (yield from classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
            over_all_data=cData()
            #todo
        return classJsonDump.dumps(objRep)
    except Exception as e:
        logging.exception(e)
        raise exceptionLogic(errorLogic.db_error)
Exemple #22
0
def handleHttp(dict_param: dict):
    """设置基本信息"""
    objRsp = cResp()

    strAccountId = dict_param.get('accountId', '')
    strRealName = dict_param.get('realName')
    strSex = dict_param.get('sex', '')
    strBorn = dict_param.get('born', '')
    if not all([strRealName, strSex, strBorn]):
        raise exceptionLogic(errorLogic.client_param_invalid)

    objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
    ).getPlayerDataByLock(strAccountId)
    if objPlayerData.strRealName:
        raise exceptionLogic(errorLogic.client_param_invalid)

    objPlayerData.strRealName = strRealName
    objPlayerData.strSex = strSex
    objPlayerData.strBorn = strBorn
    objPlayerData.dictAddress = dict_param.get('address', '')
    yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
        objPlayerData, objLock)

    # 构造回包
    objRsp.data = cAccountBaseData()
    objRsp.data.realName = objPlayerData.strRealName
    objRsp.data.sex = objPlayerData.strSex
    objRsp.data.born = objPlayerData.strBorn
    objRsp.data.address = objPlayerData.dictAddress

    return classJsonDump.dumps(objRsp)
Exemple #23
0
def handleHttp(dict_param: dict):
    """个人信息"""
    objRsp = cResp()

    agentId = dict_param.get("agentId", "")
    objPlayerData = yield from classDataBaseMgr.getInstance().getPlayerData(
        agentId)
    objAgentData = yield from classDataBaseMgr.getInstance().getAgentData(
        agentId)
    allAccountNum = yield from classSqlBaseMgr.getInstance(
    ).getAccountCountByAgent(agentId)
    unReadNum = yield from classSqlBaseMgr.getInstance().getAgentMsgUnReadNum(
        agentId)

    # 构造回包
    objRsp.data = cData()
    objRsp.data.agentId = agentId
    objRsp.data.realName = objPlayerData.strRealName
    objRsp.data.phoneNum = objPlayerData.strPhone
    objRsp.data.email = objPlayerData.strEmail
    objRsp.data.count = allAccountNum
    objRsp.data.balance = objPlayerData.iCoin
    objRsp.data.loginTime = objPlayerData.iLastLoginTime
    objRsp.data.cid = objAgentData.iCid
    objRsp.data.unReadNum = unReadNum

    return classJsonDump.dumps(objRsp)
Exemple #24
0
def handleHttp(dict_param: dict):
    """
    获取消息
    """
    objRsp = cResp()
    iPageNum = int(dict_param.get("pageNum", 1))
    iType = int(dict_param.get("type", 0))
    if not all([iType, iPageNum]):
        raise exceptionLogic(errorLogic.client_param_invalid)
    if iPageNum <= 0:
        raise exceptionLogic(errorLogic.client_param_invalid)

    MsgDataList, count = yield from classSqlBaseMgr.getInstance().getMsg(
        iType, iPageNum, 10)

    # 构造回包
    objRsp.data = MsgDataList
    objRsp.count = count
    fileName = __name__
    nameList = fileName.split('.')
    methodName = nameList.pop()
    # 日志
    dictActionBill = {
        'billType': 'adminActionBill',
        'accountId': dict_param.get('accountId', ''),
        'action': "获取新闻/公告",
        'actionTime': getNow(),
        'actionMethod': methodName,
        'actionDetail': "获取新闻/公告",
        'actionIp': dict_param.get('srcIp', ''),
    }
    logging.getLogger('bill').info(json.dumps(dictActionBill))
    yield from asyncio.sleep(1)
    return classJsonDump.dumps(objRsp)
Exemple #25
0
def handleHttp(request: dict):
    """代理管理"""
    objRep = cResp()
    agentConfigs = yield from classDataBaseMgr.getInstance().getAgentConfig()

    for bytesAgent in agentConfigs:
        data = cData()
        data.name = bytesAgent.strName
        data.rate = bytesAgent.iRate
        data.kind = bytesAgent.iKind
        objRep.data.append(data)

    fileName = __name__
    nameList = fileName.split('.')
    methodName = nameList.pop()
    # 日志
    dictActionBill = {
        'billType': 'adminActionBill',
        'accountId': request.get('accountId', ''),
        'action': "查询代理各项费率",
        'actionTime': getNow(),
        'actionMethod': methodName,
        'actionDetail': "查询代理各项费率",
        'actionIp': request.get('srcIp', ''),
    }
    logging.getLogger('bill').info(json.dumps(dictActionBill))
    return classJsonDump.dumps(objRep)
def handleHttp(dict_param: dict):

    strGuessId = dict_param['strGuessId']
    iPage = dict_param["iPage"]
    iNum = dict_param["iNum"]

    iBeginIndex = iPage * iNum
    iEndIndex = iBeginIndex + iNum

    objResp = gmProtocol.classGmAllPlayerData()
    objGuessData = yield from classDataBaseMgr.getInstance(
    ).getGuessDataByLock(strGuessId)
    objResp.arrChooseName = list(objGuessData.dictCTR.keys())
    objResp.iTotal = yield from classDataBaseMgr.getInstance(
    ).getCurrentGuessMemberLen(strGuessId)
    listCurrent = yield from classDataBaseMgr.getInstance(
    ).getCurrentGuessMember(strGuessId, iBeginIndex, iEndIndex)

    if len(listCurrent) > 0:

        for var_member in listCurrent:
            objNewData = gmProtocol.classGmRecentBetItem()
            objNewData.strAccountId = var_member["id"]
            objNewData.strChooseId = var_member["type"]
            objNewData.iBetNum = var_member["num"]
            objResp.arrCurrentBetInfo.append(objNewData)

    return classJsonDump.dumps(objResp)
Exemple #27
0
def handleHttp(dict_param: dict):
    """修改头像"""
    objRsp = cResp()

    strAccountId = dict_param.get("accountId", "")
    bytesBase64Png = dict_param.get("base64Png", "")
    if not bytesBase64Png:
        raise exceptionLogic(errorLogic.client_param_invalid)
    objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
    ).getPlayerDataByLock(strAccountId)
    try:
        avatorName = hashlib.md5(bytesBase64Png.encode()).hexdigest()
        imageData = base64.b64decode(bytesBase64Png[22:])
        #objFileHandle = yield from aiofiles.open("/var/www/html/avator/" + avatorName + ".png", "wb")
        #yield from objFileHandle.write(imageData)
        #yield from objFileHandle.close()
        dirPrefix = "avator/"
        uploadDataFileToOss(imageData, dirPrefix, avatorName + ".png")

    except Exception as e:
        logging.exception(e)
    if procVariable.debug:
        objPlayerData.strHeadAddress = "http://probet-avator.oss-us-west-1.aliyuncs.com/{}{}.png".format(
            dirPrefix, avatorName)
    else:
        objPlayerData.strHeadAddress = "http://probet-avator.oss-us-west-1.aliyuncs.com/{}{}.png".format(
            dirPrefix, avatorName)
    yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
        objPlayerData, objLock)
    # 构造回包
    objRsp.data = cData()
    objRsp.data.headAddress = objPlayerData.strHeadAddress

    return classJsonDump.dumps(objRsp)
Exemple #28
0
def flushUpdateToDb(guess_id: str, conn):
    objMatchGuessData = yield from classDataBaseMgr.getInstance().getGuessData(
        guess_id)
    if objMatchGuessData is None:
        # TODO log
        return

    sql = tbl.update().where(
        tbl.c.guessId == objMatchGuessData.strGuessId).values(
            guessId=objMatchGuessData.strGuessId,
            guessName=objMatchGuessData.strGuessName,
            guessState=objMatchGuessData.iGuessState,
            #matchId=objMatchGuessData.strMatchId,
            hideFlag=objMatchGuessData.iHideFlag,
            limitPerAccount=objMatchGuessData.iLimitPerAccount,
            ownerMatchId=objMatchGuessData.strOwnerMatchId,
            roundNum=objMatchGuessData.iRoundNum,
            cancelResultFlag=objMatchGuessData.iCancelResultFlag,
            cancelResultBeginTime=objMatchGuessData.iCancelResultBeginTime,
            cancelResultEndTime=objMatchGuessData.iCancelResultEndTime,
            ctr=classJsonDump.dumps(objMatchGuessData.dictCTR),
        )

    trans = yield from conn.begin()
    try:
        yield from conn.execute(sql)
    except Exception as e:

        logging.exception(e)
        yield from trans.rollback()
        raise e
    else:
        yield from trans.commit()

    return True
Exemple #29
0
def flushUpdateToDb(history_uid: str, conn):
    objBetata = yield from classDataBaseMgr.getInstance().getBetHistory(
        history_uid)
    if objBetata is None:
        # TODO log
        return

    sql = tbl.update().where(tbl.c.guessUId == objBetata.strGuessUId).values(
        guessUId=objBetata.strGuessUId,
        guessName=objBetata.strGuessName,
        matchId=objBetata.strMatchId,
        matchType=objBetata.strMatchType,
        guessId=objBetata.strGuessId,
        chooseId=objBetata.strChooseId,
        roundNum=objBetata.iRoundNum,
        time=objBetata.iTime,
        betCoin=objBetata.iBetCoin,
        winCoin=objBetata.iWinCoin,
        result=objBetata.iResult,
        resultId=objBetata.strResultId,
        resultTime=objBetata.iTime
        if objBetata.iResultTime <= 0 else objBetata.iResultTime,
        accountId=objBetata.strAccountId,
        ctr=classJsonDump.dumps(objBetata.dictCTR),
    )
    trans = yield from conn.begin()
    try:
        yield from conn.execute(sql)
    except Exception as e:

        logging.exception(e)
        yield from trans.rollback()
        raise e
    else:
        yield from trans.commit()
Exemple #30
0
def handleHttp(dict_param: dict):

    strMatchId = dict_param['strMatchId']

    objMatchData = yield from classDataBaseMgr.getInstance().getMatchData(
        strMatchId)

    objNewData = gmProtocol.classGmMatchData()
    objNewData.strProjectName = objMatchData.strMatchType
    objNewData.strMatchId = objMatchData.strMatchId
    objNewData.iGameState = objMatchData.iMatchState
    objNewData.strActivityName = objMatchData.strMatchName
    objNewData.strGameStartTime = timeHelp.timestamp2Str(
        objMatchData.iMatchStartTimestamp)
    objNewData.strTeam1Name = objMatchData.strTeamAName
    objNewData.strTeam2Name = objMatchData.strTeamBName
    objNewData.strTeam1Logo = objMatchData.strTeamALogoUrl
    objNewData.strTeam2Logo = objMatchData.strTeamBLogoUrl
    objNewData.iMatchRoundNum = objMatchData.iMatchRoundNum
    objNewData.iHideFlag = objMatchData.iHideFlag
    #objNewData.strTeamAId = objMatchData.strTeamAId
    #objNewData.strTeamBId = objMatchData.strTeamBId
    objNewData.iTeamAScore = objMatchData.iTeamAScore
    objNewData.iTeamBScore = objMatchData.iTeamBScore
    objNewData.iSupportA = objMatchData.iSupportA
    objNewData.iSupportB = objMatchData.iSupportB

    return classJsonDump.dumps(objNewData)