SystemService.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\miniapi\service;
  4. final class SystemService
  5. {
  6. public function configuration(): array
  7. {
  8. $capabilities = $this->capabilities();
  9. return [
  10. 'currency' => 'CNY',
  11. 'money_unit' => 'cent',
  12. 'timezone' => 'Asia/Shanghai',
  13. 'support_phone' => config('mini_api.support_phone', '') ?: null,
  14. 'privacy_url' => config('mini_api.privacy_url', '') ?: null,
  15. 'purchase_agreement_url' => config('mini_api.purchase_agreement_url', '') ?: null,
  16. 'capabilities' => $capabilities,
  17. 'setup_messages' => SystemServiceSetup::build($capabilities),
  18. 'admin_binding' => [
  19. 'route_users' => '/core/water/mini-users',
  20. 'route_grants' => '/core/water/mini-grants',
  21. 'roles' => Access::roles(),
  22. 'note' => '仅启用状态的超级管理员能调用以上接口;业务身份不会自动获得后台权限。',
  23. ],
  24. ];
  25. }
  26. private function capabilities(): array
  27. {
  28. return [
  29. 'wechat_login' => (string) config('mini_api.wechat_appid', '') !== '' && (string) config('mini_api.wechat_secret', '') !== '',
  30. 'sms_login' => \app\miniapi\auth\SmsCode::enabled(),
  31. 'test_phone_login' => \app\miniapi\auth\TestPhoneIdentityProvider::enabled(),
  32. 'enterprise' => true,
  33. 'driver' => true,
  34. 'agent' => true,
  35. 'payment' => false,
  36. 'balance_payment' => true,
  37. 'commissions' => true,
  38. 'withdrawal' => false,
  39. 'rewards' => \plugin\saiadmin\app\service\promotion\PromotionPolicy::current()['enabled'],
  40. 'individual_package_cards' => false,
  41. 'multiple_sites_per_enterprise' => false,
  42. 'device_binding' => false,
  43. ];
  44. }
  45. public function status(): array
  46. {
  47. $capabilities = $this->capabilities();
  48. return [
  49. 'service' => 'water-mini-api',
  50. 'version' => 'v1',
  51. 'status' => 'ok',
  52. 'capabilities' => [
  53. 'login' => $capabilities['wechat_login'],
  54. 'business' => true,
  55. 'wechat_payment' => $capabilities['payment'],
  56. 'balance_payment' => $capabilities['balance_payment'],
  57. 'commissions' => $capabilities['commissions'],
  58. 'withdrawals' => $capabilities['withdrawal'],
  59. ],
  60. ];
  61. }
  62. }