- 微信扫一扫 -
QQ:181814630
电话:15116362044
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | dso2o | 123456 |
| 用户PC端 | 点击进入 | buyer | 123456 |
| 卖家PC端 | 点击进入 | buyer | 123456 |
| 服务机构PC端 | 点击进入 | 后台添加 | |
| 用户手机端 | 点击进入 | buyer | 123456 |
| 商家手机端 | 点击进入 | buyer | 123456 |
| 配送员 | 点击进入 | 测试配送员 | 123456 |
| 服务机构手机端 | 点击进入 | test1 | 123456 |
| 安卓APP下载地址 | http://www.csdeshang.com/document/dso2o/dso2o_uniapp_android.apk | ||
用户端
商家端
配送员管理端
服务机构端
用户端安卓APP
(使用浏览器打开)
商家端安卓APP
(使用浏览器打开)
配送员管理安卓APP
(使用浏览器打开)
服务机构安卓APP
(使用浏览器打开)
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | dsmall | 123456 |
| 用户PC端 | 点击进入 | buyer | 123456 |
| 商家PC端 | 点击进入 | buyer | 123456 |
| 用户手机端 | 点击进入 | buyer | 123456 |
| 商家手机端 | 点击进入 | buyer | 123456 |
| 门店手机端 | 点击进入 | seller | 123456 |
| 安卓APP下载地址 | http://www.csdeshang.com/document/dsmall/dsmall_uniapp_android.apk | ||
用户端
商家端
门店端
用户安卓APP(使用浏览器打开)
商家安卓APP(使用浏览器打开)
门店安卓APP(使用浏览器打开)
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | test | 123456 |
| 商户PC端(可开多个店铺) | 点击进入 | seller | 123456 |
| 店铺管理PC端 | 点击进入 | seller | 123456 |
| 手机端 | 点击进入 | test | 123456 |
| 骑手端 | 点击进入 | test | 123456 |
| 师傅端 | 点击进入 | test | 123456 |
| 短视频 | 点击进入 | test | 123456 |
用户端
安卓APP下载地址
管理员可以设置平台的基本信息、审核店铺入驻信息、审核商品上架、控制平台的一些营销功能的开启状态、设置线上支付的收款账号、调解售后纠纷、审核店铺结算单、查看各类统计信息、配置微信公众号、更新系统缓存等。
首先管理员从后台登录入口/admin/login/index进行登录操作,根据传入的用户名以及MD5加密后的密码,从数据表admin中对应的管理员数据。登录成功后,更新管理员的登录次数和登录时间信息,并设置管理员session信息。
//更新 admin 最新信息
$update_info = array(
'admin_login_num' => ($admin_info['admin_login_num'] + 1),
'admin_login_time' => TIMESTAMP
);
$admin_mod->editAdmin($update_info, $admin_info['admin_id']);
//设置 session
session('admin_id', $admin_info['admin_id']);
session('admin_name', $admin_info['admin_name']);
session('admin_gid', $admin_info['admin_gid']);
session('admin_is_super', $admin_info['admin_is_super']);管理员所有的业务模块均继承自基类\application\admin\controller\AdminControl.php,每当管理员控制器在初始化的时候,都会进行三步主要操作:
1. 从缓存中取出配置信息,并赋值到ThinkPHP的全局配置参数中,因为后台对配置表config的读取会比较频繁,这样操作会比较方便。
2. 如果管理员不是超级管理员(admin_id为1),则检查该管理员是否有操作该控制器的权限。
3. 设置菜单。
$this->admin_info = $this->systemLogin();
$config_list = rkcache('config', true);
config($config_list);
//引用语言包的类型 针对于数据库读写类型 中文\英文
if (in_array(cookie('ds_admin_sql_lang'), array('zh-cn', 'en-us'))) {
config('default_sql_lang', cookie('ds_admin_sql_lang'));
}else{
config('default_sql_lang', 'zh-cn');
}
if ($this->admin_info['admin_id'] != 1) {
// 验证权限
$this->checkPermission();
}
$this->setMenuList();\application\admin\controller\AdminControl.php中的limitList方法保存所有权限列表。
$_limit = array(
array('name' => lang('ds_setting'), 'child' => array(
array('name' => lang('ds_base'), 'action' => null, 'controller' => 'Config'),
array('name' => lang('ds_account'), 'action' => null, 'controller' => 'Account'),
array('name' => lang('ds_upload_set'), 'action' => null, 'controller' => 'Upload'),
array('name' => lang('ds_seo_set'), 'action' => null, 'controller' => 'Seo'),
array('name' => lang('ds_payment'), 'action' => null, 'controller' => 'Payment'),
array('name' => lang('ds_message'), 'action' => null, 'controller' => 'Message'),
array('name' => lang('ds_express'), 'action' => null, 'controller' => 'Express'),
array('name' => lang('ds_waybill'), 'action' => null, 'controller' => 'Waybill'),
array('name' => lang('ds_region'), 'action' => null, 'controller' => 'Region'),
array('name' => lang('ds_offpayarea'), 'action' => null, 'controller' => 'Offpayarea'),
array('name' => lang('ds_adminlog'), 'action' => null, 'controller' => 'Adminlog'),
)),
……从管理员的权限组表gadmin中获取当前管理员所属的权限组,其中glimits为使用公共方法ds_encrypt将含有controller和action与md5加密后权限名称进行加密的字符。将glimits用公共方法ds_decrypt解密后,根据比较当前控制器和操作是否在所属权限组中,如果不存在则隐藏相应的菜单。菜单在\application\admin\controller\AdminControl.php中的menuList进行声明。
'dashboard' => array(
'name' => 'dashboard',
'text' => lang('ds_dashboard'),
'children' => array(
'welcome' => array(
'ico'=>"",
'text' => lang('ds_welcome'),
'args' => 'welcome,Dashboard,dashboard',
),
……对于一些重要的操作,可以使用AdminControl类中的log方法将操作信息记录到adminlog表中,以便日后审查。
- 关注官方公众号 -