# -*- coding: utf-8 -*- # !/usr/bin/env python from django.conf import settings from apilib.constants import _Constant from apilib.systypes import IterConstant from apps.common.utils import get_test_point from apps.web.constant import USER_RECHARGE_TYPE, RechargeRecordVia from apps.web.core import PayAppType from apps.web.utils import concat_server_end_url DealerConst = _Constant() class DEALER_INCOME_SOURCE(IterConstant): """ 收益的来源分类 展示在前端的字段 """ AD = 'ad' OFFLINE_COIN = 'offline_coin' REDPACK = USER_RECHARGE_TYPE.RECHARGE_REDPACK RECHARGE = USER_RECHARGE_TYPE.RECHARGE RECHARGE_CARD = USER_RECHARGE_TYPE.RECHARGE_CARD RECHARGE_VIRTUAL_CARD = USER_RECHARGE_TYPE.RECHARGE_VIRTUAL_CARD RECHARGE_MONTHLY_PACKAGE = USER_RECHARGE_TYPE.RECHARGE_MONTHLY_PACKAGE REFUND_CASH = USER_RECHARGE_TYPE.REFUND_CASH REVOKE_REFUND_CASH = USER_RECHARGE_TYPE.REVOKE_REFUND_CASH AUTO_SIM = RechargeRecordVia.AutoSim INSURANCE = USER_RECHARGE_TYPE.RECHARGE_INSURANCE LEDGER_CONSUME = "ledger_consume" # 设备分润 # 经销商的收益来源的翻译(前台展示使用字段的名称) DEALER_INCOME_SOURCE_TRANSLATION = \ { DEALER_INCOME_SOURCE.INSURANCE: u'保险', DEALER_INCOME_SOURCE.RECHARGE: u'充值', DEALER_INCOME_SOURCE.RECHARGE_CARD: u'实体卡', DEALER_INCOME_SOURCE.AD: u'广告', DEALER_INCOME_SOURCE.OFFLINE_COIN: u'线下投币', DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: u'虚拟卡', DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: u'包月卡', DEALER_INCOME_SOURCE.REDPACK: u'平台补贴', DEALER_INCOME_SOURCE.REFUND_CASH: u'现金退费', DEALER_INCOME_SOURCE.AUTO_SIM: u'流量卡自动充值', DEALER_INCOME_SOURCE.LEDGER_CONSUME: u"分润", DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH: u'现金退款退单', } class DEALER_INCOME_TYPE(IterConstant): """ 收益的字段分类 存储在数据库的 """ AD_INCOME = 'ad' DEVICE_INCOME = 'device' LEDGER_CONSUME = "consume" # 经销商统计的类目更细 几乎每一类的用户的充值订单都是一种类型 DealerConst.MAP_USER_SOURCE_TO_DEALER_SOURCE = { USER_RECHARGE_TYPE.RECHARGE: DEALER_INCOME_SOURCE.RECHARGE, USER_RECHARGE_TYPE.RECHARGE_CARD: DEALER_INCOME_SOURCE.RECHARGE_CARD, USER_RECHARGE_TYPE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD, USER_RECHARGE_TYPE.RECHARGE_CASH: DEALER_INCOME_SOURCE.RECHARGE, USER_RECHARGE_TYPE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_SOURCE.RECHARGE, USER_RECHARGE_TYPE.RECHARGE_REDPACK: DEALER_INCOME_SOURCE.REDPACK, USER_RECHARGE_TYPE.RECHARGE_INSURANCE: DEALER_INCOME_SOURCE.INSURANCE, USER_RECHARGE_TYPE.REFUND_CASH: DEALER_INCOME_SOURCE.REFUND_CASH, USER_RECHARGE_TYPE.REVOKE_REFUND_CASH: DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH } # 经销商的收益类型转换为后台的字段 DealerConst.MAP_SOURCE_TO_TYPE = \ { DEALER_INCOME_SOURCE.RECHARGE: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.RECHARGE_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.AD: DEALER_INCOME_TYPE.AD_INCOME, DEALER_INCOME_SOURCE.REDPACK: DEALER_INCOME_TYPE.AD_INCOME, # 保险的单独算作一栏 仅仅为了和经销商统一 实际不会有这个收益目前收银策略下 DEALER_INCOME_SOURCE.INSURANCE: DEALER_INCOME_TYPE.AD_INCOME, DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.REFUND_CASH: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.AUTO_SIM: DEALER_INCOME_TYPE.DEVICE_INCOME, DEALER_INCOME_SOURCE.LEDGER_CONSUME: DEALER_INCOME_TYPE.LEDGER_CONSUME, } # 后台的字段获取实际的字段 先把经销商的保险收益 放在设备收益字段 经销商根本不会有这个 DealerConst.MAP_TYPE_TO_FIELD = { DEALER_INCOME_TYPE.DEVICE_INCOME: 'deviceBalance', DEALER_INCOME_TYPE.AD_INCOME: 'adBalance', DEALER_INCOME_TYPE.LEDGER_CONSUME: 'ledgerBalance', } if settings.DEBUG and get_test_point('dealer', 'PAY_NOTIFY_URL'): class PAY_NOTIFY_URL(IterConstant): WECHAT_PAY_BACK = concat_server_end_url( uri = '/dealer/{}/{}_finishedPay'.format(PayAppType.WECHAT, get_test_point('dealer', 'PAY_NOTIFY_URL'))) JD_OPEN_PAY_BACK = concat_server_end_url( uri = '/dealer/{}/{}_finishedPay'.format(PayAppType.JD_OPEN, get_test_point('dealer', 'PAY_NOTIFY_URL'))) else: class PAY_NOTIFY_URL(IterConstant): WECHAT_PAY_BACK = concat_server_end_url(uri = '/dealer/{}/finishedPay'.format(PayAppType.WECHAT)) JD_OPEN_PAY_BACK = concat_server_end_url(uri = '/dealer/{}/finishedPay'.format(PayAppType.JD_OPEN)) if settings.DEBUG and get_test_point('dealer', 'REFUND_NOTIFY_URL'): class REFUND_NOTIFY_URL(IterConstant): WECHAT_REFUND_BACK = concat_server_end_url( uri = '/dealer/{}/{}_refundOrderNotifier'.format( PayAppType.WECHAT, get_test_point('dealer', 'REFUND_NOTIFY_URL'))) JDOPEN_REFUND_BACK = concat_server_end_url( uri = '/dealer/{}/{}_refundOrderNotifier'.format( PayAppType.JD_OPEN, get_test_point('dealer', 'REFUND_NOTIFY_URL'))) else: class REFUND_NOTIFY_URL(IterConstant): WECHAT_REFUND_BACK = concat_server_end_url(uri = '/dealer/{}/refundOrderNotifier'.format(PayAppType.WECHAT)) JDOPEN_REFUND_BACK = concat_server_end_url(uri = '/dealer/{}/refundOrderNotifier'.format(PayAppType.JD_OPEN)) DEALER_BIND_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWechatBindingCallback') DEALER_BIND_WALLET_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWalletWechatBindingCallback')