diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsSkuController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsSkuController.java index 989f347..ad9221a 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsSkuController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsSkuController.java @@ -11,6 +11,7 @@ import com.gxwebsoft.shop.param.GoodsSkuParam; import com.gxwebsoft.shop.service.GoodsSkuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -22,7 +23,7 @@ import java.util.UUID; * 商品sku列表控制器 * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ @Api(tags = "商品sku列表管理") @RestController @@ -46,7 +47,7 @@ public class GoodsSkuController extends BaseController { System.out.println(sku); GoodsSku goodsSku = new GoodsSku(); goodsSku.setSku(sku); - goodsSku.setUnique(UUID.randomUUID().toString()); + goodsSku.setUuid(UUID.randomUUID().toString()); goodsSku.setImages(new ArrayList<>()); goodsSkuList.add(goodsSku); } @@ -91,6 +92,7 @@ public class GoodsSkuController extends BaseController { return success(goodsSkuService.listRel(param)); } + @PreAuthorize("hasAuthority('shop:goodsSku:list')") @ApiOperation("根据id查询商品sku列表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -101,11 +103,6 @@ public class GoodsSkuController extends BaseController { @ApiOperation("添加商品sku列表") @PostMapping() public ApiResult save(@RequestBody GoodsSku goodsSku) { - // 记录当前登录用户id - // User loginUser = getLoginUser(); - // if (loginUser != null) { - // goodsSku.setUserId(loginUser.getUserId()); - // } if (goodsSkuService.save(goodsSku)) { return success("添加成功"); } diff --git a/src/main/java/com/gxwebsoft/shop/entity/GoodsSku.java b/src/main/java/com/gxwebsoft/shop/entity/GoodsSku.java index 4020748..504b81c 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/GoodsSku.java +++ b/src/main/java/com/gxwebsoft/shop/entity/GoodsSku.java @@ -20,7 +20,7 @@ import lombok.EqualsAndHashCode; * 商品sku列表 * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ @Data @EqualsAndHashCode(callSuper = false) @@ -36,7 +36,7 @@ public class GoodsSku implements Serializable { @ApiModelProperty(value = "商品ID") private Integer goodsId; - @ApiModelProperty(value = "商品属性索引值") + @ApiModelProperty(value = "商品属性索引值 (attr_value|attr_value[|....])") private String sku; @ApiModelProperty(value = "商品图片") @@ -48,6 +48,9 @@ public class GoodsSku implements Serializable { @ApiModelProperty(value = "市场价格") private BigDecimal salePrice; + @ApiModelProperty(value = "成本价") + private BigDecimal cost; + @ApiModelProperty(value = "库存") private Integer stock; @@ -55,10 +58,7 @@ public class GoodsSku implements Serializable { private String skuNo; @ApiModelProperty(value = "唯一值") - private String unique; - - @ApiModelProperty(value = "成本价") - private BigDecimal cost; + private String uuid; @ApiModelProperty(value = "商品条码") private String barCode; diff --git a/src/main/java/com/gxwebsoft/shop/mapper/GoodsSkuMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/GoodsSkuMapper.java index a2ba9da..f327ca9 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/GoodsSkuMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/GoodsSkuMapper.java @@ -12,7 +12,7 @@ import java.util.List; * 商品sku列表Mapper * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ public interface GoodsSkuMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsSkuMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsSkuMapper.xml index c8aba52..82ab333 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsSkuMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsSkuMapper.xml @@ -13,20 +13,8 @@ AND a.goods_id = #{param.goodsId} - - AND a.spec_id = #{param.specId} - - - AND a.spec_value_id = #{param.specValueId} - - - AND a.spec_value_0 LIKE CONCAT('%', #{param.specValue0}, '%') - - - AND a.spec_value_1 LIKE CONCAT('%', #{param.specValue1}, '%') - - - AND a.spec_value_2 LIKE CONCAT('%', #{param.specValue2}, '%') + + AND a.sku LIKE CONCAT('%', #{param.sku}, '%') AND a.image LIKE CONCAT('%', #{param.image}, '%') @@ -37,12 +25,24 @@ AND a.sale_price = #{param.salePrice} + + AND a.cost = #{param.cost} + AND a.stock = #{param.stock} AND a.sku_no LIKE CONCAT('%', #{param.skuNo}, '%') + + AND a.uuid LIKE CONCAT('%', #{param.uuid}, '%') + + + AND a.weight = #{param.weight} + + + AND a.volume = #{param.volume} + AND a.status = #{param.status} @@ -57,6 +57,9 @@ AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + OR a.goods_id = #{param.keywords} + OR a.uuid = #{param.keywords} + OR a.sku_no = #{param.keywords} ) diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsSkuParam.java b/src/main/java/com/gxwebsoft/shop/param/GoodsSkuParam.java index d1833c4..fce8f91 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsSkuParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/GoodsSkuParam.java @@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode; * 商品sku列表查询参数 * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ @Data @EqualsAndHashCode(callSuper = false) @@ -31,6 +31,9 @@ public class GoodsSkuParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer goodsId; + @ApiModelProperty(value = "商品属性索引值 (attr_value|attr_value[|....])") + private String sku; + @ApiModelProperty(value = "商品图片") private String image; @@ -42,6 +45,10 @@ public class GoodsSkuParam extends BaseParam { @QueryField(type = QueryType.EQ) private BigDecimal salePrice; + @ApiModelProperty(value = "成本价") + @QueryField(type = QueryType.EQ) + private BigDecimal cost; + @ApiModelProperty(value = "库存") @QueryField(type = QueryType.EQ) private Integer stock; @@ -49,6 +56,17 @@ public class GoodsSkuParam extends BaseParam { @ApiModelProperty(value = "sku编码") private String skuNo; + @ApiModelProperty(value = "唯一值") + private String uuid; + + @ApiModelProperty(value = "重量") + @QueryField(type = QueryType.EQ) + private BigDecimal weight; + + @ApiModelProperty(value = "体积") + @QueryField(type = QueryType.EQ) + private BigDecimal volume; + @ApiModelProperty(value = "状态, 0正常, 1异常") @QueryField(type = QueryType.EQ) private Integer status; diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsSkuService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsSkuService.java index df87b84..2adadc1 100644 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsSkuService.java +++ b/src/main/java/com/gxwebsoft/shop/service/GoodsSkuService.java @@ -5,14 +5,13 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.shop.entity.GoodsSku; import com.gxwebsoft.shop.param.GoodsSkuParam; -import java.util.ArrayList; import java.util.List; /** * 商品sku列表Service * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ public interface GoodsSkuService extends IService { @@ -39,4 +38,5 @@ public interface GoodsSkuService extends IService { * @return GoodsSku */ GoodsSku getByIdRel(Integer id); + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java index 24676ba..c24ad37 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java @@ -49,7 +49,10 @@ public class GoodsServiceImpl extends ServiceImpl implements final Map> collectSpecs = specs.stream().collect(Collectors.groupingBy(GoodsSpec::getGoodsId)); final Map> collectSkus = skus.stream().collect(Collectors.groupingBy(GoodsSku::getGoodsId)); list.forEach(d -> { -// d.setGoodsSpec(collectSpecs.get(d.getGoodsId()).get(0)); + final List goodsSpecs = collectSpecs.get(d.getGoodsId()); + if (!CollectionUtils.isEmpty(goodsSpecs)) { + d.setGoodsSpec(goodsSpecs.get(0)); + } d.setGoodsSkus(collectSkus.get(d.getGoodsId())); }); } @@ -75,18 +78,19 @@ public class GoodsServiceImpl extends ServiceImpl implements @Override public void saveBatchByAsync(Goods goods) { - // 保存商品规格 - final GoodsSpec goodsSpec = goods.getGoodsSpec(); - goodsSpec.setGoodsId(goods.getGoodsId()); - goodsSpecService.save(goodsSpec); - - // 保存商品sku表 - final List goodsSkus = goods.getGoodsSkus(); - if (!CollectionUtils.isEmpty(goodsSkus)) { - goodsSkus.forEach(d -> { - d.setGoodsId(goods.getGoodsId()); - }); - goodsSkuService.saveBatch(goodsSkus); + // 保存商品多规格 + if (goods.getSpecs().equals(1)) { + final GoodsSpec goodsSpec = goods.getGoodsSpec(); + goodsSpec.setGoodsId(goods.getGoodsId()); + goodsSpecService.save(goodsSpec); + // 保存商品sku表 + final List goodsSkus = goods.getGoodsSkus(); + if (!CollectionUtils.isEmpty(goodsSkus)) { + goodsSkus.forEach(d -> { + d.setGoodsId(goods.getGoodsId()); + }); + goodsSkuService.saveBatch(goodsSkus); + } } } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsSkuServiceImpl.java index 36d9d7a..47adc40 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsSkuServiceImpl.java @@ -1,6 +1,5 @@ package com.gxwebsoft.shop.service.impl; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gxwebsoft.shop.mapper.GoodsSkuMapper; import com.gxwebsoft.shop.service.GoodsSkuService; @@ -10,14 +9,13 @@ import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; -import java.util.ArrayList; import java.util.List; /** * 商品sku列表Service实现 * * @author 科技小王子 - * @since 2024-04-03 16:06:23 + * @since 2024-07-26 10:49:02 */ @Service public class GoodsSkuServiceImpl extends ServiceImpl implements GoodsSkuService { diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index 9694280..03a839e 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -50,9 +50,9 @@ public class ShopGenerator { private static final String[] TABLE_NAMES = new String[]{ // "shop_spec", // "shop_spec_value", - "shop_goods", +// "shop_goods", // "shop_goods_spec", -// "shop_goods_sku", + "shop_goods_sku", // "shop_goods_category", // "shop_goods_coupon", // "shop_goods_description",