WechatMenuService.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\service\admin\wechat;
  12. use app\model\sys\SysConfig;
  13. use app\service\core\sys\CoreConfigService;
  14. use app\service\core\wechat\CoreWechatApiService;
  15. use core\base\BaseAdminService;
  16. use core\exception\WechatException;
  17. use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
  18. use GuzzleHttp\Exception\GuzzleException;
  19. use think\Model;
  20. /**
  21. * 微信菜单
  22. * Class WechatConfigService
  23. * @package app\service\core\wechat
  24. */
  25. class WechatMenuService extends BaseAdminService
  26. {
  27. /**
  28. * 获取微信菜单
  29. * @return array|mixed
  30. */
  31. public function getInfo(){
  32. $core_config_service = new CoreConfigService();
  33. return $core_config_service->getConfig($this->request->defaultSiteId(), 'WECHAT_MENU')['value'] ?? [];
  34. }
  35. /**
  36. * 更新微信菜单
  37. * @param array $data
  38. * @return SysConfig|bool|Model
  39. * @throws GuzzleException
  40. * @throws InvalidConfigException
  41. */
  42. public function edit(array $data){
  43. $core_wechat_api_service = new CoreWechatApiService();
  44. $menu_result = $core_wechat_api_service->menuCreate($this->site_id, $data);
  45. if(!empty($menu_result['errcode']) && $menu_result['errcode'] != 0)
  46. throw new WechatException($menu_result['errmsg']);
  47. //先尝试改变微信接口菜单
  48. $core_config_service = new CoreConfigService();
  49. return $core_config_service->setConfig($this->request->defaultSiteId(), 'WECHAT_MENU', $data);
  50. }
  51. }