Kaynağa Gözat

feat:后端项目,在业务模块中完成接口调用次数SKU的CRUD接口;完成接口代码编写;

yang yi 8 ay önce
ebeveyn
işleme
1c1e6bd60b

+ 78 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/model/interfaceInvokeSku/InterfaceInvokeSku.java

@@ -0,0 +1,78 @@
+package space.anyi.openAPI.comom.model.interfaceInvokeSku;
+
+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 java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * @TableName interface_invoke_sku
+ */
+@Data
+@TableName(value ="interface_invoke_sku")
+public class InterfaceInvokeSku implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 接口Id
+     */
+    private Long interfaceInfoId;
+
+    /**
+     * 商品标题
+     */
+    private String title;
+
+    /**
+     * 封面
+     */
+    private String cover;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 描述
+     */
+    private String info;
+
+    /**
+     * 状态;0:未上架,1:上架,2:下架
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0-未删, 1-已删)
+     */
+    private Integer deleteFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 56 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/model/interfaceInvokeSku/dto/RequestAddInterFaceInvokeSku.java

@@ -0,0 +1,56 @@
+package space.anyi.openAPI.comom.model.interfaceInvokeSku.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ProjectName: yangyi-open-api-platform
+ * @FileName: RequestAddInterFaceInvokeSku
+ * @Author: 杨逸
+ * @Data:2025/12/30 15:53
+ * @Description:
+ */
+@Data
+@ApiModel("添加接口调用次数商品的SKU实体")
+public class RequestAddInterFaceInvokeSku {
+
+    /**
+     * 接口Id
+     */
+    @ApiModelProperty(value = "接口Id",required = true)
+    private Long interfaceInfoId;
+
+    /**
+     * 商品标题
+     */
+    @ApiModelProperty(value = "商品标题",required = true)
+    private String title;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面",required = false)
+    private String cover;
+
+    /**
+     * 价格
+     */
+    @ApiModelProperty(value = "价格",required = true)
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量",required = true)
+    private Integer quantity;
+
+    /**
+     * 描述
+     */
+    @ApiModelProperty(value = "描述",required = false)
+    private String info;
+
+}

+ 30 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/model/interfaceInvokeSku/dto/RequestPageInterfaceInvokeSku.java

@@ -0,0 +1,30 @@
+package space.anyi.openAPI.comom.model.interfaceInvokeSku.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ProjectName: yangyi-open-api-platform
+ * @FileName: RequestPageInterfaceInvokeSku
+ * @Author: 杨逸
+ * @Data:2025/12/30 15:34
+ * @Description: 分页查询接口使用的DTO
+ */
+@Data
+public class RequestPageInterfaceInvokeSku {
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty(value = "分页大小",required = true)
+    private int size = 10;
+    /**
+     * 分页页码
+     */
+    @ApiModelProperty(value = "分页页码",required = true)
+    private int current = 1;
+    /**
+     * 接口Id
+     */
+    @ApiModelProperty(value = "接口Id",required = true)
+    private Long interfaceInfoId;
+}

+ 60 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/model/interfaceInvokeSku/dto/RequestUpdateInterFaceInvokeSku.java

@@ -0,0 +1,60 @@
+package space.anyi.openAPI.comom.model.interfaceInvokeSku.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ProjectName: yangyi-open-api-platform
+ * @FileName: RequestUpdateInterFaceInvokeSku
+ * @Author: 杨逸
+ * @Data:2025/12/30 16:10
+ * @Description:
+ */
+@Data
+@ApiModel("接口调用商品SKU修改使用的对象")
+public class RequestUpdateInterFaceInvokeSku {
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键",required = true)
+    private Long id;
+
+    /**
+     * 商品标题
+     */
+    @ApiModelProperty(value = "商品标题",required = true)
+    private String title;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面",required = true)
+    private String cover;
+
+    /**
+     * 价格
+     */
+    @ApiModelProperty(value = "价格",required = true)
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量",required = true)
+    private Integer quantity;
+
+    /**
+     * 描述
+     */
+    @ApiModelProperty(value = "描述",required = true)
+    private String info;
+
+    /**
+     * 状态;0:未上架,1:上架,2:下架
+     */
+    @ApiModelProperty(value = "状态;0:未上架,1:上架,2:下架",required = true)
+    private Integer status;
+}

+ 52 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/model/interfaceInvokeSku/vo/InterfaceInvokeSkuVo.java

@@ -0,0 +1,52 @@
+package space.anyi.openAPI.comom.model.interfaceInvokeSku.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ProjectName: yangyi-open-api-platform
+ * @FileName: InterfaceInvokeSkuVo
+ * @Author: 杨逸
+ * @Data:2025/12/30 15:42
+ * @Description: viewObject
+ */
+@Data
+public class InterfaceInvokeSkuVo {
+    /**
+     * 主键
+     */
+    private Long id;
+
+
+    /**
+     * 商品标题
+     */
+    private String title;
+
+    /**
+     * 封面
+     */
+    private String cover;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 描述
+     */
+    private String info;
+
+    /**
+     * 状态;0:未上架,1:上架,2:下架
+     */
+    private Integer status;
+
+}

