day---06

1.商品后台业务操作
1.1 工具栏实现
1.1.1 工具栏入门案例
在这里插入图片描述

1.2 商品分类名称回显
编辑页面JS

//根据id 动态获取商品分类名称
var cid = data.cid;
//通过ajax请求程序动态获取用户数据
$.get("/itemCat/findItemCatById",{id: cid},function(data){
var name = data.name
//如何将name属性绑定到分类表格中?
//.val(“xxxx”) value属性值 .text(“xxxxx”) 标签中间的文本值
$("#itemeEditForm input[name=‘cid’]").prev().text(name)
})
页面效果:
在这里插入图片描述

1.3 商品更新操作
1.3.1 页面分析
在这里插入图片描述

1.3.2 页面JS分析
在这里插入图片描述

1.3.3 编辑ItemController
/**
* 完成商品修改操作
* url地址: http://localhost:8091/item/update
* 参数: form表单
* 返回值: SysResult对象
*/
@RequestMapping("/update")
public SysResult updateItem(Item item){

	itemService.updateItem(item);
	return SysResult.success();
}

1.3.4 编辑ItemService
@Override
@Transactional
public void updateItem(Item item) {

	itemMapper.updateById(item);
}

1.4 商品删除
1.4.1 页面URL分析
在这里插入图片描述

1.4.2 页面参数
在这里插入图片描述

1.4.3 页面JS
在这里插入图片描述

1.4.4 编辑ItemController
/**
* 批量删除商品
* url地址: http://localhost:8091/item/delete
* 参数: ids=100,101,102
* 返回值: SysResult对象
* 简化操作: 当参数采用,号分隔时,会自动的转化为数组.
* SpringMVC 底层实现servlet
*/
@RequestMapping("/delete")
public SysResult deleteItems(Long… ids){

	itemService.deleteItems(ids);
	return SysResult.success();
}

1.4.5 编辑ItemService
//方式1: 手写sql delete from tb_item where id in (xx,xx,xx…)
//方式2: 利用MP方式实现 作业
@Transactional
@Override
public void deleteItems(Long[] ids) {

	itemMapper.deleteIds(ids);
}

1.4.6 编辑XML映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--
	提示:void deleteIds(Long[] ids);
	原理:
		1.Mybatis原生支持单值传参
		2.如果遇到多值传参,则Mybatis会将多值封装为单值.
		  利用Map集合进行封装
		3.Mybatis升级之后,会自动的封装数据.
	原则:
		1.如果mybatis 进行单值传参
			数据:   	collection="array"
			list集合: 	collection="list"
			Map集合:	collection="Map中的key"
-->
<delete id="deleteIds">
	delete from tb_item where id in 
	<foreach collection="array" open="(" close=")"
			 			separator="," item="id">
		#{id}
	</foreach>
</delete>
1.5 商品上架/下架操作 1.5.1 页面URL分析 需求: 能否利用一个方法,实现通用的上架/下架操作. 1.下架操作 在这里插入图片描述 2).上架操作 在这里插入图片描述 3).参数分析 在这里插入图片描述 4).页面JS分析 在这里插入图片描述

1.5.2 restFul风格优化
将页面URL路径封装为restFul风格,之后动态获取参数,实现状态的更新.
在这里插入图片描述

1.5.3 编辑ItemController
/**
* 实现上架/下架通用操作
* url: /item/reshelf 上架操作 status=1
* url: /item/instock 下架操作 status=2
* restFUl操作方法
* URL优化: url: /item/updateStatus/2
*/
@RequestMapping("/updateStatus/{status}")
public SysResult updateStatus(@PathVariable Integer status,Long… ids){

	itemService.updateStatus(status,ids);
	return SysResult.success();
}

1.5.4 编辑ItemService
/**
* Sql: update tb_item set updated = #{updated},status = #{status}
* where id in (xx,xx,xx,xx)
* @param status
* @param ids
*/
@Override
public void updateStatus(Integer status, Long[] ids) {
//参数1:实体对象 将要修改的数据封装
Item item = new Item();
item.setStatus(status);

	//参数2:条件构造器  动态拼接where条件
	UpdateWrapper updateWrapper = new UpdateWrapper();
	List<Long> idList = Arrays.asList(ids);
	updateWrapper.in("id", idList);
	itemMapper.update(item,updateWrapper);
}

1.6 富文本编辑器实现
1.6.1 商品与商品分类表结构
在这里插入图片描述

1.6.2 入门案例
<%@ page language=“java” contentType=“text/html; charset=utf-8”
pageEncoding=“utf-8”%>

富文本编辑器

1.6.3 封装商品详情信息 @TableName("tb_item_desc") public class ItemDesc extends BasePojo{
@TableId
private Long itemId;        //itemId与商品表的Id值一致.
private String itemDesc;    //商品详情信息

}
1.7 重构商品新增操作
1.7.1 参数分析
在这里插入图片描述

1.7.2 编辑ItemController
在这里插入图片描述

1.7.3 编辑ItemService
在这里插入图片描述

1.8 重构商品管理删除操作
1.8.1 业务说明
由于商品与商品详情是一对一的关联关系,所以当删除商品时,应该关联删除商品详情.

1.8.2 关联删除商品
在这里插入图片描述

1.9 商品详情回显
1.9.1 业务说明
当点击商品编辑按钮时,应该根据Id,查询商品详情信息.之后将html代码片段,以html的展现形式给用户展现.

1.9.2 编辑页面JS
// 加载商品描述
$.getJSON(’/item/query/item/desc/’+data.id,function(_data){
if(_data.status == 200){
itemEditEditor.html(_data.data.itemDesc);
}
});
1.9.3 编辑ItemController
/**
* 根据id查询商品分类名称
* URL地址: /item/query/item/desc/’+data.id
* 参数: id
* 返回值: SysResult对象(itemDesc对象)
*/
@RequestMapping("/query/item/desc/{id}")
public SysResult findItemDescById(@PathVariable Long id){

	ItemDesc itemDesc = itemService.findItemDescById(id);
	return SysResult.success(itemDesc);
}

1.9.4 编辑ItemService
@Override
public ItemDesc findItemDescById(Long id) {

	return itemDescMapper.selectById(id);
}

1.10 重构商品编辑
1.10.1 页面分析
1.页面URL
在这里插入图片描述
2.提交参数
在这里插入图片描述

1.10.2 编辑ItemController
/**
* 完成商品修改操作
* url地址: http://localhost:8091/item/update
* 参数: form表单
* 返回值: SysResult对象
*/
@RequestMapping("/update")
public SysResult updateItem(Item item,ItemDesc itemDesc){

	itemService.updateItem(item,itemDesc);
	return SysResult.success();
}

1.10.3 编辑ItemService
@Override
@Transactional //注意事务控制
public void updateItem(Item item, ItemDesc itemDesc) {

	itemMapper.updateById(item);
	itemDesc.setItemId(item.getId());
	itemDescMapper.updateById(itemDesc);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健子bui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值