业务分析
当用户点击商品上架/下架的操作时,应该修改数据库中的状态信息status.
上架 status = 1, 下架 status = 2
页面URL分析
下架
上架
前端代码
function getSelectionsIds(){
var itemList = $("#itemList");
/*[item,item,item,item]*/
var sels = itemList.datagrid("getSelections");
var ids = [];
for(var i in sels){
ids.push(sels[i].id);
}
//将数组拼接成串 1,2,3,4,5
ids = ids.join(",");
return ids;
}
{
text:'下架',
iconCls:'icon-remove',
handler:function(){
//获取选中的ID串中间使用","号分割
var ids = getSelectionsIds();
if(ids.length == 0){
$.messager.alert('提示','未选中商品!');
return ;
}
$.messager.confirm('确认','确定下架ID为 '+ids+' 的商品吗?',function(r){
if (r){
var params = {"ids":ids};
$.post("/item/2",params, function(data){
if(data.status == 200){
$.messager.alert('提示','下架商品成功!',undefined,function(){
$("#itemList").datagrid("reload");
});
}
});
}
});
}
}
编辑controller
/**
* 利用restFul方式实现状态修改.
* 1./item/1 status=1
* 2./item/2 status=2
*/
@RequestMapping("/{status}")
public SysResult updateStatus(@PathVariable Integer status,Long[] ids){
itemService.updateStatus(ids,status);
return SysResult.success();
}
编辑ServiceImpl
@Override
public void updateStatus(Long[] ids, Integer status) {
itemMapper.updateStatus(ids,status);
/*//1.利用MP方式执行数据库操作
Item item = new Item();
item.setStatus(status);
//定义修改操作的条件构造器 where id in ();
UpdateWrapper<Item> updateWrapper = new UpdateWrapper<>();
List<Long> idList = Arrays.asList(ids); //数据转化为集合
updateWrapper.in("id",idList);
//根据mp机制.实现批量的数据更新操作
itemMapper.update(item,updateWrapper);*/
}
编辑Mapper接口/xml映射文件
void updateStatus(Long[] ids, Integer status);
<!--更新商品的状态信息-->
<update id="updateStatus">
update tb_item set status = #{status},updated=now() where id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>