今天老师讲了电商的第二天的知识,但是因为我的加载页面没出来,也找不出原因,只能重新去看视屏,感觉老师今天就讲了怎么添加,然后就是三级分布。
@Override public List selectCategoryListByParentId(short parentId) {
// 创建查询对象
GoodsCategoryExample example = new GoodsCategoryExample();
// where条件
example.createCriteria().andParentIdEqualTo(parentId);
return goodsCategoryMapper.selectByExample(example);
}
@Override public List selectCategoryList(short parentId) {
// 创建查询对象
GoodsCategoryExample example = new GoodsCategoryExample();
// where条件
example.createCriteria().andParentIdEqualTo(parentId);
return goodsCategoryMapper.selectByExample(example);
}
@Controller
@RequestMapping("goodsCategory")
public class GoodsController {
@Autowired
private GoodsCategoryService goodsCategoryService;
/** * 商品分类-添加-页面跳转
* @return
*/
@RequestMapping("category/add")
public String categoryAdd(Model model){
List gcList = goodsCategoryService.selectCategoryTopList();
model.addAttribute("gcList",gcList);
return "goods/category/category-add";
}
/**
* 商品分类-列表-页面跳转
* @return
*/
@RequestMapping("category/list") public String categoryList(){
return "goods/category/category-list";
}
/**
* 商品分类-添加-分类联查
* @param parentId
* @return
*/
@RequestMapping("category/{parentId}")
@ResponseBody
public List selectCategoryList(@PathVariable Short parentId){
return goodsCategoryService.selectCategoryList(parentId);
}
}
<!-- 设置项目根路径全局变量 -->
<#assign ctx=request.contextPath/>
<script type="text/javascript">
var ctx="${ctx}";
</script>
<html>
<head>
<meta charset="UTF-8">
<title>ego管理后台</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Bootstrap 3.3.4 -->
<link href="${ctx}//bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<!-- FontAwesome 4.3.0 -->
<link href="${ctx}//bootstrap/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<!-- Ionicons 2.0.0 --
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" type="text/css" />
<link href="${ctx}//dist/css/AdminLTE.min.css" rel="stylesheet" type="text/css" />
AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link href="${ctx}//dist/css/skins/_all-skins.min.css" rel="stylesheet" type="text/css" />
<!-- iCheck -->
<link href="${ctx}//plugins/iCheck/flat/blue.css" rel="stylesheet" type="text/css" />
<!-- jQuery 2.1.4 -->
<script src="${ctx}//plugins/jQuery/jQuery-2.1.4.min.js"></script>
<script src="${ctx}//js/global.js"></script>
<script src="${ctx}//js/myFormValidate.js"></script>
<script src="${ctx}//bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script src="${ctx}//js/layer/layer-min.js"></script><!-- 弹窗js 参考文档 http://layer.layui.com/-->
<script src="${ctx}//js/myAjax.js"></script>
<script type="text/javascript">
function delfunc(obj){
layer.confirm('确认删除?', {
btn: ['确定','取消'] //按钮
}, function(){
$.ajax({
type : 'post',
url : $(obj).attr('data-url'),
data : {act:'del',del_id:$(obj).attr('data-id')},
dataType : 'json',
success : function(data){
if(data==1){
layer.msg('操作成功', {icon: 1});
$(obj).parent().parent().remove();
}else{
layer.msg(data, {icon: 2,time: 2000});
}
layer.closeAll();
}
})
}, function(index){
layer.close(index);
return false;// 取消
}
);
}
//全选
function selectAll(name,obj){
$('input[name*='+name+']').prop('checked', $(obj).checked);
}
function get_help(obj){
layer.open({
type: 2,
title: '帮助手册',
shadeClose: true,
shade: 0.3,
area: ['90%', '90%'],
content: $(obj).attr('data-url'),
});
}
function delAll(obj,name){
var a = [];
$('input[name*='+name+']').each(function(i,o){
if($(o).is(':checked')){
a.push($(o).val());
}
})
if(a.length == 0){
layer.alert('请选择删除项', {icon: 2});
return;
}
layer.confirm('确认删除?', {btn: ['确定','取消'] }, function(){
$.ajax({
type : 'get',
url : $(obj).attr('data-url'),
data : {act:'del',del_id:a},
dataType : 'json',
success : function(data){
if(data == 1){
layer.msg('操作成功', {icon: 1});
$('input[name*='+name+']').each(function(i,o){
if($(o).is(':checked')){
$(o).parent().parent().remove();
}
})
}else{
layer.msg(data, {icon: 2,time: 2000});
}
layer.closeAll();
}
})
}, function(index){
layer.close(index);
return false;// 取消
}
);
}
</script>
<meta name="__hash__" content="3089b9badfca8307d7d520487d125ae4_6385f66dff50b4c04db3ec79b8a9d245" /></head>
<body style="background-color:#ecf0f5;">
<div class="wrapper">
<div class="breadcrumbs" id="breadcrumbs">
<ol class="breadcrumb">
<li><a href="javascript:void();"><i class="fa fa-home"></i> 后台首页</a></li>
<li><a href="javascript:void();">商品管理</a></li>
<li><a href="javascript:void();">添加修改分类</a></li>
</ol>
</div>
<section class="content">
<div class="row">
<div class="col-sm-12">
<div class="box">
<div class="box-header">
<h3 class="box-title">增加分类</h3>
<div class="pull-right">
<a href="javascript:history.go(-1)" data-toggle="tooltip" title="" class="btn btn-default" data-original-title="返回"><i class="fa fa-reply"></i></a>
<a href="javascript:;" class="btn btn-default" data-url="http://www.ego.cn/Doc/Index/article/id/1006/developer/user.html" onclick="get_help(this)"><i class="fa fa-question-circle"></i> 帮助</a>
</div>
</div>
<!-- /.box-header -->
<form action="/index/Admin/Goods/addEditCategory" method="post" class="form-horizontal" id="category_form">
<div class="box-body">
<div class="form-group">
<label class="col-sm-2 control-label">分类名称</label>
<div class="col-sm-6">
<input type="text" placeholder="名称" class="form-control large" name="name" value="">
<span class="help-inline" style="color:#F00; display:none;" id="err_name"></span>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">手机分类名称</label>
<div class="col-sm-6">
<input type="text" placeholder="手机分类名称" class="form-control large" name="mobile_name" value="">
<span class="help-inline" style="color:#F00; display:none;" id="err_mobile_name"></span>
</div>
</div>
<div class="form-group">
<label0 class="control-label col-sm-2">上级分类</label0>
<div class="col-sm-3">
<select name="parent_id_1" id="parent_id_1" onchange="get_category(this.value,'parent_id_2','0');" class="small form-control">
<option value="0">顶级分类</option>
<option value="1">手机 、 数码 、 通信</option><option value="2">家用电器</option><option value="3">电脑、办公</option><option value="4">家居、家具、家装、厨具</option><option value="5">男装、女装、童装、内衣</option><option value="6">个人化妆</option><option value="7">鞋、箱包、珠宝、手表</option><option value="8">运动户外</option><option value="9">汽车用品</option><option value="10">母婴用品、儿童玩具</option><option value="11">图书、音像、电子书</option>
</select>
</div>
<div class="col-sm-3">
<select name="parent_id_2" id="parent_id_2" class="small form-control">
<option value="0">请选择商品分类</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">导航显示</label>
<div class="col-sm-10">
<label>
<input checked="checked" type="radio" name="is_show" value="1"> 是
<input type="radio" name="is_show" value="0"> 否
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">分类分组:</label>
<div class="col-sm-1">
<select name="cat_group" id="cat_group" class="form-control">
<option value="0">0</option>
<option value='1' >1</option>"
<option value='2' >2</option>"
<option value='3' >3</option>"
<option value='4' >4</option>"
<option value='5' >5</option>"
<option value='6' >6</option>"
<option value='7' >7</option>"
<option value='8' >8</option>"
<option value='9' >9</option>"
<option value='10' >10</option>"
<option value='11' >11</option>"
<option value='12' >12</option>"
<option value='13' >13</option>"
<option value='14' >14</option>"
<option value='15' >15</option>"
<option value='16' >16</option>"
<option value='17' >17</option>"
<option value='18' >18</option>"
<option value='19' >19</option>"
<option value='20' >20</option>"
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">分类展示图片</label>
<div class="col-sm-10">
<input onclick="GetUploadify(1,'image','category');" type="button" value="上传图片"/>
<input type="text" value="" name="image" id="image" class="form-control large" readonly="readonly" style="width:500px;display:initial;"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">显示排序</label>
<div class="col-sm-1">
<input type="text" placeholder="50" class="form-control large" name="sort_order" value=""/>
<span class="help-inline" style="color:#F00; display:none;" id="err_sort_order"></span>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">分佣比例</label>
<div class="col-sm-1">
<input type="text" placeholder="50" class="form-control large" name="commission_rate" id="commission_rate" value="0" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" onkeyup="this.value=this.value.replace(/[^\d.]/g,'')"/>
</div>
<div class="col-sm-1" style="margin-top: 6px;margin-left: -20px;">
<span>%</span>
</div>
</div>
</div>
<div class="box-footer">
<input type="hidden" name="id" value="">
<button type="reset" class="btn btn-primary pull-left"><i class="icon-ok"></i>重填 </button>
<button type="button" onclick="ajax_submit_form('category_form','/index/Admin/Goods/addEditCategory/is_ajax/1');" class="btn btn-primary pull-right"><i class="icon-ok"></i>提交 </button>
</div>
<input type="hidden" name="__hash__" value="3089b9badfca8307d7d520487d125ae4_6385f66dff50b4c04db3ec79b8a9d245" /></form>
</div>
</div>
</div>
</section>
</div>
<script>
/** 以下是编辑时默认选中某个商品分类*/
$(document).ready(function(){
});
</script>
</body>
</html>
int categorySave(GoodsCategory goodsCategory);
impl的保存
@Override
public int categorySave(GoodsCategory goodsCategory) {
return goodsCategoryMapper.insertSelective(goodsCategory);
}
List selectCategoryListForView();
/**
* 商品分类-列表
*
@return
*/
@Override
public List selectCategoryListForView() {
//创建查询对象
GoodsCategoryExample example = new GoodsCategoryExample();
//where条件 parentId=0 and level = 1
example.createCriteria().andParentIdEqualTo((short) 0).andLevelEqualTo((byte) 1);
//查询一级分类
List gcList01 = goodsCategoryMapper.selectByExample(example);
//处理一级分类查询下级分类
List gcvList01 = new ArrayList<>();
for (GoodsCategory gc01 : gcList01) {
//将GoodsCategory对象转成GoodsCategoryVo对象
GoodsCategoryVo gcv01 = new GoodsCategoryVo();
BeanUtils.copyProperties(gc01,gcv01);
// 清空查询对象
example.clear();
//设置查询参数
example.createCriteria().andParentIdEqualTo(gcv01.getId()).andLevelEqualT o((byte) 2);
//查询二级分类
List gcList02 = goodsCategoryMapper.selectByExample(example);
//处理二级分类查询下级分类
List gcvList02 = new ArrayList<>();
for (GoodsCategory gc02 : gcList02) {
//将GoodsCategory对象转成GoodsCategoryVo对象
GoodsCategoryVo gcv02 = new GoodsCategoryVo();
BeanUtils.copyProperties(gc02,gcv02);
// 清空查询对象
example.clear();
//设置查询参数
example.createCriteria().andParentIdEqualTo(gcv02.getId()).andLevelEqualTo ((byte) 3);
//查询三级分类
List gcList03 = goodsCategoryMapper.selectByExample(example);
// 处理三级分类添加至二级二级分类vo对象
List gcvList03 = new ArrayList<>();
for (GoodsCategory gc03 : gcList03) {
//将GoodsCategory对象转成GoodsCategoryVo对象
GoodsCategoryVo gcv03 = new GoodsCategoryVo();
BeanUtils.copyProperties(gc03,gcv03);
//将对象添加至三级分类vo对象
List gcvList03.add(gcv03);
}
// 将三级分类List添加至二级分类
gcv02.setChildren(gcvList03);
// 讲对象添加至二级分类Vo对象
List gcvList02.add(gcv02);
}
// 将二级分类List添加至一级分类
gcv01.setChildren(gcvList02);
// 将对象添加至一级分类Vo对象
List gcvList01.add(gcv01);
}
return gcvList01;
}
@RequestMapping("category/list")
public String categoryList(Model model) {
List gcvList = goodsCategoryService.selectCategoryListForView(); model.addAttribute("gcvList",gcvList);
return "goods/category/category-list";
}