WxMenuController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. namespace ghs\controllers;
  3. use bizHd\wx\services\WxMenuService;
  4. use common\components\dict;
  5. use common\components\util;
  6. use common\components\wxUtil;
  7. use common\services\xhWxMenuService;
  8. use Yii;
  9. class WxMenuController extends BaseController
  10. {
  11. //更新菜单
  12. public function actionUpdate()
  13. {
  14. $menu = Yii::$app->request->post();
  15. util::fail('即将开通');
  16. //删除原有菜单
  17. xhWxMenuService::delMenuList($this->sjId);
  18. $date = date("Y-m-d H:i:s");
  19. foreach ($menu as $key => $val) {//一级菜单数据整理
  20. $parentOrder = $val['menuOrder'];
  21. $parentWxMenuOption = $val['menuOption'];
  22. $parentName = $val['name'];
  23. $addData = [];
  24. $addData['parentId'] = 0;
  25. $addData['sjId'] = $this->sjId;
  26. $addData['menuOrder'] = $parentOrder;
  27. $addData['menuOption'] = $parentWxMenuOption;
  28. $addData['hasSonMenu'] = isset($val['children']) && !empty($val['children']) ? 1 : 0;
  29. $addData['name'] = $parentName;
  30. $addData['menuKey'] = $this->sjId . '_' . $parentOrder;
  31. $addData['createTime'] = $date;
  32. $addData['replyType'] = $val['replyType'];
  33. $addData['replyUrl'] = $val['replyUrl'];
  34. if (!empty($wxMenuContent)) {
  35. $formatData = xhWxMenuService::getFormatData($wxMenuContent, $parentWxMenuOption, $this->sj);
  36. $addData = array_merge($addData, $formatData);
  37. }
  38. $return = xhWxMenuService::add($addData);
  39. $parentId = $return['id'];
  40. if (isset($val['children']) && !empty($val['children'])) {
  41. foreach ($val['children'] as $childKey => $childValue) {
  42. if (isset($childValue['menuOrder']) == false) {
  43. print_r($childValue);
  44. print_r($val);
  45. die;
  46. }
  47. $childOrder = $childValue['menuOrder'];
  48. $childWxMenuOption = $childValue['menuOption'];
  49. $childName = $childValue['name'];
  50. $addChildData = [];
  51. $addChildData['parentId'] = $parentId;
  52. $addChildData['sjId'] = $this->sjId;
  53. $addChildData['menuOrder'] = $childOrder;
  54. $addChildData['menuOption'] = $childWxMenuOption;
  55. $addChildData['name'] = $childName;
  56. $addChildData['menuKey'] = $this->sjId . '_' . $parentOrder . '_' . $childOrder;
  57. $addChildData['createTime'] = $date;
  58. $addChildData['replyType'] = $childValue['replyType'];
  59. $addChildData['replyUrl'] = $childValue['replyUrl'];
  60. if (!empty($wxMenuContent)) {
  61. $formatData = xhWxMenuService::getFormatData($wxMenuContent, $childWxMenuOption, $this->sj);
  62. $addChildData = array_merge($addChildData, $formatData);
  63. }
  64. xhWxMenuService::add($addChildData);
  65. }
  66. }
  67. }
  68. $wxMenu = xhWxMenuService::getMenuList($this->sjId);
  69. if (empty($wxMenu)) {
  70. util::fail('没有找到菜单');
  71. }
  72. $replyType = dict::getDict('replyType');
  73. $menuData = [];
  74. foreach ($wxMenu as $wxKey => $wxVal) {
  75. $child = $wxVal['child'];
  76. if (!empty($child)) {
  77. $menuData[$wxKey] = ['type' => 'view', 'name' => $wxVal['name']];
  78. foreach ($child as $chKey => $chVal) {
  79. if ($chVal['replyType'] == $replyType['redirectUrl']) {
  80. $menuData[$wxKey]['sub_button'][$chKey] = ['type' => 'view', 'name' => $chVal['name'], 'url' => $chVal['replyUrl']];
  81. } else {
  82. $menuData[$wxKey]['sub_button'][$chKey] = ['type' => 'click', 'name' => $chVal['name'], 'key' => $chVal['menuKey']];
  83. }
  84. }
  85. } else {
  86. if ($wxVal['replyType'] == $replyType['redirectUrl']) {
  87. $menuData[$wxKey] = ['type' => 'view', 'name' => $wxVal['name'], 'url' => $wxVal['replyUrl']];
  88. } else {
  89. $menuData[$wxKey] = ['type' => 'click', 'name' => $wxVal['name'], 'key' => $wxVal['menuKey']];
  90. }
  91. }
  92. }
  93. $subData['button'] = $menuData;
  94. $wxUtil = new wxUtil($this->sj);
  95. $jsonData = $wxUtil->userMenuToWeiXin($subData);
  96. $respond = json_decode($jsonData, true);
  97. if ($respond['errcode'] == 0) {
  98. util::complete('提交成功,5分钟后生效');
  99. }
  100. util::fail('提交失败');
  101. }
  102. //微信菜单 ssh 2019.12.19
  103. public function actionTree()
  104. {
  105. $list = WxMenuService::getMenuTree($this->sjId);
  106. util::success($list);
  107. }
  108. }