Java学习三阶段-Day15

1. 商品分类业务功能

1.1 商品状态修改

1.1.1 业务接口文档

在这里插入图片描述

1.1.2 页面JS分析

  1. 作用域插槽获取当前行对象
    在这里插入图片描述
  2. 实现商品分类Ajax请求
    在这里插入图片描述

1.1.3 编辑ItemCatController

在这里插入图片描述

1.1.4 编辑ItemCatService

在这里插入图片描述

1.2 ElementUI-对话框用法

1.2.1 页面HTML

 <el-dialog
      title="提示AAAA"
      :visible.sync="dialogVisible"
      width="30%">
      <span>这是一段信息</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>

1.2.2 页面JS

在这里插入图片描述

1.3 商品分类新增

1.3.1 业务接口文档说明

在这里插入图片描述

1.3.2 页面JS分析

在这里插入图片描述

1.3.3 编辑ItemCatController

在这里插入图片描述

1.3.4 编辑ItemCatService

在这里插入图片描述

1.3.5 关于Bug解决

说明: 如果新增商品分类中报错,则在查询3级列表展现时.添加条件控制
在这里插入图片描述

1.4 商品分类删除

1.4.1 删除业务说明

说明: 如果用户删除1级,则应该将所有的子级信息全部删除.

1.4.2 删除业务接口

在这里插入图片描述

1.4.3 页面JS分析

在这里插入图片描述

1.4.4 编辑ItemCatController

 /**
     * 实现商品分类删除操作
     * URL: /itemCat/deleteItemCat?id=xxx&level=xxx
     * 返回值: SysResult对象
     */
    @DeleteMapping("/deleteItemCat")
    public SysResult deleteItemCat(ItemCat itemCat){
        itemCatService.deleteItemCat(itemCat);
        return SysResult.success();
    }

1.4.4 编辑ItemCatService

 /**
     * 策略: 如果是父级,则应该删除子级
     * @param itemCat
     */
    @Override
    @Transactional
    public void deleteItemCat(ItemCat itemCat) {
        //1.判断是否为三级菜单
        if(itemCat.getLevel() == 3){
            //如果是三级.则直接删除
            itemCatMapper.deleteById(itemCat.getId());
            return; //程序终止.
        }
        //2.检查菜单是否为二级
        if(itemCat.getLevel() == 2){
            //应该先删除三级 根据parent_id= 2级ID即可.
            QueryWrapper queryWrapper = new QueryWrapper();
            queryWrapper.eq("parent_id",itemCat.getId());
            itemCatMapper.delete(queryWrapper);
            //再删除2级菜单
            itemCatMapper.deleteById(itemCat.getId());
            return;
        }
        //删除1级商品分类信息  先删除3级.再删除2级.
        //1.首先获取商品分类2级信息 parent_id= 1级ID
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("parent_id",itemCat.getId());
        List<ItemCat> twoList = itemCatMapper.selectList(queryWrapper);
        for (ItemCat twoItemCat : twoList){
            queryWrapper.clear();
            queryWrapper.eq("parent_id",twoItemCat.getId());
            itemCatMapper.delete(queryWrapper);//删除3级菜单
            itemCatMapper.deleteById(twoItemCat.getId());//删除2级
        }
        itemCatMapper.deleteById(itemCat.getId());  //删除1级.
    }

2.商品列表展现

2.1 商品列表跳转

业务需求: 当用户跳转到/item 应该跳转到Item.vue页面
在这里插入图片描述

2.2 商品列表展现

2.2.1 业务接口实现

在这里插入图片描述

2.2.2 页面JS分析

在这里插入图片描述

2.2.3 Item表结构

在这里插入图片描述

2.2.4 Item POJO对象

在这里插入图片描述

2.2.5 编辑ItemController

@RestController
@CrossOrigin
@RequestMapping("/item")
public class ItemController {
    @Autowired
    private ItemService itemService;
    /**
     * URL地址:/item/getItemList?query=&pageNum=1&pageSize=10
     * 参数: pageResult对象
     * 返回值: SysResult(pageResult)
     */
    @GetMapping("/getItemList")
    public SysResult getItemList(PageResult pageResult){
        pageResult = itemService.getItemList(pageResult);
        return SysResult.success(pageResult);
    }
}

2.2.6 编辑ItemService

@Service
public class ItemServiceImpl implements ItemService{
    @Autowired
    private ItemMapper itemMapper;
    /**
     * 1.手写Sql 一种写法
     * 2.利用MP机制实现分页
     * @param pageResult
     * @return
     */
    @Override
    public PageResult getItemList(PageResult pageResult) {//3个
        IPage page = new Page(pageResult.getPageNum(),pageResult.getPageSize());
        QueryWrapper queryWrapper = new QueryWrapper();
        boolean flag = StringUtils.hasLength(pageResult.getQuery());
        queryWrapper.like(flag,"title",pageResult.getQuery());
        //执行分页查询,返回值依然是分页对象信息
        page = itemMapper.selectPage(page,queryWrapper);
        //回传5个参数 total/分页后的数据
        long total = page.getTotal();
        List<Item> rows = page.getRecords();
        return pageResult.setTotal(total).setRows(rows);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值