文章目录

  • 1.数据库
    • 1.1 数据库设计
    • 1.2 pojo层
    • 1.3 编辑Shop的Mapper接口
  • 2.显示
    • 2.1 前端页面分析
      • 2.1.1 生命周期函数
      • 2.1.2 获取数据函数
    • 2.2 接口文档
    • 2.3 实现
      • 2.3.1 Controller层
      • 2.3.2 Service层
      • 2.3.3 ServiceImpl层
  • 3.新增
    • 3.1 前端页面分析
    • 3.2 接口文档
    • 3.3 实现
      • 3.3.1 Controller层
      • 3.3.2 ServiceImpl层
  • 4.删除
    • 4.1 前端页面分析
    • 4.2 接口文档
    • 4.3 实现
      • 4.3.1 Controller层
      • 4.3.2 ServiceImpl层
  • 5.修改
    • 5.1 前端页面分析
    • 5.2 接口文档
    • 5.3 实现
      • 5.3.1 Controller层
      • 5.3.2 ServiceImpl层
  • 6.修改状态
    • 6.1 前端页面分析
    • 6.2 接口文档
    • 6.3 实现
      • 6.3.1 Controller层
      • 6.3.2 ServiceImpl层

1.数据库

1.1 数据库设计

1.2 pojo层

package com.ap.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;import java.util.List;@Data
@Accessors(chain = true)
@TableName("shop")
public class Shop extends BasePojo{@TableId(type = IdType.AUTO)//主键自增private Integer id;private String name;private Integer parentId;private String path;private Integer level;private String path1;private Boolean status;@TableField(exist = false)     //属性不是表字段private List<Rights> children; //不是表格固有属性
}

1.3 编辑Shop的Mapper接口

package com.ap.mapper;import com.ap.pojo.Shop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;import java.util.List;public interface ShopMapper extends BaseMapper<Shop> {public List<Shop> getShopList() ;
}

2.显示

2.1 前端页面分析

2.1.1 生命周期函数
//定义初始化函数created() {//默认获取商品分类列表数据this.findItemCatList()}
2.1.2 获取数据函数
async findItemCatList() {const {data: result} = await this.$http.get("/shop/findShop/3")if (result.status !== 200) return this.$message.error("获取商品分类列表失败!!")this.itemCatList = result.data}

2.2 接口文档

  • 请求路径:/shop/findShop/{level}
  • 请求类型:Get
  • 请求参数:level
参数名称 参数说明 备注信息
level 查询级别 1查询一级分类,2查询一二级分类,3查询一二三级分类
  • 业务说明:查询三级分类菜单数据,要求三层嵌套结构
  • 返回值:SysResult对象
参数名称 参数说明 备注信息
status 状态信息 200表示服务器请求成功,201表示服务器异常
msg 服务器返回的提示信息 能为null
data 服务器返回的业务权限 3级商品分类信息

2.3 实现

2.3.1 Controller层
    @GetMapping("/findShop/{level}")public SysResult findShop(@PathVariable Integer level){List<Shop> shop=shopService.findShop(level);return SysResult.success(shop);}
