dggzichahu/application/admin/logic/MenuDecorateLogic.php

288 lines
8.0 KiB
PHP
Executable File

<?php
// +----------------------------------------------------------------------
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | Author: HcyShop-kiki
// +----------------------------------------------------------------------
namespace app\admin\logic;
use app\common\model\Menu_;
use app\common\server\UrlServer;
use think\Db;
class MenuDecorateLogic{
/*
* 获取列表
*/
public static function lists($get)
{
$type = $get['type'] ?? 1;
$where[] = ['del','=',0];
$where[] = ['decorate_type', '=', $type];
$count = Db::name('menu_decorate')->where($where)->count();
$lists = Db::name('menu_decorate')
->where($where)
->page($get['page'], $get['limit'])
->order('id desc')
->select();
foreach ($lists as &$item){
$item['image'] = UrlServer::getFileUrl($item['image']);
if($item['link_type'] == 1){
$content = Menu_::getMenuContent($type,$item['link_address']);
$item['link_address'] = $content['link'] ?? '';
}
}
return ['count' => $count, 'lists' => $lists];
}
// 首页
public static function indexList($get)
{
$where[] = ['del','=',0];
$where[] = ['decorate_type', '=', 1];
$count = Db::name('menu_decorate')->where($where)->count();
$lists = Db::name('menu_decorate')
->where($where)
->page($get['page'], $get['limit'])
->order('id desc')
->select();
foreach ($lists as &$item){
$item['image'] = UrlServer::getFileUrl($item['image']);
if($item['link_type'] == 1){
$content = Menu_::getMenuContent(1,$item['link_address']);
$item['link_address'] = $content['link'] ?? '';
}
}
return ['count' => $count, 'lists' => $lists];
}
// 首页
public static function centerList($get)
{
$where[] = ['del','=',0];
$where[] = ['decorate_type', '=', 2];
$count = Db::name('menu_decorate')->where($where)->count();
$lists = Db::name('menu_decorate')
->where($where)
->page($get['page'], $get['limit'])
->order('id desc')
->select();
foreach ($lists as &$item){
$item['image'] = UrlServer::getFileUrl($item['image']);
if($item['link_type'] == 1){
$content = Menu_::getMenuContent(1,$item['link_address']);
$item['link_address'] = $content['link'] ?? '';
}
}
return ['count' => $count, 'lists' => $lists];
}
/*
* 新增
*/
public static function add($post){
$link_address = $post['menu'];
if($post['link_type'] == 2){
$link_address = $post['url'];
}
$time = time(); //当前时间截
$data = [
'name' => $post['name'],
'image' => $post['image'],
'decorate_type' => $post['decorate_type'],
'link_type' => $post['link_type'],
'link_address' => $link_address,
'sort' => $post['sort']?:0,
'update_time' => $time,
'create_time' => $time,
'is_show' => $post['is_show'],
];
return Db::name('menu_decorate')->insert($data);
}
/*
* 编辑菜单
*/
public static function edit($post){
$link_address = $post['menu'];
if($post['link_type'] == 2){
$link_address = $post['url'];
}
$time = time(); //当前时间截
$data = [
'name' => $post['name'],
'image' => $post['image'],
'decorate_type' => $post['decorate_type'],
'link_type' => $post['link_type'],
'link_address' => $link_address,
'sort' => $post['sort']?:0,
'update_time' => $time,
'is_show' => $post['is_show'],
];
return Db::name('menu_decorate')->where(['id'=>$post['id']])->update($data);
}
/*
* 删除菜单
*/
public static function del($id){
$data= [
'del' =>1,
'update_time' =>time()
];
return Db::name('menu_decorate')->where(['id'=>$id])->update($data);
}
/*
* 批量删除菜单
*/
public static function batchDelMenuDecorate($ids){
$data = [
'del' => 1,
'update_time' => time()
];
return Db::name('menu_decorate')->where(['id'=>$ids])->update($data);
}
/*
* 获取菜单
*/
public static function getMenuDecorate($id){
$detail = Db::name('menu_decorate')->where(['id'=>$id])->find();
$detail['abs_image'] = UrlServer::getFileUrl($detail['image']);
return $detail;
}
/**
* 添加 - 底部导航
*/
public static function addNavigation($post)
{
if(empty($post['name'])) {
return [
'flag' => false,
'msg' => '导航名称不能为空'
];
}
$count = Db::name('dev_navigation')->where([
['del', '=', 0],
['name', '=', trim($post['name']) ]
])->count();
if($count) {
return [
'flag' => false,
'msg' => '导航名称已存在'
];
}
$data = [
'name' => trim($post['name']),
'selected_icon' => trim($post['selected_icon']),
'un_selected_icon' => trim($post['un_selected_icon']),
'create_time' => time(),
'del' => 0
];
$result = Db::name('dev_navigation')->insert($data);
if($result) {
return [
'flag' => true,
'msg' => '添加成功'
];
}else{
return [
'flag' => false,
'msg' => '添加失败'
];
}
}
/**
* 底部导航 - 列表
*/
public static function bottomNavigation($get)
{
$lists = Db::name('dev_navigation')
->where('del', 0)
->page($get['page'], $get['limit'])
->order('id', 'desc')
->select();
$count = Db::name('dev_navigation')->count();
foreach($lists as &$item) {
$item['selected_icon'] = UrlServer::getFileUrl($item['selected_icon']);
$item['un_selected_icon'] = UrlServer::getFileUrl($item['un_selected_icon']);
}
$data = [
'count' => $count,
'lists' => $lists
];
return $data;
}
/**
* 底部导航 - 详情
*/
public static function getNavigation($id)
{
$navigation = Db::name('dev_navigation')->where('id', $id)->find();
$navigation['selected_icon'] = $navigation['selected_icon'] ? UrlServer::getFileUrl($navigation['selected_icon']) : '';
$navigation['un_selected_icon'] = $navigation['un_selected_icon'] ? UrlServer::getFileUrl($navigation['un_selected_icon']) : '';
return $navigation;
}
/**
* 底部导航 - 编辑
*/
public static function editNavigation($post)
{
if(empty($post['name'])) {
return [
'flag' => false,
'msg' => '导航名称不能为空'
];
}
$count = Db::name('dev_navigation')->where([
['del', '=', 0],
['name', '=', trim($post['name']) ],
['id', '<>', $post['id']]
])->count();
if($count) {
return [
'flag' => false,
'msg' => '导航名称已存在'
];
}
$updateData = [
'name' => trim($post['name']),
'selected_icon' => trim($post['selected_icon']),
'un_selected_icon' => trim($post['un_selected_icon']),
'update_time' => time()
];
$result = Db::name('dev_navigation')->where('id', $post['id'])->update($updateData);
if($result) {
return [
'flag' => true,
'msg' => '编辑成功'
];
}else{
return [
'flag' => false,
'msg' => '编辑失败'
];
}
}
/**
* 删除 - 底部导航
*/
public static function delNavigation($id)
{
return Db::name('dev_navigation')->where('id', $id)->update([
'del' => 1,
'update_time' => time()
]);
}
}