移除支付宝生活号管理

feat/task1-c-wallet
devil_gong 2018-12-24 15:13:21 +08:00
parent 5f926928b0
commit df885e75a3
31 changed files with 0 additions and 4274 deletions

View File

@ -1,207 +0,0 @@
<?php
namespace app\admin\controller;
use app\service\AlipayLifeService;
/**
* 生活号管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLife 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()
{
// 参数
$params = input();
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = AlipayLifeService::AlipayLifeListWhere($params);
// 获取总数
$total = AlipayLifeService::AlipayLifeTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => url('admin/alipaylife/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 = AlipayLifeService::AlipayLifeList($data_params);
$this->assign('data_list', $data['data']);
// 是否上下架
$this->assign('common_goods_is_shelves_list', lang('common_goods_is_shelves_list'));
// 生活号分类
$alipay_life_category = AlipayLifeService::AlipayLifeCategoryList(['field'=>'id,name']);
$this->assign('alipay_life_category', $alipay_life_category['data']);
// 参数
$this->assign('params', $params);
return $this->fetch();
}
/**
* [SaveInfo 添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function SaveInfo()
{
// 参数
$params = input();
// 数据
if(!empty($params['id']))
{
// 获取列表
$data_params = array(
'm' => 0,
'n' => 1,
'where' => ['a.id'=>intval($params['id'])],
'field' => 'a.*',
);
$data = AlipayLifeService::AlipayLifeList($data_params);
if(!empty($data['data'][0]))
{
// 获取分类关联数据
$category_ids = AlipayLifeService::AlipayLifeCategoryIds(['where'=>['alipay_life_id'=>$data['data'][0]['id']]]);
$data['data'][0]['category_ids'] = $category_ids['data'];
$this->assign('data', empty($data['data'][0]) ? [] : $data['data'][0]);
}
}
// 是否上下架
$this->assign('common_goods_is_shelves_list', lang('common_goods_is_shelves_list'));
// 生活号分类
$alipay_life_category = AlipayLifeService::AlipayLifeCategoryList(['field'=>'id,name']);
$this->assign('alipay_life_category', $alipay_life_category['data']);
// 参数
$this->assign('params', $params);
// 编辑器文件存放地址
$this->assign('editor_path_type', 'alipay_life');
return $this->fetch();
}
/**
* [Save 生活号保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$ret = AlipayLifeService::AlipayLifeSave($params);
return json($ret);
}
/**
* [Delete 生活号删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['user_type'] = 'admin';
$ret = AlipayLifeService::AlipayLifeDelete($params);
return json($ret);
}
/**
* [StatusUpdate 状态更新]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-12T22:23:06+0800
*/
public function StatusUpdate()
{
// 是否ajax请求
if(!IS_AJAX)
{
return $this->error('非法访问');
}
// 开始处理
$params = input();
$params['alipay_life_id'] = isset($params['id']) ? $params['id'] : 0;
if(isset($params['state']))
{
$params['status'] = $params['state'];
}
$ret = AlipayLifeService::LifeStatus($params);
return json($ret);
}
}
?>

View File