2.3.2 Service层
List<Shop> findShop(Integer level);
2.3.3 ServiceImpl层
@Overridepublic List<Shop> findShop(Integer level) {//1.查询一级菜单QueryWrapper queryWrapper = new QueryWrapper();queryWrapper.eq("parent_id",0);List<Shop> oneList = shopMapper.selectList(queryWrapper);//2.查询二级菜单 二级数据是一级数据的子级 封装到一级数据中.for(Shop oneItemCat : oneList){int oneId = oneItemCat.getId(); //一级对象ID//清空原始条件  必须有queryWrapper.clear();queryWrapper.eq("parent_id",oneId);List<Shop> twoList = shopMapper.selectList(queryWrapper);for(Shop twoItemCat : twoList){//获取二级分类IDint twoId = twoItemCat.getId();//查询三级列表信息queryWrapper.clear();queryWrapper.eq("parent_id",twoId);List<Shop> threeList = shopMapper.selectList(queryWrapper);//将三级列表 封装到二级对象中twoItemCat.setChildren(threeList);}//将二级数据封装到一级对象中oneItemCat.setChildren(twoList);}return oneList;}

3.新增

3.1 前端页面分析

//定义商品分类新增对象itemCatForm: {name: '', //定义商品分类名称parentId: 0, //默认父级ID=0level: 1 //默认是一级菜单}
async addItemCatForm() {//先将整个表单进行校验this.$refs.itemCatFormRef.validate(async validate => {if (!validate) returnconst {data: result} = await this.$http.post("/itemCat/saveItemCat", this.itemCatForm)if (result.status !== 200) return this.$message.error("新增商品分类失败")this.$message.success("新增商品分类成功!!!")//新增成功,则刷新分类列表信息this.findItemCatList();this.addItemCatDialogVisible = false})},

3.2 接口文档

  • 请求路径:/shop/saveItemCat
  • 请求类型:POST
  • 请求参数:表单数据
参数名称 参数说明 备注信息
name 商品分类名称 不能为null
parentId 用户父级id 不能为null
level 分类类别 1 2 3 商品分类类别
  • 返回值:SysResult对象
参数名称 参数说明 备注信息
status 状态信息 200表示服务器请求成功,201表示服务器异常
msg 服务器返回的提示信息 能为null
data 服务器返回的业务权限 3级商品分类信息

3.3 实现

3.3.1 Controller层
/** 业务需求:  实现商品分类新增* URL:  /shop/saveItemCat* 类型: post* 返回值: SysResult对象*/@PostMapping("/saveItemCat")public SysResult saveItem(@RequestBody Shop shop){shopService.saveItem(shop);return SysResult.success();}
3.3.2 ServiceImpl层
 @Override@Transactional //事物控制public void saveItem(Shop shop) {Date date = new Date();shop.setStatus(true).setCreated(date).setUpdated(date);//启动shopMapper.insert(shop);}

4.删除

4.1 前端页面分析

      deleteItemCatBtn(itemCat) {//删除商品分类信息,如果为父级节点则需要删除所有的子级信息this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(async () =>{//传递分类idconst {data: result} = await this.$http.delete("/shop/deleteItemCat",{params:{id:itemCat.id,level:itemCat.level}})if(result.status !== 200) return this.$message.error("删除商品分类失败")this.$message.success("删除数据成功")//删除成功之后,刷新页面数据this.findItemCatList()}).catch(() => {this.$message({type: 'info',message: '已取消删除'});});}

4.2 接口文档

  • 请求路径:/shop/deleteItemCat
  • 请求类型:DELETE
  • 业务描述:当删除的节点为父级时,应该删除自身和所有子节点
参数名称 参数说明 备注信息
id 用户id号 不能为null
level 级别 1为一级分类,2为一二级分类,3为一二三级分类
  • 业务说明:查询三级分类菜单数据,要求三层嵌套结构
  • 返回值:SysResult对象
参数名称 参数说明 备注信息
status 状态信息 200表示服务器请求成功,201表示服务器异常
msg 服务器返回的提示信息 能为null
data 服务器返回的业务权限 3级商品分类信息

4.3 实现

4.3.1 Controller层
/** URL:/shop/deleteItemCat* 请求类型:DELETE* 业务描述:当删除的节点为父级时,应该删除自身和所有子节点*/@DeleteMapping("/deleteItemCat")public SysResult deleteItemCat(Integer id,Integer level){shopService.deleteItemCat(id,level);return SysResult.success();}
4.3.2 ServiceImpl层
@Overridepublic void deleteItemCat(Integer id, Integer level) {//判断是否为3级菜单,如果是,直接删除if(level==3){shopMapper.deleteById(id);}//判断是否为二级菜单,如果是,先删除三级数据,在删除自己if(level==2){QueryWrapper<Shop> queryWrapper = new QueryWrapper<>();queryWrapper.eq("parent_id", id).or().eq("id", id);shopMapper.delete(queryWrapper);}if (level==1){QueryWrapper<Shop> queryWrapper = new QueryWrapper<>();queryWrapper.eq("parent_id", id);List twoId = shopMapper.selectObjs(queryWrapper);//清空数据queryWrapper.clear();//如果二级菜单有值,才会被删除queryWrapper.in(twoId.size()>0, "parent_id",twoId).or().in(twoId.size()>0, "id",twoId).or().eq("id",id);shopMapper.delete(queryWrapper);}}

5.修改

5.1 前端页面分析

async updateItemCat() {//修改商品分类信息const {data: result} = await this.$http.put('/shop/updateItemCat', this.updateItemCatForm)if (result.status !== 200) return this.$message.error("更新商品分类失败")this.$message.success("更新商品分类成功")this.findItemCatList();this.updateItemCatDialogVisible = false;}

5.2 接口文档

  • 请求路径:/shop/updateItemCat
  • 请求类型:PUT
  • 请求参数:表单数据对象
  • 返回值:SysResult对象
参数名称 参数说明 备注信息
status 状态信息 200表示服务器请求成功,201表示服务器异常
msg 服务器返回的提示信息 能为null
data 服务器返回的业务权限 3级商品分类信息

5.3 实现

5.3.1 Controller层
/**请求路径:/shop/updateItemCat*请求类型:PUT*请求参数:表单数据对象*返回值:SysResult对象*/@PutMapping("/updateItemCat")public SysResult updateItemCat(@RequestBody Shop shop){shopService.updateItemCat(shop);return SysResult.success();}
5.3.2 ServiceImpl层
@Overridepublic void updateItemCat(Shop shop) {Shop temp = new Shop();temp.setId(shop.getId()).setName(shop.getName()).setUpdated(new Date());shopMapper.updateById(temp);}

6.修改状态

6.1 前端页面分析

 async updateStatus(itemCat) {const {data: result} = await this.$http.put(`/shop/status/${itemCat.id}/${itemCat.status}`)if (result.status !== 200) return this.$message.error("修改状态失败")this.$message.success("状态修改成功")}

6.2 接口文档

  • 请求路径:/shop/status/{id}/{status}
  • 请求类型:DELETE
  • 业务描述:当删除的节点为父级时,应该删除自身和所有子节点
参数名称 参数说明 备注信息
id 用户id号 不能为null
level 级别 1为一级分类,2为一二级分类,3为一二三级分类
  • 业务说明:查询三级分类菜单数据,要求三层嵌套结构
  • 返回值:SysResult对象
参数名称 参数说明 备注信息
status 状态信息 200表示服务器请求成功,201表示服务器异常
msg 服务器返回的提示信息 能为null
data 服务器返回的业务权限 3级商品分类信息

6.3 实现

6.3.1 Controller层
@PutMapping("/status/{id}/{status}")public SysResult updateStatus(Shop shop){shopService.updateStatus(shop);return SysResult.success();}
6.3.2 ServiceImpl层
@Overridepublic void updateStatus(Shop shop) {shop.setUpdated(new Date());shopMapper.updateById(shop);}

【汽车配件管理系统-管理员-货物管理模块】货物管理分类相关推荐

  1. 【汽车配件管理系统-管理员-配件管理模块】配件管理分类

    文章目录 1.左侧菜单查询 1.1 数据库设计 1.2 pojo层 1.3 Mapper接口 1.4 Mapper.xml 1.5 ServiceImpl层 1.6 Controller层 2.显示 ...

  2. 微服务模块综合管理(模块视图管理,自动化热部署,前端资源实时刷新......)

    一.微服务可视化整体管理 微服务模块太多,启动关闭等管理操作就会很复杂,用这种方法就会很方便管理 方法是 1 idea底下没有的找出services窗口 2 IDEA底边栏选services 2 选择 ...

  3. 数图互通高校房产管理模块周转房管理是怎样管理如合同、续租、到期提醒

    数图互通高校房产管理系统,管理比较全面,可以实现实现对承租公房和教师公寓.集体宿舍及时准确地掌握使用情况,并直观显示.包含功能: 1.租赁房屋定义 2.入住登记 3.缴费登记 4.合同生成和打印 5. ...

  4. 合同管理模块样板html,可配置合同模板的合同管理系统的制作方法

    技术特征: 1.可配置合同模板的合同管理系统,其特征在于,合同管理系统包括:合同模板管理模块,对数据库中的合同字段进行管理并创建多个合同模板,合同与模板采用多对多的数据关系存储于数据库,创建不同模板的 ...

  5. [Java开发]搭建人力资源管理系统——简历管理模块(附带下载链接)

    最近一位老哥让我给他的公司开发一套人力资源管理系统,并详细描述了这个系统的一些功能,我也查找了一些人力资源的资料.因为跟老哥关系不错,就答应了他.大家都知道,人力资源管理就是管人的,从给公司开始投递简 ...

  6. 拉勾教育后台管理系统(SSM)(课程管理模块开发)【学习笔记】

    文章目录 1.项目架构 1.1.项目介绍 1.2.技术选型 1.2.1.前端技术选型 1.2.2.后端技术选型 1.3.项目开发环境 2.Maven进阶使用(Maven聚合工程) 2.1.maven的 ...

  7. 06_04_任务一:拉勾教育后台管理系统[课程管理模块、图片上传、 BeanUtils封装实体类](SSM)

    拉勾教育后台管理系统(SSM) 1. 项目架构 1.1 项目介绍 ​ 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在 这个后台管理系统中,对课程信息.广告 ...

  8. 尚硅谷在线教育一:尚硅谷在线教育相关的基本搭建配置以及讲师管理模块

    文章目录 1.项目的总体说明 1.1项目的功能模块说明 1.2项目设计的技术 2创建一个名为guli的springboot的父项目 3. 在guli的项目下创建一个子模块common用于公共使用的模块 ...

  9. 统一项目管理平台(UMPlatForm.NET)-4.5 用户管理模块

    统一项目管理平台(UMPlatForm.NET)-4.5 用户管理模块 4.4 用户管理模块 用户管理模块主要是对可登录系统的用户进行管理.后续的工作如:用户归属角色.权限的分配.用户所拥有的相应功能 ...

最新文章

  1. 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)
  2. IDEA工具基本设置
  3. ASP.NET Core 源码阅读笔记(5) ---Microsoft.AspNetCore.Routing路由
  4. [SceneKit专题]11-Reference-Nodes引用节点
  5. 论文浅尝 | 知识图谱问答中的层次类型约束主题实体识别
  6. 大数据新手之路四:联合使用Flume和Kafka
  7. HDU4027 (线段树/修改区间,询问区间和)
  8. caffe实现GAN
  9. redis缓存队列+MySQL +php任务脚本定时批量入库
  10. 用 mCustomScrollbar 滚动条插件实现滚动更新添加数据
  11. python学习之re库
  12. 拓端tecdat|R语言分位数自回归QAR分析痛苦指数:失业率与通货膨胀率时间序列
  13. 2020-10-12
  14. 《计算机组成原理》第二版第七章课后习题答案
  15. 关于混合app 开发框架Ionic
  16. linux 搜狗输入法显示繁体字,搜狗输入法繁体字切换
  17. pyvoronoi包 Failed to build pyvoronoi Installing collected packages: pyvoronoi Running setup.py
  18. 计算机考研400分以上,考研400分是什么概念?
  19. 《网络攻防》网络欺诈技术防范
  20. CUDA_ERROR_LAUNCH_TIMEOUT

热门文章

  1. Java计算排名通用方法
  2. 认识Cuckoo Sandbox
  3. C#中的异常处理try catch finally
  4. 血色先锋队(dfs)
  5. 微信小程序云开发demo项目部署报错:V[云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errM
  6. PHP Filter伪协议Trick总结
  7. LeetCode No.704 二分查找 No.27移除元素
  8. 从零开始,搭建 AI 音箱 Alexa 语音服务
  9. c语言游戏经典案例,C语言新案例-跑马游戏
  10. MVP??你配吗??