121 lines
3.7 KiB
PHP
121 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Models\WechatMenu;
|
|
use Illuminate\Http\Request;
|
|
use Validator;
|
|
|
|
class WechatController extends Controller
|
|
{
|
|
|
|
public function menus(Request $request)
|
|
{
|
|
|
|
$name = $request->name;
|
|
|
|
$menus = WechatMenu::when($name, function ($query) use ($name) {
|
|
$query->where('name', 'like', "%{$name}%");
|
|
})->orderBy('sort', 'asc')->get();
|
|
$genMenus = WechatMenu::where('parent_id', 0)->orderBy('sort', 'asc')->get();
|
|
return view('Admin::wechat.menus', compact('menus', 'genMenus'));
|
|
}
|
|
|
|
/**
|
|
* 发布菜单到微信
|
|
* @Author:<C.Jason>
|
|
* @Date:2018-11-15T16:05:55+0800
|
|
* @return [type] [description]
|
|
*/
|
|
public function publish()
|
|
{
|
|
$buttons = WechatMenu::getPublishArray();
|
|
|
|
$app = app('wechat.official_account');
|
|
$result = $app->menu->create($buttons);
|
|
|
|
if ($result->errcode == 0) {
|
|
return $this->success();
|
|
} else {
|
|
return $this->error($result->errmsg);
|
|
}
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$topMenus = WechatMenu::where('parent_id', 0)->get();
|
|
return view('Admin::wechat.create', compact('topMenus'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:5',
|
|
'parent_id' => 'required',
|
|
'type' => 'required|in:view,click,miniprogram',
|
|
'value' => 'required',
|
|
], [
|
|
'name.required' => '菜单名称必须填写',
|
|
'name.min' => '菜单名称最小:min位',
|
|
'name.max' => '菜单名称最大:max位',
|
|
'parent_id.required' => '上级菜单必须选择',
|
|
'type.required' => '菜单类型必须选择',
|
|
'type.in' => '菜单类型选择有误',
|
|
'value.required' => '菜单键值必须填写',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
if (WechatMenu::create($request->all())) {
|
|
return $this->success('', 'close');
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
}
|
|
|
|
public function edit(WechatMenu $menu)
|
|
{
|
|
$topMenus = WechatMenu::where('parent_id', 0)->where('id', '<>', $menu->id)->get();
|
|
return view('Admin::wechat.edit', compact('topMenus', 'menu'));
|
|
}
|
|
|
|
public function update(Request $request, WechatMenu $menu)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:5',
|
|
'parent_id' => 'required',
|
|
'type' => 'required|in:view,click,miniprogram',
|
|
'value' => 'required',
|
|
], [
|
|
'name.required' => '菜单名称必须填写',
|
|
'name.min' => '菜单名称最小:min位',
|
|
'name.max' => '菜单名称最大:max位',
|
|
'parent_id.required' => '上级菜单必须选择',
|
|
'type.required' => '菜单类型必须选择',
|
|
'type.in' => '菜单类型选择有误',
|
|
'value.required' => '菜单键值必须填写',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
if ($menu->update($request->all())) {
|
|
return $this->success('编辑成功', 'close');
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
}
|
|
|
|
public function destroy(WechatMenu $menu)
|
|
{
|
|
if ($menu->delete()) {
|
|
return $this->success();
|
|
} else {
|
|
return $this->error();
|
|
}
|
|
}
|
|
}
|