1 分类管理
1.1 分层显示列表数据
1、 显示第一级分类数据
思路:一打开页面时加载一个方法查询所有的一级分类数据
第一步:在ng-init中添加方法
第二步:添加js方法
$scope.findByParentId=function (parentId) {
itemCatService.findByParentId(parentId).success(function (response) {
$scope.list=response;
})
}
第三步:完成后台的方法
主要service:
@Override
public List<TbItemCat> findByParentId(Long parentId) {
// select * from tb_item_cat where parent_id=?
TbItemCatExample example = new TbItemCatExample();
example.createCriteria().andParentIdEqualTo(parentId);
return itemCatMapper.selectByExample(example);
}
1.2 控制“查询下级”显隐
思路:用一个变量记录当前显示的是第几级 grade
第一步:在js中添加一个变量
$scope.grade=1; //此变量用来记录当前页面显示数据的层级 默认显示是第一级
第二步:添加一个方法。更改grade的值
//点击查询下级的方法
$scope.setGrade=function(grade){
$scope.grade=grade;
}
第三步:使用ng-if控制显隐
1.3 面包屑的原路返回
分析图:
第一步:需要两个对象记录面包屑上的显示数据
第二步:点击查询下级时对entity1和entity2的赋值
在setGrade上添加一个参数
第三步:修改setGrade的方法
//点击查询下级的方法
$scope.setGrade=function(grade,pojo){
$scope.grade=grade;
if($scope.grade==1){
$scope.entity1=null;
$scope.entity2=null;
}
if($scope.grade==2){
$scope.entity1=pojo; //grade等于2 赋值
$scope.entity2=null;
}
if($scope.grade==3){
$scope.entity2=pojo; //grade等于3 赋值
}
}
第四步:添加面包屑显隐的控制
1.4 新增
第一步:动态显示模板数据
ng-init中添加查询所有模板的方法
$scope.findTypeTemplateAll=function () {
typeTemplateService.findAll().success(function (response) {
$scope.typeTemplateList=response;
})
}
第二步:在select中显示数据 使用ng-options
第三步:调整保存方法
添加一个变量:记录保存数据的父id
向即将保存的entity中追加一个parentId属性并赋值
2 运营商的登录和安全验证控制(SpringSecurity)
2.1 运营商项目中添spring-security的控制
第一步:添加依赖 config web
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
第二步:在web.xml添加过滤器,添加一个监听器 加载spring-security.xml
过滤的名字filter-name必须是:springSecurityFilterChain
过滤的类名:DelegatingFilterProxy
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
使用前端制器加载spring-security.xml
第三步:在项目中添加spring-security.xml
注意:静态资源的放行
<!-- 以下页面不被拦截 -->
<http pattern="/login.html" security="none"></http>
<http pattern="/login_error.html" security="none"></http>
<http pattern="/css/**" security="none"></http>
<http pattern="/img/**" security="none"></http>
<http pattern="/js/**" security="none"></http>
<http pattern="/plugins/**" security="none"></http>
<http pattern="/assets/**" security="none"></http>
<http pattern="/data/**" security="none"></http>
第四步:修改登录页面的表单
1、 form表单提交方式method一定是post ,action一定是/login
2、 form表单中输入用户名和密码的input 必须是 username password
3、 提交方式是表单的直接提交
2.2 首页上显示当前登录人账号
修改indexService的方法
2.3 退出登录
第一步:在spring-security.xml中添加
第二步:修改首页上的注销按钮
3 商家入驻(商家注册)
第一步:参考manager-web项目添加配置文件
注意放行的资源:
注意两个默认值
4 运营商审核商家
第一步:构建查询参数
第二步:修改sellerService的代码
第三步:修改controller中的方法 使用restFul风格
@RequestMapping("/search/{pageNum}/{pageSize}")
// @PathVariable从URL上获取参数的值
public PageResult search(@RequestBody TbSeller seller,
@PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize ){
return sellerService.findPage(seller, pageNum, pageSize);
}
第四步:调整service方法
第五步:完成审核方法
页面代码:
JS代码:
$scope.updateStatus=function(status,info){
var flag = window.confirm("确认要"+info+"此商家吗?");
if(flag){
// update tb_seller set status=? where seller_id=?
sellerService.updateStatus(status,$scope.entity.sellerId).success(function(response){
if(response.success){
$scope.reloadList();
}else{
alert(response.message);
}
})
}
}
后台: service代码:
@Override
public void updateStatus(String status, String id) {
// update tb_seller set status=? where id=?
TbSeller tbSeller = sellerMapper.selectByPrimaryKey(id);
tbSeller.setStatus(status);
sellerMapper.updateByPrimaryKey(tbSeller);
}
5 商家的登录和安全验证控制
6.不足扩展
iframe策略,如下图所示
restful风格的接口方式(传参方式)