SettingService.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace addons\StarChain\common\services;
  3. use addons\StarChain\common\enums\StarChainEnum;
  4. use addons\StarChain\common\models\Setting;
  5. use Exception;
  6. use yii\helpers\Json;
  7. /**
  8. * 设置相关服务
  9. */
  10. class SettingService extends BaseService
  11. {
  12. /**
  13. * 设置保存设置
  14. *
  15. * @param array $data
  16. * @return boolean
  17. */
  18. public function setSetting($data)
  19. {
  20. $setting = $this->getSaveData($data);
  21. try {
  22. Setting::setSetting($setting);
  23. } catch (Exception $e) {
  24. return $this->error($e->getMessage());
  25. }
  26. return true;
  27. }
  28. /**
  29. * 获取保存数据
  30. *
  31. * @param array $setting
  32. * @return array
  33. */
  34. private function getSaveData($setting)
  35. {
  36. $app_key = $setting['app_key'];
  37. $app_secret = $setting['app_secret'];
  38. $mall_id = $this->mall_id;
  39. $sell = Json::encode([
  40. 'sell_strategy' => $setting['sell_strategy'],
  41. 'sell_guide' => $setting['sell_guide'],
  42. 'sell_sales' => $setting['sell_sales'],
  43. 'sell_market' => $setting['sell_market'],
  44. ]);
  45. $cost = Json::encode([
  46. 'cost_strategy' => $setting['cost_strategy'],
  47. 'cost_guide' => $setting['cost_guide'],
  48. 'cost_sales' => $setting['cost_sales'],
  49. 'cost_market' => $setting['cost_market'],
  50. ]);
  51. $original = Json::encode([
  52. 'original_strategy' => $setting['original_strategy'],
  53. 'original_guide' => $setting['original_guide'],
  54. 'original_sales' => $setting['original_sales'],
  55. 'original_market' => $setting['original_market'],
  56. ]);
  57. $auto_update = Json::encode([
  58. 'auto_present_price' => $setting['auto_present_price'],
  59. 'auto_base_info' => $setting['auto_base_info'],
  60. 'refund_auto_push' => $setting['refund_auto_push'],
  61. ]);
  62. return compact('mall_id', 'app_secret', 'app_key', 'sell', 'cost', 'original', 'auto_update');
  63. }
  64. /**
  65. * 获取后台配置
  66. *
  67. * @return array
  68. */
  69. public function getBackendSetting()
  70. {
  71. return array_merge(
  72. $this->getSetting(),
  73. [
  74. 'callback_url' => \Yii::$app->services->setting->platform->get('system.api_url')
  75. . '/star-chain/v1/notice/handler?mall_id='
  76. . $this->mall_id
  77. ],
  78. );
  79. }
  80. /**
  81. * 获取设置
  82. *
  83. * @return array
  84. */
  85. public function getSetting()
  86. {
  87. $setting = Setting::getSetting($this->mall_id);
  88. $setting['is_enable_shopping_cart_settle'] = 1;
  89. $setting['shopping_cart_mall_name'] = StarChainEnum::PLUGIN_SIGN;
  90. return $setting;
  91. }
  92. }