diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ProdPropRule.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ProdPropRule.java new file mode 100644 index 0000000..b5b1e42 --- /dev/null +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/enums/ProdPropRule.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. + * + * https://www.mall4j.com/ + * + * 未经允许,不可做商业用途! + * + * 版权所有,侵权必究! + */ + +package com.tashow.cloud.productapi.enums; + +/** + * 商品规格参数、属性类型 + * @author lgh + */ +public enum ProdPropRule { + + // 规格属性 (用于商品商品发布时,关联sku) + SPEC(1), + + // 规格参数(用于商品搜索时,与分类关联搜索) + ATTRIBUTE(2); + + private Integer num; + + public Integer value() { + return num; + } + + ProdPropRule(Integer num){ + this.num = num; + } + + public static ProdPropRule instance(Integer value) { + ProdPropRule[] enums = values(); + for (ProdPropRule statusEnum : enums) { + if (statusEnum.value().equals(value)) { + return statusEnum; + } + } + return null; + } +} diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdController.java index 4a2f408..e0ce0d9 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdController.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdController.java @@ -35,12 +35,12 @@ public class ProdController { @PostMapping("/create") @Operation(summary = "创建商品") - @PreAuthorize("@ss.hasPermission('tashow-module-product:prod:create')") + @PermitAll public CommonResult createProd(@Valid @RequestBody ProdSaveReqVO createReqVO) { return success(prodService.createProd(createReqVO)); } - @PutMapping("/update") +/* @PutMapping("/update") @Operation(summary = "更新商品") @PreAuthorize("@ss.hasPermission('tashow-module-product:prod:update')") public CommonResult updateProd(@Valid @RequestBody ProdSaveReqVO updateReqVO) { @@ -64,7 +64,7 @@ public class ProdController { public CommonResult getProd(@RequestParam("id") Long id) { ProdDO prod = prodService.getProd(id); return success(BeanUtils.toBean(prod, ProdRespVO.class)); - } + }*/ @PermitAll @GetMapping("/page") diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdPropController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdPropController.java index 6c8bf74..bbb3f9d 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdPropController.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/ProdPropController.java @@ -1,10 +1,15 @@ package com.tashow.cloud.product.controller; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tashow.cloud.product.dto.ProdPropDO; +import com.tashow.cloud.product.dto.ProdPropValueDO; import com.tashow.cloud.product.service.ProdPropService; +import com.tashow.cloud.product.service.ProdPropValueService; import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropRespVO; import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; +import com.tashow.cloud.productapi.enums.ProdPropRule; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -38,15 +43,48 @@ public class ProdPropController { @Resource private ProdPropService prodPropService; + @Resource + private ProdPropValueService prodPropValueService; - @PostMapping("/create") + /* @PostMapping("/create") @Operation(summary = "创建商品属性") @PreAuthorize("@ss.hasPermission('tz:prod-prop:create')") - public CommonResult createProdProp(@Valid @RequestBody ProdPropSaveReqVO createReqVO) { - return success(prodPropService.createProdProp(createReqVO)); + public CommonResult createProdProp(@Valid @RequestBody ProdPropSaveReqVO createReqVO) { + prodPropService.saveProdPropAndValues(createReqVO); + return success(true); + }*/ + + + @GetMapping("/getProdPropList") + @Operation(summary = "获得商品属性列表") + public CommonResult> getProdPropList(@Valid ProdPropRespVO pageReqVO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + // 处理规格名称模糊查询 + if (StrUtil.isNotBlank(pageReqVO.getPropName())) { + wrapper.like(ProdPropDO::getPropName, pageReqVO.getPropName()); + } + wrapper.eq(ProdPropDO::getRule, ProdPropRule.SPEC.value()); + //TODO 获取当前登录用户 + wrapper.eq(ProdPropDO::getShopId, 1L); + /*// 获取当前登录用户 + Long userId = SecurityUtils.getUserId(); + SysUser sysUser = sysUserService.selectUserById(userId); + + if (sysUser.getShopId() != 100) { + wrapper.eq(ProdProp::getShopId, sysUser.getShopId()); + }*/ + List list = prodPropService.list(wrapper); + list.forEach(prop -> { + List values = prodPropValueService.list( + new LambdaQueryWrapper() + .eq(ProdPropValueDO::getPropId, prop.getPropId()) + ); + prop.setProdPropValues(values); + }); + return success(list); } - @PutMapping("/update") +/* @PutMapping("/update") @Operation(summary = "更新商品属性") @PreAuthorize("@ss.hasPermission('tz:prod-prop:update')") public CommonResult updateProdProp(@Valid @RequestBody ProdPropSaveReqVO updateReqVO) { @@ -91,6 +129,6 @@ public class ProdPropController { // 导出 Excel ExcelUtils.write(response, "商品属性.xls", "数据", ProdPropRespVO.class, BeanUtils.toBean(list, ProdPropRespVO.class)); - } + }*/ } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java index fe9a9e4..807a552 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdDO.java @@ -123,14 +123,6 @@ public class ProdDO extends BaseDO { * 是否开启体重配置0关1开 */ private Boolean weightSwitch; - /** - * 创建人 - */ - private String createBy; - /** - * 修改人 - */ - private String updateBy; /** * 版本 乐观锁 */ diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java index fa66b18..4c3f2d9 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropDO.java @@ -13,12 +13,11 @@ import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; @TableName("tz_prod_prop") @KeySequence("tz_prod_prop_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data -@EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor -public class ProdPropDO extends BaseDO { +public class ProdPropDO{ /** * 属性id @@ -45,5 +44,9 @@ public class ProdPropDO extends BaseDO { * 是否删除0否1是 */ private Boolean isDelete; - + /** + * 属性值 + */ + @TableField(exist=false) + private List prodPropValues; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java index 86e63fb..4dfe445 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdPropValueDO.java @@ -13,12 +13,11 @@ import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; @TableName("tz_prod_prop_value") @KeySequence("tz_prod_prop_value_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data -@EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor -public class ProdPropValueDO extends BaseDO { +public class ProdPropValueDO { /** * 属性值ID diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdServiceAreaRelevanceDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdServiceAreaRelevanceDO.java index dde95df..31acb8c 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdServiceAreaRelevanceDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdServiceAreaRelevanceDO.java @@ -23,12 +23,10 @@ public class ProdServiceAreaRelevanceDO extends BaseDO { /** * 关联的商品ID */ - @TableId private Long prodId; /** * 关联的服务区域ID */ - @TableId private Long areaId; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdTagsDO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdTagsDO.java index a692b52..0991c95 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdTagsDO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/dto/ProdTagsDO.java @@ -24,12 +24,10 @@ public class ProdTagsDO extends BaseDO { /** * 商品id */ - @TableId private Long productId; /** * 标签id */ - @TableId private Long tagId; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java index 7af1b10..48c0407 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropMapper.java @@ -7,6 +7,7 @@ import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.product.dto.ProdPropDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 商品属性 Mapper @@ -16,5 +17,12 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ProdPropMapper extends BaseMapperX { - + /** + * 根据店铺id和属性名称获取商品属性 + * @param propName + * @param shopId + * @param rule + * @return + */ + ProdPropDO getProdPropByPropNameAndShopId(@Param("propName") String propName, @Param("shopId") Long shopId, @Param("rule") Integer rule); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java index 012573f..53cf230 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java @@ -7,6 +7,7 @@ import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.product.dto.ProdPropValueDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 属性规则 Mapper @@ -16,5 +17,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ProdPropValueMapper extends BaseMapperX { + /** + * 插入商品属性数值 + * @param propId + * @param prodPropValues + */ + void insertPropValues(@Param("propId") Long propId, @Param("prodPropValues") List prodPropValues); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java index e9b1b14..884836e 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropService.java @@ -2,6 +2,7 @@ package com.tashow.cloud.product.service; import java.util.*; +import com.baomidou.mybatisplus.extension.service.IService; import com.tashow.cloud.product.dto.ProdPropDO; import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; @@ -14,7 +15,7 @@ import com.tashow.cloud.common.pojo.PageParam; * * @author 芋道源码 */ -public interface ProdPropService { +public interface ProdPropService extends IService { /** * 创建商品属性 @@ -24,6 +25,7 @@ public interface ProdPropService { */ Long createProdProp(@Valid ProdPropSaveReqVO createReqVO); + void saveProdPropAndValues(ProdPropSaveReqVO createReqVO); /** * 更新商品属性 * diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropValueService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropValueService.java index 466cf68..ae01aaf 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropValueService.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/ProdPropValueService.java @@ -2,6 +2,8 @@ package com.tashow.cloud.product.service; import java.util.*; +import com.baomidou.mybatisplus.extension.service.IService; +import com.tashow.cloud.product.dto.ProdPropDO; import com.tashow.cloud.product.dto.ProdPropValueDO; import com.tashow.cloud.product.vo.prodpropvalue.ProdPropValuePageReqVO; import com.tashow.cloud.product.vo.prodpropvalue.ProdPropValueSaveReqVO; @@ -14,7 +16,7 @@ import com.tashow.cloud.common.pojo.PageParam; * * @author 芋道源码 */ -public interface ProdPropValueService { +public interface ProdPropValueService extends IService { /** * 创建属性规则 diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java index c5cdf55..3e8886a 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropServiceImpl.java @@ -1,7 +1,10 @@ package com.tashow.cloud.product.service.impl; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tashow.cloud.product.dto.ProdPropDO; import com.tashow.cloud.product.mapper.ProdPropMapper; +import com.tashow.cloud.product.mapper.ProdPropValueMapper; import com.tashow.cloud.product.service.ProdPropService; import com.tashow.cloud.product.vo.prodprop.ProdPropPageReqVO; import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; @@ -26,10 +29,12 @@ import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.except */ @Service @Validated -public class ProdPropServiceImpl implements ProdPropService { +public class ProdPropServiceImpl extends ServiceImpl implements ProdPropService { @Resource private ProdPropMapper prodPropMapper; + @Resource + private ProdPropValueMapper prodPropValueMapper; @Override public Long createProdProp(ProdPropSaveReqVO createReqVO) { @@ -40,6 +45,25 @@ public class ProdPropServiceImpl implements ProdPropService { return prodProp.getPropId(); } + @Override + @Transactional(rollbackFor = Exception.class) + public void saveProdPropAndValues(ProdPropSaveReqVO createReqVO) { + if(createReqVO.getShopId()==null){ + createReqVO.setShopId(1L); + } + ProdPropDO dbProdProp = prodPropMapper.getProdPropByPropNameAndShopId(createReqVO.getPropName(), createReqVO.getShopId(), createReqVO.getRule()); + if (dbProdProp != null) { + throw new RuntimeException("已有相同名称规格"); + } + ProdPropDO prodProp = BeanUtils.toBean(createReqVO, ProdPropDO.class); + prodPropMapper.insert(prodProp); + if (CollUtil.isEmpty(createReqVO.getProdPropValues())) { + return; + } + prodPropValueMapper.insertPropValues(prodProp.getPropId(), createReqVO.getProdPropValues()); + } + + @Override public void updateProdProp(ProdPropSaveReqVO updateReqVO) { // 校验存在 diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropValueServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropValueServiceImpl.java index cc531d8..a0d82b4 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropValueServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdPropValueServiceImpl.java @@ -1,6 +1,9 @@ package com.tashow.cloud.product.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tashow.cloud.product.dto.ProdPropDO; import com.tashow.cloud.product.dto.ProdPropValueDO; +import com.tashow.cloud.product.mapper.ProdPropMapper; import com.tashow.cloud.product.mapper.ProdPropValueMapper; import com.tashow.cloud.product.service.ProdPropValueService; import com.tashow.cloud.product.vo.prodpropvalue.ProdPropValuePageReqVO; @@ -23,7 +26,7 @@ import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.except */ @Service @Validated -public class ProdPropValueServiceImpl implements ProdPropValueService { +public class ProdPropValueServiceImpl extends ServiceImpl implements ProdPropValueService { @Resource private ProdPropValueMapper prodPropValueMapper; diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java index 0f90d48..2ba4084 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java @@ -1,10 +1,14 @@ package com.tashow.cloud.product.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tashow.cloud.mybatis.mybatis.core.util.MyBatisUtils; import com.tashow.cloud.product.dto.ProdDO; +import com.tashow.cloud.product.dto.SkuDO; import com.tashow.cloud.product.mapper.ProdMapper; +import com.tashow.cloud.product.mapper.SkuMapper; +import com.tashow.cloud.product.service.ProdPropService; import com.tashow.cloud.product.service.ProdService; import com.tashow.cloud.product.vo.prod.ProdPageReqVO; import com.tashow.cloud.product.vo.prod.ProdSaveReqVO; @@ -33,12 +37,27 @@ public class ProdServiceImpl implements ProdService { @Resource private ProdMapper prodMapper; + @Resource + private SkuMapper skuMapper; + @Resource + private ProdPropService prodPropService; @Override public Long createProd(ProdSaveReqVO createReqVO) { // 插入 ProdDO prod = BeanUtils.toBean(createReqVO, ProdDO.class); prodMapper.insert(prod); + //保存sku + if (CollectionUtil.isNotEmpty(createReqVO.getSkuList())) { + List skuList = createReqVO.getSkuList(); + for(SkuDO sku : skuList){ + sku.setProdId(prod.getProdId()); + } + skuMapper.insert(skuList); + } + createReqVO.setProdId(prod.getProdId()); + //保存规格 + prodPropService.saveProdPropAndValues(createReqVO.getProdPropSaveReqVO()); // 返回 return prod.getProdId(); } diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java index 945173a..602dca4 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prod/ProdSaveReqVO.java @@ -1,9 +1,13 @@ package com.tashow.cloud.product.vo.prod; +import com.tashow.cloud.product.dto.SkuDO; +import com.tashow.cloud.product.vo.prodprop.ProdPropSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import lombok.Data; +import java.util.List; + @Schema(description = "管理后台 - 商品新增/修改 Request VO") @Data public class ProdSaveReqVO { @@ -96,4 +100,10 @@ public class ProdSaveReqVO { @Schema(description = "展示的权重") private Integer top; + @Schema(description = "sku列表") + private List skuList; + + @Schema(description = "规格") + private ProdPropSaveReqVO prodPropSaveReqVO; + } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java index caabecb..de51bb0 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/vo/prodprop/ProdPropSaveReqVO.java @@ -1,5 +1,7 @@ package com.tashow.cloud.product.vo.prodprop; +import com.baomidou.mybatisplus.annotation.TableField; +import com.tashow.cloud.product.dto.ProdPropValueDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -21,10 +23,16 @@ public class ProdPropSaveReqVO { @Schema(description = "店铺id", example = "2806") private Long shopId; - @Schema(description = "商品id", example = "21671") + @Schema(description = "商品id(添加的时候不传)", example = "21671") private Integer prodId; @Schema(description = "是否删除0否1是") private Boolean isDelete; + /** + * 属性值 + */ + @TableField(exist=false) + @NotEmpty(message="规格属性值不能为空") + private List prodPropValues; } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml index 0450b57..5ed26d4 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml index 2cde235..83dde24 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml @@ -8,5 +8,10 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + insert into tz_prod_prop_value (prop_id,prop_value) values + + (#{propId},#{prodPropValue.propValue}) + + \ No newline at end of file