hxp
2024-11-20 d5d1b5ac2467c87800cd0d12433e72352391b46d
Server/eventdata/CTGReportAll.py
@@ -22,51 +22,45 @@
    logging.info("getCTGReportInfo %s" % argvDict)
    startDate = argvDict.get("startDate", "")
    endDate = argvDict.get("endDate", "")
    payOrderTypeGroup = argvDict.get("payOrderTypeGroup", "")
    CTGReportOrderTypeList = eval(CommFunc.getSPConfig(
        argvDict, "Config", "CTGReportOrderType", "[1]"))
    reportInfo = {}
    payOrderInfo = {}
    reportInfo = {} # {key:{orderInfo:{k:v, ...}, ...}, ...}
    # 查询中心备份的
    if CommFunc.isQueryCenterbak(argvDict):
        queryCenterBak(startDate, endDate, argvDict, CTGReportOrderTypeList)
        return
    needQueryCenterbak = CommFunc.loopMainServerDR(cfg, startDate, endDate, argvDict, checkDrFileNeedParseFunc,
                                                   parseLineFunc, reportInfo, payOrderInfo, CTGReportOrderTypeList, drNameList=DRNameList)
                                                   parseLineFunc, reportInfo, CTGReportOrderTypeList, payOrderTypeGroup, drNameList=DRNameList)
    #logging.info("1 reportInfo %s" % reportInfo)
    #logging.info("needQueryCenterbak %s" % needQueryCenterbak)
    # logging.info("1 reportInfo %s" % reportInfo)
    logging.info("needQueryCenterbak %s" % needQueryCenterbak)
    if needQueryCenterbak:
        retBak = CommFunc.queryBackupCenterDR(cfg, argvDict)
        if retBak == None:
            return
        reportInfoBak, payOrderInfoBak = retBak
        #logging.info("reportInfoBak %s" % reportInfoBak)
        #logging.info("payOrderInfoBak %s" % payOrderInfoBak)
        for orderInfo, bakData in reportInfoBak.items():
            orderInfo = str(orderInfo)
            if orderInfo not in reportInfo:
                reportInfo[orderInfo] = bakData
            else:
                retData = reportInfo[orderInfo]
                reportInfo[orderInfo]["payCount"] = retData.get(
                    "payCount", 0) + bakData.get("payCount", 0)
        for orderInfo, bakData in payOrderInfoBak.items():
            orderInfo = str(orderInfo)
            if orderInfo not in payOrderInfo:
                payOrderInfo[orderInfo] = bakData
            else:
                retData = payOrderInfo[orderInfo]
                payOrderInfo[orderInfo]["payCount"] = retData.get(
                    "payCount", 0) + bakData.get("payCount", 0)
    #logging.info("2 reportInfo %s" % reportInfo)
    ret = {"OK": 1, "reportInfo": reportInfo, "payOrderInfo": payOrderInfo}
        reportInfoBak = retBak[0]
        # logging.info("reportInfoBak %s" % reportInfoBak)
        for key, orderInfoDictBak in reportInfoBak.items():
            if key not in reportInfo:
                reportInfo[key] = orderInfoDictBak
                continue
            orderInfoDict = reportInfo[key]
            for orderInfo, bakData in orderInfoDictBak.items():
                orderInfo = str(orderInfo)
                if orderInfo not in orderInfoDict:
                    orderInfoDict[orderInfo] = bakData
                else:
                    retData = orderInfoDict[orderInfo]
                    for k, v in bakData.items():
                        if k == "orderCoin":
                            continue;
                        retData[k] = retData.get(k, 0) + v
    # logging.info("2 reportInfo %s" % reportInfo)
    ret = {"OK": 1, "reportInfo": reportInfo}
    print json.dumps(ret, ensure_ascii=False, default=lambda obj: obj.__dict__)
    return
@@ -74,11 +68,11 @@
def queryCenterBak(startDate, endDate, argvDict, CTGReportOrderTypeList):
    # 查询中心服务器备份充值信息
    reportInfoBak = {}
    payOrderInfoBak = {}
    payOrderTypeGroup = argvDict.get("payOrderTypeGroup", "")
    if not CommFunc.loopCenterbakRarDR(cfg, startDate, endDate, argvDict, checkDrFileNeedParseFunc,
                                       parseLineFunc, reportInfoBak, payOrderInfoBak, CTGReportOrderTypeList, drNameList=DRNameList):
                                       parseLineFunc, reportInfoBak, CTGReportOrderTypeList, payOrderTypeGroup, drNameList=DRNameList):
        return
    return CommFunc.queryBackupCenterOK([reportInfoBak, payOrderInfoBak])
    return CommFunc.queryBackupCenterOK([reportInfoBak])
def checkDrFileNeedParseFunc(drFileName, *parseArgs, **kv):
@@ -100,7 +94,7 @@
    @param *parseArgs: 自定义参数
    '''
    reportInfo, payOrderInfo, CTGReportOrderTypeList = parseArgs
    reportInfo, CTGReportOrderTypeList, payOrderTypeGroup = parseArgs
    drDict = eval(line)
@@ -113,27 +107,17 @@
    orderInfo = drDict["orderInfo"]
    orderCoin = drDict.get("orderCoin", 0)
    isBuyOrderInfo = drDict.get("isBuyOrderInfo", 0)
    orderMoneyType = drDict.get("orderMoneyType", 0)
    orderMoneyValue = drDict.get("orderMoneyValue", 0)
    if isBuyOrderInfo:
        retData = payOrderInfo.get(orderInfo, {})
        payOrderInfo[orderInfo] = {
            "orderMoneyType": orderMoneyType,
            "orderMoneyValue": orderMoneyValue,
            "payOrderType": payOrderType,
            "orderCoin": orderCoin,
            "payCount": retData.get("payCount", 0) + 1,
        }
        return
    retData = reportInfo.get(orderInfo, {})
    reportInfo[orderInfo] = {
        "payOrderType": payOrderType,
        "orderCoin": orderCoin,
        "payCount": retData.get("payCount", 0) + 1,
    }
    key = str(payOrderType) if payOrderTypeGroup else ""
    if key not in reportInfo:
        reportInfo[key] = {}
    orderInfoDict = reportInfo[key]
    if orderInfo not in orderInfoDict:
        orderInfoDict[orderInfo] = {}
    retData = orderInfoDict[orderInfo]
    retData["orderCoin"] = orderCoin
    retData["payCount"] = retData.get("payCount", 0) + 1
    payOrderTypeKey = "payOrderType%s" % payOrderType
    retData[payOrderTypeKey] = retData.get(payOrderTypeKey, 0) + 1
    return
# =================================================================================================