From cbfe72810ebd99c2843956c5260aa7ba8d380f1a Mon Sep 17 00:00:00 2001 From: Saisai Liu <1374434128@qq.com> Date: Sun, 10 Mar 2024 11:13:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E6=A0=BC=E5=89=8D=E5=8F=B0=E5=9B=9E?= =?UTF-8?q?=E6=98=BE=EF=BC=8C=E5=8D=95=E8=A7=84=E6=A0=BC=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/muyu/product/domain/Rule.java | 2 +- .../com/muyu/product/domain/RuleAttr.java | 2 ++ .../domain/model/RuleAttrAddModel.java | 23 ++++++++---- .../product/domain/model/RuleAttrFindId.java | 26 ++++++++++++++ .../product/domain/resp/RuleAttrResp.java | 7 ++-- .../product/controller/RuleController.java | 1 + .../muyu/product/service/IRuleService.java | 2 +- .../product/service/impl/RuleServiceImpl.java | 35 ++++++++++--------- .../resources/mapper/product/RuleMapper.xml | 2 +- 9 files changed, 71 insertions(+), 29 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrFindId.java diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/Rule.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/Rule.java index 7d0612d..d8fe809 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/Rule.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/Rule.java @@ -42,7 +42,7 @@ public class Rule extends BaseEntity public static Rule saveBuilder(RuleAttrReq req, Supplier username){ return Rule.builder() .name(req.getName()) - .states(req.getStates()) + .states(req.getStates()==null? null: req.getStates()) .createBy(username.get()) .createTime(new Date()) .build(); diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttr.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttr.java index 35edf1a..0890fdb 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttr.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttr.java @@ -42,6 +42,8 @@ public class RuleAttr extends BaseEntity { */ @Excel(name = "规格属性") private String attrName; + + private String attrValue; 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 3d7995a..553fd07 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 @@ -9,8 +9,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * @ClassName RuleAttrAddModel @@ -27,10 +26,20 @@ public class RuleAttrAddModel extends BaseEntity { private String attrName; private List valueList; - public static RuleAttrAddModel saveBuilder(RuleAttr ruleAttr) { - return RuleAttrAddModel.builder() - .attrName(ruleAttr.getAttrName()) - .valueList(Arrays.stream(ruleAttr.getAttrValue().split(",")).toList()) - .build(); + public static List saveBuilder(List rules) { + HashMap> stringListHashMap = new HashMap<>(); + for (RuleAttr rule : rules) { + if (stringListHashMap.containsKey(rule.getAttrName())){ + stringListHashMap.get(rule.getAttrName()).add(rule.getAttrValue()); + }else { + ArrayList strings = new ArrayList<>(); + strings.add(rule.getAttrValue()); + stringListHashMap.put(rule.getAttrName(),strings); + } + } + return stringListHashMap.keySet().stream() + .map(key -> new RuleAttrAddModel + (key, stringListHashMap.get(key))) + .toList(); } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrFindId.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrFindId.java new file mode 100644 index 0000000..2b21ccf --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/RuleAttrFindId.java @@ -0,0 +1,26 @@ +package com.muyu.product.domain.model; + +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName RuleAttrFindId + * @Description 描述 + * @Author SaiSai.Liu + * @Date 2024/3/9/0009 16:46 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class RuleAttrFindId extends BaseEntity { + private Long id; + private String ruleName; + private String ruleValue; + + + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleAttrResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleAttrResp.java index 728bff8..160adc8 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleAttrResp.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleAttrResp.java @@ -2,6 +2,7 @@ package com.muyu.product.domain.resp; import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.product.domain.Rule; +import com.muyu.product.domain.RuleAttr; import com.muyu.product.domain.model.RuleAttrAddModel; import lombok.AllArgsConstructor; import lombok.Data; @@ -25,13 +26,15 @@ public class RuleAttrResp extends BaseEntity { private Long id; private String name; private String states; - private List ruleAttrAddModels; + private List ruleAttrList; + + public static RuleAttrResp saveBuilder(Rule rule, Function> ruleAttrs){ return RuleAttrResp.builder() .id(rule.getId()) .name(rule.getName()) - .ruleAttrAddModels(ruleAttrs.apply(rule.getId())) + .ruleAttrList(ruleAttrs==null? null : ruleAttrs.apply(rule.getId())) .states(rule.getStates()) .build(); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleController.java index bae82dc..988fcbb 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleController.java @@ -89,6 +89,7 @@ public class RuleController extends BaseController @GetMapping(value = "/{id}") public Result getInfo(@PathVariable("id") Long id) { + return success(ruleService.selectRuleById(id)); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/IRuleService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/IRuleService.java index ec44f19..8fc36e3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/IRuleService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/IRuleService.java @@ -22,7 +22,7 @@ public interface IRuleService extends IService * @param id 规格主键 * @return 规格 */ - Rule selectRuleById(Long id); + RuleAttrResp selectRuleById(Long id); /** * 查询规格列表 diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleServiceImpl.java index 1bb1c8d..25639ce 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.function.Function; /** * 规格Service业务层处理 @@ -43,8 +44,17 @@ public class RuleServiceImpl extends ServiceImpl implements IR * @return 规格 */ @Override - public Rule selectRuleById(Long id) { - return ruleMapper.selectRuleById(id); + public RuleAttrResp selectRuleById(Long id) { + Rule byId = this.getById(id); + return RuleAttrResp.saveBuilder(byId, new Function>() { + @Override + public List apply(Long id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + List list = ruleAttrService.list(wrapper.eq(RuleAttr::getRuleId, id)); + return RuleAttrAddModel.saveBuilder(list); + } + }); +// return RuleAttrResp.saveBuilder(ruleMapper.selectRuleById(id), null); } /** @@ -121,23 +131,14 @@ public class RuleServiceImpl extends ServiceImpl implements IR @Override public List selectRuleAttrList(RuleAttrReq ruleAttrReq) { - //规格集合 List rules = this.selectRuleList(Rule.saveBuilder(ruleAttrReq, SecurityUtils::getUsername)); - //规格主键集合 - List ruleIdList = rules.stream().map(Rule::getId).toList(); - - //创建响应值容器 - List ruleAttrResps = new ArrayList<>(); - //根据编号转换响应对象 - - ruleAttrResps = rules.stream().map(rule -> - RuleAttrResp.saveBuilder(rule, id -> { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - List list = ruleAttrService.list(wrapper.eq(RuleAttr::getRuleId, rule.getId())); - return list.stream().map(RuleAttrAddModel::saveBuilder).toList(); - }) + return rules.stream().map(rule -> + RuleAttrResp.saveBuilder(rule, id -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + List list = ruleAttrService.list(wrapper.eq(RuleAttr::getRuleId, rule.getId())); + return RuleAttrAddModel.saveBuilder(list); + }) ).toList(); - return ruleAttrResps; } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleMapper.xml index ed175d1..cf48e61 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleMapper.xml @@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, name, remark, create_by, create_time, update_by, update_time from rule + select id, name,states, remark, create_by, create_time, update_by, update_time from rule