diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java index 918b02c..73cf0ca 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java @@ -62,6 +62,8 @@ public class CategoryInfo extends TreeEntity { @ApiModelProperty(name = "介绍", value = "介绍") private String introduction; + + /** * 查询构造器 */ diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttrInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttrInfo.java index 131611e..660d062 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttrInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleAttrInfo.java @@ -55,7 +55,6 @@ public class RuleAttrInfo extends BaseEntity { @Excel(name = "规格值") @ApiModelProperty(name = "规格值", value = "规格值") private String attrValue; - /** * 查询构造器 */ diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java index 454cbad..2d34166 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java @@ -51,6 +51,10 @@ public class RuleInfo extends BaseEntity { @ApiModelProperty(name = "规格状态", value = "规格状态") private String status; + /** 规格状态 */ + @Excel(name = "规格描述") + @ApiModelProperty(name = "规格描述", value = "规格描述") + private String remark; /** * 查询构造器 */ diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java index bc9d602..14598ae 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java @@ -1,5 +1,6 @@ package com.muyu.product.domain.req; +import com.muyu.product.domain.model.RuleAttrAddModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -7,6 +8,9 @@ import lombok.AllArgsConstructor; import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.BaseEntity; +import org.springframework.beans.PropertyValues; + +import java.util.List; /** * 商品规格对象 rule_info @@ -30,5 +34,9 @@ public class RuleInfoEditReq extends BaseEntity { /** 规格状态 */ @ApiModelProperty(name = "规格状态", value = "规格状态") private String status; - + /** + * 规格子集 + */ + @ApiModelProperty(name = "规格子集", value = "规格子集") + private List ruleAttrList; } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoUpdResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoUpdResp.java new file mode 100644 index 0000000..a9099b7 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoUpdResp.java @@ -0,0 +1,38 @@ +package com.muyu.product.domain.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.common.core.annotation.Excel; +import com.muyu.product.domain.model.RuleAttrAddModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +/** + * 规格修改 + */ +public class RuleInfoUpdResp { + /** 主键 */ + private Long id; + + /** 规格名称 */ + private String name; + + /** 规格状态 */ + private String status; + /** 规格描述*/ + private String remark; + + /** + * 规格子集 + */ + private List ruleAttrList; +} 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 b6a9c73..3bcb4a4 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 @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse; import com.muyu.common.core.text.Convert; import com.muyu.product.domain.model.RuleInfoAddModel; import com.muyu.product.domain.resp.RuleInfoResp; +import com.muyu.product.domain.resp.RuleInfoUpdResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -77,8 +78,8 @@ public class RuleInfoController extends BaseController { @RequiresPermissions("product:rule:query") @GetMapping(value = "/{id}") @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) - public Result getInfo(@PathVariable("id") Long id) { - return Result.success(ruleInfoService.getById(id)); + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(ruleInfoService.getUpdById(id)); } /** @@ -100,7 +101,7 @@ public class RuleInfoController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改商品规格") public Result edit(@PathVariable Long id, @RequestBody RuleInfoEditReq ruleInfoEditReq) { - return toAjax(ruleInfoService.updateById(RuleInfo.editBuild(id,ruleInfoEditReq))); + return toAjax(ruleInfoService.updateGoodsSpecifications(id,ruleInfoEditReq)); } /** 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 54c5b08..4b207b7 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 @@ -6,8 +6,10 @@ 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.RuleInfoEditReq; import com.muyu.product.domain.req.RuleInfoQueryReq; import com.muyu.product.domain.resp.RuleInfoResp; +import com.muyu.product.domain.resp.RuleInfoUpdResp; /** * 商品规格Service接口 @@ -32,4 +34,20 @@ public interface RuleInfoService extends IService { public boolean save(RuleInfoAddModel ruleInfoAddModel); TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq); + + /** + * 回显 (吴彦祖) + * @param id + * @return + */ + RuleInfoUpdResp getUpdById(Long id); + + /** + * 修改(吴彦祖) + * @param id + * @param ruleInfoEditReq + * @return + */ + + boolean updateGoodsSpecifications(Long id, RuleInfoEditReq ruleInfoEditReq); } 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 0df7cf2..dc922e5 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 @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.function.Function; +import java.util.function.Supplier; import java.util.stream.Collectors; import com.github.pagehelper.PageHelper; @@ -15,8 +16,10 @@ 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.RuleInfoEditReq; import com.muyu.product.domain.req.RuleInfoQueryReq; import com.muyu.product.domain.resp.RuleInfoResp; +import com.muyu.product.domain.resp.RuleInfoUpdResp; import com.muyu.product.service.RuleAttrInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +54,7 @@ public class RuleInfoServiceImpl extends ServiceImpl LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjUtils.notNull(ruleInfo.getName())){ queryWrapper.like(RuleInfo::getName, ruleInfo.getName()); } @@ -79,7 +83,8 @@ public class RuleInfoServiceImpl extends ServiceImpl boolean save = this.save(ruleInfo); ruleAttrInfoService.saveBatch( ruleInfoAddModel.getRuleAttrList().stream() - .map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, ruleInfo::getId, SecurityUtils::getUsername)) + .map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, ruleInfo::getId, + SecurityUtils::getUsername)) .toList() ); return save; @@ -107,4 +112,56 @@ public class RuleInfoServiceImpl extends ServiceImpl .total(isPage ? new PageInfo<>(list).getTotal() : 0) .build(); } + + /** + * 商品规格 回显(wyz) + * @param id + * @return + */ + @Override + public RuleInfoUpdResp getUpdById(Long id) { + RuleInfo ruleInfo = this.getById(id); + //查询规格 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(RuleAttrInfo::getRuleId ,ruleInfo.getId()); + + + List infoList = this.ruleAttrInfoService.list(wrapper); + return RuleInfoUpdResp.builder() + .id(ruleInfo.getId()) + .name(ruleInfo.getName()) + .status(ruleInfo.getStatus()) + .ruleAttrList(infoList.stream().map(RuleAttrAddModel::infoBuild).toList()) + .remark(ruleInfo.getRemark()) + .build(); + } + + + /** + * 商品规格 修改(wyz) + * @return + */ + @Override + public boolean updateGoodsSpecifications(Long id, RuleInfoEditReq ruleInfoEditReq) { + + //修改 + boolean update = this.updateById(RuleInfo.editBuild(id, ruleInfoEditReq)); + if (update){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RuleAttrInfo::getRuleId,id); + //删除 + this.ruleAttrInfoService.remove(queryWrapper); + //添加 + ruleAttrInfoService.saveBatch( + ruleInfoEditReq.getRuleAttrList().stream() + .map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, + () -> id, + SecurityUtils::getUsername)) + .toList() + ); + } + + return update; + } + }