宜立方商品管理课后练习
程序员文章站
2022-07-02 10:00:55
...
这段时间在做传智播客的宜立方商城项目,在此将视频里的课后练习写出来分享一下
目录
编辑
按思路先找到JS代码里对应的URL,在分析JS代码时发现无法打开编辑页面,原来是代码里的URL并没有写的和JS代码对应起来,首先要将item-list.jsp的对应代码改为
<div id="itemEditWindow" class="easyui-window" title="编辑商品" data-options="modal:true,closed:true,iconCls:'icon-save',href:'item-edit'" style="width:80%;height:80%;padding:10px;">
</div>
现在可以出现对应的页面,但是页面里并没有商品的原始信息。需要写异步回写的方法,通过分析JS代码,可以发现对应的URL为
/rest/item/query/item/desc/'+data.id
/rest/item/param/item/query/'+data.id
接着开始实现
首先写接口层
/**
* 查询商品描述信息
*
* @param id 商品id
* @return tbItem
*/
TbItemDesc getItemDescById(long id);
/**
* 查询商品项
*
* @param itemId 商品订单
* @return TbItem
*/
TbItem getItemById(long itemId);
然后将接口进行实现
@Override
public TbItemDesc getItemDescById(long id) {
return itemDescMapper.selectByPrimaryKey(id);
}
@Override
public TbItem getItemById(long itemId) {
//根据主键查询
TbItemExample example = new TbItemExample();
TbItemExample.Criteria criteria = example.createCriteria();
//设置查询条件
criteria.andIdEqualTo(itemId);
//执行查询
List<TbItem> list = itemMapper.selectByExample(example);
if (list != null && list.size() > 0) {
return list.get(0);
}
return null;
}
最后写controller层
/**
* 异步重新加载商品描述
*
* @param id 商品id
* @return TbItemDesc
*/
@RequestMapping("/rest/item/query/item/desc/{id}")
@ResponseBody
public TbItemDesc selectTbItemDesc(@PathVariable long id) {
return itemService.getItemDescById(id);
}
/**
* 异步重新加载商品信息
*
* @param id 商品id
* @return TbItem
*/
@RequestMapping("/rest/item/param/item/query/{id}")
@ResponseBody
public TbItem queryById(@PathVariable long id) {
return itemService.getItemById(id);
}
这时会发现有另外一个问题,代码似乎已经没问题了,但是无法显示出商品描述数据。
这是因为在这儿我们并没有返回状态信息,所以将判断先去掉
这时编辑功能就已经实现
批量删除
和上面类似,先找到对应url为
/rest/item/delete
然后开始写接口层
/**
* 批量删除商品
* @param ids 批量商品id
* @return E3Result
*/
E3Result deleteItems(String ids);
然后将其实现
@Override
public E3Result deleteItems(String ids) {
//判断ids不为空
if (StringUtils.isNoneBlank(ids)) {
//将ids分别处理
String[] split = ids.split(",");
for (String id : split) {
itemMapper.deleteByPrimaryKey(Long.valueOf(id));
itemDescMapper.deleteByPrimaryKey(Long.valueOf(id));
}
return E3Result.ok();
}
return null;
}
最后写controller
/**
* 批量删除
*
* @param ids 商品编号
* @return E3Result
*/
@RequestMapping("/rest/item/delete")
@ResponseBody
public E3Result delete(String ids) {
return itemService.deleteItems(ids);
}
上下架
首先找到对应URL
下架:/rest/item/instock
上架:/rest/item/reshelf
将其按三步进行实现
接口层
/**
* 批量上架产品
* @param ids 批量商品id
* @return E3Result
*/
E3Result groundingItem(String ids);
/**
* 批量下架产品
* @param ids 批量商品id
* @return E3Result
*/
E3Result soldOutItem(String ids);
实现层
@Override
public E3Result groundingItem(String ids) {
//判断ids不为空
if (StringUtils.isNoneBlank(ids)) {
String[] split = ids.split(",");
//遍历所有id,进行修改下架
for (String id : split) {
TbItem item = itemMapper.selectByPrimaryKey(Long.valueOf(id));
item.setStatus((byte) 1);
//保存到数据库
itemMapper.updateByPrimaryKey(item);
}
return E3Result.ok();
}
return null;
}
@Override
public E3Result soldOutItem(String ids) {
//判断ids不为空
if (StringUtils.isNoneBlank(ids)) {
String[] split = ids.split(",");
//遍历所有id进行修改下架
for (String id : split) {
TbItem item = itemMapper.selectByPrimaryKey(Long.valueOf(id));
item.setStatus((byte) 2);
//保存到数据库
itemMapper.updateByPrimaryKey(item);
}
return E3Result.ok();
}
return null;
}
controller
/**
* 批量下架商品
*
* @param ids 商品编号
* @return E3Result
*/
@RequestMapping("/rest/item/instock")
@ResponseBody
public E3Result soldOutItem(String ids) {
return itemService.soldOutItem(ids);
}
/**
* 批量上架商品
*
* @param ids 商品编号
* @return E3Result
*/
@RequestMapping("/rest/item/reshelf")
@ResponseBody
public E3Result groundingItem(String ids) {
return itemService.groundingItem(ids);
}
这就是第二天课时安排的全部课后作业,如果各位发现有需要修改之处请一定要提出!
下一篇: 妹子奇观,各种不可意思的gif妹子图片