@ -1,185 +0,0 @@
<?php
namespace app\admin\controller;
/**
* 生活号分类管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLifeCategory 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()
{
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
$this->display('Index');
}
/**
* [GetNodeSon 获取节点子列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T15:19:45+0800
*/
public function GetNodeSon()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 获取数据
$field = array('id', 'name', 'sort', 'is_enable');
$data = db('AlipayLifeCategory')->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/AlipayLifeCategory/GetNodeSon', array('id'=>$v['id']));
$data[$k]['delete_url'] = url('Admin/AlipayLifeCategory/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('AlipayLifeCategory')->where(array('pid'=>$id))->count() > 0) ? 'ok' : 'no';
}
return 'no';
}
/**
* [Save 生活号分类保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// id为空则表示是新增
$m = D('AlipayLifeCategory');
// 公共额外数据处理
$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);
}
/**
* [Delete 生活号分类删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Delete()
{
if(!IS_AJAX)
{
$this->error('非法访问');
}
$m = D('AlipayLifeCategory');
if($m->create($_POST, 5))
{
if($m->delete(I('id')))
{
$this->ajaxReturn('删除成功');
} else {
$this->ajaxReturn('删除失败或资源不存在', -100);
}
} else {
$this->ajaxReturn($m->getError(), -1);
}
}
}
?>

View File

@ -1,457 +0,0 @@
<?php
namespace app\admin\controller;
use Service\AlipayLifeService;
/**
* 生活号菜单管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLifeMenu 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()
{
// 参数
$params = array_merge($_POST, $_GET);
// 模型对象
$m = db('AlipayLifeMenu');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number', 10, true);
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $params,
'url' => url('Admin/AlipayLifeMenu/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$list = $m->where($where)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select();
$list = $this->SetDataHandle($list);
// 参数
$this->assign('params', $params);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 发布状态
$this->assign('common_release_status_list', lang('common_release_status_list'));
// 菜单类型
$this->assign('common_alipay_life_menu_type_list', lang('common_alipay_life_menu_type_list'));
// 数据列表
$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_release_status_list = lang('common_release_status_list');
$common_alipay_life_menu_type_list = lang('common_alipay_life_menu_type_list');
foreach($data as &$v)
{
// 状态
$v['status_name'] = $common_release_status_list[$v['status']]['name'];
// 类型
$v['type_name'] = $common_alipay_life_menu_type_list[$v['type']]['name'];
// 生活号
$v['alipay_life_all'] = empty($v['alipay_life_ids']) ? '' : db('AlipayLife')->where(['id'=>['in', json_decode($v['alipay_life_ids'], true)]])->getField('name', true);
// 时间
$v['startup_time'] = empty($v['startup_time']) ? '' : date('Y-m-d H:i:s', $v['startup_time']);
$v['success_time'] = empty($v['success_time']) ? '' : date('Y-m-d H:i:s', $v['success_time']);
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_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']))
{
$where['name'] = array('like', '%'.I('keyword').'%');
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
if(I('status', -1) > -1)
{
$where['status'] = intval(I('status', 0));
}
if(I('type', -1) > -1)
{
$where['type'] = intval(I('type', 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;
}
/**
* [SaveInfo 添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function SaveInfo()
{
// 数据
$data = empty($_REQUEST['id']) ? array() : db('AlipayLifeMenu')->find(I('id'));
$this->assign('data', $data);
// 菜单类型
$this->assign('common_alipay_life_menu_type_list', lang('common_alipay_life_menu_type_list'));
// 生活号
$alipay_life_list = [];
$alipay_life_ids_all = [];
if(!empty($_GET['alipay_life_id']))
{
$alipay_life_ids_all = [intval(I('alipay_life_id'))];
}
if(!empty($data['alipay_life_ids']))
{
$alipay_life_ids_all = json_decode($data['alipay_life_ids'], true);
}
if(!empty($alipay_life_ids_all))
{
$alipay_life_list = db('AlipayLife')->field('id,name')->where(['id'=>['in', $alipay_life_ids_all]])->select();
}
$this->assign('alipay_life_ids_all', $alipay_life_ids_all);
$this->assign('alipay_life_list', $alipay_life_list);
// 生活号分类
$alipay_life_category = db('AlipayLifeCategory')->where(['is_enable'=>1])->field('id,name')->select();
$this->assign('alipay_life_category', $alipay_life_category);
// 参数
$this->assign('params', array_merge($_POST, $_GET));
$this->display('SaveInfo');
}
/**
* [Index 内容列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
*/
public function ContentIndex()
{
// 参数
$params = array_merge($_POST, $_GET);
// 条件
$where = ['alipay_life_menu_id' => intval($params['menu_id']), 'pid'=>0];
// 获取列表
$list = $this->SetDataHandleContent(db('AlipayLifeMenuContent')->where($where)->order('sort asc')->select());
if(!empty($list))
{
foreach($list as &$v)
{
$v['items'] = $this->SetDataHandleContent(db('AlipayLifeMenuContent')->where(['pid'=>$v['id']])->order('sort asc')->select());
}
}
// 主数据
$data = empty($_REQUEST['menu_id']) ? array() : db('AlipayLifeMenu')->find(I('menu_id'));
$this->assign('data', $data);
// 参数
$this->assign('params', $params);
// 数据列表
$this->assign('list', $list);
$this->assign('list_count', count($list));
$this->display('ContentIndex');
}
/**
* 内容处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
* @param [array] $data [数据]
* @return [array] [处理好的数据]
*/
private function SetDataHandleContent($data)
{
if(!empty($data))
{
$common_alipay_life_menu_action_type_list = lang('common_alipay_life_menu_action_type_list');
foreach($data as &$v)
{
// 事件类型
$v['action_type_name'] = $common_alipay_life_menu_action_type_list[$v['action_type']]['name'];
// 图标
$v['icon'] = empty($v['icon']) ? '' : config('IMAGE_HOST').$v['icon'];
// 时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
}
}
return $data;
}
/**
* 内容添加/编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
*/
public function ContentSaveInfo()
{
// 主数据
$menu = empty($_REQUEST['menu_id']) ? array() : db('AlipayLifeMenu')->find(I('menu_id'));
$this->assign('menu', $menu);
// 数据
$data = empty($_REQUEST['id']) ? array() : db('AlipayLifeMenuContent')->find(I('id'));
$this->assign('data', $data);
// 事件类型
$this->assign('common_alipay_life_menu_action_type_list', lang('common_alipay_life_menu_action_type_list'));
// 获取父级分类
$this->assign('alipay_life_menu_list', db('AlipayLifeMenuContent')->field('id,name')->where(['pid'=>0, 'alipay_life_menu_id'=>$menu['id']])->select());
// 参数
$this->assign('params', array_merge($_POST, $_GET));
$this->display('ContentSaveInfo');
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-30
* @desc description
*/
public function Detail()
{
// 参数
$params = array_merge($_POST, $_GET);
// 获取列表
$list = AlipayLifeService::MenuDetailList($params);
// 参数
$this->assign('params', $params);
// 数据列表
$this->assign('list', $list);
$this->display('Detail');
}
/**
* [Save 生活号菜单保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MenuSave($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* [ContentSave 生活号菜单内容保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function ContentSave()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MenuContentSave($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* [Delete 生活号菜单删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除
$id = intval(I('id'));
$m = db('AlipayLifeMenu');
$m->startTrans();
if($m->delete($id) && db('AlipayLifeMenuContent')->where(['alipay_life_message_id'=>$id])->delete())
{
$m->commit();
$this->ajaxReturn('删除成功');
}
$m->rollback();
$this->ajaxReturn('删除失败或资源不存在', -100);
}
/**
* [Delete 生活号菜单内容删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function ContentDelete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除
if(db('AlipayLifeMenuContent')->delete(intval(I('id'))))
{
$this->ajaxReturn('删除成功');
}
$this->ajaxReturn('删除失败或资源不存在', -100);
}
/**
* 发送菜单
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-24
* @desc description
*/
public function Release()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MenuSubmit($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* 生活号搜索
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
*/
public function Search()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::AlipayLifeSearch($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
}
?>

View File

@ -1,495 +0,0 @@
<?php
namespace app\admin\controller;
use Service\AlipayLifeService;
/**
* 生活号消息管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLifeMessage 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()
{
// 参数
$params = array_merge($_POST, $_GET);
// 模型对象
$m = db('AlipayLifeMessage');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number', 10, true);
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $params,
'url' => url('Admin/AlipayLifeMessage/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$list = $m->where($where)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select();
$list = $this->SetDataHandle($list);
// 参数
$this->assign('params', $params);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 发送状态
$this->assign('common_send_status_list', lang('common_send_status_list'));
// 消息类型
$this->assign('alipay_life_message_msg_type_list', lang('alipay_life_message_msg_type_list'));
// 发送类型
$this->assign('alipay_life_message_send_type_list', lang('alipay_life_message_send_type_list'));
// 数据列表
$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_send_status_list = lang('common_send_status_list');
$alipay_life_message_msg_type_list = lang('alipay_life_message_msg_type_list');
$alipay_life_message_send_type_list = lang('alipay_life_message_send_type_list');
foreach($data as &$v)
{
// 状态
$v['status_name'] = $common_send_status_list[$v['status']]['name'];
// 消息类型
$v['type_name'] = $alipay_life_message_msg_type_list[$v['msg_type']]['name'];
// 发送类型
$v['send_type_name'] = $alipay_life_message_send_type_list[$v['send_type']]['name'];
// 生活号
$v['alipay_life_all'] = empty($v['alipay_life_ids']) ? '' : db('AlipayLife')->where(['id'=>['in', json_decode($v['alipay_life_ids'], true)]])->getField('name', true);
// 用户
$v['alipay_openid'] = empty($v['user_id']) ? '' : db('User')->where(['id'=>$v['user_id']])->getField('alipay_openid');
// 时间
$v['startup_time'] = empty($v['startup_time']) ? '' : date('Y-m-d H:i:s', $v['startup_time']);
$v['success_time'] = empty($v['success_time']) ? '' : date('Y-m-d H:i:s', $v['success_time']);
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_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']))
{
$where['title'] = array('like', '%'.I('keyword').'%');
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
if(I('status', -1) > -1)
{
$where['status'] = intval(I('status', 0));
}
if(I('type', -1) > -1)
{
$where['msg_type'] = intval(I('type', 0));
}
if(I('send_type', -1) > -1)
{
$where['send_type'] = intval(I('send_type', 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;
}
/**
* [SaveInfo 添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function SaveInfo()
{
// 数据
$data = empty($_REQUEST['id']) ? array() : db('AlipayLifeMessage')->find(I('id'));
$this->assign('data', $data);
// 消息类型
$this->assign('alipay_life_message_msg_type_list', lang('alipay_life_message_msg_type_list'));
// 单用户发消息用户信息
$alipay_openid = '';
$user_id = 0;
$alipay_life_user_id = 0;
if(!empty($_GET['user_id']))
{
$user_id = intval(I('user_id'));
$alipay_life_user_id = intval(I('alipay_life_user_id'));
}
if(!empty($data))
{
$user_id = $data['user_id'];
$alipay_life_user_id = $data['alipay_life_user_id'];
}
if(!empty($user_id))
{
$alipay_openid = db('User')->where(['id'=>$user_id])->getField('alipay_openid');
}
$this->assign('user_id', $user_id);
$this->assign('alipay_life_user_id', $alipay_life_user_id);
$this->assign('alipay_openid', $alipay_openid);
// 消息发送类型
$this->assign('alipay_life_message_send_type_list', lang('alipay_life_message_send_type_list'));
$send_type = (isset($data['send_type']) && $data['send_type'] == 0) ? $data['send_type'] : (empty($alipay_openid) ? 1 : 0);
$this->assign('send_type', $send_type);
// 生活号
$alipay_life_list = [];
$alipay_life_ids_all = [];
if(!empty($_GET['alipay_life_id']))
{
$alipay_life_ids_all = [intval(I('alipay_life_id'))];
}
if(!empty($data['alipay_life_ids']))
{
$alipay_life_ids_all = json_decode($data['alipay_life_ids'], true);
}
if(!empty($alipay_life_ids_all))
{
$alipay_life_list = db('AlipayLife')->field('id,name')->where(['id'=>['in', $alipay_life_ids_all]])->select();
}
$this->assign('alipay_life_ids_all', $alipay_life_ids_all);
$this->assign('alipay_life_list', $alipay_life_list);
// 生活号分类
if(empty($alipay_openid))
{
$alipay_life_category = db('AlipayLifeCategory')->where(['is_enable'=>1])->field('id,name')->select();
} else {
$alipay_life_category = [];
}
$this->assign('alipay_life_category', $alipay_life_category);
// 参数
$this->assign('params', array_merge($_POST, $_GET));
$this->assign('msg_type', I('msg_type', 0));
$this->display('SaveInfo');
}
/**
* [Index 消息内容列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
*/
public function ContentIndex()
{
// 参数
$params = array_merge($_POST, $_GET);
// 条件
$where = ['alipay_life_message_id' => intval($params['message_id'])];
// 获取列表
$list = db('AlipayLifeMessageContent')->where($where)->order('id desc')->select();
$list = $this->SetDataHandleContent($list);
// 消息主数据
$data = empty($_REQUEST['message_id']) ? array() : db('AlipayLifeMessage')->find(I('message_id'));
$this->assign('data', $data);
$this->assign('msg_type', $data['msg_type']);
// 参数
$this->assign('params', $params);
// 数据列表
$this->assign('list', $list);
$this->assign('list_count', count($list));
$this->display('ContentIndex');
}
/**
* 消息内容处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
* @param [array] $data [轮播图片数据]
* @return [array] [处理好的数据]
*/
private function SetDataHandleContent($data)
{
if(!empty($data))
{
$common_send_status_list = lang('common_send_status_list');
$alipay_life_message_msg_type_list = lang('alipay_life_message_msg_type_list');
$alipay_life_message_send_type_list = lang('alipay_life_message_send_type_list');
foreach($data as &$v)
{
// image_url
$v['image_url'] = empty($v['image_url']) ? '' : config('IMAGE_HOST').$v['image_url'];
// 时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
}
}
return $data;
}
/**
* 内容添加/编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
*/
public function ContentSaveInfo()
{
// 主数据
$message = empty($_REQUEST['message_id']) ? array() : db('AlipayLifeMessage')->find(I('message_id'));
// 数据
$data = empty($_REQUEST['id']) ? array() : db('AlipayLifeMessageContent')->find(I('id'));
$this->assign('data', $data);
// 消息类型
$this->assign('alipay_life_message_msg_type_list', lang('alipay_life_message_msg_type_list'));
$this->assign('msg_type', $message['msg_type']);
// 参数
$this->assign('params', array_merge($_POST, $_GET));
$this->display('ContentSaveInfo');
}
/**
* 消息详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-30
* @desc description
*/
public function Detail()
{
// 参数
$params = array_merge($_POST, $_GET);
// 获取列表
$list = AlipayLifeService::MessageDetailList($params);
// 参数
$this->assign('params', $params);
// 数据列表
$this->assign('list', $list);
$this->display('Detail');
}
/**
* [Save 生活号消息保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MessageSave($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* [ContentSave 生活号消息内容保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function ContentSave()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MessageContentSave($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* [Delete 生活号消息删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除
$id = intval(I('id'));
$m = db('AlipayLifeMessage');
$m->startTrans();
if($m->delete($id) && db('AlipayLifeMessageContent')->where(['alipay_life_message_id'=>$id])->delete())
{
$m->commit();
$this->ajaxReturn('删除成功');
}
$m->rollback();
$this->ajaxReturn('删除失败或资源不存在', -100);
}
/**
* [Delete 生活号消息内容删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function ContentDelete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除
if(db('AlipayLifeMessageContent')->delete(intval(I('id'))))
{
$this->ajaxReturn('删除成功');
}
$this->ajaxReturn('删除失败或资源不存在', -100);
}
/**
* 发送消息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-24
* @desc description
*/
public function Send()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::MessageSubmit($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* 生活号搜索
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
*/
public function Search()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::AlipayLifeSearch($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
}
?>

View File

@ -1,313 +0,0 @@
<?php
namespace app\admin\controller;
use Service\AlipayLifeService;
/**
* 生活号批量上下架管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLifeStatus 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()
{
// 参数
$params = array_merge($_POST, $_GET);
// 模型对象
$m = db('AlipayLifeStatus');
// 条件
$where = $this->GetIndexWhere();
// 分页
$number = MyC('admin_page_number', 10, true);
$page_param = array(
'number' => $number,
'total' => $m->where($where)->count(),
'where' => $params,
'url' => url('Admin/AlipayLifeStatus/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$list = $m->where($where)->limit($page->GetPageStarNumber(), $number)->order('id desc')->select();
$list = $this->SetDataHandle($list);
// 参数
$this->assign('params', $params);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 处理状态
$this->assign('common_handle_status_list', lang('common_handle_status_list'));
// 上下架
$this->assign('common_shelves_select_list', lang('common_shelves_select_list'));
// 数据列表
$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_handle_status_list = lang('common_handle_status_list');
$common_shelves_select_list = lang('common_shelves_select_list');
foreach($data as &$v)
{
// 状态
$v['status_name'] = $common_handle_status_list[$v['status']]['name'];
// 上下架
$v['is_shelves_name'] = $common_shelves_select_list[$v['is_shelves']]['name'];
// 生活号
$v['alipay_life_all'] = empty($v['alipay_life_ids']) ? '' : db('AlipayLife')->where(['id'=>['in', json_decode($v['alipay_life_ids'], true)]])->getField('name', true);
// 时间
$v['startup_time'] = empty($v['startup_time']) ? '' : date('Y-m-d H:i:s', $v['startup_time']);
$v['success_time'] = empty($v['success_time']) ? '' : date('Y-m-d H:i:s', $v['success_time']);
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_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']))
{
$where['name'] = array('like', '%'.I('keyword').'%');
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
if(I('status', -1) > -1)
{
$where['status'] = intval(I('status', 0));
}
if(I('is_shelves', -1) > -1)
{
$where['is_shelves'] = intval(I('is_shelves', 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;
}
/**
* [SaveInfo 添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public function SaveInfo()
{
// 数据
$data = empty($_REQUEST['id']) ? array() : db('AlipayLifeStatus')->find(I('id'));
$this->assign('data', $data);
// 生活号
$alipay_life_list = [];
$alipay_life_ids_all = [];
if(!empty($_GET['alipay_life_id']))
{
$alipay_life_ids_all = [intval(I('alipay_life_id'))];
}
if(!empty($data['alipay_life_ids']))
{
$alipay_life_ids_all = json_decode($data['alipay_life_ids'], true);
}
if(!empty($alipay_life_ids_all))
{
$alipay_life_list = db('AlipayLife')->field('id,name')->where(['id'=>['in', $alipay_life_ids_all]])->select();
}
$this->assign('alipay_life_ids_all', $alipay_life_ids_all);
$this->assign('alipay_life_list', $alipay_life_list);
// 生活号分类
$alipay_life_category = db('AlipayLifeCategory')->where(['is_enable'=>1])->field('id,name')->select();
$this->assign('alipay_life_category', $alipay_life_category);
// 上下架
$this->assign('common_shelves_select_list', lang('common_shelves_select_list'));
// 参数
$this->assign('params', array_merge($_POST, $_GET));
$this->display('SaveInfo');
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-30
* @desc description
*/
public function Detail()
{
// 参数
$params = array_merge($_POST, $_GET);
// 获取列表
$list = AlipayLifeService::StatusDetailList($params);
// 参数
$this->assign('params', $params);
// 数据列表
$this->assign('list', $list);
$this->display('Detail');
}
/**
* [Save 生活号批量上下架保存]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Save()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::LifeStatusSave($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* [Delete 生活号批量上下架删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function Delete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
// 删除
if(db('AlipayLifeStatus')->delete(intval(I('id'))))
{
$this->ajaxReturn('删除成功');
}
$this->ajaxReturn('删除失败或资源不存在', -100);
}
/**
* 提交
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-24
* @desc description
*/
public function Submit()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$ret = AlipayLifeService::LifeStatusSubmit($_POST);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
/**
* 生活号搜索
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-29
* @desc description
*/
public function Search()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error('非法访问');
}
$params = $_POST;
$params['is_all'] = 1;
$ret = AlipayLifeService::AlipayLifeSearch($params);
$this->ajaxReturn($ret['msg'], $ret['code'], $ret['data']);
}
}
?>

