123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?php
- /**
- * MpMenuLogic.php UTF-8
- * huosdk_mini_program
- *
- * @date : 2018/9/26 15:20
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HuoMp 1.0
- */
- namespace huoMpMsg\controller;
- use huolib\constant\WeiXinMenuConst;
- use huomp\model\common\CommonModel;
- use huoMpMsg\model\MpMenuModel;
- class MpMenuLogic extends CommonModel {
- /**
- * 获取菜单列表
- *
- * @param int $conf_id
- *
- * @return array
- */
- 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;
- }
- /**
- * 获取菜单数据用于提交微信
- *
- * @param $conf_id
- *
- * @return array
- */
- 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;
- }
- /**
- * 获取一级菜单idname
- *
- * @param $conf_id
- *
- * @return array
- */
- 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;
- }
- /**
- * 获取菜单个数
- *
- * @param $conf_id
- * @param int $parent_id
- *
- * @return int|string
- */
- 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');
- }
- /**
- * 获取一级菜单的子菜单数
- *
- * @param int $parent_id
- *
- * @return int|string
- */
- public function getSubMenuCount($parent_id = 0) {
- $_map = [
- 'is_menu' => WeiXinMenuConst::IS_MENU_2,
- 'parent_id' => $parent_id,
- ];
- return (new MpMenuModel())->where($_map)->count('id');
- }
- /**
- * 获取配置关键词列表
- *
- * @param int $conf_id
- *
- * @param array $_param
- * @param string $page
- *
- * @return array
- */
- 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;
- }
- }
|