diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index 3955b489..1a81c931 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -63,6 +63,8 @@ public class GoodsSkuController { @PreAuthorize("hasRole('goods:sku:query')") public R getById(@PathVariable("id") String id){ GoodsSku goodsSku = goodsSkuService.getById(id); + List skuSpecValueVos = goodsSkuSpecValueService.listSpecValueBySkuId(goodsSku.getId()); + goodsSku.setSpecValueList(skuSpecValueVos); return R.ok(goodsSku); } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java index 453da4d0..c7ba9ad2 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java @@ -45,9 +45,12 @@ public class GoodsCategory implements Serializable { /** 排序 */ private Integer level; - /** 排序 */ + /** 等级路径id */ private String levelPath; + /** 等级路径 */ + private String levelPathNames; + /** 描述 */ @Length(max = 255,message = "描述长度不能超过255字") private String description; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java index 7fb75fa6..35871161 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import lombok.Data; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -120,5 +121,10 @@ public class GoodsSku implements Serializable { /** 查询:是否上架(1是 0否) */ @TableField(exist = false) private Integer querySpuShelf; + + /** 规格值信息 */ + @TableField(exist = false) + private List specValueList; + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java index fdc005ca..e4bd309d 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java @@ -42,6 +42,7 @@ public class GoodsCategoryServiceImpl extends ServiceImpl spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); List spuList = goodsSpuService.listByIds(spuIds); for (GoodsSpu goodsSpu : spuList) { - GoodsCategory category = goodsCategoryService.getById(goodsSpu.getCategoryLast()); + GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird()); TbsActivityGoods activityGoods = new TbsActivityGoods(); activityGoods.setCostApplyId(costApply.getId()); activityGoods.setActivityId(activity.getId()); @@ -90,17 +92,45 @@ public class TbsActivityServiceImpl extends ServiceImpl skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); List skuList = goodsSkuService.listByIds(skuIds); + for (GoodsSku sku : skuList) { + GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); + GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird()); + TbsActivityGoods activityGoods = new TbsActivityGoods(); + activityGoods.setCostApplyId(costApply.getId()); + activityGoods.setActivityId(activity.getId()); + activityGoods.setTargetType(goodsType); + activityGoods.setTargetId(sku.getId()); + activityGoods.setTargetCode(sku.getSkuCode()); + activityGoods.setTargetName(sku.getSpecInfos()); + activityGoods.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()+"_"+sku.getId()); + activityGoods.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()+"_"+sku.getSpecInfos()); + activityGoodsList.add(activityGoods); + } }else { //品牌、品类、系列 List categoryIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); List categoryList = goodsCategoryService.listByIds(categoryIds); + for (GoodsCategory category : categoryList) { + TbsActivityGoods activityGoods = new TbsActivityGoods(); + activityGoods.setCostApplyId(costApply.getId()); + activityGoods.setActivityId(activity.getId()); + activityGoods.setTargetType(goodsType); + activityGoods.setTargetId(category.getId()); + activityGoods.setTargetCode(category.getCode()); + activityGoods.setTargetName(category.getName()); + activityGoods.setTargetLevelPathIds(category.getLevelPath()); + activityGoods.setTargetLevelPathNames(category.getLevelPathNames()); + activityGoodsList.add(activityGoods); + } } //费用详情 Map subjectMap = new HashMap<>();