define.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. REVOKE_REFUND_CASH = USER_RECHARGE_TYPE.REVOKE_REFUND_CASH
  24. AUTO_SIM = RechargeRecordVia.AutoSim
  25. INSURANCE = USER_RECHARGE_TYPE.RECHARGE_INSURANCE
  26. LEDGER_CONSUME = "ledger_consume" # 设备分润
  27. # 经销商的收益来源的翻译(前台展示使用字段的名称)
  28. DEALER_INCOME_SOURCE_TRANSLATION = \
  29. {
  30. DEALER_INCOME_SOURCE.INSURANCE: u'保险',
  31. DEALER_INCOME_SOURCE.RECHARGE: u'充值',
  32. DEALER_INCOME_SOURCE.RECHARGE_CARD: u'实体卡',
  33. DEALER_INCOME_SOURCE.AD: u'广告',
  34. DEALER_INCOME_SOURCE.OFFLINE_COIN: u'线下投币',
  35. DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: u'虚拟卡',
  36. DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: u'包月卡',
  37. DEALER_INCOME_SOURCE.REDPACK: u'平台补贴',
  38. DEALER_INCOME_SOURCE.REFUND_CASH: u'现金退费',
  39. DEALER_INCOME_SOURCE.AUTO_SIM: u'流量卡自动充值',
  40. DEALER_INCOME_SOURCE.LEDGER_CONSUME: u"分润",
  41. DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH: u'现金退款退单',
  42. }
  43. class DEALER_INCOME_TYPE(IterConstant):
  44. """
  45. 收益的字段分类 存储在数据库的
  46. """
  47. AD_INCOME = 'ad'
  48. DEVICE_INCOME = 'device'
  49. LEDGER_CONSUME = "consume"
  50. # 经销商统计的类目更细 几乎每一类的用户的充值订单都是一种类型
  51. DealerConst.MAP_USER_SOURCE_TO_DEALER_SOURCE = {
  52. USER_RECHARGE_TYPE.RECHARGE: DEALER_INCOME_SOURCE.RECHARGE,
  53. USER_RECHARGE_TYPE.RECHARGE_CARD: DEALER_INCOME_SOURCE.RECHARGE_CARD,
  54. USER_RECHARGE_TYPE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD,
  55. USER_RECHARGE_TYPE.RECHARGE_CASH: DEALER_INCOME_SOURCE.RECHARGE,
  56. USER_RECHARGE_TYPE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_SOURCE.RECHARGE,
  57. USER_RECHARGE_TYPE.RECHARGE_REDPACK: DEALER_INCOME_SOURCE.REDPACK,
  58. USER_RECHARGE_TYPE.RECHARGE_INSURANCE: DEALER_INCOME_SOURCE.INSURANCE,
  59. USER_RECHARGE_TYPE.REFUND_CASH: DEALER_INCOME_SOURCE.REFUND_CASH,
  60. USER_RECHARGE_TYPE.REVOKE_REFUND_CASH: DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH
  61. }
  62. # 经销商的收益类型转换为后台的字段
  63. DealerConst.MAP_SOURCE_TO_TYPE = \
  64. {
  65. DEALER_INCOME_SOURCE.RECHARGE: DEALER_INCOME_TYPE.DEVICE_INCOME,
  66. DEALER_INCOME_SOURCE.RECHARGE_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME,
  67. DEALER_INCOME_SOURCE.RECHARGE_VIRTUAL_CARD: DEALER_INCOME_TYPE.DEVICE_INCOME,
  68. DEALER_INCOME_SOURCE.AD: DEALER_INCOME_TYPE.AD_INCOME,
  69. DEALER_INCOME_SOURCE.REDPACK: DEALER_INCOME_TYPE.AD_INCOME,
  70. # 保险的单独算作一栏 仅仅为了和经销商统一 实际不会有这个收益目前收银策略下
  71. DEALER_INCOME_SOURCE.INSURANCE: DEALER_INCOME_TYPE.AD_INCOME,
  72. DEALER_INCOME_SOURCE.RECHARGE_MONTHLY_PACKAGE: DEALER_INCOME_TYPE.DEVICE_INCOME,
  73. DEALER_INCOME_SOURCE.REFUND_CASH: DEALER_INCOME_TYPE.DEVICE_INCOME,
  74. DEALER_INCOME_SOURCE.REVOKE_REFUND_CASH: DEALER_INCOME_TYPE.DEVICE_INCOME,
  75. DEALER_INCOME_SOURCE.AUTO_SIM: DEALER_INCOME_TYPE.DEVICE_INCOME,
  76. DEALER_INCOME_SOURCE.LEDGER_CONSUME: DEALER_INCOME_TYPE.LEDGER_CONSUME,
  77. }
  78. # 后台的字段获取实际的字段 先把经销商的保险收益 放在设备收益字段 经销商根本不会有这个
  79. DealerConst.MAP_TYPE_TO_FIELD = {
  80. DEALER_INCOME_TYPE.DEVICE_INCOME: 'deviceBalance',
  81. DEALER_INCOME_TYPE.AD_INCOME: 'adBalance',
  82. DEALER_INCOME_TYPE.LEDGER_CONSUME: 'ledgerBalance',
  83. }
  84. if settings.DEBUG and get_test_point('dealer', 'PAY_NOTIFY_URL'):
  85. class PAY_NOTIFY_URL(IterConstant):
  86. WECHAT_PAY_BACK = concat_server_end_url(
  87. uri = '/dealer/{}/{}_finishedPay'.format(PayAppType.WECHAT, get_test_point('dealer', 'PAY_NOTIFY_URL')))
  88. JD_OPEN_PAY_BACK = concat_server_end_url(
  89. uri = '/dealer/{}/{}_finishedPay'.format(PayAppType.JD_OPEN, get_test_point('dealer', 'PAY_NOTIFY_URL')))
  90. else:
  91. class PAY_NOTIFY_URL(IterConstant):
  92. WECHAT_PAY_BACK = concat_server_end_url(uri = '/dealer/{}/finishedPay'.format(PayAppType.WECHAT))
  93. JD_OPEN_PAY_BACK = concat_server_end_url(uri = '/dealer/{}/finishedPay'.format(PayAppType.JD_OPEN))
  94. if settings.DEBUG and get_test_point('dealer', 'REFUND_NOTIFY_URL'):
  95. class REFUND_NOTIFY_URL(IterConstant):
  96. WECHAT_REFUND_BACK = concat_server_end_url(
  97. uri = '/dealer/{}/{}_refundOrderNotifier'.format(
  98. PayAppType.WECHAT, get_test_point('dealer', 'REFUND_NOTIFY_URL')))
  99. JDOPEN_REFUND_BACK = concat_server_end_url(
  100. uri = '/dealer/{}/{}_refundOrderNotifier'.format(
  101. PayAppType.JD_OPEN, get_test_point('dealer', 'REFUND_NOTIFY_URL')))
  102. else:
  103. class REFUND_NOTIFY_URL(IterConstant):
  104. WECHAT_REFUND_BACK = concat_server_end_url(uri = '/dealer/{}/refundOrderNotifier'.format(PayAppType.WECHAT))
  105. JDOPEN_REFUND_BACK = concat_server_end_url(uri = '/dealer/{}/refundOrderNotifier'.format(PayAppType.JD_OPEN))
  106. DEALER_BIND_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWechatBindingCallback')
  107. DEALER_BIND_WALLET_WECHAT_URL = concat_server_end_url(uri = '/dealer/verifyNewWalletWechatBindingCallback')