caolinxuan 2 months ago
parent
commit
52fd6578e9

+ 86 - 0
src/main/java/com/zhentao/common/course/domain/Product.java

@@ -0,0 +1,86 @@
+package com.zhentao.common.course.domain;
+
+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 java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 商品基本信息表
+ * @TableName product
+ */
+@TableName(value ="product")
+@Data
+public class Product implements Serializable {
+    /**
+     * 课程ID
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 分类ID
+     */
+    private Long categoryId;
+
+    /**
+     * 课程名称
+     */
+    private String name;
+
+    /**
+     * 副标题
+     */
+    private String subtitle;
+
+    /**
+     * 主图
+     */
+    private String mainImage;
+
+    /**
+     * 课程图片(JSON数组)
+     */
+    private String images;
+
+    /**
+     * 课程详情(HTML)
+     */
+    private String detail;
+
+    /**
+     * 状态:0-下架,1-上架
+     */
+    private Integer status;
+
+    /**
+     * 是否删除:0-未删除,1-已删除
+     */
+    private Integer isDelete;
+
+    /**
+     * 销量
+     */
+    private Integer sales;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 66 - 0
src/main/java/com/zhentao/common/course/domain/ProductCategory.java

@@ -0,0 +1,66 @@
+package com.zhentao.common.course.domain;
+
+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 java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 商品分类表
+ * @TableName product_category
+ */
+@TableName(value ="product_category")
+@Data
+public class ProductCategory implements Serializable {
+    /**
+     * 分类ID
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 父分类ID
+     */
+    private Long parentId;
+
+    /**
+     * 分类名称
+     */
+    private String name;
+
+    /**
+     * 分类层级
+     */
+    private Integer level;
+
+    /**
+     * 分类图标
+     */
+    private String icon;
+
+    /**
+     * 排序
+     */
+    private Integer sortOrder;
+
+    /**
+     * 是否显示:0-隐藏,1-显示
+     */
+    private Integer isShow;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 72 - 0
src/main/java/com/zhentao/common/course/domain/ProductSku.java

@@ -0,0 +1,72 @@
+package com.zhentao.common.course.domain;
+
+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 java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 商品SKU表
+ * @TableName product_sku
+ */
+@TableName(value ="product_sku")
+@Data
+public class ProductSku implements Serializable {
+    /**
+     * SKU ID
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 课程ID
+     */
+    private Long productId;
+
+    /**
+     * 课程编号
+     */
+    private String sn;
+
+    /**
+     * 规格(JSON格式)
+     */
+    private String specs;
+
+    /**
+     * 销售价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 原价
+     */
+    private BigDecimal originalPrice;
+
+    /**
+     * SKU图片
+     */
+    private String image;
+
+    /**
+     * 库存
+     */
+    private Integer stock;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 18 - 0
src/main/java/com/zhentao/common/course/mapper/ProductCategoryMapper.java

@@ -0,0 +1,18 @@
+package com.zhentao.common.course.mapper;
+
+import com.zhentao.common.course.domain.ProductCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 86159
+* @description 针对表【product_category(商品分类表)】的数据库操作Mapper
+* @createDate 2025-05-08 19:32:50
+* @Entity com.zhentao.common.course.domain.ProductCategory
+*/
+public interface ProductCategoryMapper extends BaseMapper<ProductCategory> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/zhentao/common/course/mapper/ProductMapper.java

@@ -0,0 +1,18 @@
+package com.zhentao.common.course.mapper;
+
+import com.zhentao.common.course.domain.Product;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 86159
+* @description 针对表【product(商品基本信息表)】的数据库操作Mapper
+* @createDate 2025-05-08 19:32:50
+* @Entity com.zhentao.common.course.domain.Product
+*/
+public interface ProductMapper extends BaseMapper<Product> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/zhentao/common/course/mapper/ProductSkuMapper.java

@@ -0,0 +1,18 @@
+package com.zhentao.common.course.mapper;
+
+import com.zhentao.common.course.domain.ProductSku;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 86159
+* @description 针对表【product_sku(商品SKU表)】的数据库操作Mapper
+* @createDate 2025-05-08 19:32:50
+* @Entity com.zhentao.common.course.domain.ProductSku
+*/
+public interface ProductSkuMapper extends BaseMapper<ProductSku> {
+
+}
+
+
+
+

+ 13 - 0
src/main/java/com/zhentao/common/course/service/ProductCategoryService.java

@@ -0,0 +1,13 @@
+package com.zhentao.common.course.service;
+
+import com.zhentao.common.course.domain.ProductCategory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 86159
+* @description 针对表【product_category(商品分类表)】的数据库操作Service
+* @createDate 2025-05-08 19:32:50
+*/
+public interface ProductCategoryService extends IService<ProductCategory> {
+
+}

+ 16 - 0
src/main/java/com/zhentao/common/course/service/ProductService.java

@@ -0,0 +1,16 @@
+package com.zhentao.common.course.service;
+
+import com.zhentao.common.course.domain.Product;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.common.course.dto.ProductDto;
+import com.zhentao.util.ResultVo;
+
+/**
+* @author 86159
+* @description 针对表【product(商品基本信息表)】的数据库操作Service
+* @createDate 2025-05-08 19:32:50
+*/
+public interface ProductService extends IService<Product> {
+//    课程添加
+    ResultVo add(ProductDto productDto);
+}

+ 13 - 0
src/main/java/com/zhentao/common/course/service/ProductSkuService.java

@@ -0,0 +1,13 @@
+package com.zhentao.common.course.service;
+
+import com.zhentao.common.course.domain.ProductSku;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 86159
+* @description 针对表【product_sku(商品SKU表)】的数据库操作Service
+* @createDate 2025-05-08 19:32:50
+*/
+public interface ProductSkuService extends IService<ProductSku> {
+
+}

+ 22 - 0
src/main/java/com/zhentao/common/course/service/impl/ProductCategoryServiceImpl.java

@@ -0,0 +1,22 @@
+package com.zhentao.common.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.course.domain.ProductCategory;
+import com.zhentao.common.course.service.ProductCategoryService;
+import com.zhentao.common.course.mapper.ProductCategoryMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 86159
+* @description 针对表【product_category(商品分类表)】的数据库操作Service实现
+* @createDate 2025-05-08 19:32:50
+*/
+@Service
+public class ProductCategoryServiceImpl extends ServiceImpl<ProductCategoryMapper, ProductCategory>
+    implements ProductCategoryService{
+
+}
+
+
+
+

+ 47 - 0
src/main/java/com/zhentao/common/course/service/impl/ProductServiceImpl.java

@@ -0,0 +1,47 @@
+package com.zhentao.common.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.course.domain.Product;
+import com.zhentao.common.course.domain.ProductCategory;
+import com.zhentao.common.course.domain.ProductSku;
+import com.zhentao.common.course.dto.ProductDto;
+import com.zhentao.common.course.service.ProductService;
+import com.zhentao.common.course.mapper.ProductMapper;
+import com.zhentao.util.ResultVo;
+import com.zhentao.util.SnowflakeIdGenerator;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 86159
+* @description 针对表【product(商品基本信息表)】的数据库操作Service实现
+* @createDate 2025-05-08 19:32:50
+*/
+@Service
+public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product>
+    implements ProductService{
+    @Autowired
+    private ProductMapper productMapper;
+    @Override
+    public ResultVo add(ProductDto productDto) {
+        Product product = new Product();
+        ProductCategory productCategory=new ProductCategory();
+        ProductSku productSku=new ProductSku();
+        BeanUtils.copyProperties(productDto , product);
+        BeanUtils.copyProperties(productDto , productCategory);
+        BeanUtils.copyProperties(productDto, productSku);
+        product.setId(SnowflakeIdGenerator.getSnowId());
+
+
+        productCategory.setId(SnowflakeIdGenerator.getSnowId());
+
+
+
+        return null;
+    }
+}
+
+
+
+

+ 22 - 0
src/main/java/com/zhentao/common/course/service/impl/ProductSkuServiceImpl.java

@@ -0,0 +1,22 @@
+package com.zhentao.common.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.course.domain.ProductSku;
+import com.zhentao.common.course.service.ProductSkuService;
+import com.zhentao.common.course.mapper.ProductSkuMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 86159
+* @description 针对表【product_sku(商品SKU表)】的数据库操作Service实现
+* @createDate 2025-05-08 19:32:50
+*/
+@Service
+public class ProductSkuServiceImpl extends ServiceImpl<ProductSkuMapper, ProductSku>
+    implements ProductSkuService{
+
+}
+
+
+
+

+ 24 - 0
src/main/resources/mapper/ProductCategoryMapper.xml

@@ -0,0 +1,24 @@
+<?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="com.zhentao.common.course.mapper.ProductCategoryMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.course.domain.ProductCategory">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="parentId" column="parent_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="level" column="level" jdbcType="TINYINT"/>
+            <result property="icon" column="icon" jdbcType="VARCHAR"/>
+            <result property="sortOrder" column="sort_order" jdbcType="INTEGER"/>
+            <result property="isShow" column="is_show" jdbcType="TINYINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,parent_id,name,
+        level,icon,sort_order,
+        is_show,create_time,update_time
+    </sql>
+</mapper>

+ 30 - 0
src/main/resources/mapper/ProductMapper.xml

@@ -0,0 +1,30 @@
+<?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="com.zhentao.common.course.mapper.ProductMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.course.domain.Product">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="categoryId" column="category_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="subtitle" column="subtitle" jdbcType="VARCHAR"/>
+            <result property="mainImage" column="main_image" jdbcType="VARCHAR"/>
+            <result property="images" column="images" jdbcType="VARCHAR"/>
+            <result property="detail" column="detail" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="TINYINT"/>
+            <result property="isDelete" column="is_delete" jdbcType="TINYINT"/>
+            <result property="sales" column="sales" jdbcType="INTEGER"/>
+            <result property="viewCount" column="view_count" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,category_id,name,
+        subtitle,main_image,images,
+        detail,status,is_delete,
+        sales,view_count,create_time,
+        update_time
+    </sql>
+</mapper>

+ 26 - 0
src/main/resources/mapper/ProductSkuMapper.xml

@@ -0,0 +1,26 @@
+<?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="com.zhentao.common.course.mapper.ProductSkuMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.course.domain.ProductSku">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="productId" column="product_id" jdbcType="BIGINT"/>
+            <result property="sn" column="sn" jdbcType="VARCHAR"/>
+            <result property="specs" column="specs" jdbcType="VARCHAR"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="originalPrice" column="original_price" jdbcType="DECIMAL"/>
+            <result property="image" column="image" jdbcType="VARCHAR"/>
+            <result property="stock" column="stock" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,product_id,sn,
+        specs,price,original_price,
+        image,stock,create_time,
+        update_time
+    </sql>
+</mapper>