From e6c30b55743d5ccc7c36c8d5a3312a59bfc6f118 Mon Sep 17 00:00:00 2001 From: wuchang2 <3101459313@qq.com> Date: Fri, 15 Nov 2024 11:57:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E6=9C=88=E6=A1=86=E6=9E=B61?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/product/domain/AttributeGroup.java | 3 +- .../com/muyu/product/domain/CategoryInfo.java | 11 +- .../com/muyu/product/domain/RuleInfo.java | 6 +- .../muyu/product/domain/RuleInfoUpdRes.java | 33 ++++++ .../domain/req/AttributeGroupEditReq.java | 4 + .../domain/req/CategoryInfoUpdReq.java | 50 ++++++++ .../product/domain/req/RuleInfoEditReq.java | 3 + .../domain/resp/AttributeGroupUpdResp.java | 26 ++++ .../controller/AttributeGroupController.java | 7 +- .../controller/CategoryInfoController.java | 15 ++- .../controller/RuleInfoController.java | 10 +- .../AsCategoryAttributeGroupMapper.java | 4 + .../mapper/AsCategoryAttributeMapper.java | 6 +- .../product/mapper/AsCategoryBrandMapper.java | 4 + .../mapper/AttributeGroupUpdMapper.java | 22 ++++ .../product/mapper/CategoryInfoMapper.java | 9 ++ .../product/mapper/RuleInfoUpdMapper.java | 12 ++ .../service/AttributeGroupService.java | 24 ++++ .../product/service/CategoryInfoService.java | 9 ++ .../muyu/product/service/RuleInfoService.java | 6 + .../impl/AttributeGroupServiceImpl.java | 43 +++++++ .../service/impl/CategoryInfoServiceImpl.java | 99 ++++++++++++++++ .../service/impl/RuleInfoServiceImpl.java | 32 +++++ .../AsCategoryAttributeGroupMapper.xml | 4 + .../product/AsCategoryAttributeMapper.xml | 4 + .../mapper/product/AsCategoryBrandMapper.xml | 4 + .../product/AttributeGroupUpdMapper.xml | 12 ++ .../mapper/product/CategoryInfoMapper.xml | 7 ++ .../mapper/product/RuleInfoUpdMapper.xml | 13 ++ .../system/controller/ProductController.java | 112 ++++++++++++++++++ .../java/com/muyu/system/domain/Product.java | 91 ++++++++++++++ .../system/domain/req/ProductEditReq.java | 39 ++++++ .../system/domain/req/ProductQueryReq.java | 39 ++++++ .../system/domain/req/ProductSaveReq.java | 47 ++++++++ .../com/muyu/system/mapper/ProductMapper.java | 16 +++ .../muyu/system/service/ProductService.java | 23 ++++ .../service/impl/ProductServiceImpl.java | 49 ++++++++ .../resources/mapper/system/ProductMapper.xml | 17 +++ 38 files changed, 891 insertions(+), 24 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfoUpdRes.java 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-server/src/main/java/com/muyu/product/mapper/AttributeGroupUpdMapper.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoUpdMapper.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AttributeGroupUpdMapper.xml create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoUpdMapper.xml create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/ProductController.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/Product.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductEditReq.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductQueryReq.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductSaveReq.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/ProductMapper.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/service/ProductService.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/ProductServiceImpl.java create mode 100644 muyu-modules/muyu-system/src/main/resources/mapper/system/ProductMapper.xml diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java index e9450e2..1afa302 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java @@ -1,10 +1,9 @@ package com.muyu.product.domain; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.product.domain.resp.AttributeGroupUpdResp; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; 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..ad7ab88 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; @@ -92,13 +93,13 @@ public class CategoryInfo extends TreeEntity { /** * 修改构造器 */ - public static CategoryInfo editBuild(Long id, CategoryInfoEditReq categoryInfoEditReq){ + public static CategoryInfo editBuild(Long id, CategoryInfoUpdReq categoryInfoUpdReq){ return CategoryInfo.builder() .id(id) - .name(categoryInfoEditReq.getName()) - .image(categoryInfoEditReq.getImage()) - .start(categoryInfoEditReq.getStart()) - .introduction(categoryInfoEditReq.getIntroduction()) + .name(categoryInfoUpdReq.getName()) + .image(categoryInfoUpdReq.getImage()) + .start(categoryInfoUpdReq.getStart()) + .introduction(categoryInfoUpdReq.getIntroduction()) .build(); } 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..858e035 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 @@ -74,11 +74,11 @@ public class RuleInfo extends BaseEntity { /** * 修改构造器 */ - public static RuleInfo editBuild(Long id, RuleInfoEditReq ruleInfoEditReq){ + public static RuleInfo editBuild(Long id, RuleInfoUpdRes ruleInfoUpdRes){ return RuleInfo.builder() .id(id) - .name(ruleInfoEditReq.getName()) - .status(ruleInfoEditReq.getStatus()) + .name(ruleInfoUpdRes.getName()) + .status(ruleInfoUpdRes.getStatus()) .build(); } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfoUpdRes.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfoUpdRes.java new file mode 100644 index 0000000..7f97a0b --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfoUpdRes.java @@ -0,0 +1,33 @@ +package com.muyu.product.domain; + +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.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class RuleInfoUpdRes { + /** 主键 */ + + private Long id; + + /** 规格名称 */ + + private String name; + + /** 规格状态 */ + + private String status; + private String remark; + + private List ruleAttrList; +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/AttributeGroupEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/AttributeGroupEditReq.java index 35a1b47..276cc99 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/AttributeGroupEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/AttributeGroupEditReq.java @@ -1,6 +1,8 @@ package com.muyu.product.domain.req; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -34,4 +36,6 @@ public class AttributeGroupEditReq extends BaseEntity { private String states; + private List attributeList; + } 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..0c88df1 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoUpdReq.java @@ -0,0 +1,50 @@ +package com.muyu.product.domain.req; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class CategoryInfoUpdReq { + /** 主键 */ + + private Long id; + + /** 品类名称 */ + + + 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/req/RuleInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java index bc9d602..c5657fc 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; @@ -8,6 +9,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.BaseEntity; +import java.util.List; + /** * 商品规格对象 rule_info * diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/AttributeGroupUpdResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/AttributeGroupUpdResp.java index 98673e7..d764f64 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/AttributeGroupUpdResp.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/AttributeGroupUpdResp.java @@ -1,4 +1,30 @@ package com.muyu.product.domain.resp; +import com.muyu.product.domain.AttributeInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor public class AttributeGroupUpdResp { + /** 属性组编号 */ + private Long id; + + /** 组名称 */ + private String name; + + /** 状态 */ + private String states; + + /** + * 属性集合 + */ + private List attributeList; } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java index bd489a0..de747fb 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.muyu.product.domain.model.AttributeGroupSaveModel; import com.muyu.product.domain.resp.AttributeGroupPageResp; +import com.muyu.product.domain.resp.AttributeGroupUpdResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -74,8 +75,8 @@ public class AttributeGroupController extends BaseController { @RequiresPermissions("product:attributeGroup: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(attributeGroupService.getById(id)); + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(attributeGroupService.getUpdById(id)); } /** @@ -99,7 +100,9 @@ public class AttributeGroupController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改属性组") public Result edit(@PathVariable Long id, @RequestBody AttributeGroupEditReq attributeGroupEditReq) { + attributeGroupService.updAs(id,attributeGroupEditReq); return toAjax(attributeGroupService.updateById(AttributeGroup.editBuild(id,attributeGroupEditReq))); + } /** 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..35d6fcf 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.*; @@ -77,8 +78,8 @@ public class CategoryInfoController extends BaseController { @RequiresPermissions("product:category: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(categoryInfoService.getById(id)); + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(categoryInfoService.getUpdById(id)); } /** @@ -112,8 +113,9 @@ public class CategoryInfoController extends BaseController { @Log(title = "品类信息", businessType = BusinessType.UPDATE) @PutMapping("/{id}") @ApiOperation("修改品类信息") - public Result edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) { - return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoEditReq))); + public Result edit(@PathVariable Long id, @RequestBody CategoryInfoUpdReq categoryInfoUpdReq) { + Boolean b= categoryInfoService.updId(id,categoryInfoUpdReq); + return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoUpdReq))); } /** @@ -124,8 +126,9 @@ 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 Long ids) { + Result result = categoryInfoService.del(ids); + return result; } /** 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..a415e9c 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.common.core.text.Convert; +import com.muyu.product.domain.RuleInfoUpdRes; import com.muyu.product.domain.model.RuleInfoAddModel; import com.muyu.product.domain.resp.RuleInfoResp; import io.swagger.annotations.*; @@ -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.getByRuleId(id)); } /** @@ -99,8 +100,9 @@ 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 RuleInfoUpdRes ruleInfoUpdRes) { + ruleInfoService.updRuleId(id,ruleInfoUpdRes); + return toAjax(ruleInfoService.updateById(RuleInfo.editBuild(id,ruleInfoUpdRes))); } /** diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeGroupMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeGroupMapper.java index b09e788..8dd381f 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeGroupMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeGroupMapper.java @@ -3,6 +3,8 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.AsCategoryAttributeGroup; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 品类属性组中间Mapper接口 @@ -10,6 +12,8 @@ import com.muyu.product.domain.AsCategoryAttributeGroup; * @author DongZeLiang * @date 2024-02-27 */ +@Mapper public interface AsCategoryAttributeGroupMapper extends BaseMapper { + void addAttributeGroup(@Param("id") Long id, @Param("attributeGroupId") Long attributeGroupId); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeMapper.java index 66c2e87..2d1b5d4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryAttributeMapper.java @@ -1,8 +1,9 @@ package com.muyu.product.mapper; -import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.AsCategoryAttribute; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 品类属性中间Mapper接口 @@ -10,6 +11,7 @@ import com.muyu.product.domain.AsCategoryAttribute; * @author DongZeLiang * @date 2024-02-27 */ +@Mapper public interface AsCategoryAttributeMapper extends BaseMapper { - + void addAttribute(@Param("id") Long id, @Param("attributeId") Long attributeId); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryBrandMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryBrandMapper.java index 3e8c164..965133e 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryBrandMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AsCategoryBrandMapper.java @@ -3,6 +3,8 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.AsCategoryBrand; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 品类品牌中间Mapper接口 @@ -10,6 +12,8 @@ import com.muyu.product.domain.AsCategoryBrand; * @author DongZeLiang * @date 2024-02-27 */ +@Mapper public interface AsCategoryBrandMapper extends BaseMapper { + void addGoryBrand(@Param("id") Long id, @Param("brandId") Long brandId); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AttributeGroupUpdMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AttributeGroupUpdMapper.java new file mode 100644 index 0000000..500d9e7 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/AttributeGroupUpdMapper.java @@ -0,0 +1,22 @@ +package com.muyu.product.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface AttributeGroupUpdMapper { + + /** + * 删除中间表 记录 + * @param id + * @return + */ + Integer del(@Param("id") Long id); + + /** + * 添加中间表 + * @param id + * @param ids + */ + void attriAddGroup(@Param("id") Long id, @Param("ids") Long 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..94bc4df 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,10 @@ 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.ProjectInfo; +import com.muyu.product.domain.req.CategoryInfoUpdReq; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 品类信息Mapper接口 @@ -10,6 +14,11 @@ import com.muyu.product.domain.CategoryInfo; * @author DongZeLiang * @date 2024-02-27 */ +@Mapper public interface CategoryInfoMapper extends BaseMapper { + Boolean updById(@Param("id") Long id, @Param("categoryInfoUpdReq") CategoryInfoUpdReq categoryInfoUpdReq); + + List selectProjectInfoById(@Param("ids") Long ids); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoUpdMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoUpdMapper.java new file mode 100644 index 0000000..4ef17e4 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/RuleInfoUpdMapper.java @@ -0,0 +1,12 @@ +package com.muyu.product.mapper; + +import com.muyu.product.domain.RuleInfoUpdRes; +import com.muyu.product.domain.req.RuleInfoEditReq; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface RuleInfoUpdMapper { + int del(@Param("id") Long id); + void addRuleInfo(@Param("id") Long id, @Param("name") String name, @Param("attrValue") String attrValue); +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java index 9527f88..dbe6fc4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java @@ -7,7 +7,9 @@ import com.muyu.product.domain.AttributeGroup; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.model.AttributeGroupSaveModel; +import com.muyu.product.domain.req.AttributeGroupEditReq; import com.muyu.product.domain.resp.AttributeGroupPageResp; +import com.muyu.product.domain.resp.AttributeGroupUpdResp; /** * 属性组Service接口 @@ -39,4 +41,26 @@ public interface AttributeGroupService extends IService { */ public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel); + + /** + * 回显修改的东西 老师改的 + * @param id + * @return + */ + AttributeGroupUpdResp getUpdById(Long id); + + /** + * 修改属性组数据 自己改的 + * @param attributeGroupEditReq + * @return + */ + void updAs(Long id, AttributeGroupEditReq attributeGroupEditReq); + +// +// /** +// * 修改属性组数据 自己改的 +// * @param attributeGroup +// * @return +// */ +// AttributeGroupUpdResp updByids(AttributeGroup attributeGroup); } 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..fb1f7a3 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,12 +2,14 @@ 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.CategoryInfoUpdReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; @@ -69,4 +71,11 @@ public interface CategoryInfoService extends IService { CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId); public List getCommon (Long categoryId, IService iService, IService bsiService); + + Boolean updId(Long id, CategoryInfoUpdReq categoryInfoUpdReq); + + Result del(Long ids); + + CategoryInfoUpdReq getUpdById(Long id); + } 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..32694be 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 @@ -5,7 +5,9 @@ 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.RuleInfoUpdRes; 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; @@ -32,4 +34,8 @@ public interface RuleInfoService extends IService { public boolean save(RuleInfoAddModel ruleInfoAddModel); TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq); + + RuleInfoUpdRes getByRuleId(Long id); + + void updRuleId(Long id, RuleInfoUpdRes ruleInfoUpdRes); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java index 85f52d1..0fc1f62 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java @@ -9,8 +9,12 @@ import com.muyu.product.domain.AsAttributeGroup; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.model.AttributeGroupSaveModel; +import com.muyu.product.domain.req.AttributeGroupEditReq; +import com.muyu.product.domain.req.AttributeInfoSaveReq; import com.muyu.product.domain.resp.AttributeGroupPageResp; +import com.muyu.product.domain.resp.AttributeGroupUpdResp; import com.muyu.product.mapper.AttributeGroupMapper; +import com.muyu.product.mapper.AttributeGroupUpdMapper; import com.muyu.product.service.AsAttributeGroupService; import com.muyu.product.service.AttributeGroupService; import com.muyu.product.service.AttributeInfoService; @@ -39,6 +43,9 @@ public class AttributeGroupServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AsAttributeGroup::getGroupId,id); + List asAttributeGroupList = attributeGroupService.list(queryWrapper); + + List list = asAttributeGroupList.stream().map(AsAttributeGroup::getAttributeId).toList(); + List attributeInfos = attributeInfoService.listByIds(list); + + return AttributeGroupUpdResp.builder() + .id(attributeGroup.getId()) + .name(attributeGroup.getName()) + .states(attributeGroup.getStates()) + .attributeList(attributeInfos).build(); + } + + @Override + public void updAs(Long id, AttributeGroupEditReq attributeGroupEditReq) { + attributeGroupUpdMapper.del(id); + List attributeList = attributeGroupEditReq.getAttributeList(); + for (AttributeInfoSaveReq attributeInfoSaveReq : attributeList) { + attributeGroupUpdMapper.attriAddGroup(id,attributeInfoSaveReq.getId()); + } + } + + + + } 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..3082cc8 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,14 +4,19 @@ 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.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.CategoryInfoUpdReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; +import com.muyu.product.mapper.AsCategoryAttributeGroupMapper; +import com.muyu.product.mapper.AsCategoryAttributeMapper; +import com.muyu.product.mapper.AsCategoryBrandMapper; import com.muyu.product.mapper.CategoryInfoMapper; import com.muyu.product.service.*; import lombok.extern.slf4j.Slf4j; @@ -58,6 +63,18 @@ public class CategoryInfoServiceImpl extends ServiceImpl().eq(AsCategoryAttributeGroup::getCategoryId,id)); + + asCategoryAttributeService.remove(new LambdaQueryWrapper().eq(AsCategoryAttribute::getCategoryId,id)); + + asCategoryBrandService.remove(new LambdaQueryWrapper().eq(AsCategoryBrand::getCategoryId,id)); + + if (null!=categoryInfoUpdReq.getBrandIdList()){ + categoryInfoUpdReq.getBrandIdList().stream().forEach(brandId->{ + asCategoryBrandMapper.addGoryBrand(id,brandId); + }); + } + + if (null!=categoryInfoUpdReq.getAttributeGroupIdList()){ + categoryInfoUpdReq.getAttributeGroupIdList().stream().forEach(attributeGroupId->{ + asCategoryAttributeGroupMapper.addAttributeGroup(id,attributeGroupId); + }); + } + + if (null!=categoryInfoUpdReq.getAttributeIdList()){ + categoryInfoUpdReq.getAttributeIdList().stream().forEach(attributeId->{ + asCategoryAttributeMapper.addAttribute(id,attributeId); + }); + } + + return b; + } + + @Override + public Result del(Long ids) { + //判断有没有子集 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("parent_id",ids); + List categoryInfos = categoryInfoMapper.selectList(queryWrapper); + + if(0 == categoryInfos.size()){//无子级 + //是否有商品关联关系 + List list = categoryInfoMapper.selectProjectInfoById(ids); // 商品信息对象 project_info + if(0 == list.size()) {//无商品关联 + categoryInfoMapper.delete(new LambdaQueryWrapper().eq(CategoryInfo::getId, ids)); + return Result.success("删除成功"); + } + return Result.error("有商品关联关系无法删除...."); + } + return Result.error("有子级无法删除....."); + } + + @Override + public CategoryInfoUpdReq getUpdById(Long id) { + CategoryInfo byId = this.getById(id); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AsCategoryAttributeGroup::getCategoryId,id); + List attributeGroupList = asCategoryAttributeGroupService.list(queryWrapper); + List list = attributeGroupList.stream().map(AsCategoryAttributeGroup::getAttributeGroupId).toList(); + + LambdaQueryWrapper attributeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + attributeLambdaQueryWrapper.eq(AsCategoryAttribute::getCategoryId,id); + List attributeList = asCategoryAttributeService.list(attributeLambdaQueryWrapper); + List list1 = attributeList.stream().map(AsCategoryAttribute::getAttributeId).toList(); + + + LambdaQueryWrapper asCategoryBrandLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asCategoryBrandLambdaQueryWrapper.eq(AsCategoryBrand::getCategoryId,id); + List brandList = asCategoryBrandService.list(asCategoryBrandLambdaQueryWrapper); + List list2 = brandList.stream().map(AsCategoryBrand::getBrandId).toList(); + + + return CategoryInfoUpdReq.builder() + .id(byId.getId()) + .name(byId.getName()) + .start(byId.getStart()) + .attributeGroupIdList(list) + .attributeIdList(list1) + .brandIdList(list2) + .build(); + } + + /** * 通过品类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 0df7cf2..adfdef5 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 @@ -13,10 +13,14 @@ 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.RuleInfoUpdRes; 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.mapper.RuleInfoUpdMapper; import com.muyu.product.service.RuleAttrInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -39,6 +43,9 @@ public class RuleInfoServiceImpl extends ServiceImpl @Autowired private RuleAttrInfoService ruleAttrInfoService; + @Autowired + private RuleInfoUpdMapper ruleInfoUpdMapper; + /** * 查询商品规格列表 @@ -107,4 +114,29 @@ public class RuleInfoServiceImpl extends ServiceImpl .total(isPage ? new PageInfo<>(list).getTotal() : 0) .build(); } + + @Override + public RuleInfoUpdRes getByRuleId(Long id) { + RuleInfo byId = this.getById(id);// 商品规格对象 rule_info + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();//创建构造器对象 规格详情对象 rule_attr_info + queryWrapper.eq(RuleAttrInfo::getRuleId,id);// + List list = ruleAttrInfoService.list(queryWrapper); + return RuleInfoUpdRes.builder() + .id(byId.getId()) + .name(byId.getName()) + .remark(byId.getRemark()) + .ruleAttrList(list.stream().map(RuleAttrAddModel::infoBuild).toList()).build(); + } + + @Override + public void updRuleId(Long id, RuleInfoUpdRes ruleInfoUpdRes) { + ruleInfoUpdMapper.del(id); + List ruleAttrList = ruleInfoUpdRes.getRuleAttrList(); + for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) { + List valueList = ruleAttrAddModel.getValueList(); + String join = String.join(",",valueList); + ruleInfoUpdMapper.addRuleInfo(id,ruleAttrAddModel.getName(),join); + } + + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeGroupMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeGroupMapper.xml index 7196d03..c1fcb5f 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeGroupMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeGroupMapper.xml @@ -18,4 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, category_id, attribute_group_id, remark, create_by, create_time, update_by, update_time from as_category_attribute_group + + insert into as_category_attribute(category_id,attribute_id) values + (#{id},#{attributeGroupId}) + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeMapper.xml index d5544af..1999da3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryAttributeMapper.xml @@ -18,4 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, category_id, attribute_id, remark, create_by, create_time, update_by, update_time from as_category_attribute + + insert into as_category_attribute(category_id, attribute_id) values + (#{id},#{attributeId}) + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryBrandMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryBrandMapper.xml index 048317d..5ff27ae 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryBrandMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AsCategoryBrandMapper.xml @@ -18,4 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, category_id, brand_id, remark, create_by, create_time, update_by, update_time from as_category_brand + + insert into as_category_brand(category_id,brand_id) values + (#{id},#{brandId}) + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AttributeGroupUpdMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AttributeGroupUpdMapper.xml new file mode 100644 index 0000000..3f62747 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/AttributeGroupUpdMapper.xml @@ -0,0 +1,12 @@ + + + + + insert into as_attribute_group(group_id,attribute_id) values + (#{id},#{ids}) + + + + delete from as_attribute_group where group_id=#{id} + + 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..0a26816 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 + + UPDATE category_info SET `name` =#{categoryInfoUpdReq.name} , `start` = #{categoryInfoUpdReq.start}, `introduction` = #{categoryInfoUpdReq.introduction} WHERE `id` = #{id}; + + + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoUpdMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoUpdMapper.xml new file mode 100644 index 0000000..c9f2143 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/RuleInfoUpdMapper.xml @@ -0,0 +1,13 @@ + + + + + INSERT INTO rule_attr_info ( rule_id,name,attr_value,create_by,create_time,update_by,update_time) VALUES + (#{id},#{name},#{attrValue},"admin",now(),"admin",now()); + + + + + delete from rule_attr_info where rule_id=#{id} + + diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/ProductController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/ProductController.java new file mode 100644 index 0000000..a1f1994 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/ProductController.java @@ -0,0 +1,112 @@ +package com.muyu.system.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.muyu.system.domain.Product; +import com.muyu.system.domain.req.ProductEditReq; +import com.muyu.system.domain.req.ProductQueryReq; +import com.muyu.system.domain.req.ProductSaveReq; +import com.muyu.system.service.ProductService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; + +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 【请填写功能名称】Controller + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Api(tags = "【请填写功能名称】") +@RestController +@RequestMapping("/product") +public class ProductController extends BaseController { + @Autowired + private ProductService productService; + + /** + * 查询【请填写功能名称】列表 + */ + @ApiOperation("获取【请填写功能名称】列表") + @RequiresPermissions("product:product:list") + @GetMapping("/list") + public Result> list(ProductQueryReq productQueryReq) { + startPage(); + List list = productService.list(Product.queryBuild(productQueryReq)); + return getDataTable(list); + } + + /** + * 导出【请填写功能名称】列表 + */ + @ApiOperation("导出【请填写功能名称】列表") + @RequiresPermissions("product:product:export") + @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Product product) { + List list = productService.list(product); + ExcelUtil util = new ExcelUtil(Product.class); + util.exportExcel(response, list, "【请填写功能名称】数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @ApiOperation("获取【请填写功能名称】详细信息") + @RequiresPermissions("product:product: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(productService.getById(id)); + } + + /** + * 新增【请填写功能名称】 + */ + @RequiresPermissions("product:product:add") + @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("新增【请填写功能名称】") + public Result add(@RequestBody ProductSaveReq productSaveReq) { + return toAjax(productService.save(Product.saveBuild(productSaveReq))); + } + + /** + * 修改【请填写功能名称】 + */ + @RequiresPermissions("product:product:edit") + @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) + @PutMapping("/{id}") + @ApiOperation("修改【请填写功能名称】") + public Result edit(@PathVariable Long id, @RequestBody ProductEditReq productEditReq) { + return toAjax(productService.updateById(Product.editBuild(id,productEditReq))); + } + + /** + * 删除【请填写功能名称】 + */ + @RequiresPermissions("product:product:remove") + @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) + @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(productService.removeBatchByIds(ids)); + } +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/Product.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/Product.java new file mode 100644 index 0000000..2181941 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/Product.java @@ -0,0 +1,91 @@ +package com.muyu.system.domain; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.system.domain.req.ProductEditReq; +import com.muyu.system.domain.req.ProductQueryReq; +import com.muyu.system.domain.req.ProductSaveReq; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.annotation.Excel; + +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 product + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("product") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "Product", description = "【请填写功能名称】") +public class Product extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 主键 */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "主键", value = "主键") + private Long id; + + /** 商品名称 */ + @Excel(name = "商品名称") + @ApiModelProperty(name = "商品名称", value = "商品名称") + private String name; + + /** 原价 */ + @Excel(name = "原价") + @ApiModelProperty(name = "原价", value = "原价") + private BigDecimal price; + + /** 拼团价格 */ + @Excel(name = "拼团价格") + @ApiModelProperty(name = "拼团价格", value = "拼团价格") + private BigDecimal groupPrice; + + /** + * 查询构造器 + */ + public static Product queryBuild( ProductQueryReq productQueryReq){ + return Product.builder() + .name(productQueryReq.getName()) + .price(productQueryReq.getPrice()) + .groupPrice(productQueryReq.getGroupPrice()) + .build(); + } + + /** + * 添加构造器 + */ + public static Product saveBuild(ProductSaveReq productSaveReq){ + return Product.builder() + .name(productSaveReq.getName()) + .price(productSaveReq.getPrice()) + .groupPrice(productSaveReq.getGroupPrice()) + .build(); + } + + /** + * 修改构造器 + */ + public static Product editBuild(Long id, ProductEditReq productEditReq){ + return Product.builder() + .id(id) + .name(productEditReq.getName()) + .price(productEditReq.getPrice()) + .groupPrice(productEditReq.getGroupPrice()) + .build(); + } + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductEditReq.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductEditReq.java new file mode 100644 index 0000000..a102b9e --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductEditReq.java @@ -0,0 +1,39 @@ +package com.muyu.system.domain.req; + +import java.math.BigDecimal; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 product + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "ProductEditReq", description = "【请填写功能名称】") +public class ProductEditReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 商品名称 */ + @ApiModelProperty(name = "商品名称", value = "商品名称") + private String name; + + /** 原价 */ + @ApiModelProperty(name = "原价", value = "原价") + private BigDecimal price; + + /** 拼团价格 */ + @ApiModelProperty(name = "拼团价格", value = "拼团价格") + private BigDecimal groupPrice; + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductQueryReq.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductQueryReq.java new file mode 100644 index 0000000..257189d --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductQueryReq.java @@ -0,0 +1,39 @@ +package com.muyu.system.domain.req; + +import java.math.BigDecimal; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 product + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "ProductQueryReq", description = "【请填写功能名称】") +public class ProductQueryReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 商品名称 */ + @ApiModelProperty(name = "商品名称", value = "商品名称") + private String name; + + /** 原价 */ + @ApiModelProperty(name = "原价", value = "原价") + private BigDecimal price; + + /** 拼团价格 */ + @ApiModelProperty(name = "拼团价格", value = "拼团价格") + private BigDecimal groupPrice; + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductSaveReq.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductSaveReq.java new file mode 100644 index 0000000..7a97fda --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/ProductSaveReq.java @@ -0,0 +1,47 @@ +package com.muyu.system.domain.req; + +import java.math.BigDecimal; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 product + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "ProductSaveReq", description = "【请填写功能名称】") +public class ProductSaveReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 主键 */ + + @ApiModelProperty(name = "主键", value = "主键") + private Long id; + + /** 商品名称 */ + + @ApiModelProperty(name = "商品名称", value = "商品名称") + private String name; + + /** 原价 */ + + @ApiModelProperty(name = "原价", value = "原价") + private BigDecimal price; + + /** 拼团价格 */ + + @ApiModelProperty(name = "拼团价格", value = "拼团价格") + private BigDecimal groupPrice; + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/ProductMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/ProductMapper.java new file mode 100644 index 0000000..3aab4fe --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/ProductMapper.java @@ -0,0 +1,16 @@ +package com.muyu.system.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.system.domain.Product; + + +/** + * 【请填写功能名称】Mapper接口 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +public interface ProductMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/ProductService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/ProductService.java new file mode 100644 index 0000000..231ab62 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/ProductService.java @@ -0,0 +1,23 @@ +package com.muyu.system.service; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.system.domain.Product; + +/** + * 【请填写功能名称】Service接口 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +public interface ProductService extends IService { + /** + * 查询【请填写功能名称】列表 + * + * @param product 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List list(Product product); + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/ProductServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/ProductServiceImpl.java new file mode 100644 index 0000000..07043de --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/ProductServiceImpl.java @@ -0,0 +1,49 @@ +package com.muyu.system.service.impl; + +import java.util.List; + +import com.muyu.common.core.utils.ObjUtils; +import com.muyu.system.domain.Product; +import com.muyu.system.mapper.ProductMapper; +import com.muyu.system.service.ProductService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Slf4j +@Service +public class ProductServiceImpl extends ServiceImpl implements ProductService { + + /** + * 查询【请填写功能名称】列表 + * + * @param product 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List list(Product product) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + + if (ObjUtils.notNull(product.getName())){ + queryWrapper.like(Product::getName, product.getName()); + } + + if (ObjUtils.notNull(product.getPrice())){ + queryWrapper.eq(Product::getPrice, product.getPrice()); + } + + if (ObjUtils.notNull(product.getGroupPrice())){ + queryWrapper.eq(Product::getGroupPrice, product.getGroupPrice()); + } + return list(queryWrapper); + } +} diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/ProductMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/ProductMapper.xml new file mode 100644 index 0000000..082d8b5 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/ProductMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + select id, name, price, group_price from product + +