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..d5ba1d5 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 @@ -56,6 +56,7 @@ public class RuleAttrInfo extends BaseEntity { @ApiModelProperty(name = "规格值", value = "规格值") 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 e293352..6fc512f 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 @@ -29,6 +29,7 @@ public class RuleAttrAddModel extends BaseEntity { * 规格属性名称 */ private String name; + private String attrValue; /** * 规格属性值集合 diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleAttrInfoReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleAttrInfoReq.java new file mode 100644 index 0000000..a750cf1 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleAttrInfoReq.java @@ -0,0 +1,25 @@ +package com.muyu.product.domain.req; + +import com.muyu.product.domain.model.RuleAttrAddModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RuleAttrInfoReq { + + /** 规格名称 */ + private String name; + + /** 规格状态 */ + private String status; + + /** + * 规格属性集合 + */ + private List ruleAttrList; +} 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..b34a352 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,7 @@ package com.muyu.product.domain.req; +import com.muyu.product.domain.AttributeInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -8,6 +10,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.BaseEntity; +import java.util.List; + /** * 商品规格对象 rule_info * @@ -30,5 +34,5 @@ public class RuleInfoEditReq extends BaseEntity { /** 规格状态 */ @ApiModelProperty(name = "规格状态", value = "规格状态") private String status; - + private List ruleAttrList; } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleGroupUpdResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleGroupUpdResp.java new file mode 100644 index 0000000..ce08353 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleGroupUpdResp.java @@ -0,0 +1,31 @@ +package com.muyu.product.domain.resp; + +import com.muyu.product.domain.AttributeInfo; +import com.muyu.product.domain.RuleAttrInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RuleGroupUpdResp { + private Long id; + + /** 规格名称 */ + private String name; + + /** 规格状态 */ + private String status; + + + /** + * 规格属性集合 + */ + 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..113f83b 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 @@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse; import com.muyu.common.core.text.Convert; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.RuleAttrInfoReq; +import com.muyu.product.domain.resp.RuleGroupUpdResp; import com.muyu.product.domain.resp.RuleInfoResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; @@ -77,8 +79,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)); } /** @@ -90,6 +92,7 @@ public class RuleInfoController extends BaseController { @ApiOperation("新增商品规格") public Result add(@RequestBody RuleInfoSaveReq ruleInfoSaveReq) { return toAjax(ruleInfoService.save(RuleInfoAddModel.saveReqBuild(ruleInfoSaveReq))); + } /** @@ -99,8 +102,10 @@ public class RuleInfoController extends BaseController { @Log(title = "商品规格", businessType = BusinessType.UPDATE) @PutMapping("/{id}") @ApiOperation("修改商品规格") - public Result edit(@PathVariable Long id, @RequestBody RuleInfoEditReq ruleInfoEditReq) { - return toAjax(ruleInfoService.updateById(RuleInfo.editBuild(id,ruleInfoEditReq))); + public Result edit(@PathVariable Long id, @RequestBody RuleAttrInfoReq ruleInfoEditReq) { +// return toAjax(ruleInfoService.updateById(RuleInfo.editBuild(id,ruleInfoEditReq))); + ruleInfoService.edit(id,ruleInfoEditReq); + return Result.success(); } /** diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleAttrInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleAttrInfoMapper.java index b51378c..b27d6be 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleAttrInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleAttrInfoMapper.java @@ -3,6 +3,7 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.RuleAttrInfo; +import org.apache.ibatis.annotations.Param; /** * 规格详情Mapper接口 @@ -12,4 +13,7 @@ import com.muyu.product.domain.RuleAttrInfo; */ public interface RuleAttrInfoMapper extends BaseMapper { + void shanchu(Long id); + + void insertBatch(@Param("id") Long id, @Param("id1") Long id1); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoMapper.java index 497a29a..aa913f7 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoMapper.java @@ -3,6 +3,10 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.RuleInfo; +import com.muyu.product.domain.req.RuleAttrInfoReq; +import com.muyu.product.domain.req.RuleInfoEditReq; +import com.muyu.product.domain.resp.RuleInfoResp; +import org.apache.ibatis.annotations.Param; /** * 商品规格Mapper接口 @@ -12,4 +16,11 @@ import com.muyu.product.domain.RuleInfo; */ public interface RuleInfoMapper extends BaseMapper { + RuleInfoResp getRuleById(Long id); + + void updRule(@Param("id") Long id, @Param("ruleInfoEditReq") RuleAttrInfoReq ruleInfoEditReq); + + void deleteRule(Long id); + + void addRuleAttrModel(@Param("id") Long id, @Param("name") String name, @Param("valueData") String substring); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java index 2623202..e9146f0 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java @@ -3,6 +3,7 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.RuleAttrInfo; import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.ibatis.annotations.Param; /** * 规格详情Service接口 @@ -25,4 +26,8 @@ public interface RuleAttrInfoService extends IService { * @return 规格详情集合 */ List getInfoByRuleId (Long ruleId); + + void delete(Long id); + + void insertBatch( Long id, Long id1); } 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..0cccb2c 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 @@ -2,11 +2,16 @@ package com.muyu.product.service; import java.util.List; +import com.muyu.common.core.domain.Result; 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.RuleAttrInfoReq; +import com.muyu.product.domain.req.RuleInfoEditReq; import com.muyu.product.domain.req.RuleInfoQueryReq; +import com.muyu.product.domain.req.RuleInfoSaveReq; +import com.muyu.product.domain.resp.RuleGroupUpdResp; import com.muyu.product.domain.resp.RuleInfoResp; /** @@ -32,4 +37,9 @@ public interface RuleInfoService extends IService { public boolean save(RuleInfoAddModel ruleInfoAddModel); TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq); + + RuleInfoResp getUpdById(Long id); + + + void edit(Long id, RuleAttrInfoReq ruleInfoEditReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java index 4b7b712..89b4723 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java @@ -4,6 +4,7 @@ import java.util.List; import com.muyu.common.core.utils.ObjUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.muyu.product.mapper.RuleAttrInfoMapper; import com.muyu.product.domain.RuleAttrInfo; @@ -21,6 +22,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @Service public class RuleAttrInfoServiceImpl extends ServiceImpl implements RuleAttrInfoService { + @Autowired + private RuleAttrInfoMapper ruleAttrInfoMapper; /** * 查询规格详情列表 * @@ -64,4 +67,14 @@ public class RuleAttrInfoServiceImpl extends ServiceImpl implements RuleInfoService { +public class RuleInfoServiceImpl extends ServiceImpl implements RuleInfoService { @Autowired private RuleAttrInfoService ruleAttrInfoService; + @Autowired + private RuleInfoMapper ruleAttrInfoMapper; /** * 查询商品规格列表 @@ -51,18 +57,14 @@ public class RuleInfoServiceImpl extends ServiceImpl LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (ObjUtils.notNull(ruleInfo.getName())){ + if (ObjUtils.notNull(ruleInfo.getName())) { queryWrapper.like(RuleInfo::getName, ruleInfo.getName()); } - if (ObjUtils.notNull(ruleInfo.getStatus())){ + if (ObjUtils.notNull(ruleInfo.getStatus())) { queryWrapper.eq(RuleInfo::getStatus, ruleInfo.getStatus()); } - - - - return list(queryWrapper); } @@ -70,11 +72,10 @@ public class RuleInfoServiceImpl extends ServiceImpl * 添加规格信息 * * @param ruleInfoAddModel 规格添加模型 - * * @return 时候成功 */ @Override - public boolean save (RuleInfoAddModel ruleInfoAddModel) { + public boolean save(RuleInfoAddModel ruleInfoAddModel) { RuleInfo ruleInfo = RuleInfo.addModelBuild(ruleInfoAddModel, SecurityUtils::getUsername); boolean save = this.save(ruleInfo); ruleAttrInfoService.saveBatch( @@ -87,18 +88,19 @@ public class RuleInfoServiceImpl extends ServiceImpl /** * 查询规格信息 + * * @param ruleInfoQueryReq 规格查询 * @return 规格信息 */ @Override - public TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq) { + 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(); - })) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RuleAttrInfo::getRuleId, ruleId); + return ruleAttrInfoService.list(queryWrapper).stream().map(RuleAttrAddModel::infoBuild).toList(); + })) .toList(); boolean isPage = ruleInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(ruleInfoQueryReq.getParams().get("isPage"), true); @@ -107,4 +109,68 @@ public class RuleInfoServiceImpl extends ServiceImpl .total(isPage ? new PageInfo<>(list).getTotal() : 0) .build(); } + + @Override + public RuleInfoResp getUpdById(Long id) { + RuleInfoResp getRuleById = ruleAttrInfoMapper.getRuleById(id); + List ruleAttrList = getRuleById.getRuleAttrList(); + for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) { + String attrValue = ruleAttrAddModel.getAttrValue(); + String[] split = attrValue.split(","); + ruleAttrAddModel.setValueList(List.of(split)); + } + return getRuleById; + +// RuleInfo ruleInfo = this.getById(id); +// +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(RuleAttrInfo::getRuleId,id); +// List ruleAttrInfoList = ruleAttrInfoService.list(queryWrapper); +// List longList = ruleAttrInfoList.stream() +// .map(RuleAttrInfo::getRuleId) +// .toList(); +// List ruleAttrInfos = ruleAttrInfoService.listByIds(longList); +// return RuleGroupUpdResp.builder() +// .name(ruleInfo.getName()) +// .id(ruleInfo.getId()) +// .status(ruleInfo.getStatus()) +// .ruleAttrList(ruleAttrInfos) +// .build(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void edit(Long id, RuleAttrInfoReq ruleInfoEditReq) { + //修改商品规格表 + ruleAttrInfoMapper.updRule(id,ruleInfoEditReq); + //删除中间表 + ruleAttrInfoMapper.deleteRule(id); + //添加规格详情表 + List ruleAttrList = ruleInfoEditReq.getRuleAttrList(); + //遍历 + for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) { + //获取集合 + List valueList = ruleAttrAddModel.getValueList(); + //定义值 + String value=""; + String valueData=null; + //遍历 + for (String s : valueList) { + System.out.println(s); + valueData=value+","+s; + } + System.out.println(valueData); + //截取 + String substring = valueData.substring(1); + System.out.println(substring); + //添加 + ruleAttrInfoMapper.addRuleAttrModel(id,ruleAttrAddModel.getName(),substring); + } +// ruleAttrInfoService.delete(id); +// List attributeInfoList = ruleInfoEditReq.getAttributeInfoList(); +// for (AttributeInfo attributeInfo : attributeInfoList) { +// ruleAttrInfoService.insertBatch(id, attributeInfo.getId()); +// } + + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleAttrInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleAttrInfoMapper.xml index 3186330..b5a86c4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleAttrInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleAttrInfoMapper.xml @@ -19,4 +19,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, rule_id, name, attr_value, remark, create_by, create_time, update_by, update_time from rule_attr_info + + insert into rule_attr_info(id,rule_id) values (#{id},#{id1}) + + + delete from rule_attr_info where id =#{id} + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoMapper.xml index 70724b9..02267fd 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoMapper.xml @@ -15,7 +15,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + select id, name, status, remark, create_by, create_time, update_by, update_time from rule_info + + INSERT INTO rule_attr_info ( `rule_id`, `name`, `attr_value`,create_by, `create_time`) + VALUES ( #{id},#{name}, #{valueData},'admin',now()); + + + UPDATE `rule_info` + SET `name` = #{ruleInfoEditReq.name}, + `status` = #{ruleInfoEditReq.status}, + `update_time` = now() + WHERE + `id` = #{id} + + + delete from rule_attr_info where rule_id=#{id} + +