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

news/2024/12/23 5:19:55/

文章目录

  • 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);}

http://www.ppmy.cn/news/131333.html

相关文章

批发进销存软件哪个好用?求测评

产品产量增加&#xff0c;在其他条件不变的情况下&#xff0c;就会形成规模效应&#xff0c;这样产品的生产成本就会降低。批发市场就可以对接大批量生产和出售单价更低的商品。而零售业往往也会采取批发货物的方式来降级成本。但是产品种类多&#xff0c;对于的供应商和客户也…

ERP采购管理系统软件

什么是ERP采购管理系统软件&#xff1f;ERP采购管理系统软件侧重采购和库存管理&#xff0c;互联网、局域网皆可使用。包括采购、入库、出库、盘点、调拨、借货、还货、发货、付款、售后、扫描枪、短信、统计分析等功能模块。功能模块支持自定义&#xff0c;下面我们用鼎捷ERP采…

进销存库存管理软件哪个好用?

进销存库存管理软件哪个好用?最好是销售、进货、记账、库存管理一体的那种软件&#xff0c;要是有pc和ios跨平台的就更完美了&#xff01; 市面上大部分的仓库管理系统动辄几万几十万&#xff0c;而且用起来常常面临&#xff1a;想要的功能没有&#xff0c;不想要的功能删不掉…

仓库管理软件哪个好?5款免费仓库管理软件对比!

仓库管理软件哪个好&#xff1f;5款免费仓库管理软件对比&#xff01; 但是对于刚刚起步的公司&#xff0c;企业面临着资金紧缺、人力资源不足等诸多管理问题。这时候大部分中小企业都会选择仓库管理软件系统来满足仓库管理的需求。 那么免费仓库管理软件有哪些&#xff1f;如…

求一款免费好用的进销存管理软件?

求一款免费好用的进销存管理软件&#xff1f; 免费好用的进销存管理软件&#xff0c;“免费”一词对用户最具吸引力。 很多的小微企业在企业发展的过程都会选择免费的进销存管理软件来协助自己运营。都会希望&#xff0c;花最低的成本&#xff0c;实现最大的利益。 进销存管…

进销存库存管理软件哪个好用

估计每位商家手上都会有几个进销存软件吧,那觉得哪家最好用呢? 不少商家在使用进销存软件的时候,都会遇到太繁琐、看不懂等问题,不知不觉就把此等软件闲置了。 今天给大家带来的2022最新进销存软件排行榜,有的不仅用起来方便快捷,性价比更是100%没话说,难怪大家都说好! 第一…

汽车配件管理系统分析报告

《汽车配件公司业务管理信息系统》需求分析报告 一、项目背景 项目委托方&#xff08;用户方&#xff09;&#xff1a; 《汽车配件公司业务管理信息系统》需求分析报告 一、项目背景 项目委托方&#xff08;用户方&#xff09;&#xff1a;XX汽车配件公司 项目承接方&…

备件库管理

备件管理 备件管理也涵盖了传统服务运营方法中的四大关键活动之一。 备件管理主要讨论备件规划、运营及评估几个层面的问题。 备件的目标&#xff1a; 确保SLA的达成 备件库设计与管理首要目标是支撑服务组织达成与客户的SLA&#xff0c;以此目标展开一系列规划与…