Commit bb0bb2a4fa16380dad968e3ead36cc456f9b1738

Authored by YunaiV
1 parent 4a3703e3

mall + promotion:商品列表

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java
... ... @@ -44,9 +44,6 @@ public class ProductSpuExcelVO {
44 44 @ExcelProperty("商品封面图")
45 45 private String picUrl;
46 46  
47   - @ExcelProperty("商品轮播图地址")
48   - private String sliderPicUrls;
49   -
50 47 @ExcelProperty("商品视频")
51 48 private String videoUrl;
52 49  
... ... @@ -97,15 +94,9 @@ public class ProductSpuExcelVO {
97 94 @ExcelProperty("赠送积分")
98 95 private Integer giveIntegral;
99 96  
100   - @ExcelProperty("赠送的优惠劵编号的数组")
101   - private String giveCouponTemplateIds;
102   -
103 97 @ExcelProperty("分销类型")
104 98 private Boolean subCommissionType;
105 99  
106   - @ExcelProperty("活动显示排序")
107   - private String activityOrders;
108   -
109 100 @ExcelProperty("商品销量")
110 101 private Integer salesCount;
111 102  
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java
... ... @@ -24,6 +24,9 @@ public class AppProductSpuPageRespVO {
24 24 @Schema(description = "商品轮播图", requiredMode = Schema.RequiredMode.REQUIRED)
25 25 private List<String> sliderPicUrls;
26 26  
  27 + @Schema(description = "单位名", requiredMode = Schema.RequiredMode.REQUIRED, example = "个")
  28 + private String unitName;
  29 +
27 30 // ========== SKU 相关字段 =========
28 31  
29 32 @Schema(description = "规格类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
... ... @@ -35,6 +38,9 @@ public class AppProductSpuPageRespVO {
35 38 @Schema(description = "市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
36 39 private Integer marketPrice;
37 40  
  41 + @Schema(description = "VIP 价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "968") // 通过会员等级,计算出折扣后价格
  42 + private Integer vipPrice;
  43 +
38 44 @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "666")
39 45 private Integer stock;
40 46  
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java
1 1 package cn.iocoder.yudao.module.product.convert.spu;
2 2  
3   -import cn.hutool.core.util.StrUtil;
4 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 4 import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils;
6 5 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
7 6 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*;
8 7 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO;
9   -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO;
10 8 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
  9 +import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO;
11 10 import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
12 11 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
13 12 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
... ... @@ -46,20 +45,6 @@ public interface ProductSpuConvert {
46 45  
47 46 List<ProductSpuSimpleRespVO> convertList02(List<ProductSpuDO> list);
48 47  
49   - /**
50   - * 列表转字符串
51   - *
52   - * @param list 列表
53   - * @return 字符串
54   - */
55   - @Named("convertListToString")
56   - default String convertListToString(List<?> list) {
57   - return StrUtil.toString(list);
58   - }
59   -
60   - @Mapping(source = "sliderPicUrls", target = "sliderPicUrls", qualifiedByName = "convertListToString")
61   - @Mapping(source = "giveCouponTemplateIds", target = "giveCouponTemplateIds", qualifiedByName = "convertListToString")
62   - @Mapping(source = "activityOrders", target = "activityOrders", qualifiedByName = "convertListToString")
63 48 @Mapping(target = "price", expression = "java(spu.getPrice() / 100)")
64 49 @Mapping(target = "marketPrice", expression = "java(spu.getMarketPrice() / 100)")
65 50 @Mapping(target = "costPrice", expression = "java(spu.getCostPrice() / 100)")
... ... @@ -83,7 +68,16 @@ public interface ProductSpuConvert {
83 68 default List<AppProductSpuPageRespVO> convertListForGetSpuList(List<ProductSpuDO> list) {
84 69 // 处理虚拟销量
85 70 list.forEach(spu -> spu.setSalesCount(spu.getSalesCount() + spu.getVirtualSalesCount()));
86   - return convertListForGetSpuList0(list);
  71 + // 处理 VO 字段
  72 + List<AppProductSpuPageRespVO> voList = convertListForGetSpuList0(list);
  73 + for (int i = 0; i < list.size(); i++) {
  74 + ProductSpuDO spu = list.get(i);
  75 + AppProductSpuPageRespVO spuVO = voList.get(i);
  76 + spuVO.setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit()));
  77 + // 计算 vip 价格 TODO 芋艿:临时的逻辑,等 vip 支持后
  78 + spuVO.setVipPrice((int) (spuVO.getPrice() * 0.9));
  79 + }
  80 + return voList;
87 81 }
88 82 @Named("convertListForGetSpuList0")
89 83 List<AppProductSpuPageRespVO> convertListForGetSpuList0(List<ProductSpuDO> list);
... ...