Jelajahi Sumber

产品类目,产品信息,前端接口

1018653686@qq.com 1 tahun lalu
induk
melakukan
e3b538e7df
17 mengubah file dengan 484 tambahan dan 2 penghapusan
  1. 0 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/a-json/ProductSubCategoryApi.json
  2. 68 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/controller/product/ProductSubCategoryController.java
  3. 4 1
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductCategoryDto.java
  4. 17 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductSubCategoryDto.java
  5. 17 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductSubCategorySelectDto.java
  6. 7 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/po/ProductInfo.java
  7. 37 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/po/ProductSubCategory.java
  8. 3 1
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/vo/ProductCategoryVo.java
  9. 17 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/vo/ProductSubCategoryVo.java
  10. 27 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/mapper/product/ProductSubCategoryMapper.java
  11. 54 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/ProductSubCategoryService.java
  12. 16 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/impl/ProductCategoryServiceImpl.java
  13. 78 0
      hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/impl/ProductSubCategoryServiceImpl.java
  14. 33 0
      hx-xmhjc/src/main/resources/mapper/product/ProductCategoryMapper.xml
  15. 34 0
      hx-xmhjc/src/main/resources/mapper/product/ProductImageMapper.xml
  16. 46 0
      hx-xmhjc/src/main/resources/mapper/product/ProductInfoMapper.xml
  17. 26 0
      hx-xmhjc/src/main/resources/mapper/product/ProductSubCategoryMapper.xml

File diff ditekan karena terlalu besar
+ 0 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/a-json/ProductSubCategoryApi.json


+ 68 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/controller/product/ProductSubCategoryController.java

@@ -0,0 +1,68 @@
+package com.fjhx.xmhjc.controller.product;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategorySelectDto;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategoryDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.xmhjc.service.product.ProductSubCategoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 产品类目表 前端控制器
+ * </p>
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@RestController
+@RequestMapping("/productSubCategory")
+public class ProductSubCategoryController {
+
+    @Autowired
+    private ProductSubCategoryService productSubCategoryService;
+
+    /**
+     * 产品类目表分页
+     */
+    @PostMapping("/page")
+    public Page<ProductSubCategoryVo> page(@RequestBody ProductSubCategorySelectDto dto) {
+        return productSubCategoryService.getPage(dto);
+    }
+
+    /**
+     * 产品类目表明细
+     */
+    @PostMapping("/detail")
+    public ProductSubCategoryVo detail(@RequestBody BaseSelectDto dto) {
+        return productSubCategoryService.detail(dto.getId());
+    }
+
+    /**
+     * 产品类目表新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductSubCategoryDto productSubCategoryDto) {
+        productSubCategoryService.add(productSubCategoryDto);
+    }
+
+    /**
+     * 产品类目表编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductSubCategoryDto productSubCategoryDto) {
+        productSubCategoryService.edit(productSubCategoryDto);
+    }
+
+    /**
+     * 产品类目表删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productSubCategoryService.delete(dto.getId());
+    }
+
+}

+ 4 - 1
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductCategoryDto.java

@@ -1,9 +1,12 @@
 package com.fjhx.xmhjc.entity.product.dto;
 
 import com.fjhx.xmhjc.entity.product.po.ProductCategory;
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 产品类目表新增编辑入参实体
  *
@@ -13,5 +16,5 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ProductCategoryDto extends ProductCategory {
-
+    private List<ProductSubCategory> subCategoryList;
 }

+ 17 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductSubCategoryDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.xmhjc.entity.product.dto;
+
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 产品类目表新增编辑入参实体
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@Getter
+@Setter
+public class ProductSubCategoryDto extends ProductSubCategory {
+
+}

+ 17 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/dto/ProductSubCategorySelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.xmhjc.entity.product.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 产品类目表列表查询入参实体
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@Getter
+@Setter
+public class ProductSubCategorySelectDto extends BaseSelectDto {
+
+}

+ 7 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/po/ProductInfo.java

@@ -24,6 +24,13 @@ public class ProductInfo extends BasePo {
      */
     private Long categoryId;
 
+
+    /**
+     * 子类目id
+     */
+    private Long subCategoryId;
+
+
     /**
      * 标题
      */

+ 37 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/po/ProductSubCategory.java

@@ -0,0 +1,37 @@
+package com.fjhx.xmhjc.entity.product.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 产品类目表
+ * </p>
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@Getter
+@Setter
+@TableName("product_sub_category")
+public class ProductSubCategory extends BasePo {
+
+    private String name;
+
+    private String code;
+
+    private Integer sort;
+
+    /**
+     * 状态0=禁用;1=启用
+     */
+    private String status;
+
+    private Long parentId;
+
+}

+ 3 - 1
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/vo/ProductCategoryVo.java

@@ -4,6 +4,8 @@ import com.fjhx.xmhjc.entity.product.po.ProductCategory;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 产品类目表列表查询返回值实体
  *
@@ -13,5 +15,5 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ProductCategoryVo extends ProductCategory {
-
+    private List<ProductSubCategoryVo> subCategoryList;
 }

+ 17 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/product/vo/ProductSubCategoryVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.xmhjc.entity.product.vo;
+
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 产品类目表列表查询返回值实体
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@Getter
+@Setter
+public class ProductSubCategoryVo extends ProductSubCategory {
+
+}

+ 27 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/mapper/product/ProductSubCategoryMapper.java

@@ -0,0 +1,27 @@
+package com.fjhx.xmhjc.mapper.product;
+
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 产品类目表 Mapper 接口
+ * </p>
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+public interface ProductSubCategoryMapper extends BaseMapper<ProductSubCategory> {
+
+    /**
+     * 产品类目表分页
+     */
+    Page<ProductSubCategoryVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductSubCategory> wrapper);
+
+    void deleteByParentId(Long parentId);
+}

