【全栈】SprintBoot+vue3迷你商城(6)

ops/2025/1/23 17:39:37/

【全栈】SprintBoot+vue3迷你商城(6)

在上几期中我们基本完成了与用户相关的接口,以及制定拦截器限定了用户相关接口使用的权限

本期我们来实现与商品相关的接口

商品的接口先就实现两个,一个是之前提到的商家添加商品,然后就是主页需要显示商品,即商品列表

1.商家添加商品

所需信息

商家添加商品需要5个信息

  • 商品名称 goodsName
  • 商品图片 goodsImgUrl
  • 商品价格 goodsPrice
  • 商家用户名 merchantName
  • 商家头像 merchantImgUrl

而这些信息,在第四期中我们就已经建立好了一个模型:

java">package com.janium.minimallbe.pojo;import lombok.AllArgsConstructor;
import lombok.Data;@Data
@AllArgsConstructor
public class GoodsShowModel {private Integer id;private String goodsName;private String goodsImgUrl;private float goodsPrice;private String merchantName;private String merchantImgUrl;
}

而商家用户名与商家头像不需要从客户端获取,因为你在调用商家添加商品这个接口时,就已经知道了你的用户

所以这个接口的参数只需要商品名称商品图片商品价格

演示

由于现在是实现与商品有关的接口,所以我们层级应用Goods开头

如:GoodsController、GoodsService……

controller层

java">@PostMapping("/add")public Result addGoods(@RequestParam("goodsName") String goodsName,@RequestParam("goodsImgUrl") String goodsImgUrl,@RequestParam("goodsPrice") float goodsPrice) {Map<String,Object> map = ThreadLocalUtil.get();Integer merchantId = (Integer) map.get("id");User u=userService.findByName((String) map.get("username"));if(u.getUserType().equals("商家")) {goodsService.add(goodsName, goodsImgUrl, goodsPrice, merchantId);return Result.success();}return Result.error("普通用户无法添加商品");}

service层

java">void add(String goodsName, String goodsImgUrl, float goodsPrice,Integer merchantId);

方法实现

java"> @Overridepublic void add(String goodsName, String goodsImgUrl, float goodsPrice,Integer merchantId) {goodsMapper.add(goodsName,goodsImgUrl,goodsPrice,merchantId);}

mapper层

java"> @Insert("insert into goods(goodsName,goodsImgUrl,goodsPrice,merchantId,create_time,update_time)" +" values (#{goodsName},#{goodsImgUrl},#{goodsPrice},#{merchantId},now(),now())")void add(String goodsName, String goodsImgUrl, float goodsPrice,Integer merchantId);

之后可以在postman中进行接口测试

2.商品列表

这个接口的思路很简单,就是查询出goods表的所有数据然后返回即可

难就难在以后的分页

分页的功能我们以后在做,我们先做最简单的

controller层

java">@GetMapping("/list")public Result getGoodsList() {List<Goods> goodsList = goodsService.getGoodsList();List<GoodsShowModel> goodsShowModelList = new ArrayList<>();for (Goods goods : goodsList) {User merchant=userService.findById(goods.getMerchantId());GoodsShowModel goodsShowModel=new GoodsShowModel(goods.getId(),goods.getGoodsName(),goods.getGoodsImgUrl(),goods.getGoodsPrice(),merchant.getUsername(),merchant.getUserPic());goodsShowModelList.add(goodsShowModel);}return Result.success(goodsShowModelList);}

service层

java">List<Goods> getGoodsList();

方法实现

java"> @Overridepublic List<Goods> getGoodsList() {return goodsMapper.getGoodsList();}

mapper层

java"> @Select("select * from goods;")List<Goods> getGoodsList();

之后可以在postman中进行接口测试

3.总结

本期我们实现了与商品有关的相关接口,直到这里,我们已经实现了所有的基本接口,不过现在还有一些不完善的地方,而且还有一些其他的接口未实现,我会在后面一一补充。

下期我们便会开始前端的开发。


http://www.ppmy.cn/ops/152522.html

相关文章

寒武纪使用cnnl库函数实现卷积算子

完整代码参考添加链接描述 寒武纪cnnl实现卷积的库函数说明参考添加链接描述 cnnl调用卷积的函数这里我们使用的是cnnlConvolutionForward&#xff0c;这个函数的使用只是最后的计算过程&#xff0c;但是在计算之前&#xff0c;还有许多准备工作。下图展示了一个完整的cnnl调…

GDB相比IDE有什么优点

GDB(GNU Debugger)相比于集成开发环境(IDE)具有一些独特的优点,主要体现在其灵活性、可定制性和低级控制能力。具体来说,GDB有以下几个优点: 1. 轻量级且无依赖 GDB是一个命令行工具,不依赖于任何复杂的图形界面或大型库,这使得它非常适合在资源受限的环境中使用,比…

HarmonyOS NEXT:华为分享-碰一碰开发分享

随着科技的不断进步&#xff0c;智能手机和智能设备之间的互联互通变得越来越重要。华为作为科技行业的领军企业&#xff0c;一直致力于为用户提供更加便捷、高效的使用体验。HarmonyOS NEXT系统的推出&#xff0c;特别是其中的“碰一碰”功能&#xff0c;为用户带来了前所未有…

在软件开发中纳入数据安全措施的最佳实践

在当今数字化时代&#xff0c;网络安全已成为各类规模企业的首要任务。随着网络威胁发生的频率日益增加且复杂程度不断提高&#xff0c;企业定期更新安全协议以保护敏感数据并防止未经授权的访问至关重要。 通过定期更新安全协议确保网络安全 我们深知网络安全的重要性&#…

机器学习实战第一天:LSTM(长短时记忆网络)

第一天是讲述LSTM大概的理论知识&#xff0c;知识是源自于B站李沐老师的讲解。下面我简单的总结一下LSTM的核心&#xff0c;因为文字不擅长表达过于细节的东西&#xff0c;如果有想深入了解LSTM的全部可以去B站搜索相关的视频讲解。 一、 LSTM具有很强的前后关联性&#xff0c…

Vue3初学之商品的增,删,改功能

用一个商品的后台管理进行增&#xff0c;删&#xff0c;改的实现。 案例进行学习&#xff1a; <template><div><el-button type"primary" click"handleNew">新增商品</el-button><el-table :data"goodsList" style…

实现简单的TCP服务器

首先我们先选择一个端口号用于 TCP 或 UDP 网络通信。如果你运行一个服务或应用程序&#xff0c;监听端口就是通过该端口接收来自客户端的请求。 这里我们选择2048 先在ubuntu系统中输入netstat -anop | grep 2048&#xff0c;会显示以下信息 这代表此时2048端口号没有被占用…

Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法

Spring Boot 3.4.x 和 Micrometer 2.0 的结合&#xff0c;主要是为了更好地进行应用性能监控。Micrometer 是一个应用性能监控工具&#xff0c;它可以与 Spring Boot 集成&#xff0c;提供一个统一的度量系统&#xff0c;并与各种监控系统&#xff08;如 Prometheus, Graphite,…