权限认证
实现权限认证
①修改公共控制器调用方法进行校验

②增加属性保存信息

③根据用户ID获取角色ID

④根据不同的角色获取权限信息

对于非超级管理员角色的权限信息如下

⑤对权限信息进行格式化

超级管理数据

非超级管理员

⑥根据当前访问的进行判断

处理后台首页没有权限

处理后台首页中的导航菜单
①修改后台首页控制器增加方法

②模板显示

非超级管理员

超级管理员

权限认证性能调优
由于权限认证处理是在公共控制器中的构造方法中实现。对于每一次访问方法都需要走权限认证。而权限认证涉及多次的数据库的查询操作。因此影响数据库性能。可以使用缓存解决问题
①修改代码


②处理超级管理员的权限
当超级管理员访问某一个方法 而方法在权限中没有对应的数据


使用缓存需要注意:一旦权限信息或者用户信息发送变更需要更新缓存
商品相册
添加商品相册
创建相册数据表
CREATE TABLE `shop_goods_img` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`goods_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘商品ID’,
`goods_img` varchar(255) NOT NULL DEFAULT ” COMMENT ‘相册原图’,
`goods_thumb` varchar(255) NOT NULL DEFAULT ” COMMENT ‘相册小图’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
商品添加显示相册
①增加相册选项卡

②增加选项卡标签对应的table

效果如下

③实现点击按钮增肌上传框

实现相册入库

测试相册入库直接写入商品信息

相册编辑
显示编辑商品的相册
①修改方法

②显示edit模板增加相册选项卡
增加选项卡


拷贝js

最终效果如下

实现编辑商品追加相册


实现编辑商品相册图片删除
①修改图片属性

②绑定图片的点击事件触发ajax

③创建方法处理删除图片请求

④ajax成功处理dom元素移除

前台页面显示
首页显示
①修改前台index控制器中的index方法

②拷贝前台模板文件

③拷贝资源文件

④替换资源地址

使用版本号(了解)
版本号可以控制资源文件的缓存更新
①在配置文件中增加配置

②在模板中使用

页头页尾的公用
①提取头部HTML代码

②在index模板中引入头部

③提取底部的HTML代码

④index模板引入底部的代码

显示商品列表页
①创建控制器方法显示模板

②拷贝模板文件

③修改模板

④解决头部导航菜单展开与收缩效果
先在index控制器下的index方法中赋予标识符

在模板中判断

商品详情页显示
①创建控制器方法加载模板

②拷贝模板

③处理模板资源地址

④模板公用

显示导航商品分类信息
①修改index方法获取数据

结果如下

②创建公共控制器构造方法获取数分类数据

③修改 其他控制器的继承关系
修改index控制器

修改category控制器

修改goods控制器

④显示第一层分类信息


⑤显示第二层菜单


⑥显示第三层导航菜单


显示首页中的推荐商品
①自定义模型创建方法可以获取推荐商品

②在控制器中获取推荐的商品

③修改配置项指定资源地址

④模板显示数据


用户注册
用户数据表创建
CREATE TABLE `shop_user` (
`id` int(11) NOT NULL,
`username` varchar(255) NOT NULL DEFAULT ” COMMENT ‘用户名’,
`password` char(32) NOT NULL DEFAULT ” COMMENT ‘密码’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
显示用户注册页
①创建方法加载模板

②拷贝模板文件

③修改模板提取头部

④修改注册模板

⑤修改footer.html模板

实现注册入库
①修改方法

②创建模型

