diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductTypeAttr.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductTypeAttr.java index 5ff2c93..afd7ba6 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductTypeAttr.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/ProductTypeAttr.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Author: wangxinyuan * @Date: 2024/3/29 16:58 @@ -55,4 +57,13 @@ public class ProductTypeAttr extends BaseEntity { @ApiModelProperty(value = "手动新增:0-是,1-否") private Integer manualOperation; + @ApiModelProperty(value = "类型名称") + private String typeName; + + @ApiModelProperty(value = "类型集合") + private List typeAttrs; + + @ApiModelProperty(value = "tavId") + private Integer tavId; + } diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/TypeAttrs.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/TypeAttrs.java index 207b2d5..8af32d0 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/TypeAttrs.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/TypeAttrs.java @@ -2,6 +2,7 @@ package com.muyu.product.domain.DTO; import com.muyu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -13,7 +14,8 @@ import lombok.Data; @ApiModel(value = "TypeAttrs") public class TypeAttrs extends BaseEntity { + @ApiModelProperty(value = "Id") private Integer typeAttrValueId; - + @ApiModelProperty(value = "名称") private String typeAttrValueName; } diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/PmsSkuStockExample.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/PmsSkuStockExample.java index cdd16d9..7d72e40 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/PmsSkuStockExample.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/PmsSkuStockExample.java @@ -1,4 +1,4 @@ -package com.macro.mall.model; +package com.muyu.product.domain; import java.math.BigDecimal; import java.util.ArrayList; diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/req/ProductTypeAttrReq.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/req/ProductTypeAttrReq.java new file mode 100644 index 0000000..cb63b38 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/req/ProductTypeAttrReq.java @@ -0,0 +1,63 @@ +package com.muyu.product.domain.req; + +import com.muyu.common.core.domain.BaseEntity; +import com.muyu.product.domain.DTO.ProductTypeAttrValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: wangxinyuan + * @Date: 2024/4/7 19:05 + */ +@Data +@ApiModel(value = "ProductTypeAttrReq", description = "商品类型添加值") +public class ProductTypeAttrReq extends BaseEntity { + @ApiModelProperty(value = "ID") + private Integer id; + + @ApiModelProperty(value = "商品类型ID") + private Integer productTypeId; + + @ApiModelProperty(value = "属性名称") + private String attrName; + + @ApiModelProperty(value = "是否支持多选:0-是,1-否") + private Integer multipleChoice; + + @ApiModelProperty(value = "录入方式:0-列表选择,1-手动") + private Integer inputMethod; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "分类标识:0-属性,1-参数") + private Integer flag; + + @ApiModelProperty(value = "筛选:0-普通,1-颜色") + private Integer screen; + + @ApiModelProperty(value = "检索:1-不需要,2-关键字,3-范围检索") + private Integer search; + + @ApiModelProperty(value = "商品属性关联:1-是,2-否") + private Integer association; + + @ApiModelProperty(value = "属性是否可选:1-唯一,2-单选,3-复选") + private Integer stats; + + @ApiModelProperty(value = "属性值的录入方式:1-手工录入,2-从列表中选择") + private Integer input; + + @ApiModelProperty(value = "属性值可选值列表") + private String selection; + + @ApiModelProperty(value = "手动新增:0-是,1-否") + private Integer manualOperation; + + @ApiModelProperty(value = "添加类型得具体值") + private List productTypeAttrValueList; + +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryController.java index 761fd4c..4759f46 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryController.java @@ -29,6 +29,12 @@ public class CategoryController { return AjaxResult.success(list); } + @ApiOperation("查询分类父级") + @GetMapping("/queryCategorParent") + public AjaxResult queryCategorParent(){ + Listlist=categoryService.queryCategorParent(); + return AjaxResult.success(list); + } @DeleteMapping("{categoryId}") @ApiOperation("分类删除") public AjaxResult deleteCategory(@PathVariable Integer categoryId){ diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/TypeController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/TypeController.java index a380fd2..e6209fd 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/TypeController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/TypeController.java @@ -1,8 +1,11 @@ package com.muyu.product.controller; import com.muyu.common.core.domain.AjaxResult; +import com.muyu.common.core.domain.R; +import com.muyu.product.domain.DTO.ProductType; import com.muyu.product.domain.DTO.ProductTypeAttr; import com.muyu.product.domain.Resp.ProductTypeResp; +import com.muyu.product.domain.req.ProductTypeAttrReq; import com.muyu.product.service.TypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,6 +28,7 @@ public class TypeController { @GetMapping("/queryTypeAll") + @ApiOperation("类型查询") public AjaxResult queryTypeAll(){ List list =typeService.queryTypeAll(); return AjaxResult.success(list); @@ -49,6 +53,41 @@ public class TypeController { return AjaxResult.success(res==1?"删除成功":"删除失败"); } + @ApiOperation("类型值删除") + @DeleteMapping("/deleteTypeAttr/{typeId}") + public R deleteTypeAttr(@PathVariable Integer typeId){ + Integer res = typeService.deleteTypeAttr(typeId); + return R.ok(res==1?"删除成功":"删除失败"); + } + + @ApiOperation("类型添加") + @PostMapping("/insertType") + public R insertType(@RequestBody ProductType productType){ + Integer res = typeService.insertType(productType); + return R.ok(res==1?"添加成功":"添加失败"); + } + + @ApiOperation("类型修改") + @PostMapping("updateType") + public R updateType(@RequestBody ProductType productType){ + Integer res = typeService.updateType(productType); + return R.ok(res==1?"修改成功":"修改失败"); + } + + @ApiOperation("类型值添加") + @PostMapping("/insertTypeAttr") + public R insertTypeAttr(@RequestBody ProductTypeAttrReq productTypeAttrReq){ + Integer res = typeService.insertTypeAttr(productTypeAttrReq); + return R.ok(res==1?"添加成功":"添加失败"); + } + + @ApiOperation("类型修改") + @PostMapping("/updateTypeAttr") + public R updateTypeAttr(@RequestBody ProductTypeAttrReq productTypeAttrReq){ + Integer res = typeService.updateTypeAttr(productTypeAttrReq); + return R.ok(res==1?"修改成功":"修改失败"); + } + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryMapper.java index 59e7329..1872bc3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryMapper.java @@ -18,4 +18,6 @@ public interface CategoryMapper { Integer insertCategory(Category category); Integer updateCategory(Category category); + + List queryCategorParent(); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/SkuMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/SkuMapper.java index a7eaae7..1c7f671 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/SkuMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/SkuMapper.java @@ -1,7 +1,8 @@ package com.muyu.product.mapper; -import com.macro.mall.model.PmsSkuStockExample; + import com.muyu.product.domain.DTO.ProductSku; +import com.muyu.product.domain.PmsSkuStockExample; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/TypeMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/TypeMapper.java index 990507f..a43b86c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/TypeMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/TypeMapper.java @@ -1,7 +1,10 @@ package com.muyu.product.mapper; +import com.muyu.product.domain.DTO.ProductType; import com.muyu.product.domain.DTO.ProductTypeAttr; +import com.muyu.product.domain.DTO.ProductTypeAttrValue; import com.muyu.product.domain.Resp.ProductTypeResp; +import com.muyu.product.domain.req.ProductTypeAttrReq; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -19,5 +22,19 @@ public interface TypeMapper { List queryType(@Param("flag") Integer flag, @Param("id") Integer id); - Integer deleteType(Integer typeId); + Integer deleteType(@Param("typeId") Integer typeId, @Param("name") String name); + + void deleteTypeAttrValue(Integer typeId); + + Integer deleteTypeAttr(Integer typeId); + + Integer insertType(ProductType productType); + + Integer updateType(ProductType productType); + + Integer insertTypeAttr(ProductTypeAttrReq productTypeAttrReq); + + void insertTypeValue(@Param("productTypeAttrValueList") List productTypeAttrValueList); + + Integer updateAttr(ProductTypeAttrReq productTypeAttrReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryService.java index 9de3ecf..7c1e48a 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryService.java @@ -16,4 +16,7 @@ public interface CategoryService { Integer insertCategory(Category category); Integer updateCategory(Category category); + + List queryCategorParent(); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/TypeService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/TypeService.java index fc5fc6d..2a082eb 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/TypeService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/TypeService.java @@ -1,7 +1,9 @@ package com.muyu.product.service; +import com.muyu.product.domain.DTO.ProductType; import com.muyu.product.domain.DTO.ProductTypeAttr; import com.muyu.product.domain.Resp.ProductTypeResp; +import com.muyu.product.domain.req.ProductTypeAttrReq; import java.util.List; @@ -17,4 +19,14 @@ public interface TypeService { List queryType(Integer flag, Integer id); Integer deleteType(Integer typeId); + + Integer deleteTypeAttr(Integer typeId); + + Integer insertType(ProductType productType); + + Integer updateType(ProductType productType); + + Integer insertTypeAttr(ProductTypeAttrReq productTypeAttrReq); + + Integer updateTypeAttr(ProductTypeAttrReq productTypeAttrReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryServiceImpl.java index d95b093..a0a3375 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryServiceImpl.java @@ -39,4 +39,9 @@ public class CategoryServiceImpl implements CategoryService { category.setCreateBy(SecurityUtils.getUsername()); return categoryMapper.updateCategory(category); } + + @Override + public List queryCategorParent() { + return categoryMapper.queryCategorParent(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/SkuServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/SkuServiceImpl.java index ed9cdff..52705c1 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/SkuServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/SkuServiceImpl.java @@ -1,6 +1,7 @@ package com.muyu.product.service.impl; import com.muyu.product.domain.DTO.ProductSku; +import com.muyu.product.domain.PmsSkuStockExample; import com.muyu.product.mapper.SkuMapper; import com.muyu.product.service.SkuService; import org.springframework.beans.factory.annotation.Autowired; @@ -19,8 +20,8 @@ public class SkuServiceImpl implements SkuService { private SkuMapper skuMapper; @Override public List getList(Long pid, String keyword) { - com.macro.mall.model.PmsSkuStockExample example = new com.macro.mall.model.PmsSkuStockExample(); - com.macro.mall.model.PmsSkuStockExample.Criteria criteria = example.createCriteria().andProductIdEqualTo(pid); + PmsSkuStockExample example = new PmsSkuStockExample(); + PmsSkuStockExample.Criteria criteria = example.createCriteria().andProductIdEqualTo(pid); return skuMapper.selectByExample(example); } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/TypeServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/TypeServiceImpl.java index e979294..d417c85 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/TypeServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/TypeServiceImpl.java @@ -1,7 +1,11 @@ package com.muyu.product.service.impl; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.product.domain.DTO.ProductType; import com.muyu.product.domain.DTO.ProductTypeAttr; +import com.muyu.product.domain.DTO.ProductTypeAttrValue; import com.muyu.product.domain.Resp.ProductTypeResp; +import com.muyu.product.domain.req.ProductTypeAttrReq; import com.muyu.product.mapper.TypeMapper; import com.muyu.product.service.TypeService; import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +36,55 @@ public class TypeServiceImpl implements TypeService { @Override public Integer deleteType(Integer typeId) { - return typeMapper.deleteType(typeId); + String name = SecurityUtils.getUsername(); + return typeMapper.deleteType(typeId,name); + } + + @Override + public Integer deleteTypeAttr(Integer typeId) { + typeMapper.deleteTypeAttrValue(typeId); + return typeMapper.deleteTypeAttr(typeId); + } + + @Override + public Integer insertType(ProductType productType) { + productType.setCreateBy(SecurityUtils.getUsername()); + return typeMapper.insertType(productType); + } + + @Override + public Integer updateType(ProductType productType) { + productType.setCreateBy(SecurityUtils.getUsername()); + return typeMapper.updateType(productType); + } + + @Override + public Integer insertTypeAttr(ProductTypeAttrReq productTypeAttrReq) { + productTypeAttrReq.setCreateBy(SecurityUtils.getUsername()); + Integer res = typeMapper.insertTypeAttr(productTypeAttrReq); + if(res >0 && productTypeAttrReq.getProductTypeAttrValueList().size()>0){ + Integer typeAttrId = productTypeAttrReq.getId(); + for (ProductTypeAttrValue productTypeAttrValue : productTypeAttrReq.getProductTypeAttrValueList()) { + productTypeAttrValue.setCreateBy(SecurityUtils.getUsername()); + productTypeAttrValue.setTypeAttrId(typeAttrId); + } + typeMapper.insertTypeValue(productTypeAttrReq.getProductTypeAttrValueList()); + } + return res; + } + + @Override + public Integer updateTypeAttr(ProductTypeAttrReq productTypeAttrReq) { + productTypeAttrReq.setCreateBy(SecurityUtils.getUsername()); + typeMapper.deleteTypeAttrValue(productTypeAttrReq.getId()); + Integer res = typeMapper.updateAttr(productTypeAttrReq); + if(res >0 && productTypeAttrReq.getProductTypeAttrValueList().size()>0){ + for (ProductTypeAttrValue productTypeAttrValue : productTypeAttrReq.getProductTypeAttrValueList()) { + productTypeAttrValue.setCreateBy(SecurityUtils.getUsername()); + productTypeAttrValue.setTypeAttrId(productTypeAttrReq.getId()); + } + typeMapper.insertTypeValue(productTypeAttrReq.getProductTypeAttrValueList()); + } + return res; } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryMapper.xml index 8e24e0a..6f542ba 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryMapper.xml @@ -69,6 +69,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/SkuMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/SkuMapper.xml index a870491..502cc3f 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/SkuMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/SkuMapper.xml @@ -5,7 +5,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/TypeMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/TypeMapper.xml index 0dd3058..eed52d2 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/TypeMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/TypeMapper.xml @@ -3,30 +3,117 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - update t_product_type set id_delete = 0 where id = #{id} - + + insert t_product_type(type_name,create_by,create_time) value (#{typeName},#{createBy},now()) + + + INSERT INTO `cargo`.`t_product_type_attr` ( + `product_type_id`, + `attr_name`, + `multiple_choice`, + `input_method`, + `sort`, + `flag`, + `screen`, + `search`, + `association`, + `stats`, + `input`, + `selection`, + `manual_operation`, + `create_time`, + `create_by` + ) + VALUES + ( + #{productTypeId}, + #{attrName}, + #{multipleChoice}, + #{inputMethod}, + #{sort}, + #{flag}, + #{screen}, + #{search}, + #{association}, + #{stats}, + #{input}, + #{selection}, + #{manualOperation}, + now(), + #{createBy} + ) + + + INSERT INTO `cargo`.`t_product_type_attr_value` ( `type_attr_id`, `type_attr_value`, `input_method`, `create_time`, `create_by` ) + VALUES + + ( + #{productTypeAttrValue.typeAttrId}, + #{productTypeAttrValue.typeAttrValue}, + #{productTypeAttrValue.inputMethod}, + now(), + #{productTypeAttrValue.createBy} + ) + + + + update t_product_type set id_delete = 0,update_time = now(),create_by=#{name} where id = #{typeId} + + + update t_product_type set type_name = #{typeName},update_time = now(),create_by=#{createBy} where id = #{id} + + + UPDATE `cargo`.`t_product_type_attr` + SET `product_type_id` = #{productTypeId}, + `attr_name` = #{attrName}, + `multiple_choice` = #{multipleChoice}, + `input_method` = #{inputMethod}, + `sort` = #{sort}, + `flag` = #{flag}, + `screen` = #{screen}, + `search` = #{search}, + `association` = #{association}, + `stats` = #{stats}, + `input` = #{input}, + `selection` = #{selection}, + `manual_operation` = #{manualOperation}, + `update_time` = now(), + `create_by` = #{createBy} + WHERE + `id` = #{id} + + + delete from t_product_type_attr where product_type_id = #{id} - - - - - - SELECT + ta.id as id, + tav.id as tavId, type_name, ta.product_type_id, attr_name, @@ -41,12 +128,29 @@ input, selection, manual_operation, - tav.type_attr_id + tav.id as tavId, + tav.type_attr_value FROM t_product_type t INNER JOIN t_product_type_attr ta ON t.id = ta.product_type_id INNER JOIN t_product_type_attr_value tav ON tav.type_attr_id = ta.id + where ta.id_delete=1 and ta.flag = #{flag} and t.id = #{id} + + -