RiskConfig.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from alipay.aop.api.constant.ParamConstants import *
  5. from alipay.aop.api.domain.CategoryRiskInfo import CategoryRiskInfo
  6. from alipay.aop.api.domain.QuotaGradientRule import QuotaGradientRule
  7. class RiskConfig(object):
  8. def __init__(self):
  9. self._category_risks = None
  10. self._quota_gradient_rule = None
  11. @property
  12. def category_risks(self):
  13. return self._category_risks
  14. @category_risks.setter
  15. def category_risks(self, value):
  16. if isinstance(value, list):
  17. self._category_risks = list()
  18. for i in value:
  19. if isinstance(i, CategoryRiskInfo):
  20. self._category_risks.append(i)
  21. else:
  22. self._category_risks.append(CategoryRiskInfo.from_alipay_dict(i))
  23. @property
  24. def quota_gradient_rule(self):
  25. return self._quota_gradient_rule
  26. @quota_gradient_rule.setter
  27. def quota_gradient_rule(self, value):
  28. if isinstance(value, QuotaGradientRule):
  29. self._quota_gradient_rule = value
  30. else:
  31. self._quota_gradient_rule = QuotaGradientRule.from_alipay_dict(value)
  32. def to_alipay_dict(self):
  33. params = dict()
  34. if self.category_risks:
  35. if isinstance(self.category_risks, list):
  36. for i in range(0, len(self.category_risks)):
  37. element = self.category_risks[i]
  38. if hasattr(element, 'to_alipay_dict'):
  39. self.category_risks[i] = element.to_alipay_dict()
  40. if hasattr(self.category_risks, 'to_alipay_dict'):
  41. params['category_risks'] = self.category_risks.to_alipay_dict()
  42. else:
  43. params['category_risks'] = self.category_risks
  44. if self.quota_gradient_rule:
  45. if hasattr(self.quota_gradient_rule, 'to_alipay_dict'):
  46. params['quota_gradient_rule'] = self.quota_gradient_rule.to_alipay_dict()
  47. else:
  48. params['quota_gradient_rule'] = self.quota_gradient_rule
  49. return params
  50. @staticmethod
  51. def from_alipay_dict(d):
  52. if not d:
  53. return None
  54. o = RiskConfig()
  55. if 'category_risks' in d:
  56. o.category_risks = d['category_risks']
  57. if 'quota_gradient_rule' in d:
  58. o.quota_gradient_rule = d['quota_gradient_rule']
  59. return o