提交 d535e775 编写于 作者: D devil_gong

admin

上级 baf80871
<?php
namespace app\admin\controller;
use app\service\AnswerService;
/**
* 问答管理
* @author Devil
......@@ -31,7 +32,7 @@ class Answer extends Common
}
/**
* [Index 问答列表]
* 问答列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -40,133 +41,47 @@ class Answer extends Common
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 模型对象
$m = db('Answer');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $param,
'url' => url('Admin/Answer/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$field = '*';
$list = $this->SetDataHandle($m->where($where)->field($field)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select());
$params = input();
// 分页
$number = 10;
// 条件
$where = AnswerService::AnswerListWhere($params);
// 获取总数
$total = AnswerService::AnswerTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/order/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'limit_start' => $page->GetPageStarNumber(),
'limit_number' => $number,
'where' => $where,
);
$data = AnswerService::AnswerList($data_params);
$this->assign('data_list', $data['data']);
// 状态
$this->assign('common_is_show_list', lang('common_is_show_list'));
// 参数
$this->assign('param', $param);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 数据列表
$this->assign('list', $list);
// Excel地址
$this->assign('excel_url', url('Admin/Answer/ExcelExport', $param));
$this->display('Index');
}
/**
* [SetDataHandle 数据处理]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-29T21:27:15+0800
* @param [array] $data [问答数据]
* @return [array] [处理好的数据]
*/
private function SetDataHandle($data)
{
if(!empty($data))
{
$common_is_show_list = lang('common_is_show_list');
$common_gender_list = lang('common_gender_list');
$u = db('User');
foreach($data as &$v)
{
// 用户信息
$user = $u->where(['id'=>$v['user_id']])->field('username,nickname,mobile,gender,avatar')->find();
$v['username'] = empty($user['username']) ? '' : $user['username'];
$v['nickname'] = empty($user['nickname']) ? '' : $user['nickname'];
$v['mobile'] = empty($user['mobile']) ? '' : $user['mobile'];
$v['avatar'] = empty($user['avatar']) ? '' : $user['avatar'];
$v['gender_text'] = isset($user['gender']) ? $common_gender_list[$user['gender']]['name'] : '';
// 是否显示
$v['is_show_text'] = $common_is_show_list[$v['is_show']]['name'];
// 创建时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
// 更新时间
$v['upd_time'] = date('Y-m-d H:i:s', $v['upd_time']);
}
}
return $data;
$this->assign('params', $params);
return $this->fetch();
}
/**
* [GetIndexWhere 问答列表条件]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
*/
private function GetIndexWhere()
{
$where = array('is_delete_time'=>0);
// 模糊
if(!empty($_REQUEST['keyword']))
{
$like_keyword = array('like', '%'.I('keyword').'%');
$where[] = array(
'name' => $like_keyword,
'tel' => $like_keyword,
'content' => $like_keyword,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(I('is_show', -1) > -1)
{
$where['is_show'] = intval(I('is_show', 0));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
}
/**
* [Delete 问答删除]
* 问答删除
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -175,87 +90,41 @@ class Answer extends Common
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 参数处理
$id = I('id');
// 删除数据
if(!empty($id))
{
// 问答模型
$m = db('Answer');
// 问答是否存在
$merchant = $m->where(array('id'=>$id))->getField('id');
if(empty($merchant))
{
$this->ajaxReturn('资源不存在或已被删除', -2);
}
// 删除问答
if($m->where(array('id'=>$id))->save(['is_delete_time'=>time()]) !== false)
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn('参数错误', -1);
}
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['user_type'] = 'admin';
$ret = AnswerService::AnswerDelete($params);
return json($ret);
}
/**
* [Save 问答回复处理]
* 问答回复处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-03-28T15:07:17+0800
*/
public function Save()
public function Reply()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 参数处理
$id = I('id');
$reply = I('reply');
if(empty($id))
{
$this->ajaxReturn('参数错误', -1);
}
if(empty($reply))
{
$this->ajaxReturn('回复内容格式 2~230 个字符', -2);
}
// 问答模型
$m = db('Answer');
// 问答是否存在
$temp = $m->where(array('id'=>$id))->field('id')->find();
if(empty($temp))
{
$this->ajaxReturn('资源不存在或已被删除', -2);
}
// 更新问答
$data = array('reply'=>$reply, 'is_reply'=>1, 'upd_time'=>time());
if($m->where(array('id'=>$id))->save($data) !== false)
{
$this->ajaxReturn('操作成功');
} else {
$this->ajaxReturn('操作失败', -100);
}
// 开始处理
$params = input();
$ret = AnswerService::AnswerReply($params);
return json($ret);
}
/**
* [StatusUpdate 状态更新]
* 状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -263,19 +132,16 @@ class Answer extends Common
*/
public function StatusUpdate()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
// 是否ajax请求
if(!IS_AJAX)
{
$this->ajaxReturn('参数错误', -1);
return $this->error('非法访问');
}
// 数据更新
if(db('Answer')->where(array('id'=>I('id')))->save(array('is_show'=>I('state'))))
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
// 开始处理
$params = input();
$ret = AnswerService::AnswerStatusUpdate($params);
return json($ret);
}
}
?>
\ No newline at end of file
......@@ -147,7 +147,12 @@ class Common extends Controller
// 角色组权限列表校验
if(!in_array(strtolower(request()->controller().'_'.request()->action()), $this->power))
{
return $this->error('无权限');
if(IS_AJAX)
{
exit(json_encode(DataReturn('无权限', -1000)));
} else {
return $this->error('无权限');
}
}
}
}
......
<?php
namespace app\admin\controller;
use Service\ResourcesService;
use app\service\CustomViewService;
/**
* 自定义页面管理
......@@ -42,26 +41,37 @@ class CustomView extends Common
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 模型对象
$m = db('CustomView');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $param,
'url' => url('Admin/CustomView/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$list = $this->SetDataHandle($m->where($where)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select());
$params = input();
// 分页
$number = 10;
// 条件
$where = CustomViewService::CustomViewListWhere($params);
// 获取总数
$total = CustomViewService::CustomViewTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/customview/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'limit_start' => $page->GetPageStarNumber(),
'limit_number' => $number,
'where' => $where,
'field' => '*',
);
$data = CustomViewService::CustomViewList($data_params);
$this->assign('data_list', $data['data']);
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
......@@ -76,90 +86,8 @@ class CustomView extends Common
$this->assign('common_is_full_screen_list', lang('common_is_full_screen_list'));
// 参数
$this->assign('param', $param);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 数据列表
$this->assign('list', $list);
$this->display('Index');
}
/**
* [SetDataHandle 数据处理]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-29T21:27:15+0800
* @param [array] $data [文章数据]
* @return [array] [处理好的数据]
*/
private function SetDataHandle($data)
{
if(!empty($data))
{
foreach($data as $k=>$v)
{
// 时间
$data[$k]['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$data[$k]['upd_time'] = date('Y-m-d H:i:s', $v['upd_time']);
// 是否启用
$data[$k]['is_enable_text'] = lang('common_is_enable_list')[$v['is_enable']]['name'];
}
}
return $data;
}
/**
* [GetIndexWhere 文章列表条件]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
*/
private function GetIndexWhere()
{
$where = array();
// 模糊
if(!empty($_REQUEST['keyword']))
{
$where[] = array(
'title' => array('like', '%'.I('keyword').'%'),
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(I('is_enable', -1) > -1)
{
$where['is_enable'] = intval(I('is_enable', 1));
}
if(I('is_header', -1) > -1)
{
$where['is_header'] = intval(I('is_header'));
}
if(I('is_footer', -1) > -1)
{
$where['is_footer'] = intval(I('is_footer'));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
$this->assign('params', $params);
return $this->fetch();
}
/**
......@@ -171,19 +99,22 @@ class CustomView extends Common
*/
public function SaveInfo()
{
// 参数
$params = input();
// 数据
if(empty($_REQUEST['id']))
if(!empty($params['id']))
{
$data = array();
} else {
$data = db('CustomView')->find(I('id'));
if(!empty($data['content']))
{
// 静态资源地址处理
$data['content'] = ResourcesService::ContentStaticReplace($data['content'], 'get');
}
// 获取列表
$data_params = array(
'limit_start' => 0,
'limit_number' => 1,
'where' => ['id'=>intval($params['id'])],
'field' => '*',
);
$data = CustomViewService::CustomViewList($data_params);
$this->assign('data', empty($data['data'][0]) ? [] : $data['data'][0]);
}
$this->assign('data', $data);
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
......@@ -197,7 +128,7 @@ class CustomView extends Common
// 是否满屏
$this->assign('common_is_full_screen_list', lang('common_is_full_screen_list'));
$this->display('SaveInfo');
return $this->fetch();
}
/**
......@@ -210,117 +141,15 @@ class CustomView extends Common
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 添加
if(empty($_POST['id']))
{
$this->Add();
// 编辑
} else {
$this->Edit();
}
}
/**
* [Add 添加]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-18T16:20:59+0800
*/
private function Add()
{
// 模型
$m = D('CustomView');
// 数据自动校验
if($m->create($_POST, 1))
{
// 额外数据处理
$m->add_time = time();
$m->upd_time = time();
$m->title = I('title');
// 静态资源地址处理
$m->content = ResourcesService::ContentStaticReplace($m->content, 'add');
// 正则匹配文章图片
$temp_image = $this->MatchContentImage($m->content);
$m->image = json_encode($temp_image);
$m->image_count = count($temp_image);
// 数据添加
if($m->add())
{
$this->ajaxReturn('新增成功');
} else {
$this->ajaxReturn('新增失败', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
}
/**
* [Edit 编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-17T22:13:40+0800
*/
private function Edit()
{
// 模型
$m = D('CustomView');
// 数据自动校验
if($m->create($_POST, 2))
{
// 静态资源地址处理
$m->content = ResourcesService::ContentStaticReplace($m->content, 'add');
// 正则匹配文章图片
$temp_image = $this->MatchContentImage($m->content);
$m->image = json_encode($temp_image);
$m->image_count = count($temp_image);
$m->upd_time = time();
$m->title = I('title');
// 数据更新
if($m->where(array('id'=>I('id')))->save())
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
}
/**
* [MatchContentImage 正则匹配文章图片]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-22T18:06:53+0800
* @param [string] $content [文章内容]
* @return [array] [文章图片数组(一维)]
*/
private function MatchContentImage($content)
{
if(!empty($content))
{
$pattern = '/<img.*?src=[\'|\"](\/Public\/Upload\/customview\/image\/.*?[\.gif|\.jpg|\.jpeg|\.png|\.bmp])[\'|\"].*?[\/]?>/';
preg_match_all($pattern, $content, $match);
return empty($match[1]) ? array() : $match[1];
}
return array();
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$ret = CustomViewService::CustomViewSave($params);
return json($ret);
}
/**
......@@ -333,24 +162,16 @@ class CustomView extends Common
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除数据
if(!empty($_POST['id']))
{
// 更新
if(db('CustomView')->delete(I('id')))
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn('参数错误', -1);
}
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['user_type'] = 'admin';
$ret = CustomViewService::CustomViewDelete($params);
return json($ret);
}
/**
......@@ -362,20 +183,16 @@ class CustomView extends Common
*/
public function StatusUpdate()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
{
$this->ajaxReturn('参数错误', -1);
}
$field = i('field', 'is_enable');
// 数据更新
if(db('CustomView')->where(['id'=>I('id')])->save([$field=>intval(I('state'))]))
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$ret = CustomViewService::CustomViewStatusUpdate($params);
return json($ret);
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
use app\service\LinkService;
/**
* 友情链接
* @author Devil
......@@ -40,8 +41,8 @@ class Link extends Common
public function Index()
{
// 获取导航列表
$list = db('Link')->field(array('id', 'name', 'url', 'describe', 'sort', 'is_enable', 'is_new_window_open'))->order('sort')->select();
$this->assign('list', $list);
$data = LinkService::LinkList();
$this->assign('data_list', $data['data']);
// 是否新窗口打开
$this->assign('common_is_new_window_open_list', lang('common_is_new_window_open_list'));
......@@ -49,7 +50,7 @@ class Link extends Common
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
$this->display('Index');
return $this->fetch();
}
/**
......@@ -62,57 +63,15 @@ class Link extends Common
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// id为空则表示是新增
$m = D('Link');
// 公共额外数据处理
$m->sort = intval(I('sort'));
$m->describe = I('describe');
// 添加
if(empty($_POST['id']))
{
if($m->create($_POST, 1))
{
// 额外数据处理
$m->add_time = time();
$m->name = I('name');
$m->describe = I('describe');
// 写入数据库
if($m->add())
{
$this->ajaxReturn('新增成功');
} else {
$this->ajaxReturn('新增失败', -100);
}
}
} else {
// 编辑
if($m->create($_POST, 2))
{
// 额外数据处理
$m->name = I('name');
$m->describe = I('describe');
// 移除 id
unset($m->id);
// 更新数据库
if($m->where(array('id'=>I('id')))->save())
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
}
}
$this->ajaxReturn($m->getError(), -1);
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$ret = LinkService::LinkSave($params);
return json($ret);
}
/**
......@@ -124,23 +83,17 @@ class Link extends Common
*/
public function Delete()
{
if(!IS_AJAX)
{
$this->error('非法访问');
}
$m = D('Link');
if($m->create($_POST, 4))
{
if($m->delete($id))
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['user_type'] = 'admin';
$ret = LinkService::LinkDelete($params);
return json($ret);
}
/**
......@@ -152,19 +105,16 @@ class Link extends Common
*/
public function StatusUpdate()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
{
$this->ajaxReturn('参数错误', -1);
}
// 数据更新
if(db('Link')->where(array('id'=>I('id')))->save(array('is_enable'=>I('state'))))
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$ret = LinkService::LinkStatusUpdate($params);
return json($ret);
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
use Service\ArticleService;
use Service\NavigationService;
use app\service\ArticleService;
use app\service\NavigationService;
use app\service\GoodsService;
/**
* 导航管理
......@@ -35,7 +35,7 @@ class Navigation extends Common
$this->Is_Power();
// 导航类型
$this->nav_type = I('nav_type', 'header');
$this->nav_type = input('nav_type', 'header');
}
/**
......@@ -48,34 +48,16 @@ class Navigation extends Common
public function Index()
{
// 获取导航列表
$this->assign('list', $this->GetNavList());
$this->assign('data_list', NavigationService::NavList(['nav_type'=>$this->nav_type]));
// 一级分类
$this->assign('nav_header_pid_list', db('Navigation')->field(array('id', 'name'))->where(array('is_show'=>1, 'pid'=>0, 'nav_type'=>$this->nav_type))->select());
$this->assign('nav_header_pid_list', NavigationService::LevelOneNav(['nav_type'=>$this->nav_type]));
// 获取分类和文章
$this->assign('article_list', ArticleService::ArticleCategoryList());
// 商品分类
$field = 'id,name';
$m = db('GoodsCategory');
$category = $m->field($field)->where(['is_enable'=>1, 'pid'=>0])->order('sort asc')->select();
if(!empty($category))
{
foreach($category as &$v)
{
$two = $m->field($field)->where(['is_enable'=>1, 'pid'=>$v['id']])->order('sort asc')->select();
if(!empty($two))
{
foreach($two as &$vs)
{
$vs['items'] = $m->field($field)->where(['is_enable'=>1, 'pid'=>$vs['id']])->order('sort asc')->select();
}
}
$v['items'] = $two;
}
}
$this->assign('goods_category_list', $category);
$this->assign('goods_category_list', GoodsService::GoodsCategory());
// 自定义页面
$this->assign('customview_list', db('CustomView')->field(array('id', 'title'))->where(array('is_enable'=>1))->select());
......@@ -87,30 +69,7 @@ class Navigation extends Common
$this->assign('common_is_show_list', lang('common_is_show_list'));
$this->assign('nav_type', $this->nav_type);
$this->display('Index');
}
/**
* [GetNavList 获取数据列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
*/
private function GetNavList()
{
$m = db('Navigation');
$field = array('id', 'pid', 'name', 'url', 'value', 'data_type', 'sort', 'is_show', 'is_new_window_open');
$data = NavigationService::NavDataDealWith($m->field($field)->where(array('nav_type'=>$this->nav_type, 'pid'=>0))->order('sort')->select());
if(!empty($data))
{
foreach($data as $k=>$v)
{
$data[$k]['item'] = NavigationService::NavDataDealWith($m->field($field)->where(array('nav_type'=>$this->nav_type, 'pid'=>$v['id']))->order('sort')->select());
}
}
return $data;
return $this->fetch();
}
/**
......@@ -123,111 +82,19 @@ class Navigation extends Common
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 请求类型
switch(I('data_type'))
{
// 自定义导航
case 'custom':
$this->DataSave(5);
break;
// 文章分类导航
case 'article':
$this->DataSave(6);
break;
// 自定义页面导航
case 'customview':
$this->DataSave(7);
break;
// 商品分类导航
case 'goods_category':
$this->DataSave(8);
break;
}
$this->ajaxReturn('参数错误', -1);
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['nav_type'] = $this->nav_type;
$ret = NavigationService::NavSave($params);
return json($ret);
}
/**
* [DataSave 导航数据保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-02-05T20:12:30+0800
* @param [int] $check_type [校验类型]
*/
private function DataSave($check_type)
{
$m = D('Navigation');
// 数据校验
if($m->create($_POST, $check_type))
{
// 非自定义导航数据处理
if(empty($_POST['name']))
{
switch(I('data_type'))
{
// 文章分类导航
case 'article':
$temp_name = db('Article')->where(array('id'=>I('value')))->getField('title');
break;
// 自定义页面导航
case 'customview':
$temp_name = db('CustomView')->where(array('id'=>I('value')))->getField('title');
break;
// 商品分类导航
case 'goods_category':
$temp_name = db('GoodsCategory')->where(array('id'=>I('value')))->getField('name');
break;
}
// 只截取16个字符
$m->name = mb_substr($temp_name, 0, 16, config('DEFAULT_CHARSET'));
} else {
$m->name = I('name');
}
// 清除缓存
S(config('cache_common_home_nav_'.$this->nav_type.'_key', null));
// id为空则表示是新增
if(empty($_POST['id']))
{
// 额外数据处理
$m->add_time = time();
$m->nav_type = $this->nav_type;
// 写入数据库
if($m->add())
{
$this->ajaxReturn('新增成功');
} else {
$this->ajaxReturn('新增失败', -100);
}
} else {
// 额外数据处理
$m->upd_time = time();
// 数据编辑
if($m->where(array('id'=>I('id')))->save())
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
}
/**
* [Delete 删除]
......@@ -238,26 +105,16 @@ class Navigation extends Common
*/
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
$m = D('Navigation');
if($m->create($_POST, 4))
{
if($m->delete($id))
{
// 清除缓存
S(config('cache_common_home_nav_'.$this->nav_type.'_key', null));
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
// 开始处理
$params = input();
$ret = NavigationService::NavDelete($params);
return json($ret);
}
/**
......@@ -269,22 +126,16 @@ class Navigation extends Common
*/
public function StatusUpdate()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
// 是否ajax请求
if(!IS_AJAX)
{
$this->ajaxReturn('参数错误', -1);
return $this->error('非法访问');
}
// 数据更新
if(db('Navigation')->where(array('id'=>I('id')))->save(array('is_show'=>I('state'))))
{
// 清除缓存
S(config('cache_common_home_nav_'.$this->nav_type.'_key', null));
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
// 开始处理
$params = input();
$ret = NavigationService::NavStatusUpdate($params);
return json($ret);
}
}
?>
\ No newline at end of file
......@@ -61,6 +61,7 @@ class Order extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/order/index'),
);
$page = new \base\Page($page_params);
......@@ -101,141 +102,6 @@ class Order extends Common
return $this->fetch();
}
/**
* [SetDataHandle 数据处理]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-29T21:27:15+0800
* @param [array] $data [订单数据]
* @return [array] [处理好的数据]
*/
private function SetDataHandle($data)
{
if(!empty($data))
{
$image_host = config('IMAGE_HOST');
$common_order_admin_status = lang('common_order_admin_status');
$common_order_pay_status = lang('common_order_pay_status');
foreach($data as &$v)
{
// 确认时间
$v['confirm_time'] = empty($v['confirm_time']) ? null : date('Y-m-d H:i:s', $v['confirm_time']);
// 支付时间
$v['pay_time'] = empty($v['pay_time']) ? null : date('Y-m-d H:i:s', $v['pay_time']);
// 发货时间
$v['delivery_time'] = empty($v['delivery_time']) ? null : date('Y-m-d H:i:s', $v['delivery_time']);
// 完成时间
$v['success_time'] = empty($v['success_time']) ? null : date('Y-m-d H:i:s', $v['success_time']);
// 取消时间
$v['cancel_time'] = empty($v['cancel_time']) ? null : date('Y-m-d H:i:s', $v['cancel_time']);
// 创建时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
// 更新时间
$v['upd_time'] = date('Y-m-d H:i:s', $v['upd_time']);
// 状态
$v['status_text'] = $common_order_admin_status[$v['status']]['name'];
// 支付状态
$v['pay_status_text'] = $common_order_pay_status[$v['pay_status']]['name'];
// 支付方式
$v['payment_name'] = ($v['status'] <= 1) ? null : ResourcesService::OrderPaymentName($v['id']);
// 快递公司
$v['express_name'] = ResourcesService::ExpressName($v['express_id']);
// 收件人地址
$v['receive_province_name'] = ResourcesService::RegionName($v['receive_province']);
$v['receive_city_name'] = ResourcesService::RegionName($v['receive_city']);
$v['receive_county_name'] = ResourcesService::RegionName($v['receive_county']);
// 商品列表
$goods = db('OrderDetail')->where(['order_id'=>$v['id']])->select();
if(!empty($goods))
{
foreach($goods as &$vs)
{
$vs['attribute'] = empty($vs['attribute']) ? null : json_decode($vs['attribute'], true);
}
}
$v['goods'] = $goods;
// 描述
$v['describe'] = '共'.count($v['goods']).'件 合计:¥'.$v['total_price'].'元';
}
}
return $data;
}
/**
* [GetIndexWhere 订单列表条件]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
*/
private function GetIndexWhere()
{
$where = array(
'is_delete_time' => 0,
);
// 模糊
if(!empty($_REQUEST['keyword']))
{
$like_keyword = array('like', '%'.I('keyword').'%');
$where[] = array(
'order_no' => $like_keyword,
'receive_name' => $like_keyword,
'receive_tel' => $like_keyword,
'receive_address' => $like_keyword,
'express_number' => $like_keyword,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(I('status', -1) > -1)
{
$where['status'] = intval(I('status'));
}
if(I('express_id', -1) > -1)
{
$where['express_id'] = intval(I('express_id'));
}
if(I('pay_status', -1) > -1)
{
$where['pay_status'] = intval(I('pay_status'));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
}
/**
* [Delete 订单删除]
* @author Devil
......@@ -248,17 +114,17 @@ class Order extends Common
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 删除操作
$params = $_POST;
$params = input();
$params['user_id'] = $params['value'];
$params['creator'] = $this->admin['id'];
$params['creator_name'] = $this->admin['username'];
$params['user_type'] = 'admin';
$ret = OrderService::OrderDelete($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
/**
......@@ -273,16 +139,16 @@ class Order extends Common
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 取消操作
$params = $_POST;
$params = input();
$params['user_id'] = $params['value'];
$params['creator'] = $this->admin['id'];
$params['creator_name'] = $this->admin['username'];
$ret = OrderService::OrderCancel($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
/**
......@@ -297,15 +163,15 @@ class Order extends Common
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 发货操作
$params = $_POST;
$params = input();
$params['creator'] = $this->admin['id'];
$params['creator_name'] = $this->admin['username'];
$ret = OrderService::OrderDelivery($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
/**
......@@ -320,16 +186,16 @@ class Order extends Common
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 收货操作
$params = $_POST;
$params = input();
$params['user_id'] = $params['value'];
$params['creator'] = $this->admin['id'];
$params['creator_name'] = $this->admin['username'];
$ret = OrderService::OrderCollect($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
/**
......@@ -344,16 +210,16 @@ class Order extends Common
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
// 订单确认
$params = $_POST;
$params = input();
$params['user_id'] = $params['value'];
$params['creator'] = $this->admin['id'];
$params['creator_name'] = $this->admin['username'];
$ret = OrderService::OrderConfirm($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
/**
......@@ -366,11 +232,11 @@ class Order extends Common
*/
public function Pay()
{
$params = $_POST;
$params = input();
$params['user'] = $this->admin;
$params['user']['user_name_view'] = '管理员'.'-'.$this->admin['username'];
$ret = OrderService::AdminPay($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
return json($ret);
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
/**
......@@ -33,15 +32,15 @@ class Theme extends Common
$this->Is_Power();
// 静态目录和html目录
$this->html_path = 'Application'.DS.'Home'.DS.'View'.DS;
$this->static_path = 'Public'.DS.'Home'.DS;
$this->html_path = 'application'.DS.'index'.DS.'view'.DS;
$this->static_path = 'public'.DS.'static'.DS.'index'.DS;
// 小导航
$this->view_type = I('view_type', 'home');
$this->view_type = input('view_type', 'home');
}
/**
* [Index 列表]
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -49,28 +48,32 @@ class Theme extends Common
*/
public function Index()
{
// 模板
switch($this->view_type)
{
// 模板安装
case 'upload':
$this->display('Upload');
break;
// 模板列表
$this->assign('data_list', $this->GetThemeList());
// 当前模板
default:
// 模板列表
$this->assign('data', $this->GetThemeList());
// 默认主题
$theme = cache('cache_common_default_theme_data');
$this->assign('theme', empty($theme) ? 'Default' : $theme);
// 默认主题
$theme = S('cache_common_default_theme_data');
$this->assign('theme', empty($theme) ? 'Default' : $theme);
// 导航参数
$this->assign('view_type', $this->view_type);
$this->display('Index');
}
return $this->fetch();
}
/**
* 模板安装
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
*/
public function UploadInfo()
{
// 导航参数
$this->assign('view_type', $this->view_type);
return $this->fetch();
}
/**
......@@ -83,13 +86,13 @@ class Theme extends Common
*/
private function GetThemeList()
{
$result = array();
$dir = 'Application'.DS.'Home'.DS.'View'.DS;
$result = [];
$dir = ROOT.$this->html_path;
if(is_dir($dir))
{
if($dh = opendir($dir))
{
$default_preview = 'Public'.DS.'Common'.DS.'Images'.DS.'default-preview.jpg';
$default_preview = __MY_URL__.'static'.DS.'common'.DS.'images'.DS.'default-preview.jpg';
while(($temp_file = readdir($dh)) !== false)
{
$config = $dir.$temp_file.DS.'config.json';
......@@ -106,13 +109,14 @@ class Theme extends Common
{
continue;
}
$preview = ROOT.$this->static_path.$temp_file.DS.'images'.DS.'preview.jpg';
$result[] = array(
'theme' => $temp_file,
'name' => I('data.name', '', '',$data),
'ver' => str_replace(array(',',','), ', ', I('data.ver', '', '',$data)),
'author' => I('data.author', '', '',$data),
'home' => I('data.home', '', '',$data),
'preview' => file_exists($dir.$temp_file.DS.'preview.jpg') ? $dir.$temp_file.DS.'preview.jpg' : $default_preview,
'name' => htmlentities($data['name']),
'ver' => str_replace(array(',',','), ', ', htmlentities($data['ver'])),
'author' => htmlentities($data['author']),
'home' => isset($data['home']) ? $data['home'] : '',
'preview' => file_exists($preview) ? __MY_URL__.'static'.DS.'index'.DS.$temp_file.DS.'images'.DS.'preview.jpg' : $default_preview,
);
}
}
......@@ -158,7 +162,7 @@ class Theme extends Common
}
// 默认主题
$theme = S('cache_common_default_theme_data');
$theme = cache('cache_common_default_theme_data');
$theme = empty($theme) ? 'Default' : $theme;
// 不能删除正在使用的主题
......@@ -218,16 +222,16 @@ class Theme extends Common
if(strpos($file, '/.') === false && strpos($file, '__') === false)
{
// 拼接路径
if(strpos($file, '_Html') !== false)
if(strpos($file, '_html') !== false)
{
$file = $this->html_path.$file;
} else if(strpos($file, '_Static') !== false)
} else if(strpos($file, '_static') !== false)
{
$file = $this->static_path.$file;
} else {
continue;
}
$file = str_replace(array('_Static/', '_Html/'), '', $file);
$file = str_replace(array('_static/', '_html/'), '', $file);
// 截取文件路径
$file_path = substr($file, 0, strrpos($file, '/'));
......@@ -249,7 +253,6 @@ class Theme extends Common
// 关闭目录项
zip_entry_close($temp_resource);
}
}
}
$this->ajaxReturn('操作成功');
......
......@@ -4,27 +4,27 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/Answer/Index')}}" method="POST">
<form class="am-form view-list" action="{{:url('admin/answer/index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="联系人/内容" name="keyword" <present name="param['keyword']"> value="{{$param.keyword}}"{{/if}} />
<input type="text" autocomplete="off" class="am-radius form-keyword" placeholder="联系人/内容" name="keywords" {{if !empty($params['keywords'])}} value="{{$params.keywords}}"{{/if}} />
<button type="submit" class="am-btn am-btn-secondary am-btn-sm am-radius form-submit">查询</button>
<label class="fs-12 m-l-5 c-p fw-100 more-submit">
更多筛选
<input type="checkbox" name="is_more" value="1" id="is_more" {{if isset($param['is_more']) and $param['is_more'] eq 1)}}checked{{/if}} />
<input type="checkbox" name="is_more" value="1" id="is_more" {{if isset($params['is_more']) and $params['is_more'] eq 1}}checked{{/if}} />
<i class="am-icon-angle-down"></i>
</label>
<div class="more-where {{if !isset($param['is_more']) or $param['is_more'] neq 1)}}none{{/if}}">
<div class="more-where {{if !isset($params['is_more']) or $params['is_more'] neq 1}}none{{/if}}">
<select name="is_show" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}是否显示</option>
<foreach name="common_is_show_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_show']) and $param['is_show'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">是否显示</option>
{{foreach $common_is_show_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_show']) and $params['is_show'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<div class="param-date param-where m-l-5)}}
<input type="text" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($param['time_start'])}}value="{{$param.time_start}}"{{/if}}/>
<div class="param-date param-where m-l-5">
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_start'])}}value="{{$params.time_start}}"{{/if}}/>
<span>~</span>
<input type="text" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($param['time_end'])}}value="{{$param.time_end}}"{{/if}}/>
<input type="text" autocomplete="off" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_end'])}}value="{{$params.time_end}}"{{/if}}/>
</div>
</div>
</div>
......@@ -32,7 +32,7 @@
<!-- form end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
<thead>
<tr>
<th class="am-hide-sm-only">用户信息</th>
......@@ -46,9 +46,9 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}" {{if $v['is_show'] eq 0)}}class="am-active"{{/if}}>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_show'] eq 0}}class="am-active"{{/if}}>
<td class="am-hide-sm-only">
{{if !empty($v['username'])}}
{{$v.username}}
......@@ -69,7 +69,7 @@
</td>
<td>{{$v.content}}</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_show'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/Answer/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_show']}}" data-is-update-status="1)}}</a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_show'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/answer/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_show']}}" data-is-update-status="1"></a>
</td>
<td class="am-hide-sm-only">{{$v.reply}}</td>
<td class="am-hide-sm-only">{{$v.add_time}}</td>
......@@ -125,10 +125,10 @@
</div>
</td>
<td class="view-operation">
{{if $v['is_reply'] eq 0)}}
{{if $v['is_reply'] eq 0}}
<button class="am-btn am-btn-default am-btn-xs am-radius submit-reply am-icon-gavel" data-am-modal="{target: '#my-popup-reply'}" data-json='{{:json_encode($v)}}'> 回复</button>
{{/if}}
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/Answer/Delete')}}" data-id="{{$v.id}}"> 删除</button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('admin/answer/delete')}}" data-id="{{$v.id}}"> 删除</button>
</td>
</tr>
{{/foreach}}
......@@ -154,7 +154,7 @@
</dd>
</dl>
<form class="am-form form-validation" action="{{:url('Admin/Answer/Save')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
<form class="am-form form-validation" action="{{:url('admin/answer/reply')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
<div class="am-form-group">
<label>回复内容</label>
<textarea name="reply" rows="5" class="am-radius" placeholder="回复内容格式 2~230 个字符" data-validation-message="回复内容格式 2~230 个字符" maxlength="230"></textarea>
......@@ -170,8 +170,8 @@
</div>
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
......
......@@ -4,39 +4,39 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/CustomView/Index')}}" method="POST">
<form class="am-form view-list" action="{{:url('admin/customview/index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="标题关键字" name="keyword" <present name="param['keyword']"> value="{{$param.keyword}}"{{/if}} />
<input type="text" autocomplete="off" class="am-radius form-keyword" placeholder="标题关键字" name="keywords" {{if !empty($params['keywords'])}} value="{{$params.keywords}}"{{/if}} />
<button type="submit" class="am-btn am-btn-secondary am-btn-sm am-radius form-submit">查询</button>
<label class="fs-12 m-l-5 c-p fw-100 more-submit">
更多筛选
<input type="checkbox" name="is_more" value="1" id="is_more" {{if isset($param['is_more']) and $param['is_more'] eq 1)}}checked{{/if}} />
<input type="checkbox" name="is_more" value="1" id="is_more" {{if isset($params['is_more']) and $params['is_more'] eq 1}}checked{{/if}} />
<i class="am-icon-angle-down"></i>
</label>
<div class="more-where {{if !isset($param['is_more']) or $param['is_more'] neq 1)}}none{{/if}}">
<div class="more-where {{if !isset($params['is_more']) or $params['is_more'] neq 1}}none{{/if}}">
<select name="is_header" class="am-radius c-p m-t-10 param-where">
<option value="-1)}}是否含头部</option>
<foreach name="common_is_header_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_header']) and $param['is_header'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">是否含头部</option>
{{foreach $common_is_header_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_header']) and $params['is_header'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="is_footer" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}是否含尾部</option>
<foreach name="common_is_footer_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_footer']) and $param['is_footer'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">是否含尾部</option>
{{foreach $common_is_footer_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_footer']) and $params['is_footer'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="is_enable" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}是否启用</option>
<foreach name="common_is_enable_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_enable']) and $param['is_enable'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">是否启用</option>
{{foreach $common_is_enable_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_enable']) and $params['is_enable'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<div class="param-date param-where m-l-5)}}
<input type="text" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($param['time_start'])}}value="{{$param.time_start}}"{{/if}}/>
<div class="param-date param-where m-l-5">
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_start'])}}value="{{$params.time_start}}"{{/if}}/>
<span>~</span>
<input type="text" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($param['time_end'])}}value="{{$param.time_end}}"{{/if}}/>
<input type="text" autocomplete="off" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_end'])}}value="{{$params.time_end}}"{{/if}}/>
</div>
</div>
</div>
......@@ -44,13 +44,13 @@
<!-- form end -->
<!-- operation start -->
<div class="am-g m-t-15)}}
<a href="{{:url('Admin/CustomView/SaveInfo')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"> 新增</a>
<div class="am-g m-t-15">
<a href="{{:url('admin/customview/saveinfo')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"> 新增</a>
</div>
<!-- operation end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
<thead>
<tr>
<th>标题</th>
......@@ -64,23 +64,23 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}" {{if $v['is_enable'] eq 0)}}class="am-active"{{/if}}>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_enable'] eq 0}}class="am-active"{{/if}}>
<td class="td-title">
<a href="{{:str_replace('admin.php', 'index.php', url('Home/CustomView/Index', array('id'=>$v['id'])))}}" target="_blank" title="{{$v.title}}">{{$v.title}}</a>
<a href="{{:str_replace('admin.php', 'index.php', url('index/customview/index', array('id'=>$v['id'])))}}" target="_blank" title="{{$v.title}}">{{$v.title}}</a>
</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/CustomView/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-field="is_enable" data-is-update-status="1)}}</a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/customview/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-field="is_enable" data-is-update-status="1"></a>
</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_header'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/CustomView/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_header']}}" data-field="is_header"></a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_header'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/customview/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_header']}}" data-field="is_header"></a>
</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_footer'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/CustomView/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_footer']}}" data-field="is_footer"></a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_footer'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/customview/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_footer']}}" data-field="is_footer"></a>
</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_full_screen'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/CustomView/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_full_screen']}}" data-field="is_full_screen"></a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_full_screen'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/customview/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_full_screen']}}" data-field="is_full_screen"></a>
</td>
<td class="am-hide-sm-only">{{$v.access_count}}</td>
<td>
......@@ -113,20 +113,20 @@
<dd>{{$v.access_count}}</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dd>{{$v.add_time_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
<dd>{{$v.upd_time_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
<td class="view-operation">
<a href="{{:url('Admin/CustomView/SaveInfo', array('id'=>$v['id']))}}">
<a href="{{:url('admin/customview/saveinfo', array('id'=>$v['id']))}}">
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit"></button>
</a>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/CustomView/Delete')}}" data-id="{{$v.id}}"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('admin/customview/Delete')}}" data-id="{{$v.id}}"></button>
</td>
</tr>
{{/foreach}}
......@@ -138,8 +138,8 @@
<!-- list end -->
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
......
......@@ -4,31 +4,31 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('Admin/CustomView/Save')}}" method="POST" request-type="ajax-url" request-value="{{:url('Admin/CustomView/Index')}}">
<form class="am-form form-validation view-save" action="{{:url('admin/customview/save')}}" method="POST" request-type="ajax-url" request-value="{{:url('admin/customview/index')}}">
<legend>
<span class="fs-16)}}
<span class="fs-16">
{{if empty($data['id'])}}
自定义页面添加
{{else /}}
自定义页面编辑
{{/if}}
</span>
<a href="{{:url('Admin/CustomView/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
<a href="{{:url('admin/customview/index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group">
<label>标题</label>
<input type="text" name="title" placeholder="标题" minlength="3" maxlength="60" data-validation-message="标题长度 3~60 个字符" class="am-radius" <notempty name="data"> value="{{$data.title}}" {{/if}} required />
<input type="text" name="title" placeholder="标题" minlength="2" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} required />
</div>
<include file="Lib/Enable" />
<include file="Lib/IsHeader" />
<include file="Lib/IsFooter" />
<include file="Lib/IsFullScreen" />
{{include file="lib/enable" /}}
{{include file="lib/is_header" /}}
{{include file="lib/is_footer" /}}
{{include file="lib/is_full_screen" /}}
<div class="am-form-group">
<label>内容{{if IsMobile()}}<span class="fs-12 fw-100 cr-999">(更多编辑功能请使用电脑访问)</span>{{/if}}</label>
<textarea class="am-radius am-validate" name="content" rows="5" minlength="50" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:url('Admin/Ueditor/Index', ['path_type'=>'customview'])}}" placeholder="内容长度最少 50~105000 个字符" {{else /}} placeholder="内容长度最少 50~105000 个字符更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容长度最少 50~105000 个字符" required><notempty name="data">{{$data.content}}{{/if}}</textarea>
<textarea class="am-radius am-validate" name="content" rows="5" minlength="50" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:url('admin/ueditor/index', ['path_type'=>'customview'])}}" placeholder="内容长度最少 50~105000 个字符" {{else /}} placeholder="内容长度最少 50~105000 个字符更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容长度最少 50~105000 个字符" required>{{if !empty($data)}}{{$data.content}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<input type="hidden" name="id" <notempty name="data"> value="{{$data.id}}"{{/if}}" />
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}}" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
......
<ul class="am-nav am-nav-pills">
<li {{if $Think.const.ACTION_NAME eq 'Index'">class="am-active"{{/if}} >
<a href="{{:url('Admin/AccessControl/Index')}}" class="am-radius">管理员列表</a>
</li>
<li {{if $Think.const.ACTION_NAME eq 'RoleInfo'">class="am-active"{{/if}} >
<a href="{{:url('Admin/AccessControl/RoleInfo')}}" class="am-radius">角色管理</a>
</li>
<li {{if $Think.const.ACTION_NAME eq 'Purview'">class="am-active"{{/if}} >
<a href="{{:url('Admin/AccessControl/Purview')}}" class="am-radius">权限控制</a>
</li>
</ul>
\ No newline at end of file
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否启用</label>
<div>
<foreach name="common_is_enable_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_enable" value="{{$v.id}}" {{if isset($data['is_enable']) and $data['is_enable'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_enable']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_enable_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_enable" value="{{$v.id}}" {{if isset($data['is_enable']) and $data['is_enable'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_enable']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否含尾部</label>
<div>
<foreach name="common_is_footer_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_footer" value="{{$v.id}}" {{if isset($data['is_footer']) and $data['is_footer'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_footer']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_footer_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_footer" value="{{$v.id}}" {{if isset($data['is_footer']) and $data['is_footer'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_footer']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否满屏</label>
<div>
<foreach name="common_is_full_screen_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_full_screen" value="{{$v.id}}" {{if isset($data['is_full_screen']) and $data['is_full_screen'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_full_screen']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_full_screen_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_full_screen" value="{{$v.id}}" {{if isset($data['is_full_screen']) and $data['is_full_screen'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_full_screen']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否含头部</label>
<div>
<foreach name="common_is_header_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_header" value="{{$v.id}}" {{if isset($data['is_header']) and $data['is_header'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_header']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_header_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_header" value="{{$v.id}}" {{if isset($data['is_header']) and $data['is_header'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_header']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否新窗口打开</label>
<div>
<foreach name="common_is_new_window_open_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_new_window_open" value="{{$v.id}}" {{if isset($data['is_new_window_open']) and $data['is_new_window_open'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_new_window_open']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_new_window_open_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_new_window_open" value="{{$v.id}}" {{if isset($data['is_new_window_open']) and $data['is_new_window_open'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_new_window_open']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,9 +2,9 @@
<div class="am-form-group">
<label>是否显示</label>
<div>
<foreach name="common_is_show_list" item="v">
<label class="am-radio-inline m-r-1)}}
<input type="radio" name="is_show" value="{{$v.id}}" {{if isset($data['is_show']) and $data['is_show'] eq $v['id']">checked="checked"{{else /}}{{if !isset($data['is_show']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
{{foreach $common_is_show_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_show" value="{{$v.id}}" {{if isset($data['is_show']) and $data['is_show'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_show']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
......
......@@ -2,8 +2,8 @@
<div class="am-form-group">
<label>{{:lang('common_view_user_status_name')}}</label>
<select name="status" class="am-radius c-p" data-validation-message="{{:lang('common_user_status_format')}}" required>
<foreach name="common_user_status_list" item="v">
<option value="{{$v.id}}" {{if isset($data['status']) and $data['status'] eq $v['id']">selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true">selected{{/if}}{{/if}}>{{$v.name}}</option>
{{foreach $common_user_status_list as $v}}
<option value="{{$v.id}}" {{if isset($data['status']) and $data['status'] eq $v['id']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
......
......@@ -18,21 +18,21 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation" action="{{:url('Admin/Link/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation" action="{{:url('admin/link/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>名称</label>
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
</div>
<div class="am-form-group">
<label>链接地址<span class="fs-12 fw-100 cr-999">(带http://)</span></label>
<label>链接地址<span class="fs-12 fw-100 cr-999">(带http://或https://</span></label>
<input type="url" placeholder="链接地址" name="url" data-validation-message="链接地址格式有误" class="am-radius" required />
</div>
<div class="am-form-group">
<label>顺序</label>
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
</div>
<include file="Lib/IsNewWindowOpen" />
<include file="Lib/Enable" />
{{include file="lib/is_new_window_open" /}}
{{include file="lib/enable" /}}
<div class="am-form-group am-form-success">
<label>描述</label>
<textarea rows="3" maxlength="60" name="describe" class="am-radius" placeholder="描述" data-validation-message="描述不能大于60个字符"></textarea>
......@@ -49,7 +49,7 @@
<!-- save win end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
<thead>
<tr>
<th>名称</th>
......@@ -59,9 +59,9 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}" {{if $v['is_enable'] eq 0)}}class="am-active"{{/if}}>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_enable'] eq 0}} class="am-active"{{/if}}>
<td>{{$v.name}}
<a href="{{$v.url}}" target="_blank">
<i class="am-icon-external-link"></i>
......@@ -69,11 +69,11 @@
</td>
<td class="am-hide-sm-only">{{$v.describe}}</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/Link/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-is-update-status="1)}}</a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/link/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-is-update-status="1"></a>
</td>
<td>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit submit-edit" data-am-modal="{target: '#data-save-win'}" data-json='{{:json_encode($v)}}'></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/Link/Delete')}}" data-id="{{$v.id}}"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('admin/link/delete')}}" data-id="{{$v.id}}"></button>
</td>
</tr>
{{/foreach}}
......
......@@ -4,7 +4,7 @@
<div class="content-right">
<div class="content">
<!-- table nav start -->
<include file="Nav" />
{{include file="navigation/nav" /}}
<!-- table nav end -->
<!-- operation start -->
......@@ -17,7 +17,7 @@
<!-- operation end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
<thead>
<tr>
<th>导航名称</th>
......@@ -27,9 +27,9 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}" {{if $v['is_show'] eq 0)}}class="am-active"{{/if}}>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_show'] eq 0}}class="am-active"{{/if}}>
<td>{{$v.name}}
<a href="{{$v.url}}" target="_blank">
<i class="am-icon-external-link"></i>
......@@ -37,16 +37,16 @@
</td>
<td>{{:lang('common_nav_type_list')[$v['data_type']]}}</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_show'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/Navigation/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_show']}}" data-is-update-status="1)}}</a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_show'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/navigation/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_show']}}" data-is-update-status="1"></a>
</td>
<td>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit submit-edit" data-am-modal="{target: '#nav-{{$v.data_type}}-save-win'}" data-json='{{:json_encode($v)}}' data-tag="nav-{{$v.data_type}}-save-win"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/Navigation/Delete')}}" data-id="{{$v.id}}"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('admin/navigation/Delete')}}" data-id="{{$v.id}}"></button>
</td>
</tr>
{{if !empty($list)}}
<foreach name="v.item" item="vs">
<tr id="data-list-{{$vs.id}}" {{if $vs['is_show'] eq 0)}}class="am-active"{{/if}}>
{{if !empty($data_list)}}
{{foreach $v.item as $vs}}
<tr id="data-list-{{$vs.id}}" {{if $vs['is_show'] eq 0}}class="am-active"{{/if}}>
<td class="p-l-3)}}{{$vs.name}}
<a href="{{$vs.url}}" target="_blank">
<i class="am-icon-external-link"></i>
......@@ -54,11 +54,11 @@
</td>
<td>{{:lang('common_nav_type_list')[$vs['data_type']]}}</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $vs['is_show'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/Navigation/StatusUpdate')}}" data-id="{{$vs.id}}" data-state="{{$vs['is_show']}}" data-is-update-status="1)}}</a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $vs['is_show'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/navigation/StatusUpdate')}}" data-id="{{$vs.id}}" data-state="{{$vs['is_show']}}" data-is-update-status="1"></a>
</td>
<td>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-edit submit-edit" data-am-modal="{target: '#nav-{{$vs.data_type}}-save-win'}" data-json='{{:json_encode($vs)}}' data-tag="nav-{{$vs.data_type}}-save-win"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/Navigation/Delete')}}" data-id="{{$vs.id}}"></button>
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('admin/navigation/Delete')}}" data-id="{{$vs.id}}"></button>
</td>
</tr>
{{/foreach}}
......@@ -80,12 +80,12 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation" action="{{:url('Admin/Navigation/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation" action="{{:url('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius c-p chosen-select" name="pid" data-validation-message="导航级别选择错误">
<option value=")}}一级栏目...</option>
<foreach name="nav_header_pid_list" item="v">
<select class="am-radius c-p chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
......@@ -95,15 +95,15 @@
<input type="text" placeholder="导航名称" name="name" minlength="2" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" required />
</div>
<div class="am-form-group">
<label>url地址<span class="fs-12 fw-100 cr-999">(带http://)</span></label>
<label>url地址<span class="fs-12 fw-100 cr-999">(带http://或https://</span></label>
<input type="url" placeholder="url地址" name="url" data-validation-message="url格式有误" class="am-radius" required />
</div>
<div class="am-form-group">
<label>顺序</label>
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
</div>
<include file="Lib/IsShow" />
<include file="Lib/IsNewWindowOpen" />
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-group">
<input type="hidden" name="id" />
<input type="hidden" name="data_type" value="custom" />
......@@ -126,12 +126,12 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-article" action="{{:url('Admin/Navigation/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation-article" action="{{:url('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius c-p chosen-select" name="pid" data-validation-message="导航级别选择错误">
<option value=")}}一级栏目...</option>
<foreach name="nav_header_pid_list" item="v">
<select class="am-radius c-p chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
......@@ -140,10 +140,10 @@
<label>文章</label>
<select class="am-radius c-p chosen-select" name="value" data-placeholder="请选择..." data-validation-message="文章选择有误" required>
<option value="">请选择...</option>
<foreach name="article_list" item="v">
{{foreach $article_list as $v}}
<optgroup label="{{$v.name}}">
<notempty name="v.items">
<foreach name="v.items" item="vs">
{{foreach $v.items as $vs}}
<option value="{{$vs.id}}">{{$vs.title}}</option>
{{/foreach}}
{{/if}}
......@@ -159,8 +159,8 @@
<label>顺序</label>
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
</div>
<include file="Lib/IsShow" />
<include file="Lib/IsNewWindowOpen" />
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-group">
<input type="hidden" name="id" />
<input type="hidden" name="data_type" value="article" />
......@@ -184,12 +184,12 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-customview" action="{{:url('Admin/Navigation/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation-customview" action="{{:url('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius c-p chosen-select" name="pid" data-validation-message="导航级别选择错误">
<option value=")}}一级栏目...</option>
<foreach name="nav_header_pid_list" item="v">
<select class="am-radius c-p chosen-select" name="pid" data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
......@@ -198,7 +198,7 @@
<label>自定义页面</label>
<select class="am-radius c-p chosen-select" name="value" data-placeholder="请选择..." data-validation-message="自定义页面选择有误" required>
<option value="">请选择...</option>
<foreach name="customview_list" item="v">
{{foreach $customview_list as $v}}
<option value="{{$v.id}}">{{$v.title}}</option>
{{/foreach}}
</select>
......@@ -211,8 +211,8 @@
<label>顺序</label>
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
</div>
<include file="Lib/IsShow" />
<include file="Lib/IsNewWindowOpen" />
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-group">
<input type="hidden" name="id" />
<input type="hidden" name="data_type" value="customview" />
......@@ -235,12 +235,12 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation-goods_category" action="{{:url('Admin/Navigation/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation-goods_category" action="{{:url('admin/navigation/save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>导航级别</label>
<select class="am-radius c-p chosen-select" name="pid" data-validation-message="导航级别选择错误">
<option value=")}}一级栏目...</option>
<foreach name="nav_header_pid_list" item="v">
<select class="am-radius c-p chosen-select" name="pid" data-placeholder="一级栏目..." data-placeholder="一级栏目..." data-validation-message="导航级别选择错误">
<option value="">一级栏目...</option>
{{foreach $nav_header_pid_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
......@@ -249,12 +249,12 @@
<label>商品分类</label>
<select class="am-radius c-p chosen-select" name="value" data-placeholder="请选择..." data-validation-message="商品分类选择有误" required>
<option value="">请选择...</option>
<foreach name="goods_category_list" item="v">
{{foreach $goods_category_list as $v}}
<option value="{{$v.id}}" {{if !empty($data['category_ids']) and in_array($v['id'], $data['category_ids'])}}selected{{/if}}>一级 - {{$v.name}}</option>
{{if !empty($v['items'])}}
<foreach name="v.items" item="vs">
{{foreach $v.items as $vs}}
<option style="padding-left: 30px;" value="{{$vs.id}}" {{if !empty($data['category_ids']) and in_array($vs['id'], $data['category_ids'])}}selected{{/if}}>二级 - {{$vs.name}}</option>
<foreach name="vs.items" item="vss">
{{foreach $vs.items as $vss}}
<option style="padding-left: 60px;" value="{{$vss.id}}" {{if !empty($data['category_ids']) and in_array($vss['id'], $data['category_ids'])}}selected{{/if}}>三级 - {{$vss.name}}</option>
{{/foreach}}
{{/foreach}}
......@@ -270,8 +270,8 @@
<label>顺序</label>
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
</div>
<include file="Lib/IsShow" />
<include file="Lib/IsNewWindowOpen" />
{{include file="lib/is_show" /}}
{{include file="lib/is_new_window_open" /}}
<div class="am-form-group">
<input type="hidden" name="id" />
<input type="hidden" name="data_type" value="goods_category" />
......
<ul class="am-nav am-nav-pills table-nav m-b-1)}}
<li {{if $nav_type eq 'header'">class="am-active"{{/if}} data-type="header">
<a href="{{:url('Admin/Navigation/Index', ['nav_type'=>'header'])}}">中间导航</a>
<ul class="am-nav am-nav-pills table-nav m-b-10">
<li {{if $nav_type eq 'header'}}class="am-active"{{/if}} data-type="header">
<a href="{{:url('admin/navigation/index', ['nav_type'=>'header'])}}">中间导航</a>
</li>
<li {{if $nav_type eq 'footer'">class="am-active"{{/if}} data-type="footer">
<a href="{{:url('Admin/Navigation/Index', ['nav_type'=>'footer'])}}">底部导航</a>
<li {{if $nav_type eq 'footer'}}class="am-active"{{/if}} data-type="footer">
<a href="{{:url('admin/navigation/index', ['nav_type'=>'footer'])}}">底部导航</a>
</li>
</ul>
\ No newline at end of file
......@@ -6,7 +6,7 @@
<!-- form start -->
<form class="am-form view-list" action="{{:url('admin/order/index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="订单号/姓名/手机/地址/快递单号" name="keyword" {{if !empty($params['keyword'])}} value="{{$params.keyword}}"{{/if}} />
<input type="text" autocomplete="off" class="am-radius form-keyword" placeholder="订单号/姓名/手机/地址/快递单号" name="keyword" {{if !empty($params['keyword'])}} value="{{$params.keyword}}"{{/if}} />
<button type="submit" class="am-btn am-btn-secondary am-btn-sm am-radius form-submit">查询</button>
<label class="fs-12 m-l-5 c-p fw-100 more-submit">
更多筛选
......@@ -27,6 +27,12 @@
<option value="{{$v.id}}" {{if isset($params['express_id']) and $params['express_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="payment_id" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1">支付方式</option>
{{foreach $payment_list as $v}}
<option value="{{$v.id}}" {{if isset($params['payment_id']) and $params['payment_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="pay_status" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1">支付状态</option>
{{foreach $common_order_pay_status as $v}}
......@@ -34,9 +40,9 @@
{{/foreach}}
</select>
<div class="param-date param-where m-l-5">
<input type="text" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_start'])}}value="{{$params.time_start}}"{{/if}}/>
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius m-t-10" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_start'])}}value="{{$params.time_start}}"{{/if}}/>
<span>~</span>
<input type="text" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_end'])}}value="{{$params.time_end}}"{{/if}}/>
<input type="text" autocomplete="off" class="Wdate am-radius m-t-10" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if isset($params['time_end'])}}value="{{$params.time_end}}"{{/if}}/>
</div>
</div>
</div>
......@@ -65,16 +71,16 @@
{{foreach $v.items as $vs}}
<div class="goods-item">
<div class="base">
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$v.title}}">
<img src="{{$image_host}}{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images am-hide-sm-only" />
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}">
<img src="{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images am-hide-sm-only" />
</a>
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}" {{if !empty($vs['title_color'])}} style="color:{{$vs.title_color}};" {{/if}} >{{$vs.title}}</a>
</div>
<div class="other">
<span class="fl">
<span class="fl fs-12">
{{if !empty($vs.spec)}}
{{foreach $vs.spec as $kss=>$vss}}
{{$vss.type}}:{{$vss.value}}{{if $kss eq count($vs.spec)-1}},{{/if}}
{{$vss.type}}:{{$vss.value}}{{if $kss neq count($vs.spec)-1}},{{/if}}
{{/foreach}}
{{/if}}
</span>
......@@ -100,14 +106,14 @@
{{/if}}
</td>
<td>
<span class="block">{{$v.status_text}}</span>
<span class="block">{{$v.status_name}}</span>
{{if $v['pay_status'] eq 1}}
<span class="block cr-green fs-12">{{$v.pay_status_text}}</span>
<span class="block cr-green fs-12">{{$v.pay_status_name}}</span>
{{elseif $v['pay_status'] eq 2 /}}
<span class="block cr-yellow fs-12">{{$v.pay_status_text}}</span>
<span class="block cr-yellow fs-12">{{$v.pay_status_name}}</span>
{{else /}}
<span class="block fs-12">{{$v.pay_status_text}}</span>
<span class="block fs-12">{{$v.pay_status_name}}</span>
{{/if}}
{{if $v['user_is_delete_time'] neq 0}}
<span class="block cr-red fs-12">用户已删除</span>
......@@ -134,16 +140,22 @@
<dt>基础信息</dt>
<dd>
{{foreach $v.goods as $vs}}
{{foreach $v.items as $vs}}
<div class="goods-item">
<div class="base">
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$v.title}}">
<img src="{{$image_host}}{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images am-hide-sm-only" />
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}">
<img src="{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images am-hide-sm-only" />
</a>
<a href="{{:HomeUrl('goods', 'index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}" {{if !empty($vs['title_color'])}} style="color:{{$vs.title_color}};" {{/if}} >{{$vs.title}}</a>
</div>
<div class="other">
<span class="fl">{{$vs.attribute}}</span>
<span class="fl fs-12">
{{if !empty($vs.spec)}}
{{foreach $vs.spec as $kss=>$vss}}
{{$vss.type}}:{{$vss.value}}{{if $kss neq count($vs.spec)-1}},{{/if}}
{{/foreach}}
{{/if}}
</span>
<span class="fr">{{$vs.price}}x{{$vs.buy_number}}</span>
</div>
</div>
......@@ -169,10 +181,10 @@
<dd>{{if empty($v['express_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.express_name}}<br />{{$v.express_number}}{{/if}}</dd>
<dt>支付状态</dt>
<dd>{{if empty($v['pay_status_text'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.pay_status_text}}{{/if}}</dd>
<dd>{{if empty($v['pay_status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.pay_status_name}}{{/if}}</dd>
<dt>订单状态</dt>
<dd>{{if empty($v['status_text'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.status_text}}{{/if}}</dd>
<dd>{{if empty($v['status_name'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.status_name}}{{/if}}</dd>
<dt>支付方式</dt>
<dd>{{if empty($v['payment_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.payment_name}}{{/if}}</dd>
......@@ -202,7 +214,7 @@
<dd>{{if empty($v['delivery_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.delivery_time}}{{/if}}</dd>
<dt>完成时间</dt>
<dd>{{if empty($v['success_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.success_time}}{{/if}}</dd>
<dd>{{if empty($v['collect_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.collect_time}}{{/if}}</dd>
<dt>取消时间</dt>
<dd>{{if empty($v['cancel_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.cancel_time}}{{/if}}</dd>
......@@ -273,14 +285,14 @@
{{/foreach}}
</ul>
{{/if}}
<empty name="express_list">
{{if empty($express_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有快递方式</div>
{{/if}}
</div>
<div class="am-form-group">
<label>快递单号</label>
<input type="text" name="express_number" placeholder="快递单号" minlength="1" data-validation-message="请填写快递单号" class="am-radius" required />
<input type="text" autocomplete="off" name="express_number" placeholder="快递单号" minlength="1" data-validation-message="请填写快递单号" class="am-radius" required />
</div>
<div class="am-form-group">
<input type="hidden" name="id" value="0" />
......@@ -318,7 +330,7 @@
{{/foreach}}
</ul>
{{/if}}
<empty name="buy_payment_list">
{{if empty($buy_payment_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有支付方式</div>
{{/if}}
</div>
......
......@@ -4,22 +4,22 @@
<div class="content-right">
<div class="content">
<!-- nav start -->
<include file="Nav" />
{{include file="theme/nav" /}}
<!-- nav end -->
<!-- list start -->
<notempty name="data">
<ul data-am-widget="gallery" class="am-gallery am-avg-sm-2 am-avg-md-3 am-avg-lg-4 am-gallery-bordered data-list" data-am-gallery="{}" data-select-url="{{:url('Admin/Theme/Save')}}">
<foreach name="data" item="v">
{{if !empty($data_list)}}
<ul data-am-widget="gallery" class="am-gallery am-avg-sm-2 am-avg-md-3 am-avg-lg-4 am-gallery-bordered data-list" data-am-gallery="{}" data-select-url="{{:url('admin/theme/save')}}">
{{foreach $data_list as $v}}
<li id="data-list-{{$v.theme}}">
<div class="am-gallery-item am-radius {{if $v['theme'] eq $theme">theme-active{{/if}}">
<div class="am-gallery-item am-radius {{if $v['theme'] eq $theme}}theme-active{{/if}}">
<a href="javascript:;" class="select-theme" data-theme="{{$v.theme}}">
<img src="{{$v.preview}}" alt="{{$v.name}}" />
</a>
<div class="am-gallery-item-bottom">
<h3 class="am-gallery-title">
{{$v.name}}
<a href="javascript:;" class="am-icon-trash-o fr submit-delete" data-url="{{:url('Admin/Theme/Delete')}}" data-id="{{$v.theme}}"></a>
<a href="javascript:;" class="am-icon-trash-o fr submit-delete" data-url="{{:url('admin/theme/delete')}}" data-id="{{$v.theme}}"></a>
</h3>
<div class="am-gallery-desc">作者:
{{if empty($v['home'])}}
......
<ul class="am-nav am-nav-pills table-nav">
<li {{if $view_type eq 'home'">class="am-active"{{/if}}>
<a href="{{:url('Admin/Theme/Index', ['view_type'=>'home'])}}">当前主题</a>
<li {{if $view_type eq 'home'}}class="am-active"{{/if}}>
<a href="{{:url('admin/theme/index', ['view_type'=>'home'])}}">当前主题</a>
</li>
<li {{if $view_type eq 'upload'">class="am-active"{{/if}}>
<a href="{{:url('Admin/Theme/Index', ['view_type'=>'upload'])}}">主题安装</a>
<li {{if $view_type eq 'upload'}}class="am-active"{{/if}}>
<a href="{{:url('admin/theme/index', ['view_type'=>'upload'])}}">主题安装</a>
</li>
</ul>
\ No newline at end of file
......@@ -43,15 +43,15 @@ class CustomView extends Common
'n' => 1,
];
$data = CustomViewService::CustomViewList($params);
if(!empty($data[0]))
if(!empty($data['data'][0]))
{
// 访问统计
CustomViewService::CustomViewAccessCountInc(['id'=>$id]);
// 浏览器标题
$this->assign('home_seo_site_title', $this->GetBrowserSeoTitle($data[0]['title'], 1));
$this->assign('home_seo_site_title', $this->GetBrowserSeoTitle($data['data'][0]['title'], 1));
$this->assign('data', $data[0]);
$this->assign('data', $data['data'][0]);
return $this->fetch();
} else {
$this->assign('msg', '页面不存在或已删除');
......
......@@ -41,6 +41,7 @@ class Message extends Common
// 参数
$params = input();
$params['user'] = $this->user;
$params['user_type'] = 'user';
// 消息更新未已读
MessageService::MessageRead($params);
......@@ -49,7 +50,7 @@ class Message extends Common
$number = 10;
// 条件
$where = MessageService::UserMessgeListWhere($params);
$where = MessageService::MessgeListWhere($params);
// 获取总数
$total = MessageService::MessageTotal($where);
......@@ -59,6 +60,7 @@ class Message extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('index/message/index'),
);
$page = new \base\Page($page_params);
......
......@@ -58,6 +58,7 @@ class Order extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('index/order/index'),
);
$page = new \base\Page($page_params);
......
......@@ -56,6 +56,7 @@ class UserFavor extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('index/userfavor/goods'),
);
$page = new \base\Page($page_params);
......
......@@ -56,6 +56,7 @@ class UserGoodsBrowse extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('index/usergoodsbrowse/Goods'),
);
$page = new \base\Page($page_params);
......
......@@ -56,6 +56,7 @@ class UserIntegral extends Common
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('index/userintegral/index'),
);
$page = new \base\Page($page_params);
......
<?php
namespace app\service;
use app\service\GoodsService;
/**
* 问答/留言服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AnswerService
{
/**
* 总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public static function AnswerTotal($where = [])
{
return (int) db('Answer')->where($where)->count();
}
/**
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function AnswerList($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'where',
'error_msg' => '条件不能为空',
],
[
'checked_type' => 'is_array',
'key_name' => 'where',
'error_msg' => '条件格式有误',
],
[
'checked_type' => 'isset',
'key_name' => 'limit_start',
'error_msg' => '分页起始值有误',
],
[
'checked_type' => 'isset',
'key_name' => 'limit_number',
'error_msg' => '分页数量不能为空',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
$limit_start = max(0, intval($params['limit_start']));
$limit_number = max(1, intval($params['limit_number']));
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
// 获取数据列表
$data = db('Answer')->where($params['where'])->limit($limit_start, $limit_number)->order($order_by)->select();
if(!empty($data))
{
$common_is_show_list = lang('common_is_show_list');
$common_gender_list = lang('common_gender_list');
foreach($data as &$v)
{
// 用户信息
$user = db('User')->where(['id'=>$v['user_id']])->field('username,nickname,mobile,gender,avatar')->find();
$v['username'] = empty($user['username']) ? '' : $user['username'];
$v['nickname'] = empty($user['nickname']) ? '' : $user['nickname'];
$v['mobile'] = empty($user['mobile']) ? '' : $user['mobile'];
$v['avatar'] = empty($user['avatar']) ? '' : $user['avatar'];
$v['gender_text'] = isset($user['gender']) ? $common_gender_list[$user['gender']]['name'] : '';
// 是否显示
$v['is_show_text'] = $common_is_show_list[$v['is_show']]['name'];
// 创建时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
// 更新时间
$v['upd_time'] = date('Y-m-d H:i:s', $v['upd_time']);
}
}
return DataReturn('处理成功', 0, $data);
}
/**
* 列表条件
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function AnswerListWhere($params = [])
{
$where = [
['is_delete_time', '=', 0],
];
// id
if(!empty($params['id']))
{
$where[] = ['id', '=', $params['id']];
}
// 用户id
if(!empty($params['user']))
{
$where[] = ['user_id', '=', $params['user']['id']];
}
if(!empty($params['keywords']))
{
$where[] = ['name|tel|content', 'like', '%'.$params['keywords'].'%'];
}
// 是否更多条件
if(isset($params['is_more']) && $params['is_more'] == 1)
{
// 等值
if(isset($params['is_show']) && $params['is_show'] > -1)
{
$where[] = ['is_show', '=', intval($params['is_show'])];
}
if(!empty($params['time_start']))
{
$where[] = ['add_time', '>', strtotime($params['time_start'])];
}
if(!empty($params['time_end']))
{
$where[] = ['add_time', '<', strtotime($params['time_end'])];
}
}
return $where;
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-30
* @desc description
* @param [array] $params [输入参数]
*/
public static function AnswerDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'empty',
'key_name' => 'user_type',
'error_msg' => '用户类型有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 条件
$where = [
'id' => intval($params['id']),
];
// 用户类型
if($params['user_type'] == 'user')
{
if(empty($params['user']))
{
return DataReturn('用户信息有误', -1);
}
$where['user_id'] = $params['user']['id'];
}
// 获取数据
$temp = db('Answer')->where($where)->field('id')->find();
if(empty($temp))
{
return DataReturn('资源不存在或已被删除', -1);
}
// 开始删除
$data = [
'is_delete_time' => time(),
];
if(db('Answer')->where($where)->update($data))
{
return DataReturn('删除成功', 0);
}
return DataReturn('删除失败', -1);
}
/**
* 回复
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function AnswerReply($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'empty',
'key_name' => 'reply',
'error_msg' => '回复内容不能为空',
],
[
'checked_type' => 'length',
'key_name' => 'reply',
'checked_data' => '2,230',
'error_msg' => '回复内容格式 2~230 个字符',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 条件
$where = [
'id' => intval($params['id']),
];
// 问答是否存在
$temp = db('Answer')->where($where)->field('id')->find();
if(empty($temp))
{
return DataReturn('资源不存在或已被删除', -2);
}
// 更新问答
$data = [
'reply' => $params['reply'],
'is_reply' => 1,
'upd_time' => time()
];
if(db('Answer')->where($where)->update($data))
{
return DataReturn('操作成功');
}
return DataReturn('操作失败', -100);
}
/**
* 状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public static function AnswerStatusUpdate($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'in',
'key_name' => 'state',
'checked_data' => [0,1],
'error_msg' => '状态有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据更新
if(db('Answer')->where(['id'=>intval($params['id'])])->update(['is_show'=>intval($params['state'])]))
{
return DataReturn('编辑成功');
}
return DataReturn('编辑失败或数据未改变', -100);
}
}
?>
\ No newline at end of file
<?php
namespace app\service;
use app\service\GoodsService;
......
......@@ -24,27 +24,110 @@ class CustomViewService
public static function CustomViewList($params = [])
{
$where = empty($params['where']) ? [] : $params['where'];
$field = empty($params['field']) ? 'id,title,content,is_header,is_footer,is_full_screen,access_count' : $params['field'];
$field = empty($params['field']) ? 'id,title,content,is_header,is_footer,is_full_screen,access_count,is_enable' : $params['field'];
$m = isset($params['m']) ? intval($params['m']) : 0;
$n = isset($params['n']) ? intval($params['n']) : 10;
$data = db('CustomView')->field($field)->where($where)->order('id desc')->limit($m, $n)->select();
if(!empty($data))
{
$common_is_enable_list = lang('common_is_enable_list');
foreach($data as &$v)
{
// 是否启用
if(isset($v['is_enable']))
{
$v['is_enable_text'] = $common_is_enable_list[$v['is_enable']]['name'];
}
// 内容
if(isset($v['content']))
{
$v['content'] = ResourcesService::ContentStaticReplace($v['content'], 'get');
}
// 时间
if(isset($v['add_time']))
{
$v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['add_time_date'] = date('Y-m-d', $v['add_time']);
}
if(isset($v['upd_time']))
{
$v['upd_time_time'] = date('Y-m-d H:i:s', $v['upd_time']);
$v['upd_time_date'] = date('Y-m-d', $v['upd_time']);
}
}
}
return $data;
return DataReturn('处理成功', 0, $data);
}
/**
* 总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public static function CustomViewTotal($where = [])
{
return (int) db('CustomView')->where($where)->count();
}
/**
* 列表条件
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function CustomViewListWhere($params = [])
{
$where = [];
// id
if(!empty($params['id']))
{
$where[] = ['id', '=', $params['id']];
}
if(!empty($params['keywords']))
{
$where[] = ['title', 'like', '%'.$params['keywords'].'%'];
}
// 是否更多条件
if(isset($params['is_more']) && $params['is_more'] == 1)
{
// 等值
if(isset($params['is_enable']) && $params['is_enable'] > -1)
{
$where[] = ['is_enable', '=', intval($params['is_enable'])];
}
if(isset($params['is_header']) && $params['is_header'] > -1)
{
$where[] = ['is_header', '=', intval($params['is_header'])];
}
if(isset($params['is_footer']) && $params['is_footer'] > -1)
{
$where[] = ['is_footer', '=', intval($params['is_footer'])];
}
if(!empty($params['time_start']))
{
$where[] = ['add_time', '>', strtotime($params['time_start'])];
}
if(!empty($params['time_end']))
{
$where[] = ['add_time', '<', strtotime($params['time_end'])];
}
}
return $where;
}
/**
......@@ -64,5 +147,190 @@ class CustomViewService
}
return false;
}
/**
* 保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function CustomViewSave($params = [])
{
// 请求类型
$p = [
[
'checked_type' => 'length',
'key_name' => 'title',
'checked_data' => '2,60',
'error_msg' => '标题长度 2~60 个字符',
],
[
'checked_type' => 'length',
'key_name' => 'content',
'checked_data' => '50,105000',
'error_msg' => '内容长度最少 50~105000 个字符',
],
[
'checked_type' => 'in',
'key_name' => 'is_enable',
'checked_data' => [0,1],
'error_msg' => '是否显示范围值有误',
],
[
'checked_type' => 'in',
'key_name' => 'is_header',
'checked_data' => [0,1],
'error_msg' => '是否包含头部范围值有误',
],
[
'checked_type' => 'in',
'key_name' => 'is_footer',
'checked_data' => [0,1],
'error_msg' => '是否包含尾部范围值有误',
],
[
'checked_type' => 'in',
'key_name' => 'is_full_screen',
'checked_data' => [0,1],
'error_msg' => '是否满屏范围值有误',
]
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据
$content = ResourcesService::ContentStaticReplace($params['content'], 'add');
$image = self::MatchContentImage($content);
$data = [
'title' => $params['title'],
'content' => $content,
'image' => empty($image) ? '' : json_encode($image),
'image_count' => count($image),
'is_enable' => intval($params['is_enable']),
'is_header' => intval($params['is_header']),
'is_footer' => intval($params['is_footer']),
'is_full_screen'=> intval($params['is_full_screen']),
];
if(empty($params['id']))
{
$data['add_time'] = time();
if(db('CustomView')->insertGetId($data) > 0)
{
return DataReturn('添加成功', 0);
}
return DataReturn('添加失败', -100);
} else {
$data['upd_time'] = time();
if(db('CustomView')->where(['id'=>intval($params['id'])])->update($data))
{
return DataReturn('编辑成功', 0);
}
return DataReturn('编辑失败', -100);
}
}
/**
* 正则匹配文章图片
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-22T18:06:53+0800
* @param [string] $content [文章内容]
* @return [array] [文章图片数组(一维)]
*/
private static function MatchContentImage($content)
{
if(!empty($content))
{
$pattern = '/<img.*?src=[\'|\"](\/Public\/Upload\/customview\/image\/.*?[\.gif|\.jpg|\.jpeg|\.png|\.bmp])[\'|\"].*?[\/]?>/';
preg_match_all($pattern, $content, $match);
return empty($match[1]) ? [] : $match[1];
}
return [];
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function CustomViewDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 删除操作
if(db('CustomView')->where(['id'=>$params['id']])->delete())
{
return DataReturn('删除成功');
}
return DataReturn('删除失败或资源不存在', -100);
}
/**
* 状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public static function CustomViewStatusUpdate($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '字段有误',
],
[
'checked_type' => 'in',
'key_name' => 'state',
'checked_data' => [0,1],
'error_msg' => '状态有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据更新
if(db('CustomView')->where(['id'=>intval($params['id'])])->update([$params['field']=>intval($params['state'])]))
{
return DataReturn('编辑成功');
}
return DataReturn('编辑失败或数据未改变', -100);
}
}
?>
\ No newline at end of file
......@@ -46,17 +46,17 @@ class GoodsService
*/
public static function GoodsCategory($params = [])
{
$where = empty($params['where']) ? ['pid'=>0] : $params['where'];
$where = empty($params['where']) ? ['pid'=>0, 'is_enable'=>1] : $params['where'];
$data = self::GoodsCategoryList($where);
if(!empty($data))
{
foreach($data as &$v)
{
$v['items'] = self::GoodsCategoryList(['pid'=>$v['id']]);
$v['items'] = self::GoodsCategoryList(['pid'=>$v['id'], 'is_enable'=>1]);
if(!empty($v['items']))
{
// 一次性查出所有二级下的三级、再做归类、避免sql连接超多
$items = self::GoodsCategoryList(['pid'=>array_column($v['items'], 'id')]);
$items = self::GoodsCategoryList(['pid'=>array_column($v['items'], 'id'), 'is_enable'=>1]);
if(!empty($items))
{
foreach($v['items'] as &$vs)
......
......@@ -151,7 +151,7 @@ class IntegralService
$limit_start = max(0, intval($params['limit_start']));
$limit_number = max(1, intval($params['limit_number']));
$order_by = empty($params['order_by']) ? 'id desc' : I('order_by', '', '', $params);
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
// 获取数据列表
$data = db('UserIntegralLog')->where($params['where'])->limit($limit_start, $limit_number)->order($order_by)->select();
......
<?php
namespace app\service;
use app\service\GoodsService;
/**
* 友情链接服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class LinkService
{
/**
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function LinkList($params = [])
{
$data = db('Link')->order('sort asc')->select();
return DataReturn('处理成功', 0, $data);
}
/**
* 保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function LinkSave($params = [])
{
// 请求类型
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => '名称格式 2~16 个字符',
],
[
'checked_type' => 'fun',
'key_name' => 'url',
'checked_data' => 'CheckUrl',
'error_msg' => '链接地址格式有误',
],
[
'checked_type' => 'length',
'key_name' => 'sort',
'checked_data' => '4',
'error_msg' => '顺序 0~255 之间的数值',
],
[
'checked_type' => 'in',
'key_name' => 'is_new_window_open',
'checked_data' => [0,1],
'error_msg' => '是否新窗口打开范围值有误',
],
[
'checked_type' => 'in',
'key_name' => 'is_enable',
'checked_data' => [0,1],
'error_msg' => '是否显示范围值有误',
],
[
'checked_type' => 'length',
'key_name' => 'describe',
'checked_data' => '60',
'error_msg' => '描述不能大于60个字符',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据
$data = [
'name' => $params['name'],
'describe' => $params['describe'],
'url' => $params['url'],
'sort' => intval($params['sort']),
'is_enable' => intval($params['is_enable']),
'is_new_window_open' => intval($params['is_new_window_open']),
];
if(empty($params['id']))
{
$data['add_time'] = time();
if(db('Link')->insertGetId($data) > 0)
{
return DataReturn('添加成功', 0);
}
return DataReturn('添加失败', -100);
} else {
$data['upd_time'] = time();
if(db('Link')->where(['id'=>intval($params['id'])])->update($data))
{
return DataReturn('编辑成功', 0);
}
return DataReturn('编辑失败', -100);
}
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-30
* @desc description
* @param [array] $params [输入参数]
*/
public static function LinkDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 删除操作
if(db('Link')->where(['id'=>$params['id']])->delete())
{
return DataReturn('删除成功');
}
return DataReturn('删除失败或资源不存在', -100);
}
/**
* 状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public static function LinkStatusUpdate($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'in',
'key_name' => 'state',
'checked_data' => [0,1],
'error_msg' => '状态有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据更新
if(db('Link')->where(['id'=>intval($params['id'])])->update(['is_enable'=>intval($params['state'])]))
{
return DataReturn('编辑成功');
}
return DataReturn('编辑失败或数据未改变', -100);
}
}
?>
\ No newline at end of file
......@@ -50,11 +50,10 @@ class MessageService
* @desc description
* @param [array] $params [输入参数]
*/
public static function UserMessgeListWhere($params = [])
public static function MessgeListWhere($params = [])
{
$where = [
['is_delete_time', '=', 0],
['user_is_delete_time', '=', 0],
];
// id
......@@ -63,12 +62,19 @@ class MessageService
$where[] = ['id', '=', $params['id']];
}
// 用户id
if(!empty($params['user']))
// 用户类型
if(isset($params['user_type']) && $params['user_type'] == 'user')
{
$where[] = ['user_id', '=', $params['user']['id']];
}
$where[] = ['user_is_delete_time', '=', 0];
// 用户id
if(!empty($params['user']))
{
$where[] = ['user_id', '=', $params['user']['id']];
}
}
// 关键字
if(!empty($params['keywords']))
{
$where[] = ['title|detail', 'like', '%'.$params['keywords'].'%'];
......@@ -142,11 +148,11 @@ class MessageService
{
return 0;
}
return self::MessageTotal(self::UserMessgeListWhere($params));
return self::MessageTotal(self::MessgeListWhere($params));
}
/**
* 订单列表
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
......@@ -187,7 +193,7 @@ class MessageService
$limit_start = max(0, intval($params['limit_start']));
$limit_number = max(1, intval($params['limit_number']));
$order_by = empty($params['order_by']) ? 'id desc' : I('order_by', '', '', $params);
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
// 获取数据列表
$data = db('Message')->where($params['where'])->limit($limit_start, $limit_number)->order($order_by)->select();
......
<?php
namespace app\service;
use think\Db;
/**
* 导航服务层
* @author Devil
......@@ -95,5 +96,349 @@ class NavigationService
}
return $data;
}
/**
* 获取导航列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function NavList($params = [])
{
if(empty($params['nav_type']))
{
return [];
}
$field = 'id,pid,name,url,value,data_type,sort,is_show,is_new_window_open';
$data = self::NavDataDealWith(db('Navigation')->field($field)->where(['nav_type'=>$params['nav_type'], 'pid'=>0])->order('sort')->select());
if(!empty($data))
{
foreach($data as &$v)
{
$v['item'] = self::NavDataDealWith(db('Navigation')->field($field)->where(['nav_type'=>$params['nav_type'], 'pid'=>$v['id']])->order('sort')->select());
}
}
return $data;
}
/**
* 获取一级导航列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function LevelOneNav($params = [])
{
if(empty($params['nav_type']))
{
return [];
}
return db('Navigation')->field('id,name')->where(['is_show'=>1, 'pid'=>0, 'nav_type'=>$params['nav_type']])->select();
}
/**
* 导航保存
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-07T21:58:19+0800
* @param [array] $params [输入参数]
*/
public static function NavSave($params = [])
{
if(empty($params['data_type']))
{
return DataReturn('操作类型有误', -1);
}
// 请求类型
$p = [
[
'checked_type' => 'length',
'key_name' => 'sort',
'checked_data' => '4',
'error_msg' => '顺序 0~255 之间的数值',
],
[
'checked_type' => 'in',
'key_name' => 'is_show',
'checked_data' => [0,1],
'error_msg' => '是否显示范围值有误',
],
[
'checked_type' => 'in',
'key_name' => 'is_new_window_open',
'checked_data' => [0,1],
'error_msg' => '是否新窗口打开范围值有误',
]
];
switch($params['data_type'])
{
// 自定义导航
case 'custom':
$p = [
[
'checked_type' => 'in',
'key_name' => 'nav_type',
'checked_data' => ['header', 'footer'],
'error_msg' => '数据类型有误',
],
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => '导航名称格式 2~16 个字符',
],
[
'checked_type' => 'fun',
'key_name' => 'url',
'checked_data' => 'CheckUrl',
'error_msg' => 'url格式有误',
],
];
break;
// 文章分类导航
case 'article':
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'is_checked' => 1,
'error_msg' => '导航名称格式 2~16 个字符',
],
[
'checked_type' => 'empty',
'key_name' => 'value',
'error_msg' => '文章选择有误',
],
];
break;
// 自定义页面导航
case 'customview':
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'is_checked' => 1,
'error_msg' => '导航名称格式 2~16 个字符',
],
[
'checked_type' => 'empty',
'key_name' => 'value',
'error_msg' => '自定义页面选择有误',
],
];
break;
// 商品分类导航
case 'goods_category':
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'is_checked' => 1,
'error_msg' => '导航名称格式 2~16 个字符',
],
[
'checked_type' => 'empty',
'key_name' => 'value',
'error_msg' => '商品分类选择有误',
],
];
break;
// 没找到
default :
return DataReturn('操作类型有误', -1);
}
// 参数
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 保存数据
return self::NacDataSave($params);
}
/**
* 导航数据保存
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-02-05T20:12:30+0800
* @param [array] $params [输入参数]
*/
public static function NacDataSave($params = [])
{
// 非自定义导航数据处理
if(empty($params['name']))
{
switch($params['data_type'])
{
// 文章分类导航
case 'article':
$temp_name = db('Article')->where(['id'=>$params['value']])->value('title');
break;
// 自定义页面导航
case 'customview':
$temp_name = db('CustomView')->where(['id'=>$params['value']])->value('title');
break;
// 商品分类导航
case 'goods_category':
$temp_name = db('GoodsCategory')->where(['id'=>$params['value']])->value('name');
break;
}
// 只截取16个字符
$params['name'] = mb_substr($temp_name, 0, 16, config('default_charset'));
}
// 清除缓存
cache(config('cache_common_home_nav_'.$params['nav_type'].'_key'), null);
// 数据
$data = [
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
'value' => isset($params['value']) ? intval($params['value']) : 0,
'name' => $params['name'],
'url' => isset($params['url']) ? $params['url'] : '',
'nav_type' => $params['nav_type'],
'data_type' => $params['data_type'],
'sort' => intval($params['sort']),
'is_show' => intval($params['is_show']),
'is_new_window_open' => intval($params['is_new_window_open']),
];
// id为空则表示是新增
if(empty($params['id']))
{
$data['add_time'] = time();
if(db('Navigation')->insertGetId($data) > 0)
{
// 清除缓存
cache(config('cache_common_home_nav_'.$params['nav_type'].'_key'), null);
return DataReturn('新增成功', 0);
} else {
return DataReturn('新增失败', -100);
}
} else {
$data['upd_time'] = time();
if(db('Navigation')->where(['id'=>intval($params['id'])])->update($data))
{
// 清除缓存
cache(config('cache_common_home_nav_'.$params['nav_type'].'_key'), null);
return DataReturn('编辑成功', 0);
} else {
return DataReturn('编辑失败或数据未改变', -100);
}
}
}
/**
* 导航删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function NavDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 启动事务
Db::startTrans();
// 删除操作
if(db('Navigation')->where(['id'=>$params['id']])->delete() !== false && db('Navigation')->where(['pid'=>$params['id']])->delete() !== false)
{
// 提交事务
Db::commit();
// 清除缓存
cache(config('cache_common_home_nav_header_key'), null);
cache(config('cache_common_home_nav_footer_key'), null);
return DataReturn('删除成功');
}
// 回滚事务
Db::rollback();
return DataReturn('删除失败或资源不存在', -100);
}
/**
* 状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public static function NavStatusUpdate($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '操作id有误',
],
[
'checked_type' => 'in',
'key_name' => 'state',
'checked_data' => [0,1],
'error_msg' => '状态有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据更新
if(db('Navigation')->where(['id'=>intval($params['id'])])->update(['is_show'=>intval($params['state'])]))
{
// 清除缓存
cache(config('cache_common_home_nav_header_key'), null);
cache(config('cache_common_home_nav_footer_key'), null);
return DataReturn('编辑成功');
}
return DataReturn('编辑失败或数据未改变', -100);
}
}
?>
\ No newline at end of file
......@@ -447,6 +447,10 @@ class OrderService
{
$where[] = ['payment_id', '=', intval($params['payment_id'])];
}
if(isset($params['express_id']) && $params['express_id'] > -1)
{
$where[] = ['express_id', '=', intval($params['express_id'])];
}
if(isset($params['pay_status']) && $params['pay_status'] > -1)
{
$where[] = ['pay_status', '=', intval($params['pay_status'])];
......@@ -552,7 +556,7 @@ class OrderService
$limit_start = max(0, intval($params['limit_start']));
$limit_number = max(1, intval($params['limit_number']));
$order_by = empty($params['order_by']) ? 'id desc' : I('order_by', '', '', $params);
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
$is_items = isset($params['is_items']) ? intval($params['is_items']) : 1;
// 获取订单
......@@ -819,7 +823,7 @@ class OrderService
$upd_data = [
'status' => 3,
'express_id' => intval($params['express_id']),
'express_number' => I('express_number', '', '', $params),
'express_number' => isset($params['express_number']) ? $params['express_number'] : '',
'delivery_time' => time(),
'upd_time' => time(),
];
......
......@@ -1083,7 +1083,7 @@ class UserService
$email_param = array(
'email' => $params['accounts'],
'content' => MyC('home_email_user_reg'),
'title' => MyC('home_site_name').' - 用户注册'
'title' => MyC('home_site_name').' - 用户注册',
'code' => $code,
);
$status = $obj->SendHtml($email_param);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册