/**
* 自定义创建菜单栏
* */
public function createMenusOp()
{
if (request()->isAjax() && request()->isPost()) {
$openid = input('post.openid');
if ($openid == '') {
return jsons(['status' => '0', 'msg' => '操作异常']);
}
$custom_menu = model('custom_menu')->where(['open_id' => $openid, 'parent_id' => '0'])->order('id abs')->select()->toArray();
$result = [];
$param = model('parameter')->getval();
$this->grant = new grant($param->token, $param->encodingAesKey, $param->appid, $param->appsecret);
$getctoken = model('parameter')->getctoken();
if ($getctoken['code'] == '0') {
return jsons(['status' => '0', 'msg' => $getctoken['msg']]);
} else {
$component_access_token = $getctoken['component_access_token'];
}
$gettoken = $this->grant->gettoken($openid, $component_access_token, $this->userinfo['uid']);
if ($gettoken['code'] == '0') {
return jsons(['status' => '0', 'msg' => $gettoken['msg']]);
} else {
$access_token = $gettoken['access_token'];
}
$del = $this->grant->custommenu($access_token, '', 2);
foreach ($custom_menu as $key => $value) {
$data = model('custom_menu')->where(['open_id' => $openid, 'parent_id' => $value['id']])->select()->toArray();
if (empty($data)) {
$submenu = model('submenu')->where(['open_id' => $openid, 'key' => $value['key']])->field('type,content,media_id')->find();
if ($submenu) {
switch ($submenu['type']) {
case 'view':
$result['button'][$key]['name'] = $value['name'];
$result['button'][$key]['type'] = $submenu['type'];
$result['button'][$key]['url'] = $submenu['content'];
break;
case 'text':
$result['button'][$key]['name'] = $value['name'];
$result['button'][$key]['type'] = 'click';
$result['button'][$key]['key'] = $value['key'];
break;
case 'image':
$result['button'][$key]['name'] = $value['name'];
$result['button'][$key]['type'] = 'media_id';
$result['button'][$key]['media_id'] = $submenu['media_id'];
break;
case 'news':
$submenu = model('management')->where(['open_id' => $openid, 'id' => $submenu['content']])->field('content,media_id')->find();
$result['button'][$key]['name'] = $value['name'];
$result['button'][$key]['type'] = 'view_limited';
$result['button'][$key]['media_id'] = $submenu['media_id'];
break;
default:
break;
}
} else {
$result['button'][$key]['name'] = $value['name'];
$result['button'][$key]['key'] = $value['key'];
$result['button'][$key]['type'] = 'click';
}
} else {
$result['button'][]['name'] = $value['name'];
foreach ($data as $k => $v) {
$submenu = model('submenu')->where(['open_id' => $openid, 'key' => $v['key']])->field('type,content,media_id')->find();
if ($submenu) {
switch ($submenu['type']) {
case 'view':
$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
$result['button'][$key]['sub_button'][$k]['type'] = $submenu['type'];
$result['button'][$key]['sub_button'][$k]['url'] = $submenu['content'];
break;
case 'text':
$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
$result['button'][$key]['sub_button'][$k]['type'] = 'click';
$result['button'][$key]['sub_button'][$k]['key'] = $v['key'];
break;
case 'image':
$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
$result['button'][$key]['sub_button'][$k]['type'] = 'media_id';
$result['button'][$key]['sub_button'][$k]['media_id'] = $submenu['media_id'];
break;
case 'news':
$submenu = model('management')->where(['open_id' => $openid, 'id' => $submenu['content']])->field('content,media_id')->find();
$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
$result['button'][$key]['sub_button'][$k]['type'] = 'view_limited';
$result['button'][$key]['sub_button'][$k]['media_id'] = $submenu['media_id'];
break;
default:
break;
}
}
}
}
}
$dataType = json_decode($this->grant->custommenu($access_token, $result), true);
if (!in_array('ok', $dataType)) {
return jsons(['status' => '0', 'msg' => '保存失败']);
}
return jsons(['status' => '1', 'msg' => '保存成功']);
}
}
/**
* 添加顶级菜单
*/
public function addmenu_ziOp()
{
if (request()->isPost() && request()->isAjax()) {
$open_id = input('open_id');
$menuName = input('menuName'); //菜单名字
if (strlen($menuName) > 16) {
return jsons(['status' => '0', 'msg' => '菜单标题过长']);
}
$need = input('need'); //是否有子菜单
$parent_id = input('parent_id');
$key = input('name_key');
$order = input('order');
$type = 'click';
$id = model('wx_authorization_information')->where(['uid' => $this->userinfo['uid'], 'user_name' => $open_id])->value('id');
if ($id == '') {
return jsons(['status' => '0', 'msg' => '参数异常']);
}
$customMenuId = model('custom_menu')->where(['uid' => $this->userinfo['uid'], 'open_id' => $open_id, 'key' => $key])->value('id');
if ($customMenuId == '') {
$customMenu_array = [
'uid' => $this->userinfo['uid'],
'name' => $menuName,
'type' => $type,
'open_id' => $open_id,
'parent_id' => '0',
'key' => $key,
'order_type' => $order,
'switch' => 9,
];
$customMenu = model('custom_menu')->allowField(true)->isUpdate(false)->save($customMenu_array);
if ($customMenu === false) {
return jsons(['status' => '0', 'msg' => '保存失败']);
}
} else {
$customMenu_array = [
'name' => $menuName,
'type' => $type,
'switch' => 9,
];
$customMenu = model('custom_menu')->allowField(true)->isUpdate(false)->save($customMenu_array, ['key' => $key]);
if ($customMenu === false) {
return jsons(['status' => '0', 'msg' => '保存失败']);
}
}
$submenu = model('submenu')->where(['key' => $key])->field('id,type,media_id,content')->find();
if (!empty($submenu)) {
if ($submenu['type'] == 'image') {
$param = model('parameter')->getval();
$this->grant = new grant($param->token, $param->encodingAesKey, $param->appid, $param->appsecret);
$getctoken = model('parameter')->getctoken();
if ($getctoken['code'] == '0') {
return jsons(['status' => '0', 'msg' => $getctoken['msg']]);
} else {
$component_access_token = $getctoken['component_access_token'];
}
$gettoken = $this->grant->gettoken($open_id, $com