day70_淘淘商城项目_03_商品类目选择 + 图片上传 + 图片服务器FastDFS + 富文本编辑器KindEditor + 新增商品_匠心笔记

本篇博客详细介绍了淘淘商城项目中商品类目的选择,包括数据库表结构设计和前端页面分析。接着讨论了图片上传的功能,涉及到FastDFS的使用和图片服务器的安装方法。还提到了富文本编辑器KindEditor的使用,以及如何实现商品的新增功能,包括服务层和表现层的开发。最后,博主分享了作业和学习资源链接。
摘要由CSDN通过智能技术生成

  • 课程计划
    • 第三天:
  • 1、商品类目选择
  • 2、图片上传
    • a) 图片服务器FastDFS
    • b) 图片上传功能实现
  • 3、富文本编辑器的使用KindEditor
  • 4、商品添加功能完成

1、商品类目选择

1.1、功能分析

1.1.1、数据库表结构设计


parent_id 表示节点的父节点。
上表的设计可以展示为树形结构展开类目。

1.1.2、前端页面分析

在taotao-manager-web项目中的jsp下的item-add.jsp中:

我们在该文件中使用 【Ctrl + F】 进行搜索,没有找到事件绑定的样式class(selectItemCat),那我们在Eclipse使用【文件搜索】功能,步骤:Search --> File…,如下:

我们找到了class绑定事件元素处理的js文件common.js,如下:

我们发现:在item-add.jsp中我们并没有引用common.js,但由于在首页index.jsp中我们已经引入了,所以item-add.jsp作为首页index.jsp一个片段,所以在item-add.jsp中我们同样可以使用common.js。
展示商品分类列表,使用EasyUI的tree控件展示。如下:

详解如下:

初始化tree请求的url:/item/cat/list
参数:id  父节点的id值。
初始化tree时只需要把第一级节点展示,子节点异步加载展示。

返回值:json格式数据

[{    
    "id": 1,    
    "text": "Node 1",    
    "state": "closed"
},{    
    "id": 2,    
    "text": "Node 2",    
    "state": "closed"   
}] 
state:如果节点下有子节点则state的值为"closed",如果节点下没有子节点则state的值为"open"。

所以我们需要创建一个pojo来描述tree的节点信息,包含三个属性id、text、state。
放到taotao-common工程中。由于是服务端响应回来的pojo数据,所以需要实现序列化接口。
EasyUITreeNode.java

package com.taotao.common.pojo;

import java.io.Serializable;

/**
 * 类目查询时的返回的数据类
 * @author	chenmingjun
 * @date	2018年11月12日下午5:01:23
 * @version 1.0
 */
public class EasyUITreeNode implements Serializable {
   
	
	private static final long serialVersionUID = 1L;

	private Long id;
	
	private String text;
	
	private String state;

	public Long getId() {
   
		return id;
	}

	public void setId(Long id) {
   
		this.id = id;
	}

	public String getText() {
   
		return text;
	}

	public void setText(String text) {
   
		this.text = text;
	}

	public String getState() {
   
		return state;
	}

	public void setState(String state) {
   
		this.state = state;
	}
	
	@Override
	public String toString() {
   
		return "EasyUITreeNode [id=" + id + ", text=" + text + ", state=" + state + "]";
	}
}

查询的表:
  tb_item_cat
查询的列:
  id、name、is_parent
查询条件:
  parentId

1.2、服务层工程开发

1.2.1、Dao层

  Dao层只需要查询商品分类表tb_item_cat即可,属于单表查询,单表查询我们没有必要自己写Mapper了,使用Mybatis逆向工程生成的Mapper即可。

1.2.2、Service层

参数:
  Long parentId
业务逻辑:
  1、根据parentId查询节点列表。
  2、转换成EasyUITreeNode列表。
  3、返回。
返回值:
  List<EasyUITreeNode>

先写接口,在taotao-manager-interface工程中:

package com.taotao.service;

import java.util.List;

import com.taotao.common.pojo.EasyUITreeNode;

/**
 * 商品类目管理接口
 * @author	chenmingjun
 * @date	2018年11月12日下午8:15:24
 * @version 1.0
 */
public interface ItemCatService {
   

	/**
	 * 根据商品类目的父节点id,查询该节点的子类目列表
	 * @param parentId
	 * @return
	 */
	List<EasyUITreeNode> getItemCatList(Long parentId);
}

再写实现类,在taotao-manager-service工程中:

/**
 * 商品类目管理Service
 * @author	chenmingjun
 * @date	2018年11月12日下午8:15:58
 * @version 1.0
 */
@Service
public class ItemCatServiceImpl implements ItemCatService {
   

	@Autowired
	private TbItemCatMapper itemCatMapper;
	
	@Override
	public List<EasyUITreeNode> getItemCatList(Long parentId) {
   
		TbItemCatExample example = new TbItemCatExample();
		// 设置查询条件
		Criteria criteria = example.createCriteria();
		criteria.andParentIdEqualTo(parentId);
		List<TbItemCat> list = itemCatMapper.selectByExample(example);
		// 将list转换成EasyUITreeNode列表
		List<EasyUITreeNode> resultList = new ArrayList<>();
		for (TbItemCat tbItemCat : list) {
   
			EasyUITreeNode node = new EasyUITreeNode();
			node.setId(tbItemCat.getId());
			node.setText(tbItemCat.getName());
			// 如果节点下有子节点则state的值为"closed",如果节点下没有子节点则state的值为"open"
			node.setState(tbItemCat.getIsParent() ? "closed" : "open");
			// 将节点添加到list集合(列表)
			resultList.add(node);
		}
		return resultList;
	}
}
1.2.3、发布服务

在taotao-manager-service中的applicationContext-service.xml中发布服务:

1.3、表现层功能开发

1.3.1、引用服务

在taotao-manager-web中的springmvc.xml中引用服务:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值