+ 54 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/ProductSubCategoryService.java

@@ -0,0 +1,54 @@
+package com.fjhx.xmhjc.service.product;
+
+import com.fjhx.xmhjc.entity.product.po.ProductCategory;
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategorySelectDto;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategoryDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 产品类目表 服务类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+public interface ProductSubCategoryService extends BaseService<ProductSubCategory> {
+
+    /**
+     * 产品类目表分页
+     */
+    Page<ProductSubCategoryVo> getPage(ProductSubCategorySelectDto dto);
+
+    /**
+     * 产品类目表明细
+     */
+    ProductSubCategoryVo detail(Long id);
+
+    /**
+     * 产品类目表新增
+     */
+    void add(ProductSubCategoryDto productSubCategoryDto);
+
+    /**
+     * 产品类目表编辑
+     */
+    void edit(ProductSubCategoryDto productSubCategoryDto);
+
+    /**
+     * 产品类目表删除
+     */
+    void delete(Long id);
+
+    List<ProductSubCategory> listByParentId(Long id);
+
+    void deleteByParentId(Long parentId);
+
+    void dealSubCategory(Long id, List<ProductSubCategory> subCategoryList);
+}

+ 16 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/impl/ProductCategoryServiceImpl.java

@@ -1,10 +1,14 @@
 package com.fjhx.xmhjc.service.product.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fjhx.xmhjc.entity.product.po.ProductCategory;
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo;
 import com.fjhx.xmhjc.mapper.product.ProductCategoryMapper;
 import com.fjhx.xmhjc.service.product.ProductCategoryService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.xmhjc.service.product.ProductSubCategoryService;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,7 +17,9 @@ import com.fjhx.xmhjc.entity.product.dto.ProductCategorySelectDto;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.xmhjc.entity.product.dto.ProductCategoryDto;
 import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -26,6 +32,8 @@ import java.util.List;
  */
 @Service
 public class ProductCategoryServiceImpl extends ServiceImpl<ProductCategoryMapper, ProductCategory> implements ProductCategoryService {
+    @Resource
+    private ProductSubCategoryService productSubCategoryService;
 
     @Override
     public List<ProductCategoryVo> getList(ProductCategorySelectDto dto) {
@@ -51,17 +59,25 @@ public class ProductCategoryServiceImpl extends ServiceImpl<ProductCategoryMappe
     public ProductCategoryVo detail(Long id) {
         ProductCategory ProductCategory = this.getById(id);
         ProductCategoryVo result = BeanUtil.toBean(ProductCategory, ProductCategoryVo.class);
+        List<ProductSubCategory> subCategoryList = productSubCategoryService.listByParentId(id);
+        List<ProductSubCategoryVo> subCategoryVos = BeanUtil.copyToList(subCategoryList, ProductSubCategoryVo.class);
+        result.setSubCategoryList(subCategoryVos);
         return result;
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void add(ProductCategoryDto productCategoryDto) {
         this.save(productCategoryDto);
+        productSubCategoryService.dealSubCategory(productCategoryDto.getId(), productCategoryDto.getSubCategoryList());
     }
 
+
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void edit(ProductCategoryDto productCategoryDto) {
         this.updateById(productCategoryDto);
+        productSubCategoryService.dealSubCategory(productCategoryDto.getId(), productCategoryDto.getSubCategoryList());
     }
 
     @Override

+ 78 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/product/impl/ProductSubCategoryServiceImpl.java

@@ -0,0 +1,78 @@
+package com.fjhx.xmhjc.service.product.impl;
+
+import com.fjhx.xmhjc.entity.product.po.ProductCategory;
+import com.fjhx.xmhjc.entity.product.po.ProductSubCategory;
+import com.fjhx.xmhjc.entity.product.vo.ProductCategoryVo;
+import com.fjhx.xmhjc.mapper.product.ProductSubCategoryMapper;
+import com.fjhx.xmhjc.service.product.ProductSubCategoryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategorySelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.xmhjc.entity.product.dto.ProductSubCategoryDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 产品类目表 服务实现类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-11-16
+ */
+@Service
+public class ProductSubCategoryServiceImpl extends ServiceImpl<ProductSubCategoryMapper, ProductSubCategory> implements ProductSubCategoryService {
+
+    @Override
+    public Page<ProductSubCategoryVo> getPage(ProductSubCategorySelectDto dto) {
+        IWrapper<ProductSubCategory> wrapper = getWrapper();
+        wrapper.orderByDesc("psc", ProductSubCategory::getId);
+        Page<ProductSubCategoryVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ProductSubCategoryVo detail(Long id) {
+        ProductSubCategory ProductSubCategory = this.getById(id);
+        ProductSubCategoryVo result = BeanUtil.toBean(ProductSubCategory, ProductSubCategoryVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ProductSubCategoryDto productSubCategoryDto) {
+        this.save(productSubCategoryDto);
+    }
+
+    @Override
+    public void edit(ProductSubCategoryDto productSubCategoryDto) {
+        this.updateById(productSubCategoryDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public List<ProductSubCategory> listByParentId(Long id) {
+        List<ProductSubCategory> list = this.lambdaQuery().eq(ProductSubCategory::getParentId, id).orderByAsc(ProductSubCategory::getSort).list();
+        return list;
+    }
+
+    @Override
+    public void deleteByParentId(Long parentId) {
+        this.baseMapper.deleteByParentId(parentId);
+    }
+
+    @Override
+    public void dealSubCategory(Long parentId, List<ProductSubCategory> subCategoryList) {
+        this.deleteByParentId(parentId);
+        subCategoryList.forEach(item -> item.setParentId(parentId));
+        saveBatch(subCategoryList);
+    }
+}

+ 33 - 0
hx-xmhjc/src/main/resources/mapper/product/ProductCategoryMapper.xml

@@ -0,0 +1,33 @@
+<?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.fjhx.xmhjc.mapper.product.ProductCategoryMapper">
+    <select id="getList" resultType="com.fjhx.xmhjc.entity.product.vo.ProductCategoryVo">
+        select
+            pc.id,
+            pc.name,
+            pc.code,
+            pc.sort,
+            pc.create_user,
+            pc.create_time,
+            pc.update_user,
+            pc.update_time,
+            pc.status
+        from product_category pc
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.xmhjc.entity.product.vo.ProductCategoryVo">
+        select
+            pc.id,
+            pc.name,
+            pc.code,
+            pc.sort,
+            pc.create_user,
+            pc.create_time,
+            pc.update_user,
+            pc.update_time,
+            pc.status
+        from product_category pc
+            ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 34 - 0
hx-xmhjc/src/main/resources/mapper/product/ProductImageMapper.xml

@@ -0,0 +1,34 @@
+<?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.fjhx.xmhjc.mapper.product.ProductImageMapper">
+    <select id="getList" resultType="com.fjhx.xmhjc.entity.product.vo.ProductImageVo">
+        select
+            pi.id,
+            pi.product_id,
+            pi.url,
+            pi.sort,
+            pi.type,
+            pi.create_user,
+            pi.create_time,
+            pi.update_user,
+            pi.update_time
+        from product_image pi
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.xmhjc.entity.product.vo.ProductImageVo">
+        select
+            pi.id,
+            pi.product_id,
+            pi.url,
+            pi.sort,
+            pi.type,
+            pi.create_user,
+            pi.create_time,
+            pi.update_user,
+            pi.update_time
+        from product_image pi
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 46 - 0
hx-xmhjc/src/main/resources/mapper/product/ProductInfoMapper.xml

@@ -0,0 +1,46 @@
+<?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.fjhx.xmhjc.mapper.product.ProductInfoMapper">
+    <select id="getList" resultType="com.fjhx.xmhjc.entity.product.vo.ProductInfoVo">
+        select
+            pi.id,
+            pi.category_id,
+            pi.sub_category_id,
+            pi.title,
+            pi.subheading,
+            pi.cover_url,
+            pi.spec,
+            pi.content_type,
+            pi.content,
+            pi.create_user,
+            pi.create_time,
+            pi.update_user,
+            pi.update_time,
+            pi.sort,
+            pi.status
+        from product_info pi
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.xmhjc.entity.product.vo.ProductInfoVo">
+        select
+            pi.id,
+            pi.category_id,
+            pi.sub_category_id,
+            pi.title,
+            pi.subheading,
+            pi.cover_url,
+            pi.spec,
+            pi.content_type,
+            pi.content,
+            pi.create_user,
+            pi.create_time,
+            pi.update_user,
+            pi.update_time,
+            pi.sort,
+            pi.status
+        from product_info pi
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 26 - 0
hx-xmhjc/src/main/resources/mapper/product/ProductSubCategoryMapper.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.fjhx.xmhjc.mapper.product.ProductSubCategoryMapper">
+    <select id="getPage" resultType="com.fjhx.xmhjc.entity.product.vo.ProductSubCategoryVo">
+        select
+            psc.id,
+            psc.name,
+            psc.code,
+            psc.sort,
+            psc.create_user,
+            psc.create_time,
+            psc.update_user,
+            psc.update_time,
+            psc.status,
+            psc.parent_id
+        from product_sub_category psc
+            ${ew.customSqlSegment}
+    </select>
+
+
+    <delete id="deleteByParentId">
+        delete from product_sub_category
+        where parent_id = #{parentId}
+    </delete>
+
+</mapper>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini