SpringBoot入门实战(第七篇:项目接口-商品管理)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关



📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

SpringBoot入门实战(第七篇:项目接口-商品管理)

SpringBoot入门实战系列篇专栏
SpringBoot入门实战(第一篇:环境准备和项目初始化)
SpringBoot入门实战(第二篇:MySQL集成配置)
SpringBoot入门实战(第三篇:MyBatis集成配置,自动生成代码配置)
SpringBoot入门实战(第四篇:Redis集成配置)
SpringBoot入门实战(第五篇:项目接口-用户管理)
SpringBoot入门实战(第六篇:项目接口-登录)
SpringBoot入门实战(第七篇:项目接口-商品管理)
SpringBoot入门实战(第八篇:项目接口-订单管理)完结篇
SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)


商品管理部分

1. 建表

创建商品表tb_goods

CREATE TABLE tb_goods(
	id INT AUTO_INCREMENT PRIMARY KEY,
	g_id INT NOT NULL COMMENT "商品id",
	g_name VARCHAR(255) NOT NULL COMMENT "商品名称",
	g_category VARCHAR(255) NOT NULL COMMENT "商品分类",
	g_price DOUBLE NOT NULL COMMENT "商品价格",
	g_inventory INT NOT NULL COMMENT "商品库存",
	g_status VARCHAR(255) NOT NULL COMMENT "商品状态"
);

2. 接口创建(GoodsInfoController.java)

原来项目的商品包名叫product,不是很准确,现在改成goods
在com.xh.goods.dao包下根据表tb_goods生成代码,配置好注解后
在com.xh.goods.controller包下创建商品管理类GoodsInfoController.java
代码如下

package com.xh.goods.controller;

import com.alibaba.fastjson.JSONObject;
import com.xh.goods.dao.TbGoods;
import com.xh.goods.dao.TbGoodsImpl;
import com.xh.goods.dao.TbGoodsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @func:
 * @author: LiBai
 * @version: v1.0
 * @createTime: 2025/4/18 10:55
 */
@CrossOrigin
@RestController
@RequestMapping(value = "/xh/v1/goods")
public class GoodsInfoController {

    @Autowired
    TbGoodsMapper tbGoodsMapper;

    @PostMapping(value = "/addGoodsInfo")
    public JSONObject addGoodsInfo(@RequestBody JSONObject requestBody){

        String gName = requestBody.getString("gName");
        TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();
        TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();
        criteria.andGNameEqualTo(gName);
        List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);
        JSONObject result = new JSONObject();
        if (tbGoodsList.isEmpty()){
            tbGoodsMapper.insert(JSONObject.parseObject(requestBody.toJSONString(),TbGoods.class));
            result.put("code", 200);
            result.put("data", requestBody);
            result.put("msg", "新增商品信息");
        }else{
            result.put("code", 4000);
            result.put("data", "");
            result.put("msg", "新增商品信息失败,此商品数据已存在");
        }
        return result;
    }

    @GetMapping(value = "/readGoodsInfo")
    public JSONObject readGoodsInfo(){

        TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();
        List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);
        JSONObject result = new JSONObject();
        if (!tbGoodsList.isEmpty()){
            result.put("code", 200);
            result.put("data", tbGoodsList);
            result.put("msg", "查询商品信息");
        }else{
            result.put("code", 4000);
            result.put("data", "");
            result.put("msg", "查询商品信息失败,无商品数据");
        }
        return result;
    }

    @PutMapping(value = "/changeGoodsInfo")
    public JSONObject changeGoodsInfo(@RequestBody JSONObject requestBody){
        int gId = requestBody.getInteger("gId");
        TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();
        TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();
        criteria.andGIdEqualTo(gId);
        List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);
        JSONObject result = new JSONObject();
        if (!tbGoodsList.isEmpty()){
            tbGoodsMapper.updateByExampleSelective(JSONObject.parseObject(requestBody.toJSONString(), TbGoods.class),tbGoodsImpl);
            result.put("code", 200);
            result.put("data", requestBody);
            result.put("msg", "更新商品数据");
        }else{
            result.put("code", 4000);
            result.put("data", "");
            result.put("msg", "更新商品数据失败,无此商品数据");
        }
        return result;
    }

    @DeleteMapping(value = "/removeGoodsInfo")
    public JSONObject removeGoodsInfo(@RequestBody JSONObject requestBody){

        int gId = requestBody.getInteger("gId");
        TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();
        TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();
        criteria.andGIdEqualTo(gId);
        List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);
        JSONObject result = new JSONObject();
        if (!tbGoodsList.isEmpty()){
            tbGoodsMapper.deleteByExample(tbGoodsImpl);
            result.put("code", 200);
            result.put("data", requestBody);
            result.put("msg", "删除商品数据");
        }else{
            result.put("code", 4000);
            result.put("data", "");
            result.put("msg", "删除商品数据失败,无此商品数据");
        }
        return result;
    }
}

3. 接口测试

3.1 新增商品数据

url

127.0.0.1:8088/xh/v1/goods/addGoodsInfo

请求类型

POST

请求参数

{
    "gId": 100001,
    "gName": "海洋至尊洗面奶",
    "gCategory": "护肤品",
    "gPrice": 46.90,
    "gInventory": 98,
    "gStatus": "上架"
 }

postman截图
在这里插入图片描述

3.2 查询商品数据

url

127.0.0.1:8088/xh/v1/goods/readGoodsInfo

请求类型

GET

请求参数 空


postman截图
在这里插入图片描述

3.3 更新商品数据

url

127.0.0.1:8088/xh/v1/goods/updateGoodsInfo

请求类型

PUT

请求参数

{
    "gId": 100002,
    "gName": "韩束男士补水保湿乳",
    "gCategory": "护肤品",
    "gPrice": 90.98,
    "gInventory": 58,
    "gStatus": "上架"
 }

postman截图
在这里插入图片描述

3.4 移除商品数据

url

127.0.0.1:8088/xh/v1/goods/removeGoodsInfo

请求类型

DELETE

请求参数

{
	"gId":"100001"
}

postman截图
在这里插入图片描述


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值