商家后台-商品录入【基本功能】
3.1需求分析
在商家后台实现商品录入功能。包括商品名称、副标题、价格、包装列表、售后服务
3.2后端代码
3.2.1实体类
创建组合实体类goods
public class Goods implements Serializable {
//商品SPU基本信息
private TbGoods tbGoods;
//商品SPU扩展信息
private TbGoodsDesc tbGoodsDesc;
//商品SKU列表
private List<TbItem> itemList;
//getter and setter方法......
数据访问层
由于我们需要在商品表添加数据后可以得到自增的ID,所以我们需要在TbGoodsMapper.xml中的insert配置中添加如下配置
/*获取到新插入数据的id*/
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>
修改pinyougou-sellergoods-interface 的GoodsService接口 add方法
/**
* 增加
*/
public void add(Goods goods);
3.2.4服务实现层
修改pinyougou-sellergoods-service的GoodsServiceImpl.java
@Autowired
private TbGoodsDescMapper goodsDescMapper;
/**
* 增加
*/
@Override
public void add(Goods goods) {
goods.getGoods().setAuditStatus("0");//设置未申请状态
goodsMapper.insert(goods.getGoods());
goods.getGoodsDesc().setGoodsId(goods.getGoods().getId());//设置ID
goodsDescMapper.insert(goods.getGoodsDesc());//插入商品扩展数据
}
3.2.5控制层
修改pinyougou-shop-web工程的GoodsController的add方法
/**
* 增加
* @param goods
* @return
*/
@RequestMapping("/add")
public Result add(@RequestBody Goods goods){
//获取登录名id(商家的id)
String sellerId = SecurityContextHolder.getContext ().getAuthentication ().getName ();
goods.getTbGoods ().setSellerId (sellerId);
try {
goodsService.add(goods);
return new Result(true, "增加成功");
} catch (Exception e) {
e.printStackTrace();
return new Result(false, "增加失败");
}
}
3.3前端代码
商品录入【选择商品分类】
1.1需求分析
在商品录入界面实现商品分类的选择(三级分类)效果如下:
准备工作
(1)在pinyougou-shop-web工程中创建ItemCatController.(可拷贝运营商后台的代码)
(2)创建item_catService.js (可拷贝运营商后台的代码)
(3)修改goodsController.js,引入itemCatService
(4)修改goods_edit.html,添加引用
<script src="../plugins/angularjs/angular.min.js"></script>