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)
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
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)
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)
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
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)
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)
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)
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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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()
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)