define.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from django.conf import settings
  4. from apilib.constants import _Constant
  5. from apilib.systypes import IterConstant
  6. from apps.common.utils import get_test_point
  7. from apps.web.constant import USER_RECHARGE_TYPE, RechargeRecordVia
  8. from apps.web.core import PayAppType
  9. from apps.web.utils import concat_server_end_url
  10. DealerConst = _Constant()
  11. class DEALER_INCOME_SOURCE(IterConstant):
  12. """
  13. 收益的来源分类 展示在前端的字段
  14. """
  15. AD = 'ad'
  16. OFFLINE_COIN = 'offline_coin'
  17. REDPACK = USER_RECHARGE_TYPE.RECHARGE_REDPACK
  18. RECHARGE = USER_RECHARGE_TYPE.RECHARGE
  19. RECHARGE_CARD = USER_RECHARGE_TYPE.RECHARGE_CARD
  20. RECHARGE_VIRTUAL_CARD = USER_RECHARGE_TYPE.RECHARGE_VIRTUAL_CARD
  21. RECHARGE_MONTHLY_PACKAGE = USER_RECHARGE_TYPE.RECHARGE_MONTHLY_PACKAGE
  22. REFUND_CASH = USER_RECHARGE_TYPE.REFUND_CASH
  23. AUTO_SIM = RechargeRecordVia.AutoSim
  24. INSURANCE = USER_RECHARGE_TYPE.RECHARGE_INSURANCE
  25. LEDGER_CONSUME = "ledger_consume" # 设备分润
  26. # 经销商的收益来源的翻译(前台展示使用字段的名称)
  27. DEALER_INCOME_SOURCE_TRANSLATION = \
  28. {
  29. DEALER_INCOME_SOURCE.INSURANCE: u'保险',
  30. DEALER_INCOME_SOURCE.RECHARGE: u'充值',
  31. DEALER_INCOME_SOURCE.RECHARGE_CARD: u'实体卡',
  32. DEALER_INCOME_SOURCE.AD: u'广告',
  33. DEALER_INCOME_SOURCE.OFFLINE_COIN: u'线下投币',
  34. DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: u'虚拟卡',
  35. DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: u'包月卡',
  36. DEALER_INCOME_SOURCE.REDPACK: u'平台补贴',
  37. DEALER_INCOME_SOURCE.REFUND_CASH: u'现金退费',
  38. DEALER_INCOME_SOURCE.AUTO_SIM: u'流量卡自动充值',
  39. DEALER_INCOME_SOURCE.LEDGER_CONSUME: u"分润"
  40. }
  41. class DEALER_INCOME_TYPE(IterConstant):
  42. """
  43. 收益的字段分类 存储在数据库的
  44. """
  45. AD_INCOME = 'ad'
  46. DEVICE_INCOME = 'device'
  47. LEDGER_CONSUME = "consume"
  48. # 经销商统计的类目更细 几乎每一类的用户的充值订单都是一种类型
  49. DealerConst.MAP_USER_SOURCE_TO_DEALER_SOURCE = {
  50. USER_RECHARGE_TYPE.RECHARGE: DEALER_INCOME_SOURCE.RECHARGE,
  51. USER_RECHARGE_TYPE.RECHARGE_CARD: DEALER_INCOME_SOURCE.RECHARGE_CARD,
  52. USER_RECHARGE_TYPE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD,
  53. USER_RECHARGE_TYPE.RECHARGE_CASH: DEALER_INCOME_SOURCE.RECHARGE,
  54. USER_RECHARGE_TYPE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_SOURCE.RECHARGE,
  55. USER_RECHARGE_TYPE.RECHARGE_REDPACK: DEALER_INCOME_SOURCE.REDPACK,
  56. USER_RECHARGE_TYPE.RECHARGE_INSURANCE: DEALER_INCOME_SOURCE.INSURANCE,
  57. USER_RECHARGE_TYPE.REFUND_CASH: DEALER_INCOME_SOURCE.REFUND_CASH
  58. }
  59. # 经销商的收益类型转换为后台的字段
  60. DealerConst.MAP_SOURCE_TO_TYPE = \
  61. {
  62. DEALER_INCOME_SOURCE.RECHARGE: DEALER_INCOME_TYPE.DEVICE_INCOME,
  63. DEALER_INCOME_SOURCE.RECHARGE_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME,
  64. DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME,
  65. DEALER_INCOME_SOURCE.AD: DEALER_INCOME_TYPE.AD_INCOME,
  66. DEALER_INCOME_SOURCE.REDPACK: DEALER_INCOME_TYPE.DEVICE_INCOME,
  67. # 保险的单独算作一栏 仅仅为了和经销商统一 实际不会有这个收益目前收银策略下
  68. DEALER_INCOME_SOURCE.INSURANCE: DEALER_INCOME_TYPE.DEVICE_INCOME,
  69. DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_TYPE.DEVICE_INCOME,
  70. DEALER_INCOME_SOURCE.REFUND_CASH: DEALER_INCOME_TYPE.DEVICE_INCOME,
  71. DEALER_INCOME_SOURCE.AUTO_SIM: DEALER_INCOME_TYPE.DEVICE_INCOME,
  72. DEALER_INCOME_SOURCE.LEDGER_CONSUME: DEALER_INCOME_TYPE.LEDGER_CONSUME,
  73. }
  74. # 后台的字段获取实际的字段 先把经销商的保险收益 放在设备收益字段 经销商根本不会有这个
  75. DealerConst.MAP_TYPE_TO_FIELD = {
  76. DEALER_INCOME_TYPE.DEVICE_INCOME: 'deviceBalance',
  77. DEALER_INCOME_TYPE.AD_INCOME: 'adBalance',
  78. DEALER_INCOME_TYPE.LEDGER_CONSUME: 'ledgerBalance',
  79. }
  80. if settings.DEBUG and get_test_point('dealer', 'PAY_NOTIFY_URL'):
  81. class PAY_NOTIFY_URL(IterConstant):
  82. WECHAT_PAY_BACK = concat_server_end_url(
  83. uri = '/dealer/{}/{}_finishedPay'.format(PayAppType.WECHAT, get_test_point('dealer', 'PAY_NOTIFY_URL')))
  84. else:
  85. class PAY_NOTIFY_URL(IterConstant):
  86. WECHAT_PAY_BACK = concat_server_end_url(uri = '/dealer/{}/finishedPay'.format(PayAppType.WECHAT))
  87. if settings.DEBUG and get_test_point('dealer', 'REFUND_NOTIFY_URL'):
  88. class REFUND_NOTIFY_URL(IterConstant):
  89. WECHAT_REFUND_BACK = concat_server_end_url(
  90. uri = '/dealer/{}/{}_refundOrderNotifier'.format(
  91. PayAppType.WECHAT, get_test_point('dealer', 'REFUND_NOTIFY_URL')))
  92. else:
  93. class REFUND_NOTIFY_URL(IterConstant):
  94. WECHAT_REFUND_BACK = concat_server_end_url(uri = '/dealer/{}/refundOrderNotifier'.format(PayAppType.WECHAT))
  95. DEALER_BIND_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWechatBindingCallback')
  96. DEALER_BIND_WALLET_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWalletWechatBindingCallback')