提交 cf6738ab 编写于 作者: G gongfuxiang

文章,消息,支付日志

上级 a2157b0c
<?php
namespace app\admin\controller;
/**
* 协议管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Agreement extends Common
{
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T12:39:08+0800
*/
public function __construct()
{
// 调用父类前置方法
parent::__construct();
// 登录校验
$this->Is_Login();
// 权限校验
$this->Is_Power();
}
/**
* [Index 配置列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
*/
public function Index()
{
// 配置信息
$data = db('Config')->getField('only_tag,name,describe,value,error_tips');
$this->assign('data', $data);
$type = I('type', 'kehu');
$this->assign('nav_type', $type);
if($type == 'kehu')
{
$this->display('Kehu');
} else {
$this->display('Shanghu');
}
}
/**
* [Save 配置数据保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-02T23:08:19+0800
*/
public function Save()
{
$this->MyConfigSave();
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
use Service\ResourcesService;
use app\service\ArticleService;
/**
* 文章管理
......@@ -42,128 +41,51 @@ class Article extends Common
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 模型对象
$m = db('Article');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $param,
'url' => url('Admin/Article/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$list = $this->SetDataHandle($m->where($where)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select());
// 是否启用
$params = input();
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = ArticleService::ArticleListWhere($params);
// 获取总数
$total = ArticleService::ArticleTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/article/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
'field' => 'a.*',
);
$data = ArticleService::ArticleList($data_params);
$this->assign('data_list', $data['data']);
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
// 是否
$this->assign('common_is_text_list', lang('common_is_text_list'));
// 文章分类
$this->assign('article_category_list', db('ArticleCategory')->field(array('id', 'name'))->where(array('is_enable'=>1))->select());
// 参数
$this->assign('param', $param);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 数据列表
$this->assign('list', $list);
// 文章分类
$article_category = ArticleService::ArticleCategoryList(['field'=>'id,name']);
$this->assign('article_category_list', $article_category['data']);
$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))
{
$ac = db('ArticleCategory');
foreach($data as &$v)
{
// 时间
$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['is_enable_text'] = lang('common_is_enable_list')[$v['is_enable']]['name'];
// 文章分类
$v['article_category_name'] = $ac->where(array('id'=>$v['article_category_id']))->getField('name');
// url
$v['url'] = HomeUrl('Article', 'Index', ['id'=>$v['id']]);
}
}
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('article_category_id', -1) > -1)
{
$where['article_category_id'] = intval(I('article_category_id'));
}
if(I('is_home_recommended', -1) > -1)
{
$where['is_home_recommended'] = intval(I('is_home_recommended', 1));
}
// 表达式
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();
}
/**
......@@ -175,27 +97,37 @@ class Article extends Common
*/
public function SaveInfo()
{
// 文章信息
if(empty($_REQUEST['id']))
{
$data = array();
} else {
$data = db('Article')->find(I('id'));
if(!empty($data['content']))
{
// 静态资源地址处理
$data['content'] = ResourcesService::ContentStaticReplace($data['content'], 'get');
}
}
$this->assign('data', $data);
// 参数
$params = input();
// 数据
if(!empty($params['id']))
{
// 获取列表
$data_params = array(
'm' => 0,
'n' => 1,
'where' => ['a.id'=>intval($params['id'])],
'field' => 'a.*',
);
$data = ArticleService::ArticleList($data_params);
$this->assign('data', empty($data['data'][0]) ? [] : $data['data'][0]);
}
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
// 文章分类
$this->assign('article_category_list', db('ArticleCategory')->field(array('id', 'name'))->where(array('is_enable'=>1))->select());
$article_category = ArticleService::ArticleCategoryList(['field'=>'id,name']);
$this->assign('article_category_list', $article_category['data']);
$this->display('SaveInfo');
// 参数
$this->assign('params', $params);
// 编辑器文件存放地址
$this->assign('editor_path_type', 'article');
return $this->fetch();
}
/**
......@@ -208,124 +140,15 @@ class Article extends Common
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 数据处理
$_POST['is_enable'] = isset($_POST['is_enable']) ? intval($_POST['is_enable']) : 0;
// 添加
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('Article');
// 数据自动校验
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);
$m->is_home_recommended = intval(I('is_home_recommended', 0));
// 数据添加
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('Article');
// 数据自动校验
if($m->create($_POST, 2))
{
// 额外数据处理
$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);
$m->is_home_recommended = intval(I('is_home_recommended', 0));
// 数据更新
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\/article\/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 = ArticleService::ArticleSave($params);
return json($ret);
}
/**
......@@ -338,24 +161,16 @@ class Article extends Common
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除数据
if(!empty($_POST['id']))
{
// 更新
if(db('Article')->delete(I('id')))
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn('参数错误', -1);
}
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['admin'] = $this->admin;
$ret = ArticleService::ArticleDelete($params);
return json($ret);
}
/**
......@@ -367,19 +182,18 @@ class Article extends Common
*/
public function StatusUpdate()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
{
$this->ajaxReturn('参数错误', -1);
}
// 数据更新
if(db('Article')->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();
$params['admin'] = $this->admin;
$params['field'] = 'is_enable';
$ret = ArticleService::ArticleStatusUpdate($params);
return json($ret);
}
/**
......@@ -391,19 +205,18 @@ class Article extends Common
*/
public function StatusHomeRecommended()
{
// 参数
if(empty($_POST['id']) || !isset($_POST['state']))
{
$this->ajaxReturn('参数错误', -1);
}
// 数据更新
if(db('Article')->where(array('id'=>I('id')))->save(array('is_home_recommended'=>I('state'))))
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['admin'] = $this->admin;
$params['field'] = 'is_home_recommended';
$ret = ArticleService::ArticleStatusUpdate($params);
return json($ret);
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
use app\service\ArticleService;
/**
* 文章分类管理
* @author Devil
......@@ -39,8 +40,10 @@ class ArticleCategory extends Common
*/
public function Index()
{
// 是否启用
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
$this->display('Index');
return $this->fetch();
}
/**
......@@ -58,39 +61,9 @@ class ArticleCategory extends Common
$this->error('非法访问');
}
// 获取数据
$field = array('id', 'name', 'sort', 'is_enable');
$data = db('ArticleCategory')->field($field)->where(array('pid'=>intval(I('id', 0))))->select();
if(!empty($data))
{
foreach($data as $k=>$v)
{
$data[$k]['is_son'] = $this->IsExistSon($v['id']);
$data[$k]['ajax_url'] = url('Admin/ArticleCategory/GetNodeSon', array('id'=>$v['id']));
$data[$k]['delete_url'] = url('Admin/ArticleCategory/Delete');
$data[$k]['json'] = json_encode($v);
}
}
$msg = empty($data) ? '没有相关数据' : '操作成功';
$this->ajaxReturn($msg, 0, $data);
}
/**
* [IsExistSon 节点是否存在子数据]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T15:22:47+0800
* @param [int] $id [节点id]
* @return [string] [有数据ok, 则no]
*/
private function IsExistSon($id)
{
if(!empty($id))
{
return (db('ArticleCategory')->where(array('pid'=>$id))->count() > 0) ? 'ok' : 'no';
}
return 'no';
// 开始操作
$ret = ArticleService::ArticleCategoryNodeSon(input());
return json($ret);
}
/**
......@@ -108,50 +81,9 @@ class ArticleCategory extends Common
$this->error('非法访问');
}
// id为空则表示是新增
$m = D('ArticleCategory');
// 公共额外数据处理
$m->sort = intval(I('sort'));
// 添加
if(empty($_POST['id']))
{
if($m->create($_POST, 1))
{
// 额外数据处理
$m->add_time = time();
$m->name = I('name');
// 写入数据库
if($m->add())
{
$this->ajaxReturn('新增成功');
} else {
$this->ajaxReturn('新增失败', -100);
}
}
} else {
// 编辑
if($m->create($_POST, 2))
{
// 额外数据处理
$m->name = I('name');
$m->upd_time = time();
// 移除 id
unset($m->id);
// 更新数据库
if($m->where(array('id'=>I('id')))->save())
{
$this->ajaxReturn('编辑成功');
} else {
$this->ajaxReturn('编辑失败或数据未改变', -100);
}
}
}
$this->ajaxReturn($m->getError(), -1);
// 开始操作
$ret = ArticleService::ArticleCategorySave(input());
return json($ret);
}
/**
......@@ -163,23 +95,17 @@ class ArticleCategory extends Common
*/
public function Delete()
{
// 是否ajax
if(!IS_AJAX)
{
$this->error('非法访问');
return $this->error('非法访问');
}
$m = D('ArticleCategory');
if($m->create($_POST, 5))
{
if($m->delete(I('id')))
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
// 开始操作
$params = input('post.');
$params['admin'] = $this->admin;
$ret = ArticleService::ArticleCategoryDelete($params);
return json($ret);
}
}
?>
\ No newline at end of file
<?php
namespace app\admin\controller;
use app\service\MessageService;
/**
* 消息管理
* @author Devil
......@@ -40,27 +41,41 @@ class Message extends Common
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 条件
$where = $this->GetIndexWhere();
// 模型
$m = db('Message');
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->alias('m')->join('__USER__ AS u ON u.id=m.user_id')->where($where)->count(),
'where' => $param,
'url' => url('Admin/Message/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$field = 'm.*,u.username,u.nickname,u.mobile,u.gender';
$list = $this->SetDataHandle($m->alias('m')->join('__USER__ AS u ON u.id=m.user_id')->field($field)->where($where)->limit($page->GetPageStarNumber(), $number)->order('m.id desc')->select());
$params = input();
$params['user'] = $this->admin;
$params['user_type'] = 'admin';
// 消息更新未已读
MessageService::MessageRead($params);
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = MessageService::AdminMessageListWhere($params);
// 获取总数
$total = MessageService::AdminMessageTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/message/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = MessageService::AdminMessageList($data_params);
$this->assign('data_list', $data['data']);
// 性别
$this->assign('common_gender_list', lang('common_gender_list'));
......@@ -72,103 +87,8 @@ class Message extends Common
$this->assign('common_is_read_list', lang('common_is_read_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))
{
$common_gender_list = lang('common_gender_list');
$common_is_read_list = lang('common_is_read_list');
$common_message_type_list = lang('common_message_type_list');
foreach($data as &$v)
{
// 消息类型
$v['type_text'] = $common_message_type_list[$v['type']]['name'];
// 是否已读
$v['is_read_text'] = $common_is_read_list[$v['is_read']]['name'];
// 性别
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
// 添加时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
}
}
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('m.is_delete_time'=>0);
// 模糊
if(!empty($_REQUEST['keyword']))
{
$like_keyword = array('like', '%'.I('keyword').'%');
$where[] = array(
'u.username' => $like_keyword,
'u.nickname' => $like_keyword,
'u.mobile' => $like_keyword,
'm.title' => $like_keyword,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(I('type', -1) > -1)
{
$where['m.type'] = intval(I('type', 0));
}
if(I('is_read', -1) > -1)
{
$where['m.is_read'] = intval(I('is_read', 0));
}
if(I('gender', -1) > -1)
{
$where['u.gender'] = intval(I('gender', 0));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['m.add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['m.add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
$this->assign('params', $params);
return $this->fetch();
}
/**
......@@ -181,38 +101,16 @@ class Message extends Common
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 参数处理
$id = I('id');
// 删除数据
if(!empty($id))
{
// 消息模型
$m = db('Message');
// 消息是否存在
$user = $m->where(array('id'=>$id))->getField('id');
if(empty($user))
{
$this->ajaxReturn('资源不存在或已被删除', -2);
}
// 删除消息
$status = $m->where(array('id'=>$id))->save(['is_delete_time'=>time()]);
if($status !== false)
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn('参数错误', -1);
}
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['admin'] = $this->admin;
$ret = MessageService::MessageDelete($params);
return json($ret);
}
}
?>
\ No newline at end of file
......@@ -54,7 +54,8 @@ class Navigation extends Common
$this->assign('nav_header_pid_list', NavigationService::LevelOneNav(['nav_type'=>$this->nav_type]));
// 获取分类和文章
$this->assign('article_list', ArticleService::ArticleCategoryList());
$article_category_content = ArticleService::ArticleCategoryListContent();
$this->assign('article_list', $article_category_content['data']);
// 商品分类
$this->assign('goods_category_list', GoodsService::GoodsCategory());
......
<?php
namespace app\admin\controller;
use app\service\PayLogService;
/**
* 支付日志管理
* @author Devil
......@@ -40,132 +41,52 @@ class PayLog extends Common
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 条件
$where = $this->GetIndexWhere();
// 模型
$m = db('PayLog');
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->alias('p')->join('__USER__ AS u ON u.id=p.user_id')->where($where)->count(),
'where' => $param,
'url' => url('Admin/PayLog/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$field = 'p.*,u.username,u.nickname,u.mobile,u.gender';
$list = $this->SetDataHandle($m->alias('p')->join('__USER__ AS u ON u.id=p.user_id')->field($field)->where($where)->limit($page->GetPageStarNumber(), $number)->order('p.id desc')->select());
$params = input();
$params['user'] = $this->admin;
$params['user_type'] = 'admin';
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = PayLogService::AdminPayLogListWhere($params);
// 获取总数
$total = PayLogService::AdminPayLogTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/paylog/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = PayLogService::AdminPayLogList($data_params);
$this->assign('data_list', $data['data']);
// 性别
$this->assign('common_gender_list', lang('common_gender_list'));
// 支付日志类型
$pay_list = $m->field('payment AS id, payment_name AS name')->group('payment')->select();
$this->assign('common_pay_type_list', $pay_list);
// 业务类型
$this->assign('common_business_type_list', lang('common_business_type_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))
{
$common_gender_list = lang('common_gender_list');
$common_business_type_list = lang('common_business_type_list');
foreach($data as &$v)
{
// 业务类型
$v['business_type_text'] = $common_business_type_list[$v['business_type']]['name'];
// 性别
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
// 添加时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
}
}
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']))
{
$like_keyword = array('like', '%'.I('keyword').'%');
$where[] = array(
'u.username' => $like_keyword,
'u.nickname' => $like_keyword,
'u.mobile' => $like_keyword,
'p.trade_no' => $like_keyword,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(!empty($_REQUEST['pay_type']))
{
$where['p.payment'] = I('pay_type');
}
if(I('business_type', -1) > -1)
{
$where['p.business_type'] = intval(I('business_type', 0));
}
if(I('gender', -1) > -1)
{
$where['u.gender'] = intval(I('gender', 0));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['p.add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['p.add_time'][] = array('lt', strtotime(I('time_end')));
}
}
// 支付日志类型
$pay_type_list = PayLogService::PayLogTypeList($params);
$this->assign('common_pay_type_list', $pay_type_list['data']);
return $where;
// 参数
$this->assign('params', $params);
return $this->fetch();
}
}
?>
\ No newline at end of file
......@@ -4,39 +4,39 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/Article/Index')}}" method="POST">
<form class="am-form view-list" action="{{:url('admin/article/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 class="am-radius c-p m-t-10 param-where" name="article_category_id">
<option value="-1)}}文章分类</option>
<foreach name="article_category_list" item="v">
<option value="{{$v.id}}" {{if isset($param['article_category_id']) and $param['article_category_id'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">文章分类</option>
{{foreach $article_category_list as $v}}
<option value="{{$v.id}}" {{if isset($params['article_category_id']) and $params['article_category_id'] 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>
<select name="is_home_recommended" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}首页推荐</option>
<foreach name="common_is_text_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_home_recommended']) and $param['is_home_recommended'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">首页推荐</option>
{{foreach $common_is_text_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_home_recommended']) and $params['is_home_recommended'] 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/Article/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/article/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>
......@@ -63,19 +63,19 @@
</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="{{:HomeUrl('Article', 'Index', ['id'=>$v['id']])}}" target="_blank" title="{{$v.title}}" {{if !empty($v['title_color'])}} style="color:{{$v.title_color}};" {{/if}} >{{$v.title}}</a>
<a href="{{$v.url}}" target="_blank" title="{{$v.title}}" {{if !empty($v['title_color'])}} style="color:{{$v.title_color}};" {{/if}} >{{$v.title}}</a>
</td>
<td class="am-hide-sm-only">{{$v.article_category_name}}</td>
<td class="am-hide-sm-only">{{$v.access_count}}</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/Article/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/article/StatusUpdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-is-update-status="1"></a>
</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_home_recommended'] eq 1)}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('Admin/Article/StatusHomeRecommended')}}" data-id="{{$v.id}}" data-state="{{$v['is_home_recommended']}}"></a>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_home_recommended'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/article/statushomerecommended')}}" data-id="{{$v.id}}" data-state="{{$v['is_home_recommended']}}"></a>
</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
......@@ -101,20 +101,20 @@
<dd>{{$v.is_enable_text}}</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/Article/SaveInfo', array('id'=>$v['id']))}}">
<a href="{{:url('admin/article/saveinfo', array_merge($params, ['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/Article/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/article/delete')}}" data-id="{{$v.id}}"></button>
</td>
</tr>
{{/foreach}}
......@@ -126,8 +126,8 @@
<!-- list end -->
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
......
......@@ -4,25 +4,25 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('Admin/Article/Save')}}" method="POST" request-type="ajax-url" request-value="{{:url('Admin/Article/Index')}}">
<form class="am-form form-validation view-save" action="{{:url('admin/article/save')}}" method="POST" request-type="ajax-url" request-value="{{:url('admin/article/index', $params)}}">
<legend>
<span class="fs-16)}}
<span class="fs-16">
{{if empty($data['id'])}}
文章添加
{{else /}}
文章编辑
{{/if}}
</span>
<a href="{{:url('Admin/Article/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
<a href="{{:url('admin/article/index', $params)}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group">
<label>标题</label>
<div class="am-input-group am-input-group-sm">
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
<input type="text" name="title" placeholder="标题" minlength="3" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-form-field am-radius" <notempty name="data"> value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
<input type="text" name="title" placeholder="标题" minlength="2" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-form-field am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default colorpicker-submit" type="button" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
<img src="__PUBLIC__/Common/Images/colorpicker.png" />
<img src="{{$image_host}}/static/common/images/colorpicker.png" />
</button>
</span>
</div>
......@@ -31,29 +31,29 @@
<label>文章分类</label>
<select name="article_category_id" class="am-radius c-p chosen-select" data-placeholder="可选择..." data-validation-message="请选择文章分类" required>
<option value="">可选择...</option>
<foreach name="article_category_list" item="v">
<option value="{{$v.id}}" {{if isset($data['article_category_id']) and $data['article_category_id'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
{{foreach $article_category_list as $v}}
<option value="{{$v.id}}" {{if isset($data['article_category_id']) and $data['article_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>跳转url地址</label>
<input type="url" name="jump_url" placeholder="跳转url地址" data-validation-message="跳转url地址格式有误" class="am-radius" <notempty name="data"> value="{{$data.jump_url}}"{{/if}} />
<label>跳转url地址<span class="fs-12 fw-100 cr-999">(带http://或https://)</span></label>
<input type="url" name="jump_url" placeholder="跳转url地址" data-validation-message="跳转url地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.jump_url}}"{{/if}} />
</div>
<div class="am-form-group">
<label class="block">是否启用</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1)}}checked="true"{{/if}} />
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label class="block">首页推荐</label>
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_home_recommended'] eq 1)}}checked="true"{{/if}} />
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_home_recommended'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label>内容</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'=>'article'])}}" placeholder="内容长度最少 10~105000 个字符" {{else /}} placeholder="内容长度最少 10~105000 个字符更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容长度最少 10~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'=>'article'])}}" placeholder="内容长度最少 10~105000 个字符" {{else /}} placeholder="内容长度最少 10~105000 个字符更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容长度最少 10~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>
......
......@@ -18,7 +18,7 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation admin-save" action="{{:url('Admin/ArticleCategory/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation admin-save" action="{{:url('admin/articlecategory/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 />
......@@ -27,7 +27,7 @@
<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/Enable" />
{{include file="lib/enable" /}}
<div class="am-form-group">
<input type="hidden" name="id" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
......@@ -40,9 +40,9 @@
<!-- save win end -->
<!-- list start -->
<div id="tree" class="m-t-15)}}
<div id="tree" class="m-t-15">
<div class="m-t-30 t-c">
<img src="__PUBLIC__/Common/Images/loading.gif" />
<img src="{{$image_host}}/static/common/images/loading.gif" />
<p>处理中...</p>
</div>
</div>
......@@ -55,5 +55,5 @@
{{include file="public/footer" /}}
<!-- footer end -->
<script>
Tree(0, "{{:url('Admin/ArticleCategory/GetNodeSon')}}", 0);
Tree(0, "{{:url('admin/articlecategory/getnodeson')}}", 0);
</script>
\ No newline at end of file
......@@ -6,7 +6,7 @@
<!-- form start -->
<form class="am-form view-list" action="{{:url('admin/brand/index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="名称" name="keywords" {{if !empty($params['keywords'])}} value="{{$params.keywords}}"{{/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">
更多筛选
......@@ -28,9 +28,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>
......
......@@ -4,39 +4,39 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/Message/Index')}}" method="POST">
<form class="am-form view-list" action="{{:url('admin/message/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="gender" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}性别</option>
<foreach name="common_gender_list" item="v">
<option value="{{$v.id}}" {{if isset($param['gender']) and $param['gender'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">性别</option>
{{foreach $common_gender_list as $v}}
<option value="{{$v.id}}" {{if isset($params['gender']) and $params['gender'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="type" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}消息类型</option>
<foreach name="common_message_type_list" item="v">
<option value="{{$v.id}}" {{if isset($param['type']) and $param['type'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">消息类型</option>
{{foreach $common_message_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['type']) and $params['type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="is_read" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}是否已读</option>
<foreach name="common_is_read_list" item="v">
<option value="{{$v.id}}" {{if isset($param['is_read']) and $param['is_read'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">是否已读</option>
{{foreach $common_is_read_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_read']) and $params['is_read'] 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,7 +44,7 @@
<!-- form end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5">
<thead>
<tr>
<th>用户信息</th>
......@@ -57,8 +57,8 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}">
<td>
{{if !empty($v['username'])}}
......@@ -74,7 +74,7 @@
{{$v.gender_text}}
</td>
<td>
{{if empty($v['type_text'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.type_text}}{{/if}}
{{if empty($v['type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.type_name}}{{/if}}
</td>
<td>
{{if empty($v['title'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.title}}{{/if}}
......@@ -83,13 +83,13 @@
{{if empty($v['detail'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.detail}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['is_read_text'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.is_read_text}}{{/if}}
{{if empty($v['is_read_name'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.is_read_name}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['add_time'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.add_time}}{{/if}}
{{if empty($v['add_time_time'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.add_time_time}}{{/if}}
</td>
<td class="view-operation">
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:url('Admin/Message/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/message/Delete')}}" data-id="{{$v.id}}"> 删除</button>
</td>
</tr>
{{/foreach}}
......@@ -101,8 +101,8 @@
<!-- list end -->
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
......
......@@ -4,41 +4,41 @@
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/PayLog/Index')}}" method="POST">
<form class="am-form view-list" action="{{:url('admin/paylog/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="gender" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}性别</option>
<foreach name="common_gender_list" item="v">
<option value="{{$v.id}}" {{if isset($param['gender']) and $param['gender'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">性别</option>
{{foreach $common_gender_list as $v}}
<option value="{{$v.id}}" {{if isset($params['gender']) and $params['gender'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="pay_type" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="">支付类型</option>
<foreach name="common_pay_type_list" item="v">
{{foreach $common_pay_type_list as $v}}
{{if !empty($v['id']) && !empty($v['name'])}}
<option value="{{$v.id}}" {{if isset($param['pay_type']) and $param['pay_type'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="{{$v.id}}" {{if isset($params['pay_type']) and $params['pay_type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/if}}
{{/foreach}}
</select>
<select name="business_type" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}业务类型</option>
<foreach name="common_business_type_list" item="v">
<option value="{{$v.id}}" {{if isset($param['business_type']) and $param['business_type'] eq $v['id']">selected{{/if}}>{{$v.name}}</option>
<option value="-1">业务类型</option>
{{foreach $common_business_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['business_type']) and $params['business_type'] 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>
......@@ -46,7 +46,7 @@
<!-- form end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5)}}
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5">
<thead>
<tr>
<th>用户信息</th>
......@@ -62,8 +62,8 @@
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}">
<td>
{{if !empty($v['username'])}}
......@@ -82,7 +82,7 @@
{{if empty($v['payment_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.payment_name}}{{/if}}
</td>
<td>
{{if empty($v['business_type_text'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.business_type_text}}{{/if}}
{{if empty($v['business_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.business_type_name}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['order_id'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.order_id}}{{/if}}
......@@ -103,7 +103,7 @@
{{if empty($v['subject'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.subject}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['add_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.add_time}}{{/if}}
{{if empty($v['add_time_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.add_time_time}}{{/if}}
</td>
</tr>
{{/foreach}}
......@@ -115,8 +115,8 @@
<!-- list end -->
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
......
......@@ -38,29 +38,30 @@ class Article extends Common
$id = input('id');
$params = [
'where' => ['a.is_enable'=>1, 'a.id'=>$id],
'field' => 'a.id,a.title,a.title_color,a.content,a.access_count,a.article_category_id,a.add_time',
'field' => 'a.id,a.title,a.title_color,a.jump_url,a.content,a.access_count,a.article_category_id,a.add_time',
'm' => 0,
'n' => 1,
];
$article = ArticleService::ArticleList($params);
if(!empty($article[0]))
if(!empty($article['data'][0]))
{
// 访问统计
ArticleService::ArticleAccessCountInc(['id'=>$id]);
// 是否外部链接
if(!empty($article[0]['jump_url']))
if(!empty($article['data'][0]['jump_url']))
{
return redirect($article[0]['jump_url']);
return redirect($article['data'][0]['jump_url']);
}
// 浏览器标题
$this->assign('home_seo_site_title', $this->GetBrowserSeoTitle($article[0]['title'], 1));
$this->assign('home_seo_site_title', $this->GetBrowserSeoTitle($article['data'][0]['title'], 1));
// 获取分类和文字
$this->assign('category_list', ArticleService::ArticleCategoryList());
$article_category_content = ArticleService::ArticleCategoryListContent();
$this->assign('category_list', $article_category_content['data']);
$this->assign('article', $article[0]);
$this->assign('article', $article['data'][0]);
return $this->fetch();
} else {
$this->assign('msg', '文章不存在或已删除');
......
......@@ -63,7 +63,8 @@ class Index extends Common
'm' => 0,
'n' => 9,
];
$this->assign('article_list', ArticleService::ArticleList($params));
$article_list = ArticleService::ArticleList($params);
$this->assign('article_list', $article_list['data']);
// 用户订单状态
$user_order_status = OrderService::OrderStatusStepTotal(['user_type'=>'user', 'user'=>$this->user, 'is_comments'=>1]);
......
......@@ -50,7 +50,7 @@ class Message extends Common
$number = 10;
// 条件
$where = MessageService::MessgeListWhere($params);
$where = MessageService::MessageListWhere($params);
// 获取总数
$total = MessageService::MessageTotal($where);
......
......@@ -44,7 +44,7 @@
<ul class="am-nav">
{{foreach $v.items as $vs}}
<li>
<a href="{{:url('index/article/index', ['id'=>$vs['id']])}}" {{if !empty($vs.title_color)}}style="color:{{$vs.title_color}};"{{/if}} >{{$vs.title}}</a>
<a href="{{$vs.url}}" {{if !empty($vs.title_color)}}style="color:{{$vs.title_color}};"{{/if}} >{{$vs.title}}</a>
</li>
{{/foreach}}
</ul>
......
......@@ -107,7 +107,7 @@
{{if !empty($article_list)}}
{{foreach $article_list as $article}}
<li>
<a href="{{:url('index/article/index', ['id'=>$article['id']])}}" target="_blank">
<a href="{{$article.url}}" target="_blank">
<span>[{{$article.category_name}}]</span>
<span {{if !empty($article.title_color)}}style="color:{{$article.title_color}};"{{/if}} >{{$article.title}}</span>
</a>
......
......@@ -32,8 +32,25 @@ class ArticleService
$data = Db::name('Article')->alias('a')->join(['__ARTICLE_CATEGORY__'=>'ac'], 'a.article_category_id=ac.id')->field($field)->where($where)->order('a.id desc')->limit($m, $n)->select();
if(!empty($data))
{
$common_is_enable_tips = lang('common_is_enable_tips');
foreach($data as &$v)
{
// url
$v['url'] = HomeUrl('article', 'index', ['id'=>$v['id']]);
// 分类名称
if(isset($v['article_category_id']))
{
$v['article_category_name'] = Db::name('ArticleCategory')->where(['id'=>$v['article_category_id']])->value('name');
}
// 是否启用
if(isset($v['is_enable']))
{
$v['is_enable_text'] = $common_is_enable_tips[$v['is_enable']]['name'];
}
// 内容
if(isset($v['content']))
{
$v['content'] = ResourcesService::ContentStaticReplace($v['content'], 'get');
......@@ -43,9 +60,172 @@ class ArticleService
$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 0.0.1
* @datetime 2016-12-10T22:16:29+0800
* @param [array] $where [条件]
*/
public static function ArticleTotal($where)
{
return (int) Db::name('Article')->alias('a')->join(['__ARTICLE_CATEGORY__'=>'ac'], 'a.article_category_id=ac.id')->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 ArticleListWhere($params = [])
{
$where = [];
if(!empty($params['keywords']))
{
$where[] = ['a.title', 'like', '%'.$params['keywords'].'%'];
}
// 是否更多条件
if(isset($params['is_more']) && $params['is_more'] == 1)
{
// 等值
if(isset($params['is_enable']) && $params['is_enable'] > -1)
{
$where[] = ['a.is_enable', '=', intval($params['is_enable'])];
}
if(isset($params['article_category_id']) && $params['article_category_id'] > -1)
{
$where[] = ['a.article_category_id', '=', intval($params['article_category_id'])];
}
if(isset($params['is_home_recommended']) && $params['is_home_recommended'] > -1)
{
$where[] = ['a.is_home_recommended', '=', intval($params['is_home_recommended'])];
}
if(!empty($params['time_start']))
{
$where[] = ['a.add_time', '>', strtotime($params['time_start'])];
}
if(!empty($params['time_end']))
{
$where[] = ['a.add_time', '<', strtotime($params['time_end'])];
}
}
return $where;
}
/**
* 文章保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleSave($params = [])
{
// 请求类型
$p = [
[
'checked_type' => 'length',
'key_name' => 'title',
'checked_data' => '2,60',
'error_msg' => '标题长度 2~60 个字符',
],
[
'checked_type' => 'empty',
'key_name' => 'article_category_id',
'error_msg' => '请选择文章分类',
],
[
'checked_type' => 'fun',
'key_name' => 'jump_url',
'checked_data' => 'CheckUrl',
'is_checked' => 1,
'error_msg' => '跳转url地址格式有误',
],
[
'checked_type' => 'length',
'key_name' => 'content',
'checked_data' => '10,105000',
'error_msg' => '内容 10~105000 个字符',
],
];
$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'],
'title_color' => empty($params['title_color']) ? '' : $params['title_color'],
'article_category_id' => intval($params['article_category_id']),
'jump_url' => empty($params['jump_url']) ? '' : $params['jump_url'],
'content' => $content,
'image' => empty($image) ? '' : json_encode($image),
'image_count' => count($image),
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
'is_home_recommended' => isset($params['is_home_recommended']) ? intval($params['is_home_recommended']) : 0,
];
if(empty($params['id']))
{
$data['add_time'] = time();
if(Db::name('Article')->insertGetId($data) > 0)
{
return DataReturn('添加成功', 0);
}
return DataReturn('添加失败', -100);
} else {
$data['upd_time'] = time();
if(Db::name('Article')->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=[\'|\"](\/static\/upload\/article\/image\/.*?[\.gif|\.jpg|\.jpeg|\.png|\.bmp])[\'|\"].*?[\/]?>/';
preg_match_all($pattern, $content, $match);
return empty($match[1]) ? [] : $match[1];
}
return array();
}
/**
......@@ -57,17 +237,26 @@ class ArticleService
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryList($params = [])
public static function ArticleCategoryListContent($params = [])
{
$data = Db::name('ArticleCategory')->field('id,name')->where(['is_enable'=>1])->order('id asc, sort asc')->select();
if(!empty($data))
{
foreach($data as &$v)
{
$v['items'] = Db::name('Article')->field('id,title,title_color')->where(['article_category_id'=>$v['id'], 'is_enable'=>1])->select();
$items = Db::name('Article')->field('id,title,title_color')->where(['article_category_id'=>$v['id'], 'is_enable'=>1])->select();
if(!empty($items))
{
foreach($items as &$vs)
{
// url
$vs['url'] = HomeUrl('article', 'index', ['id'=>$vs['id']]);
}
}
$v['items'] = $items;
}
}
return $data;
return DataReturn('处理成功', 0, $data);
}
/**
......@@ -87,5 +276,220 @@ class ArticleService
}
return false;
}
/**
* 文章分类
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryList($params = [])
{
$field = empty($params['field']) ? '*' : $params['field'];
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
$data = Db::name('ArticleCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->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 ArticleDelete($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::name('Article')->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 ArticleStatusUpdate($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::name('Article')->where(['id'=>intval($params['id'])])->update([$params['field']=>intval($params['state'])]))
{
return DataReturn('编辑成功');
}
return DataReturn('编辑失败或数据未改变', -100);
}
/**
* 获取文章分类节点数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-16T23:54:46+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryNodeSon($params = [])
{
// id
$id = isset($params['id']) ? intval($params['id']) : 0;
// 获取数据
$field = '*';
$data = Db::name('ArticleCategory')->field($field)->where(['pid'=>$id])->order('sort asc')->select();
if(!empty($data))
{
foreach($data as &$v)
{
$v['is_son'] = (Db::name('ArticleCategory')->where(['pid'=>$v['id']])->count() > 0) ? 'ok' : 'no';
$v['ajax_url'] = url('admin/articlecategory/getnodeson', array('id'=>$v['id']));
$v['delete_url'] = url('admin/articlecategory/delete');
$v['json'] = json_encode($v);
}
return DataReturn('操作成功', 0, $data);
}
return DataReturn('没有相关数据', -100);
}
/**
* 文章分类保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T01:04:03+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategorySave($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => '名称格式 2~16 个字符',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据
$data = [
'name' => $params['name'],
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
];
// 添加
if(empty($params['id']))
{
$data['add_time'] = time();
if(Db::name('ArticleCategory')->insertGetId($data) > 0)
{
return DataReturn('添加成功', 0);
}
return DataReturn('添加失败', -100);
} else {
$data['upd_time'] = time();
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->update($data))
{
return DataReturn('编辑成功', 0);
}
return DataReturn('编辑失败', -100);
}
}
/**
* 文章分类删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T02:40:29+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
],
];
$ret = params_checked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 开始删除
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->delete())
{
return DataReturn('删除成功', 0);
}
return DataReturn('删除失败', 0);
}
}
?>
\ No newline at end of file
......@@ -226,7 +226,7 @@ class CustomViewService
{
if(!empty($content))
{
$pattern = '/<img.*?src=[\'|\"](\/Public\/Upload\/customview\/image\/.*?[\.gif|\.jpg|\.jpeg|\.png|\.bmp])[\'|\"].*?[\/]?>/';
$pattern = '/<img.*?src=[\'|\"](\/static\/upload\/customview\/image\/.*?[\.gif|\.jpg|\.jpeg|\.png|\.bmp])[\'|\"].*?[\/]?>/';
preg_match_all($pattern, $content, $match);
return empty($match[1]) ? [] : $match[1];
}
......
......@@ -51,7 +51,7 @@ class MessageService
* @desc description
* @param [array] $params [输入参数]
*/
public static function MessgeListWhere($params = [])
public static function MessageListWhere($params = [])
{
$where = [
['is_delete_time', '=', 0],
......@@ -149,7 +149,7 @@ class MessageService
{
return 0;
}
return self::MessageTotal(self::MessgeListWhere($params));
return self::MessageTotal(self::MessageListWhere($params));
}
/**
......@@ -224,5 +224,155 @@ class MessageService
$ret = Db::name('Message')->where($where)->update(['is_read'=>1]);
return DataReturn('处理成功', 0, $ret);
}
/**
* 后台管理员列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function AdminMessageList($params = [])
{
$where = empty($params['where']) ? [] : $params['where'];
$m = isset($params['m']) ? intval($params['m']) : 0;
$n = isset($params['n']) ? intval($params['n']) : 10;
$field = 'm.*,u.username,u.nickname,u.mobile,u.gender';
$order_by = empty($params['order_by']) ? 'm.id desc' : $params['order_by'];
// 获取数据列表
$data = Db::name('Message')->alias('m')->join(['__USER__'=>'u'], 'u.id=m.user_id')->where($where)->field($field)->limit($m, $n)->order($order_by)->select();
if(!empty($data))
{
$common_business_type_list = lang('common_business_type_list');
$common_is_read_list = lang('common_is_read_list');
$common_message_type_list = lang('common_message_type_list');
$common_gender_list = lang('common_gender_list');
foreach($data as &$v)
{
// 消息类型
$v['type_name'] = $common_message_type_list[$v['type']]['name'];
// 是否已读
$v['is_read_name'] = $common_is_read_list[$v['is_read']]['name'];
// 业务类型
$v['business_type_name'] = $common_business_type_list[$v['business_type']]['name'];
// 性别
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
// 时间
$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']);
}
}
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 AdminMessageTotal($where = [])
{
return (int) Db::name('Message')->alias('m')->join(['__USER__'=>'u'], 'u.id=m.user_id')->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 AdminMessageListWhere($params = [])
{
$where = [
['m.is_delete_time', '=', 0],
];
// 关键字
if(!empty($params['keywords']))
{
$where[] = ['m.title|m.detail|u.username|u.nickname|u.mobile', 'like', '%'.$params['keywords'].'%'];
}
// 是否更多条件
if(isset($params['is_more']) && $params['is_more'] == 1)
{
// 等值
if(isset($params['business_type']) && $params['business_type'] > -1)
{
$where[] = ['m.business_type', '=', intval($params['business_type'])];
}
if(isset($params['type']) && $params['type'] > -1)
{
$where[] = ['m.type', '=', intval($params['type'])];
}
if(isset($params['is_read']) && $params['is_read'] > -1)
{
$where[] = ['m.is_read', '=', intval($params['is_read'])];
}
if(isset($params['gender']) && $params['gender'] > -1)
{
$where[] = ['u.gender', '=', intval($params['gender'])];
}
if(!empty($params['time_start']))
{
$where[] = ['m.add_time', '>', strtotime($params['time_start'])];
}
if(!empty($params['time_end']))
{
$where[] = ['m.add_time', '<', strtotime($params['time_end'])];
}
}
return $where;
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function MessageDelete($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::name('Message')->where(['id'=>$params['id']])->delete())
{
return DataReturn('删除成功');
}
return DataReturn('删除失败或资源不存在', -100);
}
}
?>
\ No newline at end of file
<?php
namespace app\service;
use think\Db;
/**
* 支付日志服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class PayLogService
{
/**
* 获取支付日志类型
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-23T02:22:03+0800
* @param [array] $params [输入参数]
*/
public static function PayLogTypeList($params = [])
{
$data = Db::name('PayLog')->field('payment AS id, payment_name AS name')->group('payment')->select();
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 AdminPayLogList($params = [])
{
$where = empty($params['where']) ? [] : $params['where'];
$m = isset($params['m']) ? intval($params['m']) : 0;
$n = isset($params['n']) ? intval($params['n']) : 10;
$field = 'p.*,u.username,u.nickname,u.mobile,u.gender';
$order_by = empty($params['order_by']) ? 'p.id desc' : $params['order_by'];
// 获取数据列表
$data = Db::name('PayLog')->alias('p')->join(['__USER__'=>'u'], 'u.id=p.user_id')->where($where)->field($field)->limit($m, $n)->order($order_by)->select();
if(!empty($data))
{
$common_business_type_list = lang('common_business_type_list');
$common_gender_list = lang('common_gender_list');
foreach($data as &$v)
{
// 业务类型
$v['business_type_name'] = $common_business_type_list[$v['business_type']]['name'];
// 性别
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
// 时间
$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']);
}
}
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 AdminPayLogTotal($where = [])
{
return (int) Db::name('PayLog')->alias('p')->join(['__USER__'=>'u'], 'u.id=p.user_id')->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 AdminPayLogListWhere($params = [])
{
$where = [];
// 关键字
if(!empty($params['keywords']))
{
$where[] = ['p.trade_no|u.username|u.nickname|u.mobile', 'like', '%'.$params['keywords'].'%'];
}
// 是否更多条件
if(isset($params['is_more']) && $params['is_more'] == 1)
{
// 等值
if(isset($params['business_type']) && $params['business_type'] > -1)
{
$where[] = ['p.business_type', '=', intval($params['business_type'])];
}
if(!empty($params['pay_type']))
{
$where[] = ['p.payment', '=', $params['pay_type']];
}
if(isset($params['gender']) && $params['gender'] > -1)
{
$where[] = ['u.gender', '=', intval($params['gender'])];
}
if(!empty($params['time_start']))
{
$where[] = ['p.add_time', '>', strtotime($params['time_start'])];
}
if(!empty($params['time_end']))
{
$where[] = ['p.add_time', '<', strtotime($params['time_end'])];
}
}
return $where;
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function PayLogDelete($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::name('PayLog')->where(['id'=>$params['id']])->delete())
{
return DataReturn('删除成功');
}
return DataReturn('删除失败或资源不存在', -100);
}
}
?>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册