SystemMemberOfficialMenu.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. *
  7. * 微信自定义菜单管理
  8. */
  9. namespace app\common\model;
  10. use think\Model;
  11. class SystemMemberOfficialMenu extends Model{
  12. protected $pk = 'id';
  13. //添加或编辑
  14. public function edit($param){
  15. $data['name'] = $param['name'];
  16. $data['sort'] = $param['sort'];
  17. $data['update_time'] = time();
  18. if(isset($param['id'])){
  19. return self::update($data,['id'=>(int)$param['id']]);
  20. }else{
  21. $data['parent_id'] = $param['parent_id'];
  22. return self::insert($data);
  23. }
  24. }
  25. /**
  26. * 菜单修正
  27. * @param [type] $data
  28. * @return void
  29. */
  30. public static function official_menu($appid){
  31. $official_menu = self::where(['member_miniapp_id' => $appid])->order('sort asc,id desc')->select();
  32. $menu = [];
  33. $i = 0;
  34. //类型判断
  35. foreach ($official_menu as $value) {
  36. $i++;
  37. $menu[$i]['id'] = $value['id'];
  38. $menu[$i]['parent_id'] = $value['parent_id'];
  39. $menu[$i]['type'] = $value['types'];
  40. $menu[$i]['name'] = $value['name'];
  41. switch ($value['types']) {
  42. case 'click':
  43. $menu[$i]['key'] = $value['key'];
  44. break;
  45. case 'miniprogram':
  46. $menu[$i]['url'] = $value['url'];
  47. $menu[$i]['appid'] = $appid;
  48. $menu[$i]['pagepath'] = $value['pagepath'];
  49. break;
  50. default:
  51. $menu[$i]['url'] = $value['url'];
  52. break;
  53. }
  54. }
  55. //重新排序
  56. $mpmenu = [];
  57. $i = 0;
  58. foreach ($menu as $value) {
  59. if($value['parent_id'] == 0){
  60. $val = $value;
  61. unset($val['id']);
  62. unset($val['parent_id']);
  63. $mpmenu[$i] = $val;
  64. foreach ($menu as $k => $v) {
  65. $values = $v;
  66. unset($values['id']);
  67. unset($values['parent_id']);
  68. if($v['parent_id'] == $value['id']){
  69. $mpmenu[$i]['sub_button'][] = $values;
  70. }
  71. }
  72. $i++;
  73. }
  74. }
  75. return $mpmenu;
  76. }
  77. }