乐优商城之后台管理系统

本文介绍了乐优商城后台管理系统的商品分类、品牌查询、异步查询工具axios的使用,以及分页和过滤功能的实现。详细讲解了各模块的控制器、服务层、实体类和mapper的编写,同时涉及到了跨域问题的解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

商品分类管理

商城的核心自然是商品,而商品多了以后,肯定要进行分类,并且不同的商品会有不同的品牌信息,我们需要依次去完成:商品分类、品牌、商品的开发

  • 导入数据(sql)

实现功能

商品分类使用了树状结构,而这种结构的组件vuetify并没有为我们提供,这里自定义了一个树状组件。不要求实现或者查询组件的实现,只要求可以参照文档使用该组件即可:
在这里插入图片描述
在浏览器页面点击“分类管理”菜单:
在这里插入图片描述
根据这个路由路径到路由文件(src/route/index.js),可以定位到分类管理页面:
在这里插入图片描述
由路由文件知,页面是src/pages/item/Category.vue

实体类

leyou-item-interface中添加Category实体类:

@Table(name="tb_category")
public class Category {
   
   
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	private String name;
	private Long parentId;
	private Boolean isParent; // 注意isParent生成的getter和setter方法需要手动加上Is
	private Integer sort;
	// getter和setter略
}

在这里插入图片描述

controller

编写一个controller一般需要知道四个内容:

- 请求方式:决定我们用GetMapping还是PostMapping
- 请求路径:决定映射路径
- 请求参数:决定方法的参数
- 返回值结果:决定方法的返回值

在刚才页面发起的请求中,我们就能得到绝大多数信息:
在这里插入图片描述

  • 请求方式:Get,插叙肯定是get请求
  • 请求路径:/api/item/category/list。其中/api是网关前缀,/item是网关的路由映射,真实的路径应该是/category/list
  • 请求参数:pid=0,根据tree组件的说明,应该是父节点的id,第一次查询为0,那就是查询一级类目
  • 返回结果:??
    根据前面tree组件的用法我们知道,返回的应该是json数组:对应的java类型可以是List集合,里面的元素就是类目对象了。也就是List
    ResponseEntity
@Controller
@RequestMapping("category")
public class CategoryController {
   
   

    @Autowired
    private CategoryService categoryService;

    /**
     * 根据父id查询子节点
     * @param pid
     * @return
     */
    @GetMapping("list")
    public ResponseEntity<List<Category>> queryCategoriesByPid(@RequestParam("pid") Long pid) {
   
   

        if (pid == null || pid.longValue() < 0) {
   
   
            // 响应400,相当于ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
            return ResponseEntity.badRequest().build();
        }
        List<Category> categories = this.categoryService.queryCategoriesByPid(pid);
        if (CollectionUtils.isEmpty(categories)) {
   
   
            // 响应404
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok(categories);
    }
}

service

一般service层我们会定义接口和实现类,不过这里我们就偷懒一下,直接写实现类了:

@Service
public class CategoryService {
   
   

    @Autowired
    private CategoryMapper categoryMapper;

    /**
     * 根据parentId查询子类目
     * @param pid
     * @return
     */
    public List<Category> queryCategoriesByPid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值