文章目录 1.数据库 1.1 数据库设计 1.2 pojo层 1.3 编辑Shop的Mapper接口 2.显示 2.1 前端页面分析 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层
@Override public List < Shop > findShop ( Integer level) { QueryWrapper queryWrapper = new QueryWrapper ( ) ; queryWrapper. eq ( "parent_id" , 0 ) ; List < Shop > oneList = shopMapper. selectList ( queryWrapper) ; for ( Shop oneItemCat : oneList) { int oneId = oneItemCat. getId ( ) ; queryWrapper. clear ( ) ; queryWrapper. eq ( "parent_id" , oneId) ; List < Shop > twoList = shopMapper. selectList ( queryWrapper) ; for ( Shop twoItemCat : twoList) { int 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 , level: 1 }
async addItemCatForm ( ) { this . $refs. itemCatFormRef. validate ( async validate => { if ( ! validate) return const { 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 商品分类类别
参数名称 参数说明 备注信息 status 状态信息 200表示服务器请求成功,201表示服务器异常 msg 服务器返回的提示信息 能为null data 服务器返回的业务权限 3级商品分类信息
3.3 实现
3.3.1 Controller层
@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 ( ) => { const { 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层
@DeleteMapping ( "/deleteItemCat" ) public SysResult deleteItemCat ( Integer id, Integer level) { shopService. deleteItemCat ( id, level) ; return SysResult . success ( ) ; }
4.3.2 ServiceImpl层
@Override public void deleteItemCat ( Integer id, Integer level) { 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层
@PutMapping ( "/updateItemCat" ) public SysResult updateItemCat ( @RequestBody Shop shop) { shopService. updateItemCat ( shop) ; return SysResult . success ( ) ; }
5.3.2 ServiceImpl层
@Override public 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层
@Override public void updateStatus ( Shop shop) { shop. setUpdated ( new Date ( ) ) ; shopMapper. updateById ( shop) ; }