From 11633283ced417b0b881865d849a2f7cfbc790e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3=E5=B9=B3?= <14767849+liuehping@user.noreply.gitee.com> Date: Fri, 15 Nov 2024 12:08:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=81=E7=B1=BB=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/product/domain/CategoryInfo.java | 5 +- .../domain/req/CategoryInfoEditReq.java | 8 ++ .../domain/req/CategoryInfoUpdReq.java | 42 ++++++++++ .../product/domain/resp/CategoryInfoResp.java | 36 +++++++++ .../controller/CategoryInfoController.java | 10 ++- .../product/mapper/CategoryInfoMapper.java | 4 + .../mapper/UpdAsCategoryAttributeMapper.java | 17 ++++ .../product/service/CategoryInfoService.java | 11 +++ .../service/impl/CategoryInfoServiceImpl.java | 78 +++++++++++++++++++ .../service/impl/RuleInfoServiceImpl.java | 10 +-- .../mapper/product/CategoryInfoMapper.xml | 7 ++ .../product/UpdAsCategoryAttributeMapper.xml | 31 ++++++++ 12 files changed, 248 insertions(+), 11 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoUpdReq.java create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryInfoResp.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/UpdAsCategoryAttributeMapper.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/UpdAsCategoryAttributeMapper.xml 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..7336550 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.domain.req.CategoryInfoUpdReq; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -13,11 +14,9 @@ import io.swagger.annotations.*; import com.muyu.common.core.annotation.Excel; import com.muyu.product.domain.req.CategoryInfoQueryReq; import com.muyu.product.domain.req.CategoryInfoSaveReq; -import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.common.core.web.domain.TreeEntity; import java.util.Date; -import java.util.function.Function; import java.util.function.Supplier; /** @@ -92,7 +91,7 @@ public class CategoryInfo extends TreeEntity { /** * 修改构造器 */ - public static CategoryInfo editBuild(Long id, CategoryInfoEditReq categoryInfoEditReq){ + public static CategoryInfo editBuild(Long id, CategoryInfoUpdReq categoryInfoEditReq){ return CategoryInfo.builder() .id(id) .name(categoryInfoEditReq.getName()) diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java index 023446a..cd468c7 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java @@ -1,5 +1,6 @@ package com.muyu.product.domain.req; +import com.muyu.product.domain.model.CategoryInfoSaveModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -8,6 +9,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.TreeEntity; +import java.util.List; + /** * 品类信息对象 category_info * @@ -39,4 +42,9 @@ public class CategoryInfoEditReq extends TreeEntity { @ApiModelProperty(name = "介绍", value = "介绍") private String introduction; + /** + * 属性ID集合 + */ + private List attributeIdList; + } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoUpdReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoUpdReq.java new file mode 100644 index 0000000..384b62d --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoUpdReq.java @@ -0,0 +1,42 @@ +package com.muyu.product.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class CategoryInfoUpdReq { + + + /** 品类名称 */ + private String name; + + /** 图片 */ + private String image; + + /** 是否启用 */ + private String start; + + /** 介绍 */ + private String introduction; + + /** + * 商品属性组关联ID + */ + private List attributeGroupIdList; + /** + * 商品属性关联ID + */ + private List attributeIdList; + + /** + * 商品品牌组关联ID + */ + private List brandIdList; +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryInfoResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryInfoResp.java new file mode 100644 index 0000000..e4e0eb9 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryInfoResp.java @@ -0,0 +1,36 @@ +package com.muyu.product.domain.resp; + +import com.muyu.product.domain.model.CategoryInfoSaveModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class CategoryInfoResp { + /** 品类名称 */ + @ApiModelProperty(name = "品类名称", value = "品类名称", required = true) + private String name; + + /** 图片 */ + @ApiModelProperty(name = "图片", value = "图片", required = true) + private String image; + + /** 是否启用 */ + @ApiModelProperty(name = "是否启用", value = "是否启用", required = true) + private String start; + + /** 介绍 */ + @ApiModelProperty(name = "介绍", value = "介绍") + private String introduction; + + /** + * 属性ID集合 + */ + private List attributeIdList; + +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java index 55dbaef..49dc41b 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java @@ -9,6 +9,7 @@ import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.domain.req.CategoryInfoUpdReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import io.swagger.annotations.*; @@ -112,7 +113,8 @@ public class CategoryInfoController extends BaseController { @Log(title = "品类信息", businessType = BusinessType.UPDATE) @PutMapping("/{id}") @ApiOperation("修改品类信息") - public Result edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) { + public Result edit(@PathVariable Long id, @RequestBody CategoryInfoUpdReq categoryInfoEditReq) { + categoryInfoService.updAsCategoryAttribute(id, categoryInfoEditReq); return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoEditReq))); } @@ -124,8 +126,10 @@ public class CategoryInfoController extends BaseController { @DeleteMapping("/{ids}") @ApiOperation("删除品类信息") @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") - public Result remove(@PathVariable List ids) { - return toAjax(categoryInfoService.removeBatchByIds(ids)); + public Result remove(@PathVariable String ids) { + categoryInfoService.deleteByIds(ids); + return Result.success(); +// return toAjax(categoryInfoService.removeBatchByIds(ids)); } /** diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryInfoMapper.java index 6ed8f75..3218fce 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/CategoryInfoMapper.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.CategoryInfo; +import com.muyu.product.domain.resp.CategoryInfoResp; /** * 品类信息Mapper接口 @@ -12,4 +13,7 @@ import com.muyu.product.domain.CategoryInfo; */ public interface CategoryInfoMapper extends BaseMapper { + int findById(String ids); + + List getListByIds(String ids); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/UpdAsCategoryAttributeMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/UpdAsCategoryAttributeMapper.java new file mode 100644 index 0000000..5d00e34 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/UpdAsCategoryAttributeMapper.java @@ -0,0 +1,17 @@ +package com.muyu.product.mapper; + +import org.apache.ibatis.annotations.Param; + +public interface UpdAsCategoryAttributeMapper { + void delAsCategoryAttribute(Long id); + + void addAsCategoryAttribute(@Param("id") Long id, @Param("l") Long l); + + void delAsCategoryAttributeGroup(Long id); + + void addAsCategoryAttributeGroup(@Param("id") Long id, @Param("l") Long l); + + void delAsCategoryBrand(Long id); + + void addAsCategoryBrand(@Param("id") Long id, @Param("aLong") Long aLong); +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java index 9b99d9d..5277326 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java @@ -2,13 +2,17 @@ package com.muyu.product.service; import java.util.List; +import com.muyu.common.core.domain.Result; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.CategoryInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.domain.req.CategoryInfoEditReq; +import com.muyu.product.domain.req.CategoryInfoUpdReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; +import com.muyu.product.domain.resp.CategoryInfoResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; /** @@ -69,4 +73,11 @@ public interface CategoryInfoService extends IService { CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId); public List getCommon (Long categoryId, IService iService, IService bsiService); + + void deleteByIds(String ids); + + void updAsCategoryAttribute(Long id, CategoryInfoUpdReq categoryInfoEditReq); + + +// Result edit(Long id, CategoryInfoEditReq categoryInfoEditReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java index 2d6b4d5..5e30f13 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java @@ -4,15 +4,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.ObjUtils; +import com.muyu.common.core.utils.StringUtils; import com.muyu.product.domain.*; import com.muyu.product.domain.base.CategoryBase; import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.model.TemplateAttributeGroupModel; import com.muyu.product.domain.model.TemplateAttributeModel; +import com.muyu.product.domain.req.CategoryInfoEditReq; +import com.muyu.product.domain.req.CategoryInfoUpdReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; +import com.muyu.product.domain.resp.CategoryInfoResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import com.muyu.product.mapper.CategoryInfoMapper; +import com.muyu.product.mapper.UpdAsCategoryAttributeMapper; import com.muyu.product.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +64,11 @@ public class CategoryInfoServiceImpl extends ServiceImpl0){ + throw new RuntimeException("该商品存在子集,不能删除"); + } + //根据id查询查询集合 + List categoryInfoList = categoryInfoMapper.getListByIds(ids); + if (categoryInfoList.size()>0){ + //遍历 + for (CategoryInfo categoryInfo : categoryInfoList) { + //获取名称 + String name = categoryInfo.getName(); + //判断 + if (StringUtils.isNotEmpty(name)){ + throw new RuntimeException("目录中有商品,不能删除"); + } + } + } + + categoryInfoMapper.deleteById(ids); + + } + + @Override + public void updAsCategoryAttribute(Long id, CategoryInfoUpdReq categoryInfoEditReq) { + //删除 + updAsCategoryAttributeMapper.delAsCategoryAttribute(id); + //获取集合 + List attributeIdList = categoryInfoEditReq.getAttributeIdList(); + if (attributeIdList != null){ + //遍历 + for (Long l : attributeIdList) { + //添加 + updAsCategoryAttributeMapper.addAsCategoryAttribute(id,l); + } + }else { + throw new RuntimeException("attributeGroupIdList is null"); + } + + //删除 + updAsCategoryAttributeMapper.delAsCategoryAttributeGroup(id); + //获取集合 + List attributeGroupIdList = categoryInfoEditReq.getAttributeGroupIdList(); + //遍历 + for (Long l : attributeGroupIdList) { + updAsCategoryAttributeMapper.addAsCategoryAttributeGroup(id,l); + } + //删除 + updAsCategoryAttributeMapper.delAsCategoryBrand(id); + //获取集合 + List brandIdList = categoryInfoEditReq.getBrandIdList(); + //遍历 + for (Long aLong : brandIdList) { + updAsCategoryAttributeMapper.addAsCategoryBrand(id,aLong); + } + + } + + +// @Override +// public Result edit(Long id, CategoryInfoEditReq categoryInfoEditReq) { +// return null; +// } + /** * 通过品类ID获取父级以上的属性、属性组、品牌集合 * 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 86bf8c0..aaaaade 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 @@ -148,23 +148,23 @@ public class RuleInfoServiceImpl extends ServiceImpl i //添加规格详情表 List ruleAttrList = ruleInfoEditReq.getRuleAttrList(); //遍历 + String value=""; for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) { //获取集合 List valueList = ruleAttrAddModel.getValueList(); //定义值 - String value=""; - String valueData=null; + //遍历 for (String s : valueList) { System.out.println(s); - valueData=value+","+s; + value+=","+s; } - System.out.println(valueData); //截取 - String substring = valueData.substring(1); + String substring = value.substring(1); System.out.println(substring); //添加 ruleAttrInfoMapper.addRuleAttrModel(id,ruleAttrAddModel.getName(),substring); + value=""; } // ruleAttrInfoService.delete(id); // List attributeInfoList = ruleInfoEditReq.getAttributeInfoList(); diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryInfoMapper.xml index 99be65b..e177378 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/CategoryInfoMapper.xml @@ -21,4 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, name, image, parent_id, start, introduction, remark, create_by, create_time, update_by, update_time from category_info + + + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/UpdAsCategoryAttributeMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/UpdAsCategoryAttributeMapper.xml new file mode 100644 index 0000000..f816970 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/UpdAsCategoryAttributeMapper.xml @@ -0,0 +1,31 @@ + + + + + insert into as_category_attribute(category_id, attribute_id) values (#{id}, #{l}) + + + insert into as_category_attribute_group(category_id, attribute_group_id) values (#{id}, #{l}) + + + insert into as_category_brand(category_id, brand_id) values (#{id}, #{aLong}) + + + + delete + from as_category_attribute + where category_id = #{id} + + + delete + from as_category_attribute_group + where category_id = #{id} + + + delete + from as_category_brand + where category_id = #{id} + + \ No newline at end of file