diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index 7ca6325c..90f2eeb3 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -7,6 +7,7 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,7 +20,7 @@ import javax.validation.Valid; import java.util.List; /** - * 基础档案 供应商 + * 基础档案 客户 * @author YenHex * @since 2022-10-10 */ @@ -68,33 +69,39 @@ public class BmsSupplierController { @PostMapping("/updateById") @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.UPDATE) @PreAuthorize("hasRole('bms:supplier:update')") - public R updateById(@RequestBody @Valid BmsSupplier param){ - boolean result = bmsSupplierService.updateById(param); - return R.isTrue(result); + public R updateById(@RequestBody BmsSupplierBo param){ + if(param.getId()==null){ + return R.error("id不能为空"); + } + bmsSupplierService.edit(param); + return R.ok(); } /** - * 新增供应商 + * 新增 * @param param * @return */ @PostMapping("/save") @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.INSERT) @PreAuthorize("hasRole('bms:supplier:insert')") - public R save(@RequestBody @Valid BmsSupplier param){ - boolean result = bmsSupplierService.save(param); - return R.isTrue(result); + public R save(@RequestBody @Valid BmsSupplierBo param){ + bmsSupplierService.edit(param); + return R.ok(); } /** - * 删除供应商 + * 删除 * @param id * @return */ @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:supplier:delete')") - public R deleteById(@PathVariable("id") Long id){ + public R deleteById(@PathVariable("id") String id){ + if(bmsSupplierService.listChild(id).size()>0){ + return R.error("含有子公司客户无法删除"); + } bmsSupplierService.removeById(id); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 31aed9da..12693299 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -17,7 +17,7 @@ import javax.validation.constraints.NotBlank; /** * 供应商 实体类 * @author YenHex - * @since 2022-10-10 + * @since 2022-10-11 */ @Data @TableName("bms_supplier") @@ -27,21 +27,32 @@ public class BmsSupplier implements Serializable { /** id */ @TableId(type = IdType.AUTO) - private Long id; - - /** 名称 */ - @Length(max = 20,message = "名称长度不能超过20字") - private String name; + private String id; /** 一级区域ID */ - @NotNull(message = "一级区域ID不能为空") - private Long regionFirst; + private String regionFirst; /** 二级区域ID */ - private Long regionSecond; + private String regionSecond; /** 三级区域ID */ - private Long regionThird; + private String regionThird; + + /** 详细地址 */ + private String address; + + /** 名称 */ + @NotBlank(message = "名称不能为空") + @Length(max = 20,message = "名称长度不能超过20字") + private String name; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 20,message = "客户编码长度不能超过20字") + private String code; + + /** 父级id */ + private String pid; /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBo.java new file mode 100644 index 00000000..f684c953 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBo.java @@ -0,0 +1,39 @@ +package com.qs.serve.modules.bms.entity.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * @author YenHex + * @since 2022/10/11 + */ +@Data +public class BmsSupplierBo { + + /** id */ + private Long id; + + /** 区域ID */ + private Long regionId; + + /** 详细地址 */ + private String address; + + /** 名称 */ + @NotBlank(message = "名称不能为空") + @Length(max = 20,message = "名称长度不能超过20字") + private String name; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 20,message = "客户编码长度不能超过20字") + private String code; + + /** 父级id,0表总公司无上级 */ + private Long pid; + +} diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java index b11ea221..fe074fca 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java @@ -2,6 +2,11 @@ package com.qs.serve.modules.bms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; +import java.util.List; /** * 供应商 服务接口 @@ -10,5 +15,9 @@ import com.qs.serve.modules.bms.entity.BmsSupplier; */ public interface BmsSupplierService extends IService { + void edit(BmsSupplierBo param); + + List listChild(String pid); + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java index e74dd955..1b0dacfd 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java @@ -1,6 +1,11 @@ package com.qs.serve.modules.bms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; +import com.qs.serve.modules.bms.service.BmsRegionService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +13,8 @@ import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; +import java.util.List; + /** * 供应商 服务实现类 * @author YenHex @@ -18,5 +25,42 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; @AllArgsConstructor public class BmsSupplierServiceImpl extends ServiceImpl implements BmsSupplierService { + private BmsRegionService regionService; + + @Override + public void edit(BmsSupplierBo param) { + BmsSupplier supplier = CopierUtil.copy(param,new BmsSupplier()); + if(param.getRegionId()!=null){ + BmsRegion region1 = regionService.getById(param.getRegionId()); + if(!region1.getPid().equals("0")){ + BmsRegion region2 = regionService.getById(region1.getPid()); + if(!region2.getPid().equals("0")){ + supplier.setRegionFirst(region2.getPid()); + supplier.setRegionSecond(region2.getId()); + supplier.setRegionThird(region1.getId()); + }else { + supplier.setRegionFirst(region2.getId()); + supplier.setRegionSecond(region1.getId()); + supplier.setRegionThird(""); + } + }else { + supplier.setRegionFirst(region1.getId()); + supplier.setRegionSecond(""); + supplier.setRegionThird(""); + } + } + if(supplier.getId()!=null){ + this.updateById(supplier); + }else { + this.save(supplier); + } + } + + @Override + public List listChild(String pid) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplier::getPid,pid); + return this.list(lqw); + } } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java index 0f3d14f5..553bc934 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java @@ -19,7 +19,7 @@ import javax.validation.Valid; import java.util.List; /** - * 商品 品牌 后台接口 + * 商品 品牌 * @author YenHex * @since 2022-10-11 */ diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java index 4765b380..34c2a861 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java @@ -19,7 +19,7 @@ import javax.validation.Valid; import java.util.List; /** - * 商品 系列 后台接口 + * 商品 系列 * @author YenHex * @since 2022-10-11 */ diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 645059d4..339a2712 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -8,6 +8,7 @@ import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,7 +34,7 @@ public class GoodsSpuController { private GoodsSpuService goodsSpuService; /** - * 翻页查询 + * 翻页搜索 * @param param * @return */ @@ -47,15 +48,15 @@ public class GoodsSpuController { } /** - * 根据ID查询 + * ID查询 * @param id * @return */ @GetMapping("/getById/{id}") @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.QUERY) @PreAuthorize("hasRole('goods:spu:query')") - public R getById(@PathVariable("id") String id){ - GoodsSpu goodsSpu = goodsSpuService.getById(id); + public R getById(@PathVariable("id") Long id){ + GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); return R.ok(goodsSpu); } @@ -64,7 +65,7 @@ public class GoodsSpuController { * @param param * @return */ - @PostMapping("/updateById") + //@PostMapping("/updateById") @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.UPDATE) @PreAuthorize("hasRole('goods:spu:update')") public R updateById(@RequestBody @Valid GoodsSpu param){ @@ -73,11 +74,11 @@ public class GoodsSpuController { } /** - * 新增spu + * 新增 * @param param * @return */ - @PostMapping("/save") + //@PostMapping("/save") @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.INSERT) @PreAuthorize("hasRole('goods:spu:insert')") public R save(@RequestBody @Valid GoodsSpu param){ @@ -86,7 +87,7 @@ public class GoodsSpuController { } /** - * 删除spu + * 删除 * @param id * @return */ diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodSkuInfoVo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodSkuInfoVo.java index 1cdfc86f..08382183 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodSkuInfoVo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodSkuInfoVo.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.goods.entity.bo; import com.qs.serve.modules.goods.entity.GoodsSku; +import lombok.Data; import java.util.List; @@ -8,6 +9,7 @@ import java.util.List; * @author YenHex * @since 2022/10/11 */ +@Data public class GoodSkuInfoVo { private List skuList; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodSkuSpecValueDto.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodSkuSpecValueDto.java deleted file mode 100644 index a0446bc9..00000000 --- a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodSkuSpecValueDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qs.serve.modules.goods.entity.dto; - -/** - * @author YenHex - * @since 2022/10/11 - */ -public class GoodSkuSpecValueDto { - - Integer sort; - Long specValueId; - -} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuSpecValueVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuSpecValueVo.java new file mode 100644 index 00000000..81413561 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuSpecValueVo.java @@ -0,0 +1,30 @@ +package com.qs.serve.modules.goods.entity.vo; + +import lombok.Data; + +/** + * @author YenHex + * @since 2022/10/11 + */ +@Data +public class GoodsSkuSpecValueVo { + + /** 库存单位 */ + private Long skuId; + + /** 规格ID */ + private Long specId; + + /** 规格 */ + private String specName; + + /** 规格值ID */ + private Long specValueId; + + /** 规格值 */ + private String specValue; + + /** 规格值排序 */ + private Integer specValueSort; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpecValueVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpecValueVo.java new file mode 100644 index 00000000..0d5053da --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpecValueVo.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.goods.entity.vo; + +import lombok.Data; + +/** + * @author YenHex + * @since 2022/10/11 + */ +@Data +public class GoodsSpecValueVo { + + /** 规格值ID */ + private Long specValueId; + + /** 规格值 */ + private String specValue; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuSpecVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuSpecVo.java new file mode 100644 index 00000000..cfeef2e5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuSpecVo.java @@ -0,0 +1,24 @@ +package com.qs.serve.modules.goods.entity.vo; + +import lombok.Data; +import java.util.List; +/** + * @author YenHex + * @since 2022/10/11 + */ +@Data +public class GoodsSpuSpecVo { + + /** 规格id */ + private Long specId; + + /** 规格名称 */ + private String name; + + /** 规格排序 */ + private Integer sort; + + /** 规格值列表 */ + private List specValueList; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java new file mode 100644 index 00000000..3a573ea5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java @@ -0,0 +1,59 @@ +package com.qs.serve.modules.goods.entity.vo; + +import com.qs.serve.modules.goods.entity.GoodsSku; +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2022/10/11 + */ +@Data +public class GoodsSpuVo { + + private Long id; + + /** 商品编码 */ + private String spuCode; + + /** 商品名字 */ + private String name; + + /** 品牌id */ + private Long brandId; + + /** 系列id */ + private Long seriesId; + + /** 一级分类ID */ + private String categoryFirst; + + /** 二级分类ID */ + private String categorySecond; + + /** 三级分类ID */ + private String categoryThird; + + /** 商品图片 */ + private String[] picUrls; + + /** 是否上架(1是 0否) */ + private String shelf; + + /** 排序字段 */ + private Integer sort; + + /** 销量 */ + private Integer saleNum; + + /** sku列表 */ + private List skuList; + + /** 规格列表 */ + private List specList; + + /** sku与规格 关联列表 */ + private List skuSpecValueList; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java index e8cde72f..81d8a7cb 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java @@ -1,7 +1,13 @@ package com.qs.serve.modules.goods.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; +import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * sku规格值 Mapper @@ -10,5 +16,27 @@ import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; */ public interface GoodsSkuSpecValueMapper extends BaseMapper { + /** + * 查询sku的规格值 + * @param spuId + * @return + */ + @InterceptorIgnore(tenantLine = "1") + @Select("SELECT " + + " `goods_sku_spec_value`.`sku_id` as `skuId`," + + " `goods_spec_value`.`spec_id` as `specId`," + + " `goods_spec`.`name` as `spec_name` as `specName`," + + " `goods_sku_spec_value`.`spec_value_id` as `specValueId`," + + " `goods_spec_value`.`name` as `specValue`," + + " `goods_sku_spec_value`.`sort` as `specValueSort`" + + " FROM `goods_sku_spec_value` " + + " LEFT JOIN `goods_spec_value` " + + " ON `goods_sku_spec_value`.spec_value_id = `goods_spec_value`.`id` " + + " LEFT JOIN `goods_spec` " + + " ON `goods_spec_value`.`spec_id` = `goods_spec`.`id` " + + " WHERE `goods_sku_spec_value`.`spu_id` = #{spuId}" + + " ORDER BY `goods_sku_spec_value`.`sort` DESC") + List listSpecValueBySpuId(@Param("spuId") Long spuId); + } diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuSpecMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuSpecMapper.java index 967221a7..ef090a57 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuSpecMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuSpecMapper.java @@ -1,8 +1,13 @@ package com.qs.serve.modules.goods.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.goods.entity.GoodsSpuSpec; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuSpecVo; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import java.util.List; /** * spu规格 Mapper * @author YenHex @@ -10,5 +15,17 @@ import com.qs.serve.modules.goods.entity.GoodsSpuSpec; */ public interface GoodsSpuSpecMapper extends BaseMapper { + /** + * 商品规格列表 + * @param spuId + * @return + */ + @InterceptorIgnore(tenantLine = "1") + @Select("select goods_spec.id,goods_spec.`name`,goods_spu_spec.sort from goods_spu_spec " + + " LEFT JOIN goods_spec" + + " ON goods_spu_spec.spec_id = goods_spec.id" + + " WHERE spu_id = #{spuId} ORDER BY goods_spu_spec.sort DESC") + List listSpuSpecs(@Param("spuId") Long spuId); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java index 8cdc163a..161d4f46 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.goods.entity.GoodsSku; +import java.util.List; /** * sku 服务接口 @@ -12,5 +13,7 @@ public interface GoodsSkuService extends IService { GoodsSku getByCode(String code); + List getBySpuId(Long spuId); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java index 8ae5a058..217f7754 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java @@ -2,6 +2,9 @@ package com.qs.serve.modules.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; +import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; + +import java.util.List; /** * sku规格值 服务接口 @@ -10,8 +13,21 @@ import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; */ public interface GoodsSkuSpecValueService extends IService { + /** + * 查询sku的规格值 + * @param spuId + * @return + */ + List listSpecValueBySpuId(Long spuId); + GoodsSkuSpecValue getByIds(Long skuId,Long specValueId); + /** + * 初始化商品规格值绑定 + * @param spuId + * @param skuId + * @param specValueId + */ void initSkuSpecValue(Long spuId,Long skuId,Long specValueId); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index b5e2ff58..93317407 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java @@ -1,8 +1,10 @@ package com.qs.serve.modules.goods.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import org.springframework.web.bind.annotation.RequestBody; /** @@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; */ public interface GoodsSpuService extends IService { + GoodsSpuVo getVoById(Long id); + GoodsSpu getByCode(String code); void saveBatchTasteSpu(GoodsSpuBatchTasteBo batchTasteBo); diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuSpecService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuSpecService.java index e3ab2671..826115a4 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuSpecService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuSpecService.java @@ -2,6 +2,9 @@ package com.qs.serve.modules.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.goods.entity.GoodsSpuSpec; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuSpecVo; + +import java.util.List; /** * spu规格 服务接口 @@ -10,5 +13,12 @@ import com.qs.serve.modules.goods.entity.GoodsSpuSpec; */ public interface GoodsSpuSpecService extends IService { + /** + * 商品规格列表 + * @param spuId + * @return + */ + List listSpuSpecs(Long spuId); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java index c2dd30f5..a06131cd 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java @@ -9,6 +9,8 @@ import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; +import java.util.List; + /** * sku 服务实现类 * @author YenHex @@ -26,5 +28,11 @@ public class GoodsSkuServiceImpl extends ServiceImpl im return getOne(lqw,false); } + @Override + public List getBySpuId(Long spuId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(GoodsSku::getSpuId,spuId); + return list(lqw); + } } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java index 8df6884b..5f90797b 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -9,6 +10,8 @@ import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.mapper.GoodsSkuSpecValueMapper; +import java.util.List; + /** * sku规格值 服务实现类 * @author YenHex @@ -19,6 +22,11 @@ import com.qs.serve.modules.goods.mapper.GoodsSkuSpecValueMapper; @AllArgsConstructor public class GoodsSkuSpecValueServiceImpl extends ServiceImpl implements GoodsSkuSpecValueService { + @Override + public List listSpecValueBySpuId(Long spuId) { + return baseMapper.listSpecValueBySpuId(spuId); + } + @Override public GoodsSkuSpecValue getByIds(Long skuId, Long specValueId) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 283a76cc..73936b88 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -7,6 +7,10 @@ import com.qs.serve.common.util.ValidateTools; import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo; +import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; +import com.qs.serve.modules.goods.entity.vo.GoodsSpecValueVo; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuSpecVo; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -41,6 +45,41 @@ public class GoodsSpuServiceImpl extends ServiceImpl im return getOne(lqw,false); } + @Override + public GoodsSpuVo getVoById(Long id) { + GoodsSpu goodsSpu = this.getById(id); + GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo()); + List skuList = goodsSkuService.getBySpuId(id); + goodsSpuVo.setSkuList(skuList); + List skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id); + List specList = goodsSpuSpecService.listSpuSpecs(id); + //封装规格的值 + for (GoodsSpuSpecVo specVo : specList) { + for (GoodsSkuSpecValueVo skuSpecValueVo : skuSpecValueList) { + if(specVo.getSpecId().equals(skuSpecValueVo.getSpecId())){ + if(specVo.getSpecValueList()==null){ + specVo.setSpecValueList(new ArrayList<>()); + } + boolean exist = false; + for (GoodsSpecValueVo valueVo : specVo.getSpecValueList()) { + if(valueVo.getSpecValueId().equals(skuSpecValueVo.getSpecValueId())){ + exist = true; + break; + } + } + if(!exist){ + GoodsSpecValueVo valueVo = new GoodsSpecValueVo(); + valueVo.setSpecValue(skuSpecValueVo.getSpecValue()); + valueVo.setSpecValueId(skuSpecValueVo.getSpecValueId()); + specVo.getSpecValueList().add(valueVo); + } + } + } + } + goodsSpuVo.setSpecList(specList); + return goodsSpuVo; + } + @Override public void saveBatchTasteSpu(GoodsSpuBatchTasteBo batchTasteBo) { for (GoodsSpuTasteBo tasteProduct : batchTasteBo.getTasteProducts()) { @@ -71,6 +110,8 @@ public class GoodsSpuServiceImpl extends ServiceImpl im } }else { spu.setCategoryFirst(category.getId()+""); + spu.setCategorySecond(""); + spu.setCategoryThird(""); } //设置品牌 GoodsBrand goodsBrand = goodsBrandService.getByCode(tasteProduct.getBrandCode()); diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuSpecServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuSpecServiceImpl.java index 7a904eda..9408eba6 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuSpecServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuSpecServiceImpl.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.goods.entity.vo.GoodsSpuSpecVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +9,8 @@ import com.qs.serve.modules.goods.entity.GoodsSpuSpec; import com.qs.serve.modules.goods.service.GoodsSpuSpecService; import com.qs.serve.modules.goods.mapper.GoodsSpuSpecMapper; +import java.util.List; + /** * spu规格 服务实现类 * @author YenHex @@ -18,5 +21,9 @@ import com.qs.serve.modules.goods.mapper.GoodsSpuSpecMapper; @AllArgsConstructor public class GoodsSpuSpecServiceImpl extends ServiceImpl implements GoodsSpuSpecService { + @Override + public List listSpuSpecs(Long spuId) { + return baseMapper.listSpuSpecs(spuId); + } }