【汽车配件管理系统-管理员-货物管理模块】货物管理分类
文章目录
- 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.2 pojo层 1.3 Mapper接口 1.4 Mapper.xml 1.5 ServiceImpl层 1.6 Controller层 2.显示 ...
- 微服务模块综合管理(模块视图管理,自动化热部署,前端资源实时刷新......)
一.微服务可视化整体管理 微服务模块太多,启动关闭等管理操作就会很复杂,用这种方法就会很方便管理 方法是 1 idea底下没有的找出services窗口 2 IDEA底边栏选services 2 选择 ...
- 数图互通高校房产管理模块周转房管理是怎样管理如合同、续租、到期提醒
数图互通高校房产管理系统,管理比较全面,可以实现实现对承租公房和教师公寓.集体宿舍及时准确地掌握使用情况,并直观显示.包含功能: 1.租赁房屋定义 2.入住登记 3.缴费登记 4.合同生成和打印 5. ...
- 合同管理模块样板html,可配置合同模板的合同管理系统的制作方法
技术特征: 1.可配置合同模板的合同管理系统,其特征在于,合同管理系统包括:合同模板管理模块,对数据库中的合同字段进行管理并创建多个合同模板,合同与模板采用多对多的数据关系存储于数据库,创建不同模板的 ...
- [Java开发]搭建人力资源管理系统——简历管理模块(附带下载链接)
最近一位老哥让我给他的公司开发一套人力资源管理系统,并详细描述了这个系统的一些功能,我也查找了一些人力资源的资料.因为跟老哥关系不错,就答应了他.大家都知道,人力资源管理就是管人的,从给公司开始投递简 ...
- 拉勾教育后台管理系统(SSM)(课程管理模块开发)【学习笔记】
文章目录 1.项目架构 1.1.项目介绍 1.2.技术选型 1.2.1.前端技术选型 1.2.2.后端技术选型 1.3.项目开发环境 2.Maven进阶使用(Maven聚合工程) 2.1.maven的 ...
- 06_04_任务一:拉勾教育后台管理系统[课程管理模块、图片上传、 BeanUtils封装实体类](SSM)
拉勾教育后台管理系统(SSM) 1. 项目架构 1.1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在 这个后台管理系统中,对课程信息.广告 ...
- 尚硅谷在线教育一:尚硅谷在线教育相关的基本搭建配置以及讲师管理模块
文章目录 1.项目的总体说明 1.1项目的功能模块说明 1.2项目设计的技术 2创建一个名为guli的springboot的父项目 3. 在guli的项目下创建一个子模块common用于公共使用的模块 ...
- 统一项目管理平台(UMPlatForm.NET)-4.5 用户管理模块
统一项目管理平台(UMPlatForm.NET)-4.5 用户管理模块 4.4 用户管理模块 用户管理模块主要是对可登录系统的用户进行管理.后续的工作如:用户归属角色.权限的分配.用户所拥有的相应功能 ...
最新文章
- 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)
- IDEA工具基本设置
- ASP.NET Core 源码阅读笔记(5) ---Microsoft.AspNetCore.Routing路由
- [SceneKit专题]11-Reference-Nodes引用节点
- 论文浅尝 | 知识图谱问答中的层次类型约束主题实体识别
- 大数据新手之路四:联合使用Flume和Kafka
- HDU4027 (线段树/修改区间,询问区间和)
- caffe实现GAN
- redis缓存队列+MySQL +php任务脚本定时批量入库
- 用 mCustomScrollbar 滚动条插件实现滚动更新添加数据
- python学习之re库
- 拓端tecdat|R语言分位数自回归QAR分析痛苦指数:失业率与通货膨胀率时间序列
- 2020-10-12
- 《计算机组成原理》第二版第七章课后习题答案
- 关于混合app 开发框架Ionic
- linux 搜狗输入法显示繁体字,搜狗输入法繁体字切换
- pyvoronoi包 Failed to build pyvoronoi Installing collected packages: pyvoronoi Running setup.py
- 计算机考研400分以上,考研400分是什么概念?
- 《网络攻防》网络欺诈技术防范
- CUDA_ERROR_LAUNCH_TIMEOUT
热门文章
- Java计算排名通用方法
- 认识Cuckoo Sandbox
- C#中的异常处理try catch finally
- 血色先锋队(dfs)
- 微信小程序云开发demo项目部署报错:V[云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errM
- PHP Filter伪协议Trick总结
- LeetCode No.704 二分查找 No.27移除元素
- 从零开始,搭建 AI 音箱 Alexa 语音服务
- c语言游戏经典案例,C语言新案例-跑马游戏
- MVP??你配吗??