+ 21 - 0
open-api-commom/src/main/java/space/anyi/openAPI/comom/service/InterfaceInvokeSkuService.java

@@ -0,0 +1,21 @@
+package space.anyi.openAPI.comom.service;
+
+import space.anyi.openAPI.comom.model.commom.PageVO;
+import space.anyi.openAPI.comom.model.commom.ResponseResult;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku;
+import com.baomidou.mybatisplus.extension.service.IService;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestAddInterFaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestPageInterfaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.vo.InterfaceInvokeSkuVo;
+
+/**
+* @author 杨逸
+* @description 针对表【interface_invoke_sku】的数据库操作Service
+* @createDate 2025-12-30 14:50:23
+*/
+public interface InterfaceInvokeSkuService extends IService<InterfaceInvokeSku> {
+
+    PageVO<InterfaceInvokeSkuVo> listPage(RequestPageInterfaceInvokeSku requestPageInterfaceInvokeSku);
+
+    ResponseResult add(RequestAddInterFaceInvokeSku requestAddInterFaceInvokeSku);
+}

+ 102 - 0
src/main/java/space/anyi/openAPI/controller/InterfaceInvokeSkuController.java

@@ -0,0 +1,102 @@
+package space.anyi.openAPI.controller;
+
+import org.springframework.web.bind.annotation.*;
+import space.anyi.openAPI.comom.model.commom.PageVO;
+import space.anyi.openAPI.comom.model.commom.ResponseResult;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestAddInterFaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestPageInterfaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestUpdateInterFaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.vo.InterfaceInvokeSkuVo;
+import space.anyi.openAPI.comom.service.InterfaceInvokeSkuService;
+import space.anyi.openAPI.util.BeanCopyUtil;
+
+import java.util.List;
+
+/**
+ * @ProjectName: yangyi-open-api-platform
+ * @FileName: InterfaceInvokeSkuController
+ * @Author: 杨逸
+ * @Data:2025/12/30 15:27
+ * @Description: controller of interfaceInvokeSku
+ */
+@RestController()
+@RequestMapping("/interfaceInvokeSku")
+public class InterfaceInvokeSkuController {
+    private final InterfaceInvokeSkuService interfaceInvokeSkuService;
+
+    public InterfaceInvokeSkuController(InterfaceInvokeSkuService interfaceInvokeSkuService) {
+        this.interfaceInvokeSkuService = interfaceInvokeSkuService;
+    }
+
+    /**
+     * @param requestPageInterfaceInvokeSku
+     * @return {@code ResponseResult }
+     * @description: 分页查询
+     * @author: 杨逸
+     * @data:2025/12/30 15:50:04
+     * @since 1.0.0
+     */
+    @GetMapping
+    public ResponseResult list(RequestPageInterfaceInvokeSku requestPageInterfaceInvokeSku){
+        PageVO<InterfaceInvokeSkuVo> pageVo = interfaceInvokeSkuService.listPage(requestPageInterfaceInvokeSku);
+        return ResponseResult.okResult(pageVo);
+    }
+
+    /**
+     * @param id
+     * @return {@code ResponseResult }
+     * @description: 根据id查询
+     * @author: 杨逸
+     * @data:2025/12/30 15:52:18
+     * @since 1.0.0
+     */
+    @GetMapping("/{id}")
+    public ResponseResult getById(@PathVariable("id") Long id){
+        InterfaceInvokeSku interfaceInvokeSku = interfaceInvokeSkuService.getById(id);
+        return ResponseResult.okResult(BeanCopyUtil.copyBean(interfaceInvokeSku,InterfaceInvokeSkuVo.class));
+    }
+
+    /**
+     * @param requestAddInterFaceInvokeSku
+     * @return {@code ResponseResult }
+     * @description: 新增
+     * @author: 杨逸
+     * @data:2025/12/30 16:07:00
+     * @since 1.0.0
+     */
+    @PostMapping
+    public ResponseResult add(@RequestBody RequestAddInterFaceInvokeSku requestAddInterFaceInvokeSku){
+        InterfaceInvokeSku interfaceInvokeSku = BeanCopyUtil.copyBean(requestAddInterFaceInvokeSku, InterfaceInvokeSku.class);
+        return interfaceInvokeSkuService.add(requestAddInterFaceInvokeSku);
+    }
+
+    /**
+     * @param requestUpdateInterFaceInvokeSku
+     * @return {@code ResponseResult }
+     * @description: 修改
+     * @author: 杨逸
+     * @data:2025/12/30 16:16:14
+     * @since 1.0.0
+     */
+    @PutMapping
+    public ResponseResult update(@RequestBody RequestUpdateInterFaceInvokeSku requestUpdateInterFaceInvokeSku){
+        //todo:check
+        interfaceInvokeSkuService.updateById(BeanCopyUtil.copyBean(requestUpdateInterFaceInvokeSku, InterfaceInvokeSku.class));
+        return ResponseResult.okResult();
+    }
+
+    /**
+     * @param ids List of InterfaceInvokeSKU IDs
+     * @return {@code ResponseResult }
+     * @description: 删除
+     * @author: 杨逸
+     * @data:2025/12/30 16:08:51
+     * @since 1.0.0
+     */
+    @DeleteMapping("/{ids}")
+    public ResponseResult deleteById(@PathVariable("ids") List<Long> ids){
+        interfaceInvokeSkuService.removeByIds(ids);
+        return ResponseResult.okResult();
+    }
+}

