From 3f99d7f82bb8c96e0699be959b2c341c6d7c4765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=9A=E5=BF=97=E8=B1=AA123?= <14699252+shang-zhihao-123@user.noreply.gitee.com> Date: Tue, 19 Nov 2024 01:07:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BE=AE=E6=9C=8D=E5=8A=A1,?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- muyu-modules/muyu-goods/pom.xml | 113 ++++++++++++++++++ .../com/muyu/goods/MuYuGoodsApplication.java | 22 ++++ .../goods/controller/GoodsController.java | 22 ++++ .../java/com/muyu/goods/domain/Goods.java | 11 ++ .../goods/forest/gaode/api/resp/District.java | 32 +++++ .../forest/gaode/api/resp/DistrictResult.java | 40 +++++++ .../com/muyu/goods/mapper/GoodsMapper.java | 13 ++ .../com/muyu/goods/service/GoodsService.java | 14 +++ .../goods/service/impl/GoodsServiceImpl.java | 21 ++++ .../muyu-goods/src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 30 +++++ .../muyu-goods/src/main/resources/logback.xml | 74 ++++++++++++ .../resources/mapper/system/GoodsMapper.xml | 9 ++ .../com/muyu/product/domain/ProjectInfo.java | 1 + .../muyu/product/domain/ProjectUpdInfo.java | 100 ++++++++++++++++ .../resp/CategoryParentCommonElementResp.java | 41 +++++++ .../product/domain/resp/RuleInfoResp.java | 2 + .../controller/CategoryInfoController.java | 18 +-- .../controller/ProjectInfoController.java | 9 +- .../controller/RuleInfoController.java | 1 + .../product/mapper/CategoryInfoMapper.java | 29 ++++- .../product/mapper/ProjectInfoMapper.java | 9 +- .../product/service/CategoryInfoService.java | 16 ++- .../product/service/ProjectInfoService.java | 5 + .../service/impl/CategoryInfoServiceImpl.java | 59 +++++++++ .../service/impl/ProjectInfoServiceImpl.java | 53 ++++++-- .../service/impl/RuleInfoServiceImpl.java | 13 +- .../mapper/product/CategoryInfoMapper.xml | 19 +++ .../mapper/product/ProjectInfoMapper.xml | 4 + muyu-modules/pom.xml | 1 + 30 files changed, 759 insertions(+), 24 deletions(-) create mode 100644 muyu-modules/muyu-goods/pom.xml create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/GoodsController.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Goods.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/District.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/DistrictResult.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/GoodsMapper.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/GoodsService.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/GoodsServiceImpl.java create mode 100644 muyu-modules/muyu-goods/src/main/resources/banner.txt create mode 100644 muyu-modules/muyu-goods/src/main/resources/bootstrap.yml create mode 100644 muyu-modules/muyu-goods/src/main/resources/logback.xml create mode 100644 muyu-modules/muyu-goods/src/main/resources/mapper/system/GoodsMapper.xml create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectUpdInfo.java diff --git a/muyu-modules/muyu-goods/pom.xml b/muyu-modules/muyu-goods/pom.xml new file mode 100644 index 0000000..a95c016 --- /dev/null +++ b/muyu-modules/muyu-goods/pom.xml @@ -0,0 +1,113 @@ + + + + com.muyu + muyu-modules + 3.6.3 + + 4.0.0 + + muyu-goods + + + muyu-modules-goods系统模块 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + com.dtflys.forest + forest-spring-boot-starter + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java new file mode 100644 index 0000000..1d643db --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java @@ -0,0 +1,22 @@ +package com.muyu.goods; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 系统模块 + * + * @author muyu + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class MuYuGoodsApplication { + public static void main (String[] args) { + SpringApplication.run(MuYuGoodsApplication.class, args); + } +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/GoodsController.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/GoodsController.java new file mode 100644 index 0000000..f630671 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/GoodsController.java @@ -0,0 +1,22 @@ +package com.muyu.goods.controller; + +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.goods.service.GoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 参数配置 信息操作处理 + * + * @author muyu + */ +@RestController +@RequestMapping("/goods") +public class GoodsController extends BaseController { + + @Autowired + private GoodsService configService; + + +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Goods.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Goods.java new file mode 100644 index 0000000..067329c --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Goods.java @@ -0,0 +1,11 @@ +package com.muyu.goods.domain; + +/** + * @Author:尚志豪 + * @Package:com.muyu.goods.domain + * @Project:cloud-server + * @name:SysConfig + * @Date:2024/11/18 16:57 + */ +public class Goods { +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/District.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/District.java new file mode 100644 index 0000000..e8e581c --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/District.java @@ -0,0 +1,32 @@ +package com.muyu.goods.forest.gaode.api.resp; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +@Data +public class District { + + /** 名称 */ + private String name; + + /** 编码 */ + @JSONField(name = "citycode") + private String code; + + /** 级别 */ + private String level; + + /** 区域编码 */ + @JSONField(name = "adcode") + private String areaCode; + + /** 中心经纬度 */ + private String center; + + /** + * 子 + */ + private List districts; +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/DistrictResult.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/DistrictResult.java new file mode 100644 index 0000000..38adbe8 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/forest/gaode/api/resp/DistrictResult.java @@ -0,0 +1,40 @@ +package com.muyu.goods.forest.gaode.api.resp; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * @author DongZl + * @description: 行政区接口返回结果集 + * @Date 2024/4/11 下午2:31 + */ +@Data +public class DistrictResult { + + /** + * 返回结果状态值 + * 值为0或1,0表示失败;1表示成功 + */ + private String status; + + /** + * 返回状态说明 + * 返回状态说明,status为0时,info返回错误原因,否则返回“OK”。 + */ + private String info; + + /** + * 状态码 + * 返回状态说明,10000代表正确,详情参阅info状态表 + */ + @JSONField(name = "infocode") + private String infoCode; + + /** + * 行政区列表 + */ + private List districts; +} + diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/GoodsMapper.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/GoodsMapper.java new file mode 100644 index 0000000..7c62b81 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/GoodsMapper.java @@ -0,0 +1,13 @@ +package com.muyu.goods.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.goods.domain.Goods; + +/** + * @author DongZl + * @description: 配置mybatis配置 + * @Date 2023-11-13 上午 10:05 + */ +public interface GoodsMapper extends BaseMapper { +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/GoodsService.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/GoodsService.java new file mode 100644 index 0000000..7067c07 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/GoodsService.java @@ -0,0 +1,14 @@ +package com.muyu.goods.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.goods.domain.Goods; + +/** + * @author DongZl + * @description: 配置plus业务层 + * @Date 2023-11-13 上午 10:06 + */ +public interface GoodsService extends IService { + +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/GoodsServiceImpl.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/GoodsServiceImpl.java new file mode 100644 index 0000000..690d718 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/GoodsServiceImpl.java @@ -0,0 +1,21 @@ +package com.muyu.goods.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.goods.domain.Goods; +import com.muyu.goods.mapper.GoodsMapper; +import com.muyu.goods.service.GoodsService; +import org.springframework.stereotype.Service; + +/** + * @author DongZl + * @description: 配置plus业务实现层 + * @Date 2023-11-13 上午 10:06 + */ +@Service +public class GoodsServiceImpl extends ServiceImpl implements GoodsService { + + + + +} diff --git a/muyu-modules/muyu-goods/src/main/resources/banner.txt b/muyu-modules/muyu-goods/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/muyu-modules/muyu-goods/src/main/resources/bootstrap.yml b/muyu-modules/muyu-goods/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..221899f --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/resources/bootstrap.yml @@ -0,0 +1,30 @@ +# Tomcat +server: + port: 9204 + +# Spring +spring: + application: + # 应用名称 + name: muyu-goods + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 150.158.86.96:8848 + namespace: 2204a + config: + # 配置中心地址 + server-addr: 150.158.86.96:8848 + namespace: 2204a + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.goods.mapper: DEBUG diff --git a/muyu-modules/muyu-goods/src/main/resources/logback.xml b/muyu-modules/muyu-goods/src/main/resources/logback.xml new file mode 100644 index 0000000..66b83ee --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/muyu-modules/muyu-goods/src/main/resources/mapper/system/GoodsMapper.xml b/muyu-modules/muyu-goods/src/main/resources/mapper/system/GoodsMapper.xml new file mode 100644 index 0000000..19ca859 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/resources/mapper/system/GoodsMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java index 156bd38..59e898e 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java @@ -91,6 +91,7 @@ public class ProjectInfo extends BaseEntity { @ApiModelProperty(name = "品牌", value = "品牌") private Long brandId; + /** * 查询构造器 */ diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectUpdInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectUpdInfo.java new file mode 100644 index 0000000..f4b093b --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectUpdInfo.java @@ -0,0 +1,100 @@ +package com.muyu.product.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Author:尚志豪 + * @Package:com.muyu.product.domain + * @Project:cloud-server + * @name:ProjectUpdInfo + * @Date:2024/11/17 14:31 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("project_info") +@EqualsAndHashCode() +@ApiModel(value = "ProjectInfo", description = "商品信息") +public class ProjectUpdInfo 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 String introduction; + + /** 主类型 */ + @Excel(name = "主类型") + @ApiModelProperty(name = "主类型", value = "主类型") + private Long mianType; + + /** 父类型 */ + @Excel(name = "父类型") + @ApiModelProperty(name = "父类型", value = "父类型") + private Long parentType; + + /** 商品类型 */ + @Excel(name = "商品类型") + @ApiModelProperty(name = "商品类型", value = "商品类型") + private Long type; + + /** 商品图片 */ + @Excel(name = "商品图片") + @ApiModelProperty(name = "商品图片", value = "商品图片") + private String image; + + /** 商品轮播图 */ + @Excel(name = "商品轮播图") + @ApiModelProperty(name = "商品轮播图", value = "商品轮播图") + private String carouselImages; + + /** 商品状态 */ + @Excel(name = "商品状态") + @ApiModelProperty(name = "商品状态", value = "商品状态") + private String status; + + /** 规格 */ + @Excel(name = "规格") + @ApiModelProperty(name = "规格", value = "规格") + private Long ruleId; + + /** 品牌 */ + @Excel(name = "品牌") + @ApiModelProperty(name = "品牌", value = "品牌") + private Long brandId; + + /** + * 属性集合 + */ + private List attrValueList; + + private List categoryInfoList; + + private List ruleInfoList; + + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java index ba5576a..44405de 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java @@ -1,8 +1,13 @@ package com.muyu.product.domain.resp; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.common.core.annotation.Excel; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.BrandInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,6 +26,42 @@ import java.util.List; @AllArgsConstructor public class CategoryParentCommonElementResp { + /** + * 主表 + */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "主表",value = "主键") + private Long id; + + /** + * 品类名称 + */ + @Excel(name = "品类名称") + @ApiModelProperty(name = "品类名称", value = "品类名称", required = true) + private String name; + + /** + * 图片 + */ + @Excel(name = "图片") + @ApiModelProperty(name = "图片", value = "图片", required = true) + private String image; + + /** + * 是否启用 + */ + @Excel(name = "是否启用") + @ApiModelProperty(name = "是否启用", value = "是否启用", required = true) + private String start; + + /** + * 介绍 + */ + @Excel(name = "介绍") + @ApiModelProperty(name = "介绍",value = "介绍") + private String introduction; + + private Long parentId; /** * 属性集合 */ diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java index 8596383..7cbc3bb 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/RuleInfoResp.java @@ -37,6 +37,8 @@ public class RuleInfoResp extends BaseEntity { */ private List ruleAttrList; + private Integer state = 0; + public static RuleInfoResp infoBuild (RuleInfo ruleInfo, Function> ruleAttrList) { return RuleInfoResp.builder() .id(ruleInfo.getId()) 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 553494d..832047d 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 @@ -5,9 +5,7 @@ import java.util.function.Supplier; import javax.servlet.http.HttpServletResponse; import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.product.domain.AttributeGroup; -import com.muyu.product.domain.AttributeInfo; -import com.muyu.product.domain.BrandInfo; +import com.muyu.product.domain.*; import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.req.CategoryInfoUpdEditReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; @@ -30,7 +28,6 @@ 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.product.domain.CategoryInfo; import com.muyu.product.domain.req.CategoryInfoQueryReq; import com.muyu.product.domain.req.CategoryInfoSaveReq; import com.muyu.product.domain.req.CategoryInfoEditReq; @@ -80,8 +77,9 @@ 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) { + CategoryParentCommonElementResp categoryById = categoryInfoService.getCategoryById(id); + return Result.success(categoryById); } /** @@ -143,7 +141,13 @@ public class CategoryInfoController extends BaseController { System.out.println("否存在下一级:"+categoryInfo); // 判断没有下一删除 if (null == categoryInfo){ - return toAjax(categoryInfoService.removeById(ids)); + // 查询是否与商品有关 + List asCategoryBrand = categoryInfoService.InquireAboutGoods(ids); + // 判断有没有和商品有关 + if(0 == asCategoryBrand.size()){ + return toAjax(categoryInfoService.removeById(ids)); + } + return Result.error("与商品有关能进行删除"); } return Result.error("含有子集不能进行删除"); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java index f1e3d62..38198d4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.muyu.product.cache.ProjectInfoCache; +import com.muyu.product.domain.ProjectUpdInfo; import com.muyu.product.domain.resp.ProjectDetailResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; @@ -76,8 +77,12 @@ public class ProjectInfoController extends BaseController { @RequiresPermissions("product:info: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(projectInfoCache.get(id)); +// public Result getInfo(@PathVariable("id") Long id) { +// return Result.success(projectInfoCache.get(id)); +// } + public Result getInfo(@PathVariable("id") Long id) { + ProjectUpdInfo projectUpdInfo = projectInfoService.get(id); + return Result.success(projectUpdInfo); } /** 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 d4f829a..3094524 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 @@ -56,6 +56,7 @@ public class RuleInfoController extends BaseController { } TableDataInfo tableDataInfo = ruleInfoService.queryList(ruleInfoQueryReq); return isPage ? Result.success(tableDataInfo) : Result.success(tableDataInfo.getRows()); + } /** 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 e150784..d75c10a 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 @@ -2,7 +2,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.*; import org.apache.ibatis.annotations.Param; /** @@ -36,5 +36,32 @@ public interface CategoryInfoMapper extends BaseMapper { * @return */ CategoryInfo QueryBelowOneLevel(@Param("ids") Long ids); + /** + * 查询是否与商品有关 + * @param ids + * @return + */ + List InquireAboutGoods(@Param("ids") Long ids); + + /** + * 品类属性中间表 + * @param aLong + * @return + */ + AttributeInfo selectCateById(@Param("aLong") Long aLong); + + /** + * 品类属性组中间表 + * @param aLong + * @return + */ + AttributeGroup selectGroup(@Param("aLong") Long aLong); + /** + * 品类品牌中间表 + * @param aLong + * @return + */ + BrandInfo seleteBrand(@Param("aLong") Long aLong); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java index 2eb6558..91aa168 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java @@ -2,7 +2,9 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.ProjectInfo; +import org.apache.ibatis.annotations.Param; /** * 商品信息Mapper接口 @@ -11,5 +13,10 @@ import com.muyu.product.domain.ProjectInfo; * @date 2024-02-27 */ public interface ProjectInfoMapper extends BaseMapper { - + /** + * 商品属性表中间表 + * @param aLong + * @return + */ + AttributeInfo selectProject(@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 f3630af..2df9fa7 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,10 +2,7 @@ package com.muyu.product.service; import java.util.List; -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.muyu.product.domain.*; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.resp.CategoryCommonElementResp; @@ -94,4 +91,15 @@ public interface CategoryInfoService extends IService { * @return */ CategoryInfo QueryBelowOneLevel(Long ids); + + /** + * 查询是否与商品有关 + * @param ids + * @return + */ + List InquireAboutGoods(Long ids); + /** + * 获取品类信息详细信息 + */ + CategoryParentCommonElementResp getCategoryById(Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java index 0924c9e..0b667db 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java @@ -3,6 +3,7 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.ProjectInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.ProjectUpdInfo; import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.domain.resp.ProjectDetailResp; @@ -34,4 +35,8 @@ public interface ProjectInfoService extends IService { * @return 商品详情 */ ProjectDetailResp getDetailInfo (Long id); + /** + * 获取商品信息详细信息 + */ + ProjectUpdInfo get(Long id); } 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 0696dbd..a42eb1a 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 @@ -308,6 +308,65 @@ public class CategoryInfoServiceImpl extends ServiceImpl InquireAboutGoods(Long ids) { + return categoryInfoMapper.InquireAboutGoods(ids); + } + /** + * 获取品类信息详细信息 + */ + @Override + public CategoryParentCommonElementResp getCategoryById(Long id) { + //品类信息 + CategoryInfo info = this.getById(id); + // 品类属性中间表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AsCategoryAttribute::getCategoryId,id); + List attributeList = asCategoryAttributeService.list(queryWrapper); + List longs = attributeList.stream().map(AsCategoryAttribute::getAttributeId).toList(); + ArrayList arrayList = new ArrayList<>(); + for (Long aLong : longs) { + AttributeInfo attribute = categoryInfoMapper.selectCateById(aLong); + arrayList.add(attribute); + } + // 品类属性组中间表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(AsCategoryAttributeGroup::getCategoryId,id); + List list = asCategoryAttributeGroupService.list(wrapper); + List toList = list.stream().map(AsCategoryAttributeGroup::getAttributeGroupId).toList(); + ArrayList groupArrayList = new ArrayList<>(); + for (Long aLong : toList) { + AttributeGroup attributeGroup = categoryInfoMapper.selectGroup(aLong); + groupArrayList.add(attributeGroup); + } + // 品类品牌中间表 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(AsCategoryBrand::getCategoryId,id); + List asCategoryBrands = asCategoryBrandService.list(lambdaQueryWrapper); + List longList = asCategoryBrands.stream().map(AsCategoryBrand::getBrandId).toList(); + ArrayList brandArrayList = new ArrayList<>(); + for (Long aLong : longList) { + BrandInfo brands = categoryInfoMapper.seleteBrand(aLong); + brandArrayList.add(brands); + } + return CategoryParentCommonElementResp.builder() + .id(info.getId()) + .name(info.getName()) + .image(info.getImage()) + .start(info.getStart()) + .introduction(info.getIntroduction()) + .parentId(info.getParentId()) + .attributeInfoList(arrayList) + .attributeGroupList(groupArrayList) + .brandInfoList(brandArrayList) + .build(); + } + /** * 通过品类ID获取父级以上的属性、属性组、品牌集合 * diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java index 448a3d9..2efecf3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java @@ -47,6 +47,8 @@ public class ProjectInfoServiceImpl extends ServiceImpl AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId)) .toList(); if (!asProductAttributeInfoList.isEmpty()){ - asProductAttributeInfoService.saveBatch(asProductAttributeInfoList); + asProductAttributeInfoService.saveBatch(asProductAttributeInfoList); } // sku ProductSkuModel -》 ProjectSkuInfo List productSkuModelList = projectInfoSaveReq.getProductSkuList(); @@ -206,13 +208,11 @@ public class ProjectInfoServiceImpl extends ServiceImpl attrIdList = productAttributeList.stream() .map(AsProductAttributeInfo::getAttributeId) .toList(); - projectAttributeList = attributeInfoService.list( - new LambdaQueryWrapper<>() {{ - in(AttributeInfo::getId, attrIdList); - }} - ).stream() - .map(TemplateAttributeModel::attributeInfoBuild) - .toList(); + projectAttributeList = attributeInfoService.list(new LambdaQueryWrapper<>() {{ + in(AttributeInfo::getId, attrIdList); + }}).stream() + .map(TemplateAttributeModel::attributeInfoBuild) + .toList(); } // 把自有属性添加到商品属性的集合当中,进行合并 if (!projectAttributeList.isEmpty()){ @@ -229,4 +229,41 @@ public class ProjectInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AsProductAttributeInfo::getProductId,id); + List attributeInfoList = asProductAttributeInfoService.list(queryWrapper); + List longs = attributeInfoList.stream().map(AsProductAttributeInfo::getAttributeId).toList(); + ArrayList arrayList = new ArrayList<>(); + for (Long aLong : longs) { + AttributeInfo attributeInfo = projectInfoMapper.selectProject(aLong); + arrayList.add(attributeInfo); + } + +// + return ProjectUpdInfo.builder() + .id(info.getId()) + .name(info.getName()) + .introduction(info.getIntroduction()) + .mianType(info.getMianType()) + .parentType(info.getParentType()) + .type(info.getType()) + .image(info.getImage()) + .carouselImages(info.getCarouselImages()) + .status(info.getStatus()) + .ruleId(info.getRuleId()) + .brandId(info.getBrandId()) + .attrValueList(arrayList) + .build(); + } } 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 c6d36b7..38f58c6 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 @@ -12,6 +12,7 @@ import com.muyu.common.core.text.Convert; 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.ProjectInfo; import com.muyu.product.domain.RuleAttrInfo; import com.muyu.product.domain.model.RuleAttrAddModel; import com.muyu.product.domain.model.RuleInfoAddModel; @@ -28,6 +29,7 @@ import com.muyu.product.domain.RuleInfo; import com.muyu.product.service.RuleInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.util.CollectionUtils; /** * 商品规格Service业务层处理 @@ -43,6 +45,8 @@ public class RuleInfoServiceImpl extends ServiceImpl private RuleAttrInfoService ruleAttrInfoService; @Autowired private RuleAttrInfoMapper ruleAttrInfoMapper; + @Autowired + private ProjectInfoServiceImpl projectInfoService; /** * 查询商品规格列表 @@ -105,7 +109,14 @@ public class RuleInfoServiceImpl extends ServiceImpl })) .toList(); boolean isPage = ruleInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(ruleInfoQueryReq.getParams().get("isPage"), true); - + ruleInfoRespList.forEach(ruleInfoResp -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectInfo::getRuleId,ruleInfoResp.getId()); + List projectInfoList = projectInfoService.list(wrapper); + if (!CollectionUtils.isEmpty(projectInfoList) && projectInfoList.size()>0){ + ruleInfoResp.setState(1); + } + }); return TableDataInfo.builder() .rows(ruleInfoRespList) .total(isPage ? new PageInfo<>(list).getTotal() : 0) 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 e8cd625..eaa32a3 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 @@ -37,4 +37,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml index 52ca6e6..1bdfbe5 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml @@ -26,4 +26,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, name, introduction, mian_type, parent_type, type, image, carousel_images, status, rule_id, brand_id, remark, create_by, create_time, update_by, update_time from project_info + + diff --git a/muyu-modules/pom.xml b/muyu-modules/pom.xml index 24447f2..a7e16a2 100644 --- a/muyu-modules/pom.xml +++ b/muyu-modules/pom.xml @@ -15,6 +15,7 @@ muyu-file muyu-product muyu-shop-cart + muyu-goods muyu-modules