| | |
| | | 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 |
| | | |
| | |
| | | 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): |
| | |
| | | @param *parseArgs: 自定义参数 |
| | | ''' |
| | | |
| | | reportInfo, payOrderInfo, CTGReportOrderTypeList = parseArgs |
| | | reportInfo, CTGReportOrderTypeList, payOrderTypeGroup = parseArgs |
| | | |
| | | drDict = eval(line) |
| | | |
| | |
| | | |
| | | 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 |
| | | |
| | | # ================================================================================================= |