ConfigService.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace addons\Wechat\services;
  3. use Yii;
  4. use yii\helpers\Json;
  5. use common\helpers\ArrayHelper;
  6. use common\components\BaseAddonConfigService;
  7. use addons\Wechat\common\models\SettingForm;
  8. use addons\Wechat\merchant\forms\ReplyDefaultForm;
  9. use addons\Wechat\common\enums\SpecialTypeEnum;
  10. use addons\Wechat\common\enums\WechatEnum;
  11. /**
  12. * Class ConfigService
  13. *
  14. * @package addons\Wechat\services
  15. */
  16. class ConfigService extends BaseAddonConfigService
  17. {
  18. /**
  19. * @var string
  20. */
  21. public $addonName = "Wechat";
  22. /**
  23. * @var SettingForm
  24. */
  25. public $settingForm = SettingForm::class;
  26. /**
  27. * @param int $merchant_id
  28. * @return ReplyDefaultForm
  29. */
  30. public function replyDefault($merchant_id = 0)
  31. {
  32. $setting = new ReplyDefaultForm();
  33. $setting->attributes = Yii::$app->services->addonsConfig->findConfigByCache($this->addonName, $merchant_id, true);
  34. return $setting;
  35. }
  36. /**
  37. * 获取特殊消息回复
  38. *
  39. * @return array
  40. */
  41. public function specialConfig($merchant_id = 0)
  42. {
  43. $config = Yii::$app->services->addonsConfig->findConfigByCache($this->addonName, $merchant_id, true);
  44. // 获取支持的模块
  45. $modules = Yii::$app->services->addons->findAll();
  46. $list = WechatEnum::getMap();
  47. $defaultList = [];
  48. foreach ($list as $key => $value) {
  49. $defaultList[$key]['title'] = $value;
  50. $defaultList[$key]['type'] = SpecialTypeEnum::KEYWORD;
  51. $defaultList[$key]['content'] = '';
  52. $defaultList[$key]['module'] = [];
  53. foreach ($modules as $module) {
  54. $wechat_message = [];
  55. if (!empty($module['wechat_message'])) {
  56. $wechat_message = $module['wechat_message'];
  57. if (!is_array($module['wechat_message'])) {
  58. $wechat_message = Json::decode($module['wechat_message']);
  59. }
  60. }
  61. foreach ($wechat_message as $item) {
  62. if ($key == $item) {
  63. $defaultList[$key]['module'][$module['name']] = $module['title'];
  64. break;
  65. }
  66. }
  67. }
  68. }
  69. if (isset($config['special']) && !empty($special = $config['special'])) {
  70. $defaultList = ArrayHelper::merge($defaultList, $special);
  71. }
  72. return $defaultList;
  73. }
  74. }
粤ICP备19079148号