View File

@ -1,170 +0,0 @@
<?php
namespace app\admin\controller;
/**
* 生活号用户管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class AlipayLifeUser 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()
{
// 参数
$param = array_merge($_POST, $_GET);
// 条件
$where = $this->GetIndexWhere();
// 模型
$m = db('AlipayLifeUser');
// 分页
$number = MyC('admin_page_number', 10, true);
$page_param = array(
'number' => $number,
'total' => $m->alias('au')->where($where)->join('INNER JOIN __USER__ AS u ON u.id=au.user_id')->count(),
'where' => $param,
'url' => url('Admin/AlipayLifeUser/Index'),
);
$page = new \base\Page($page_param);
// 获取列表
$field = 'u.*, au.alipay_life_id, au.id AS alipay_life_user_id, au.user_id, au.add_time AS alipay_life_add_time';
$list = $this->SetDataHandle($m->alias('au')->where($where)->join('INNER JOIN __USER__ AS u ON u.id=au.user_id')->field($field)->limit($page->GetPageStarNumber(), $number)->order('au.id desc')->select());
// 性别
$this->assign('common_gender_list', lang('common_gender_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');
$life_m = db('AlipayLife');
foreach($data as &$v)
{
// 生日
if(!empty($v['birthday']))
{
$v['birthday_text'] = date('Y-m-d', $v['birthday']);
} else {
$v['birthday_text'] = '';
}
// 注册时间
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
// 关注时间
$v['alipay_life_add_time'] = date('Y-m-d H:i:s', $v['alipay_life_add_time']);
// 更新时间
$v['upd_time'] = date('Y-m-d H:i:s', $v['upd_time']);
// 性别
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
// 所属生活号
$v['alipay_life_name'] = $life_m->where(['id'=>$v['alipay_life_id']])->getField('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('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,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 等值
if(I('gender', -1) > -1)
{
$where['u.gender'] = intval(I('gender', 0));
}
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['au.add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['au.add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
}
}
?>

View File

@ -1,112 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- tips start -->
<div class="am-alert am-alert-warning am-radius" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>接口异步通知地址:{{$Think.__MY_URL__}}alipay_life_notify.php</p>
</div>
<!-- tips end -->
<!-- form start -->
<form class="am-form view-list" action="{{:url('admin/alipaylife/index')}}" method="POST">
<div class="am-g">
<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($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($params['is_more']) or $params['is_more'] neq 1}}none{{/if}}">
<select name="is_shelves" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1">上下架</option>
{{foreach $common_goods_is_shelves_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_shelves']) and $params['is_shelves'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="alipay_life_category_id" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1">生活号分类</option>
{{foreach $alipay_life_category as $v}}
<option value="{{$v.id}}" {{if isset($params['alipay_life_category_id']) and $params['alipay_life_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<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" 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>
</form>
<!-- form end -->
<!-- operation start -->
<div class="am-g m-t-15">
<a href="{{:url('admin/alipaylife/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-10">
<thead>
<tr>
<th>名称</th>
<th class="am-hide-sm-only">LOGO</th>
<th>appid</th>
<th class="am-hide-sm-only category-row">生活号分类</th>
<th>上下架</th>
<th class="am-hide-sm-only">创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_shelves'] eq 0}}class="am-active"{{/if}}>
<td>{{$v.name}}</td>
<td class="am-hide-sm-only">
{{if !empty($v['logo'])}}
<a href="{{$v['logo']}}" target="_blank">
<img src="{{$v['logo']}}" class="am-radius" width="100" />
</a>
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</td>
<td>{{$v.appid}}</td>
<td class="am-hide-sm-only">{{:implode('', $v['alipay_life_category_text'])}}</td>
<td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_shelves'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:url('admin/alipaylife/statusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_shelves']}}" data-is-update-status="1"></a>
</td>
<td class="am-hide-sm-only">{{$v.add_time_time}}</td>
<td class="view-operation">
<a href="{{:url('admin/alipaylife/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/alipaylife/Delete')}}" data-id="{{$v.id}}"> 删除</button>
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="7" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
<!-- page start -->
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,75 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('admin/alipaylife/save')}}" method="POST" request-type="ajax-url" request-value="{{:url('admin/alipaylife/index')}}" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="{{:MyC('home_max_limit_image', 2048000)}}" />
<legend>
<span class="fs-16">
{{if empty($data['id'])}}
生活号添加
{{else /}}
生活号编辑
{{/if}}
</span>
<a href="{{:url('admin/alipaylife/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="name" placeholder="名称" minlength="2" maxlength="30" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>生活号分类</label>
<select name="alipay_life_category_id" class="am-radius c-p chosen-select" multiple="multiple" data-placeholder="可选择..." data-validation-message="请选择生活号分类" required>
{{foreach $alipay_life_category as $v}}
<option value="{{$v.id}}" {{if !empty($data['category_ids']) and in_array($v['id'], $data['category_ids'])}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>appid</label>
<input type="text" name="appid" placeholder="appid" data-validation-message="appid格式 1~60 个字符" class="am-radius" minlength="1" maxlength="60" {{if !empty($data)}} value="{{$data.appid}}"{{/if}} required />
</div>
<div class="am-form-group am-form-file">
<label class="block">LOGO</label>
<ul class="plug-file-upload-view brand-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>
<input type="text" name="logo" value="{{$data.logo}}" />
<img src="{{$data.logo}}" />
<i>×</i>
</li>
{{/if}}
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.brand-logo-images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>应用公钥</label>
<textarea rows="5" name="rsa_public" class="am-radius" placeholder="应用公钥" data-validation-message="应用公钥格式 1~2000 个字符" required>{{if !empty($data)}}{{$data.rsa_public}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>应用私钥</label>
<textarea rows="5" name="rsa_private" class="am-radius" placeholder="应用私钥" data-validation-message="应用私钥格式 1~2000 个字符" required>{{if !empty($data)}}{{$data.rsa_private}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>支付宝公钥</label>
<textarea rows="5" name="out_rsa_public" class="am-radius" placeholder="支付宝公钥" data-validation-message="支付宝公钥格式 1~2000 个字符" required>{{if !empty($data)}}{{$data.out_rsa_public}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<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>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,59 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- operation start -->
<div class="am-g">
<button class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus tree-submit-add" data-am-modal="{target: '#data-save-win'}"> 新增</button>
</div>
<!-- operation end -->
<!-- save win start -->
<div class="am-popup am-radius" id="data-save-win">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title" data-add-title="生活号分类添加" data-edit-title="生活号分类编辑">生活号分类添加</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation admin-save" action="{{:url('Admin/AlipayLifeCategory/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>顺序</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" />
<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>
</div>
</form>
<!-- form end -->
</div>
</div>
</div>
<!-- save win end -->
<!-- list start -->
<div id="tree" class="m-t-15)}}
<div class="m-t-30 t-c">
<img src="__PUBLIC__/Common/Images/loading.gif" />
<p>处理中...</p>
</div>
</div>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
<script>
Tree(0, "{{:url('Admin/AlipayLifeCategory/GetNodeSon')}}", 0);
</script>

View File

@ -1,196 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- back nav start -->
<legend>
<span class="fs-16)}}生活号菜单内容</span>
<a href="{{:url('Admin/AlipayLifeMenu/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<!-- back nav end -->
<!-- tips start -->
<div class="am-alert am-alert-warning am-radius" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1.图标菜单图片大小必须 60X60 像数最大不超过5M<br />2.图标菜单建议不超过8个<br />3.图标菜单不支持二级<br /><br />1.底部一级菜单最多4个如已开启客服功能则最多3个<br />2.底部二级菜单最多5个</p>
</div>
<!-- tips end -->
<!-- operation start -->
<div class="am-g">
<a href="{{:url('Admin/AlipayLifeMenu/ContentSaveInfo', ['menu_id'=>$params['menu_id']])}}" 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)}}
<thead>
<tr>
<th>名称</th>
<th>事件类型</th>
<th>事件值</th>
<th class="am-hide-sm-only">图标</th>
<th>更多</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}">
<td>
{{if empty($v['name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.name}}{{/if}}
</td>
<td>
{{if empty($v['action_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_type_name}}{{/if}}
</td>
<td>
{{if empty($v['action_value'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_value}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if !empty($v['icon'])}}
<a href="{{$v['icon']}}" target="_blank">
<img src="{{$v['icon']}}" class="am-radius" width="60" />
</a>
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>名称</dt>
<dd>{{if empty($v['name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.name}}{{/if}}</dd>
<dt>事件类型</dt>
<dd>{{if empty($v['action_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_type_name}}{{/if}}</dd>
<dt>事件值</dt>
<dd>{{if empty($v['action_value'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_value}}{{/if}}</dd>
<dt>图标</dt>
<dd>
{{if !empty($v['icon'])}}
<img src="{{$v['icon']}}" class="am-img-thumbnail am-radius" width="60" height="60" />
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
<td class="view-operation">
{{if $v['status'] eq 0)}}
{{if in_array($data['status'], [0,4])}}
<a href="{{:url('Admin/AlipayLifeMenu/ContentSaveInfo', array('id'=>$v['id'], 'menu_id'=>$params['menu_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/AlipayLifeMenu/ContentDelete')}}" data-id="{{$v.id}}"> 删除</button>
{{/if}}
{{/if}}
</td>
</tr>
<notempty name="v.items">
<foreach name="v.items" item="vs">
<tr id="data-list-{{$vs.id}}">
<td class="p-l-3)}}
{{if empty($vs['name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.name}}{{/if}}
</td>
<td>
{{if empty($vs['action_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.action_type_name}}{{/if}}
</td>
<td>
{{if empty($vs['action_value'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.action_value}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if !empty($vs['icon'])}}
<a href="{{$vs['icon']}}" target="_blank">
<img src="{{$vs['icon']}}" class="am-radius" width="60" />
</a>
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$vs.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$vs.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>名称</dt>
<dd>{{if empty($vs['name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.name}}{{/if}}</dd>
<dt>事件类型</dt>
<dd>{{if empty($vs['action_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.action_type_name}}{{/if}}</dd>
<dt>事件值</dt>
<dd>{{if empty($vs['action_value'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$vs.action_value}}{{/if}}</dd>
<dt>图标</dt>
<dd>
{{if !empty($vs['icon'])}}
<img src="{{$vs['icon']}}" class="am-img-thumbnail am-radius" width="60" height="60" />
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</dd>
<dt>创建时间</dt>
<dd>{{$vs.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$vs.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
<td class="view-operation">
{{if $v['status'] eq 0)}}
{{if in_array($data['status'], [0,4])}}
<a href="{{:url('Admin/AlipayLifeMenu/ContentSaveInfo', array('id'=>$vs['id'], 'menu_id'=>$params['menu_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/AlipayLifeMenu/ContentDelete')}}" data-id="{{$vs.id}}"> 删除</button>
{{/if}}
{{/if}}
</td>
</tr>
{{/foreach}}
{{/if}}
{{/foreach}}
{{else /}}
<tr><td colspan="20" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,81 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('Admin/AlipayLifeMenu/ContentSave')}}" method="POST" request-type="ajax-url" request-value="{{:url('Admin/AlipayLifeMenu/ContentIndex', ['menu_id'=>$params['menu_id']])}}" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="{{:MyC('home_max_limit_image', 2048000)}}" />
<legend>
<span class="fs-16)}}生活号菜单创建/编辑</span>
<a href="{{:url('Admin/AlipayLifeMenu/ContentIndex', ['menu_id'=>$params['menu_id']])}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
{{if $menu['type'] eq 0 and !empty($alipay_life_menu_list)}}
<div class="am-form-group">
<label>父级</label>
<select name="pid" class="am-radius c-p chosen-select" data-placeholder="可选择..." data-validation-message="请选择父级">
<option value="">可选择...</option>
<foreach name="alipay_life_menu_list" item="v">
<option value="{{$v.id}}" {{if isset($data['pid']) and $v['id'] eq $data['pid']">selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
{{/if}}
<div class="am-form-group">
<label>名称</label>
<input type="text" name="name" placeholder="名称" maxlength="5" data-validation-message="名称格式 1~5 个字符" class="am-radius" value="<notempty name="data.name">{{$data.name}}{{/if}}" required />
</div>
<div class="am-form-group">
<label>事件类型</label>
<select name="action_type" class="am-radius c-p chosen-select" data-placeholder="可选择..." data-validation-message="请选择事件类型" required>
<option value="">可选择...</option>
<foreach name="common_alipay_life_menu_action_type_list" item="v">
<option value="{{$v.value}}" {{if isset($data['action_type']) and $v['value'] eq $data['action_type']">selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group">
<label>事件值</label>
<input type="text" name="action_value" placeholder="事件值" maxlength="250" data-validation-message="事件值格式最多 250 个字符" class="am-radius" value="<notempty name="data.action_value">{{$data.action_value}}{{/if}}" />
</div>
{{if $menu['type'] eq 1)}}
<div class="am-form-group am-form-file">
<label class="block">图标</label>
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius">
<i class="am-icon-cloud-upload"></i> 选择图片</button>
<input type="text" name="icon" class="am-radius js-choice-one original-images-url original-icon-images-url" data-choice-one-to='input[name="file_icon"]' data-validation-message="请上传图标" readonly="readonly" value="<notempty name="data.icon">{{$data.icon}}{{/if}}" required />
<input type="file" name="file_icon" multiple data-validation-message="请上传图标" accept="image/jpeg,image/jpg,image/png" class="js-choice-one images-file-event file_icon-tag" data-choice-one-to=".original-icon-images-url" data-tips-tag="#form-icon-tips" data-image-tag="#form-img-icon" required />
<div id="form-icon-tips" class="m-t-5)}}</div>
<notempty name="data.icon">
<img src="{{$image_host}}{{$data.icon}}" id="form-img-icon" class="block m-t-5 am-img-thumbnail am-radius" width="60" height="60" data-default="{{$image_host}}/Public/Admin/Default/Images/default-images.png" />
{{/if}}
<empty name="data.icon">
<img src="{{$image_host}}/Public/Admin/Default/Images/default-images.png" id="form-img-icon" class="block m-t-5 am-img-thumbnail am-radius" width="60" height="60" data-default="{{$image_host}}/Public/Admin/Default/Images/default-images.png" />
{{/if}}
</div>
{{/if}}
<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="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
</div>
<div class="am-form-group">
<input type="hidden" name="id" value="{{$data.id}}" />
<input type="hidden" name="menu_id" value="{{$params.menu_id}}" />
<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>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,78 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- back nav start -->
<legend>
<span class="fs-16)}}详情</span>
<a href="{{:url('Admin/AlipayLifeMenu/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<!-- back nav end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<thead>
<tr>
<th>生活号</th>
<th>状态</th>
<th>发布时间</th>
<th>发布描述</th>
<th>更多</th>
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}">
<td>{{$v.alipay_life_name}}</td>
<td>{{$v.status_name}}</td>
<td>{{$v.send_time}}</td>
<td>{{$v.return_msg}}</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>生活号</dt>
<dd>{{if empty($v['alipay_life_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.alipay_life_name}}{{/if}}</dd>
<dt>状态</dt>
<dd>{{if empty($v['status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.status_name}}{{/if}}</dd>
<dt>发布时间</dt>
<dd>{{$v.send_time}}</dd>
<dt>发布描述</dt>
<dd>{{$v.return_msg}}</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="20" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,143 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/AlipayLifeMenu/Index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="名称" name="keyword" <present name="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">
更多筛选
<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($params['is_more']) or $params['is_more'] neq 1)}}none{{/if}}">
<select name="status" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}状态</option>
<foreach name="common_release_status_list" item="v">
<option value="{{$v.value}}" {{if isset($params['status']) and $params['status'] eq $v['value']">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_alipay_life_menu_type_list" item="v">
<option value="{{$v.value}}" {{if isset($params['type']) and $params['type'] eq $v['value']">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($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}}/>
</div>
</div>
</div>
</form>
<!-- form end -->
<!-- operation start -->
<div class="am-g m-t-15)}}
<a href="{{:url('Admin/AlipayLifeMenu/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)}}
<thead>
<tr>
<th>名称</th>
<th>菜单类型</th>
<th class="am-hide-sm-only alipay-life-row">生活号</th>
<th>状态</th>
<th>更多</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}">
<td>{{$v.name}}</td>
<td>{{$v.type_name}}</td>
<td class="am-hide-sm-only">{{:implode('', $v['alipay_life_all'])}}</td>
<td>{{$v.status_name}}</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>名称</dt>
<dd>{{if empty($v['name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.name}}{{/if}}</dd>
<dt>菜单类型</dt>
<dd>{{if empty($v['type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.type_name}}{{/if}}</dd>
<dt>生活号</dt>
<dd>{{if empty($v['alipay_life_all'])}}<span class="cr-ddd">未填写</span>{{else /}}{{:implode('', $v['alipay_life_all'])}}{{/if}}</dd>
<dt>状态</dt>
<dd>{{if empty($v['status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.status_name}}{{/if}}</dd>
<dt>发布启动时间</dt>
<dd>{{$v.startup_time}}</dd>
<dt>发布完成时间</dt>
<dd>{{$v.success_time}}</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
<td class="view-operation">
{{if in_array($v['status'], [0,4])}}
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-send-o submit-ajax" data-url="{{:url('Admin/AlipayLifeMenu/Release')}}" data-id="{{$v.id}}" data-view="reload"> 发布</button>
<a href="{{:url('Admin/AlipayLifeMenu/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/AlipayLifeMenu/Delete')}}" data-id="{{$v.id}}"> 删除</button>
{{/if}}
<a href="{{:url('Admin/AlipayLifeMenu/ContentIndex', array('menu_id'=>$v['id']))}}">
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes"> 内容</button>
</a>
<a href="{{:url('Admin/AlipayLifeMenu/Detail', array('menu_id'=>$v['id']))}}">
<button class="am-btn am-btn-default am-btn-xs am-radius am-icon-align-left"> 详情</button>
</a>
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="20" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
<!-- page start -->
{{if !empty($list)}}
{{$page_html}}
{{/if}}
<!-- page end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,78 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('Admin/AlipayLifeMenu/Save')}}" method="POST" request-type="ajax-url" request-value="{{:url('Admin/AlipayLifeMenu/Index')}}" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="{{:MyC('home_max_limit_image', 2048000)}}" />
<legend>
<span class="fs-16)}}生活号菜单创建/编辑</span>
<a href="{{:url('Admin/AlipayLifeMenu/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="name" placeholder="名称" data-validation-message="名称格式 1~30 个字符" class="am-radius" maxlength="30" value="<notempty name="data.name">{{$data.name}}{{/if}}" required />
</div>
<div class="am-form-group">
<label>菜单类型</label>
<select name="type" class="am-radius c-p chosen-select" data-placeholder="可选择..." data-validation-message="请选择菜单类型" {{if isset($data['status']) and $data['status'] neq 0)}}disabled{{/if}} required>
<option value="">可选择...</option>
<foreach name="common_alipay_life_menu_type_list" item="v">
<option value="{{$v.value}}" {{if isset($data['type']) and $v['value'] eq $data['type']">selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<!-- 生活号容器 -->
<div class="life-container">
<label class="block">生活号</label>
<div class="life-form" data-search-url="{{:url('Admin/AlipayLifeMenu/Search')}}">
<select class="am-radius c-p chosen-select life-form-category" data-placeholder="可选择..." data-validation-message="{{:lang('alipay_life_menu_category_format')}}">
<option value="">可选择...</option>
<foreach name="alipay_life_category" item="v">
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
</select>
<input type="text" placeholder="名称" class="am-radius life-form-keywords" />
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm search-submit">搜索</button>
</div>
<div class="am-form-group life-list">
<input type="text" name="alipay_life_ids" value="<notempty name="data.alipay_life_ids">{{:implode(',', json_decode($data['alipay_life_ids'], true))}}{{/if}}" data-validation-message="请选择生活号" required />
<div class="life-items am-fl">
<div class="title">可选</div>
<ul class="life-content am-list ul-left">
<div class="table-no">没有相关数据</div>
</ul>
</div>
<button type="button" class="am-btn am-btn-default am-btn-xs selected-all">全选 <i class="am-icon-angle-double-right"></i></button>
<div class="life-items am-fr">
<div class="title">已选</div>
<ul class="life-content am-list ul-right">
<div class="table-no <notempty name="data">none{{/if}}">没有相关数据</div>
<foreach name="alipay_life_list" item="v">
<li class="am-animation-slide-bottom items-li-{{$v.id}}">
<span class="name" data-value="{{$v.id}}">{{$v.name}}</span>
<i class="am-icon-trash-o am-fr"></i>
</li>
{{/foreach}}
</ul>
</div>
</div>
</div>
<div class="am-form-group">
<input type="hidden" name="id" value="<notempty name="params.id">{{$params.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>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,123 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- back nav start -->
<legend>
<span class="fs-16)}}生活号消息内容</span>
<a href="{{:url('Admin/AlipayLifeMessage/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<!-- back nav end -->
<!-- operation start -->
{{if ($msg_type eq 0 and $list_count eq 0) or ($msg_type eq 1 and $list_count lt 10)}}
<div class="am-g">
<a href="{{:url('Admin/AlipayLifeMessage/ContentSaveInfo', ['message_id'=>$params['message_id']])}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"> 新增</a>
</div>
{{/if}}
<!-- operation end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<thead>
<tr>
<th>消息标题</th>
<th>内容</th>
<th>封面图片</th>
<th class="am-hide-sm-only">图文url跳转地址</th>
<th class="am-hide-sm-only">链接文字</th>
<th>更多</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}">
<td>
{{if empty($v['title'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.title}}{{/if}}
</td>
<td>
{{if empty($v['content'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.content}}{{/if}}
</td>
<td>
{{if !empty($v['image_url'])}}
<a href="{{$v['image_url']}}" target="_blank">
<img src="{{$v['image_url']}}" class="am-radius" width="100" />
</a>
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['url'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.url}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['action_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_name}}{{/if}}
</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>消息标题</dt>
<dd>{{if empty($v['title'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.title}}{{/if}}</dd>
<dt>内容</dt>
<dd>{{if empty($v['content'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.content}}{{/if}}</dd>
<dt>封面图片</dt>
<dd>
{{if !empty($v['image_url'])}}
<img src="{{$v['image_url']}}" class="am-img-thumbnail am-radius" width="100" height="100" />
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</dd>
<dt>图文url跳转地址</dt>
<dd>{{if empty($v['url'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.url}}{{/if}}</dd>
<dt>链接文字</dt>
<dd>{{if empty($v['action_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.action_name}}{{/if}}</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
<td class="view-operation">
{{if in_array($data['status'], [0,4])}}
<a href="{{:url('Admin/AlipayLifeMessage/ContentSaveInfo', array('id'=>$v['id'], 'message_id'=>$params['message_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/AlipayLifeMessage/ContentDelete')}}" data-id="{{$v.id}}"> 删除</button>
{{/if}}
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="20" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,65 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:url('Admin/AlipayLifeMessage/ContentSave')}}" method="POST" request-type="ajax-url" request-value="{{:url('Admin/AlipayLifeMessage/ContentIndex', ['message_id'=>$params['message_id']])}}" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="{{:MyC('home_max_limit_image', 2048000)}}" />
<legend>
<span class="fs-16)}}生活号消息创建/编辑</span>
<a href="{{:url('Admin/AlipayLifeMessage/ContentIndex', ['message_id'=>$params['message_id']])}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
{{if $msg_type eq 1)}}
<div class="am-form-group">
<label>消息标题</label>
<input type="text" name="title" placeholder="消息标题" maxlength="80" data-validation-message="消息标题格式 1~80 个字符" class="am-radius" value="<notempty name="data.title">{{$data.title}}{{/if}}" required />
</div>
{{/if}}
<div class="am-form-group">
<label>内容</label>
<textarea rows="5" name="content" class="am-radius" placeholder="内容" data-validation-message="消息内容格式 1~250 个字符" maxlength="250" required><notempty name="data.content">{{$data.content}}{{/if}}</textarea>
</div>
{{if $msg_type eq 1)}}
<div class="am-form-group am-form-file">
<label class="block">封面图片</label>
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius">
<i class="am-icon-cloud-upload"></i> 选择图片</button>
<input type="text" name="image_url" class="am-radius js-choice-one original-images-url original-icon-images-url" data-choice-one-to='input[name="file_image_url"]' data-validation-message="请上传封面图片" readonly="readonly" value="<notempty name="data.image_url">{{$data.image_url}}{{/if}}" required />
<input type="file" name="file_image_url" multiple data-validation-message="请上传封面图片" accept="image/jpeg,image/jpg,image/png" class="js-choice-one images-file-event file_image_url-tag" data-choice-one-to=".original-icon-images-url" data-tips-tag="#form-icon-tips" data-image-tag="#form-img-icon" required />
<div id="form-icon-tips" class="m-t-5)}}</div>
<notempty name="data.image_url">
<img src="{{$image_host}}{{$data.image_url}}" id="form-img-icon" class="block m-t-5 am-img-thumbnail am-radius" width="100" height="100" data-default="{{$image_host}}/Public/Admin/Default/Images/default-images.png" />
{{/if}}
<empty name="data.image_url">
<img src="{{$image_host}}/Public/Admin/Default/Images/default-images.png" id="form-img-icon" class="block m-t-5 am-img-thumbnail am-radius" width="100" height="100" data-default="{{$image_host}}/Public/Admin/Default/Images/default-images.png" />
{{/if}}
</div>
<div class="am-form-group">
<label>图文url跳转地址</label>
<input type="text" name="url" placeholder="图文url跳转地址" data-validation-message="图文url跳转地址格式 1~255 个字符" class="am-radius" maxlength="255" value="<notempty name="data.url">{{$data.url}}{{/if}}" required />
</div>
<div class="am-form-group">
<label>链接文字</label>
<input type="text" name="action_name" placeholder="链接文字" data-validation-message="链接文字格式最多 60 个字符" class="am-radius" maxlength="60" value="<notempty name="data.action_name">{{$data.action_name}}{{/if}}" />
</div>
{{/if}}
<div class="am-form-group">
<input type="hidden" name="id" value="{{$data.id}}" />
<input type="hidden" name="message_id" value="{{$params.message_id}}" />
<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>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,83 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- back nav start -->
<legend>
<span class="fs-16)}}详情</span>
<a href="{{:url('Admin/AlipayLifeMessage/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<!-- back nav end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-1)}}
<thead>
<tr>
<th>生活号</th>
<th>给用户发送消息</th>
<th>状态</th>
<th>发送时间</th>
<th>发送描述</th>
<th>更多</th>
</tr>
</thead>
<tbody>
{{if !empty($list)}}
<foreach name="list" item="v">
<tr id="data-list-{{$v.id}}">
<td>{{$v.alipay_life_name}}</td>
<td>{{$v.alipay_openid}}</td>
<td>{{$v.status_name}}</td>
<td>{{$v.send_time}}</td>
<td>{{$v.return_msg}}</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>生活号</dt>
<dd>{{if empty($v['alipay_life_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.alipay_life_name}}{{/if}}</dd>
<dt>给用户发送消息</dt>
<dd>{{if empty($v['alipay_openid'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.alipay_openid}}{{/if}}</dd>
<dt>状态</dt>
<dd>{{if empty($v['status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.status_name}}{{/if}}</dd>
<dt>发送时间</dt>
<dd>{{$v.send_time}}</dd>
<dt>发送描述</dt>
<dd>{{$v.return_msg}}</dd>
<dt>创建时间</dt>
<dd>{{$v.add_time}}</dd>
<dt>更新时间</dt>
<dd>{{$v.upd_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="20" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->

View File

@ -1,150 +0,0 @@
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form view-list" action="{{:url('Admin/AlipayLifeMessage/Index')}}" method="POST">
<div class="am-g">
<input type="text" class="am-radius form-keyword" placeholder="标题" name="keyword" <present name="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">
更多筛选
<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($params['is_more']) or $params['is_more'] neq 1)}}none{{/if}}">
<select name="status" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}状态</option>
<foreach name="common_send_status_list" item="v">
<option value="{{$v.value}}" {{if isset($params['status']) and $params['status'] eq $v['value']">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="alipay_life_message_msg_type_list" item="v">
<option value="{{$v.value}}" {{if isset($params['type']) and $params['type'] eq $v['value']">selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
<select name="send_type" class="am-radius c-p m-t-10 m-l-5 param-where">
<option value="-1)}}发送类型</option>
<foreach name="alipay_life_message_send_type_list" item="v">
<option value="{{$v.value}}" {{if isset($params['send_type']) and $params['send_type'] eq $v['value']">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($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