+ 18 - 0
src/main/java/space/anyi/openAPI/mapper/InterfaceInvokeSkuMapper.java

@@ -0,0 +1,18 @@
+package space.anyi.openAPI.mapper;
+
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 杨逸
+* @description 针对表【interface_invoke_sku】的数据库操作Mapper
+* @createDate 2025-12-30 14:50:23
+* @Entity space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku
+*/
+public interface InterfaceInvokeSkuMapper extends BaseMapper<InterfaceInvokeSku> {
+
+}
+
+
+
+

+ 45 - 0
src/main/java/space/anyi/openAPI/service/impl/InterfaceInvokeSkuServiceImpl.java

@@ -0,0 +1,45 @@
+package space.anyi.openAPI.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import space.anyi.openAPI.comom.model.commom.PageVO;
+import space.anyi.openAPI.comom.model.commom.ResponseResult;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestAddInterFaceInvokeSku;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.dto.RequestPageInterfaceInvokeSku;
+import space.anyi.openAPI.comom.service.InterfaceInvokeSkuService;
+import space.anyi.openAPI.comom.model.interfaceInvokeSku.vo.InterfaceInvokeSkuVo;
+import space.anyi.openAPI.mapper.InterfaceInvokeSkuMapper;
+import org.springframework.stereotype.Service;
+import space.anyi.openAPI.util.BeanCopyUtil;
+
+/**
+* @author 杨逸
+* @description 针对表【interface_invoke_sku】的数据库操作Service实现
+* @createDate 2025-12-30 14:50:23
+*/
+@Service
+public class InterfaceInvokeSkuServiceImpl extends ServiceImpl<InterfaceInvokeSkuMapper, InterfaceInvokeSku>
+    implements InterfaceInvokeSkuService{
+
+    @Override
+    public PageVO<InterfaceInvokeSkuVo> listPage(RequestPageInterfaceInvokeSku requestPageInterfaceInvokeSku) {
+        Page<InterfaceInvokeSku> page = page(Page.of(requestPageInterfaceInvokeSku.getCurrent(), requestPageInterfaceInvokeSku.getSize()));
+        PageVO<InterfaceInvokeSkuVo> pageVO = new PageVO<InterfaceInvokeSkuVo>(BeanCopyUtil.copyBean(page.getRecords(),InterfaceInvokeSkuVo.class), page.getTotal());
+        return pageVO;
+    }
+
+    @Override
+    public ResponseResult add(RequestAddInterFaceInvokeSku requestAddInterFaceInvokeSku) {        //todo:check whether the interface exists
+        //todo:check whether the sku exists
+        InterfaceInvokeSku interfaceInvokeSku = BeanCopyUtil.copyBean(requestAddInterFaceInvokeSku, InterfaceInvokeSku.class);
+        interfaceInvokeSku.setId(IdUtil.getSnowflake(0,0).nextId());
+        save(interfaceInvokeSku);
+        return ResponseResult.okResult();
+    }
+}
+
+
+
+

+ 27 - 0
src/main/resources/mapper/InterfaceInvokeSkuMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="space.anyi.openAPI.mapper.InterfaceInvokeSkuMapper">
+
+    <resultMap id="BaseResultMap" type="space.anyi.openAPI.comom.model.interfaceInvokeSku.InterfaceInvokeSku">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="interfaceInfoId" column="interface_info_id" jdbcType="BIGINT"/>
+            <result property="title" column="title" jdbcType="CHAR"/>
+            <result property="cover" column="cover" jdbcType="VARCHAR"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="quantity" column="quantity" jdbcType="INTEGER"/>
+            <result property="info" column="info" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="TINYINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="deleteFlag" column="delete_flag" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,interface_info_id,title,
+        cover,price,quantity,
+        info,status,create_time,
+        update_time,delete_flag
+    </sql>
+</mapper>