MemberOfficialMenu.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. * 微信认证权限表 Table<ai_member_official_menu>
  8. */
  9. namespace app\common\model;
  10. use think\Model;
  11. use category\Tree;
  12. class MemberOfficialMenu extends Model{
  13. protected $pk = 'id';
  14. //添加或编辑
  15. public function edit($param){
  16. $data['name'] = $param['name'];
  17. $data['sort'] = $param['sort'];
  18. $data['update_time'] = time();
  19. if(isset($param['id'])){
  20. return self::update($data,['id'=>(int)$param['id']]);
  21. }else{
  22. $data['parent_id'] = $param['parent_id'];
  23. return self::insert($data);
  24. }
  25. }
  26. /**
  27. * 菜单修正
  28. * @param [type] $data
  29. * @return void
  30. */
  31. public static function official_menu($appid){
  32. $official_menu = self::where(['member_miniapp_id' => $appid])->order('sort asc,id desc')->select();
  33. $menu = [];
  34. $i = 0;
  35. //类型判断
  36. foreach ($official_menu as $value) {
  37. $i++;
  38. $menu[$i]['id'] = $value['id'];
  39. $menu[$i]['parent_id'] = $value['parent_id'];
  40. $menu[$i]['type'] = $value['types'];
  41. $menu[$i]['name'] = $value['name'];
  42. switch ($value['types']) {
  43. case 'click':
  44. $menu[$i]['key'] = $value['key'];
  45. break;
  46. case 'miniprogram':
  47. $menu[$i]['url'] = $value['url'];
  48. $menu[$i]['appid'] = $appid;
  49. $menu[$i]['pagepath'] = $value['pagepath'];
  50. break;
  51. default:
  52. $menu[$i]['url'] = $value['url'];
  53. break;
  54. }
  55. }
  56. //重新排序
  57. $mpmenu = [];
  58. $i = 0;
  59. foreach ($menu as $value) {
  60. if($value['parent_id'] == 0){
  61. $val = $value;
  62. unset($val['id']);
  63. unset($val['parent_id']);
  64. $mpmenu[$i] = $val;
  65. foreach ($menu as $k => $v) {
  66. $values = $v;
  67. unset($values['id']);
  68. unset($values['parent_id']);
  69. if($v['parent_id'] == $value['id']){
  70. $mpmenu[$i]['sub_button'][] = $values;
  71. }
  72. }
  73. $i++;
  74. }
  75. }
  76. return $mpmenu;
  77. }
  78. }