123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?php
- namespace huoMpMsg\controller;
- use huolib\constant\WeiXinMenuConst;
- use huomp\model\common\CommonModel;
- use huoMpMsg\model\MpMenuModel;
- class MpMenuLogic extends CommonModel {
-
- public function getMenu($conf_id) {
- $_map = [
- 'conf_id' => $conf_id,
- 'is_menu' => WeiXinMenuConst::IS_MENU_2,
- ];
- $_model = new MpMenuModel();
- $_order = 'list_order DESC';
- $_data = $_model->where($_map)->order($_order)->select();
- if (is_object($_data)) {
- $_data = $_data->toArray();
- }
- if (empty($_data)) {
- return [];
- }
- $_button = [];
- foreach ($_data as $_k => $_v) {
- if (empty($_v['parent_id'])) {
- $_button[$_v['id']] = empty($_button[$_v['id']]) ? $_v : array_merge($_button[$_v['id']], $_v);
- } else {
- $_button[$_v['parent_id']]['sub_button'][] = $_v;
- }
- }
- return $_button;
- }
-
- public function getMenuData($conf_id) {
- $_data = $this->getMenu($conf_id);
- $_button = [];
- foreach ($_data as $_k => $_v) {
- $_data = [];
- $_data['name'] = $_v['name'];
- if (empty($_v['sub_button'])) {
- $_data['type'] = $_v['type'];
- if (WeiXinMenuConst::MENU_TYPE_CLICK == $_data['type']) {
- $_data['key'] = $_v['key'];
- } elseif (WeiXinMenuConst::MENU_TYPE_VIEW == $_data['type']) {
- $_data['url'] = $_v['url'];
- } elseif (WeiXinMenuConst::MENU_TYPE_MP == $_data['type']) {
- $_data['appid'] = $_v['mini_app_id'];
- $_data['url'] = $_v['url'];
- $_data['pagepath'] = $_v['pagepath'];
- }
- } else {
- $_data['sub_button'] = [];
- foreach ($_v['sub_button'] as $_k2 => $_v2) {
- $_data2 = [];
- $_data2['name'] = $_v2['name'];
- $_data2['type'] = $_v2['type'];
- if (WeiXinMenuConst::MENU_TYPE_CLICK == $_data2['type']) {
- $_data2['key'] = $_v2['key'];
- } elseif (WeiXinMenuConst::MENU_TYPE_VIEW == $_data2['type']) {
- $_data2['url'] = $_v2['url'];
- } elseif (WeiXinMenuConst::MENU_TYPE_MP == $_data2['type']) {
- $_data2['appid'] = $_v2['mini_app_id'];
- $_data2['url'] = $_v2['url'];
- $_data2['pagepath'] = $_v2['pagepath'];
- }
- $_data['sub_button'][] = $_data2;
- }
- }
- $_button['button'][] = $_data;
- }
- return $_button;
- }
-
- public function getFirstLevel($conf_id) {
- $_map = [
- 'conf_id' => $conf_id,
- 'is_menu' => WeiXinMenuConst::IS_MENU_2,
- 'parent_id' => 0,
- ];
- $_arr = (new MpMenuModel())->where($_map)->column('name', 'id');
- return $_arr;
- }
-
- public function getMenuCount($conf_id, $parent_id = 0) {
- $_map = [
- 'conf_id' => $conf_id,
- 'is_menu' => WeiXinMenuConst::IS_MENU_2,
- 'parent_id' => $parent_id,
- ];
- return (new MpMenuModel())->where($_map)->count('id');
- }
-
- public function getSubMenuCount($parent_id = 0) {
- $_map = [
- 'is_menu' => WeiXinMenuConst::IS_MENU_2,
- 'parent_id' => $parent_id,
- ];
- return (new MpMenuModel())->where($_map)->count('id');
- }
-
- public function getKeyList($conf_id, $_param = [], $page = '1,10') {
- $_rdata = ['count' => 0, 'list' => []];
- $_map = [
- 'conf_id' => $conf_id,
- 'is_menu' => WeiXinMenuConst::IS_MENU_1,
- 'key' => ['neq', '']
- ];
- if (!empty($_param['key'])) {
- $_map['key'] = $_param['key'];
- }
- $_model = new MpMenuModel();
- $_count = $_model->where($_map)->count('id');
- if (empty($_count)) {
- return $_rdata;
- }
- $_order = 'list_order DESC';
- $_data = $_model->where($_map)->order($_order)->page($page)->select();
- if (is_object($_data)) {
- $_data = $_data->toArray();
- }
- if (empty($_data)) {
- return $_rdata;
- }
- $_rdata['count'] = $_count;
- $_rdata['list'] = $_data;
- return $_rdata;
- }
- }
|