diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrAddModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrAddModel.java index 34b20e0..e293352 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrAddModel.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrAddModel.java @@ -1,6 +1,7 @@ package com.muyu.product.domain.model; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.product.domain.RuleAttrInfo; import io.swagger.annotations.ApiModel; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,6 +9,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.util.Arrays; import java.util.List; @@ -32,4 +34,11 @@ public class RuleAttrAddModel extends BaseEntity { * 规格属性值集合 */ private List valueList; + + public static RuleAttrAddModel infoBuild (RuleAttrInfo ruleAttrInfo) { + return RuleAttrAddModel.builder() + .name(ruleAttrInfo.getName()) + .valueList(Arrays.stream(ruleAttrInfo.getAttrValue().split(",")).toList()) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java new file mode 100644 index 0000000..8596383 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java @@ -0,0 +1,48 @@ +package com.muyu.product.domain.resp; + +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.product.domain.RuleInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; +import java.util.function.Function; + +/** + * @author DongZl + * @description: 规格返回结果集 + * @Date 2024-3-4 下午 04:08 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RuleInfoResp extends BaseEntity { + + private Long id; + + /** 规格名称 */ + private String name; + + /** 规格状态 */ + private String status; + + /** + * 规格属性集合 + */ + private List ruleAttrList; + + public static RuleInfoResp infoBuild (RuleInfo ruleInfo, Function> ruleAttrList) { + return RuleInfoResp.builder() + .id(ruleInfo.getId()) + .name(ruleInfo.getName()) + .status(ruleInfo.getStatus()) + .ruleAttrList(ruleAttrList.apply(ruleInfo.getId())) + .build(); + } +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java index 65656d4..b30039f 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.resp.RuleInfoResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -46,10 +47,10 @@ public class RuleInfoController extends BaseController { @ApiOperation("获取商品规格列表") @RequiresPermissions("product:rule:list") @GetMapping("/list") - public Result> list(RuleInfoQueryReq ruleInfoQueryReq) { + public Result> list(RuleInfoQueryReq ruleInfoQueryReq) { startPage(); - List list = ruleInfoService.list(RuleInfo.queryBuild(ruleInfoQueryReq)); - return getDataTable(list); + TableDataInfo tableDataInfo = ruleInfoService.queryList(ruleInfoQueryReq); + return Result.success(tableDataInfo); } /** diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java index 42d449a..54c5b08 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java @@ -1,9 +1,13 @@ package com.muyu.product.service; import java.util.List; + +import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.product.domain.RuleInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.RuleInfoQueryReq; +import com.muyu.product.domain.resp.RuleInfoResp; /** * 商品规格Service接口 @@ -26,4 +30,6 @@ public interface RuleInfoService extends IService { * @return 时候成功 */ public boolean save(RuleInfoAddModel ruleInfoAddModel); + + TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java index b978f5c..38efbb0 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java @@ -3,13 +3,19 @@ package com.muyu.product.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.function.Function; import java.util.stream.Collectors; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.muyu.common.core.utils.ObjUtils; +import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.product.domain.RuleAttrInfo; import com.muyu.product.domain.model.RuleAttrAddModel; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.RuleInfoQueryReq; +import com.muyu.product.domain.resp.RuleInfoResp; import com.muyu.product.service.RuleAttrInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -77,4 +83,20 @@ public class RuleInfoServiceImpl extends ServiceImpl ); return save; } + + @Override + public TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq) { + List list = this.list(RuleInfo.queryBuild(ruleInfoQueryReq)); + List ruleInfoRespList = list.stream() + .map(ruleInfo -> RuleInfoResp.infoBuild(ruleInfo, ruleId -> { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RuleAttrInfo::getRuleId, ruleId); + return ruleAttrInfoService.list(queryWrapper).stream().map(RuleAttrAddModel::infoBuild).toList(); + })) + .toList(); + return TableDataInfo.builder() + .rows(ruleInfoRespList) + .total(new PageInfo<>(list).getTotal()) + .build(); + } }