Browse Source

添加品牌、系列、商品前台接口等

mssql
Yen 3 years ago
parent
commit
a800502b9d
  1. 27
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  2. 31
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  3. 39
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBo.java
  4. 9
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java
  5. 44
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  6. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java
  7. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java
  8. 17
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  9. 2
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodSkuInfoVo.java
  10. 12
      src/main/java/com/qs/serve/modules/goods/entity/dto/GoodSkuSpecValueDto.java
  11. 30
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuSpecValueVo.java
  12. 18
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpecValueVo.java
  13. 24
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuSpecVo.java
  14. 59
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java
  15. 28
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java
  16. 17
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuSpecMapper.java
  17. 3
      src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java
  18. 16
      src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java
  19. 4
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  20. 10
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuSpecService.java
  21. 8
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java
  22. 8
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java
  23. 41
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  24. 7
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuSpecServiceImpl.java

27
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();
}

31
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")

39
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;
}

9
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<BmsSupplier> {
void edit(BmsSupplierBo param);
List<BmsSupplier> listChild(String pid);
}

44
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<BmsSupplierMapper,BmsSupplier> 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<BmsSupplier> listChild(String pid) {
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplier::getPid,pid);
return this.list(lqw);
}
}

2
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
*/

2
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
*/

17
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<GoodsSpu> getById(@PathVariable("id") String id){
GoodsSpu goodsSpu = goodsSpuService.getById(id);
public R<GoodsSpuVo> 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
*/

2
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<GoodsSku> skuList;

12
src/main/java/com/qs/serve/modules/goods/entity/dto/GoodSkuSpecValueDto.java

@ -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;
}

30
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;
}

18
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;
}

24
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<GoodsSpecValueVo> specValueList;
}

59
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<GoodsSku> skuList;
/** 规格列表 */
private List<GoodsSpuSpecVo> specList;
/** sku与规格 关联列表 */
private List<GoodsSkuSpecValueVo> skuSpecValueList;
}

28
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<GoodsSkuSpecValue> {
/**
* 查询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<GoodsSkuSpecValueVo> listSpecValueBySpuId(@Param("spuId") Long spuId);
}

17
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<GoodsSpuSpec> {
/**
* 商品规格列表
* @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<GoodsSpuSpecVo> listSpuSpecs(@Param("spuId") Long spuId);
}

3
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> {
GoodsSku getByCode(String code);
List<GoodsSku> getBySpuId(Long spuId);
}

16
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<GoodsSkuSpecValue> {
/**
* 查询sku的规格值
* @param spuId
* @return
*/
List<GoodsSkuSpecValueVo> listSpecValueBySpuId(Long spuId);
GoodsSkuSpecValue getByIds(Long skuId,Long specValueId);
/**
* 初始化商品规格值绑定
* @param spuId
* @param skuId
* @param specValueId
*/
void initSkuSpecValue(Long spuId,Long skuId,Long specValueId);
}

4
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<GoodsSpu> {
GoodsSpuVo getVoById(Long id);
GoodsSpu getByCode(String code);
void saveBatchTasteSpu(GoodsSpuBatchTasteBo batchTasteBo);

10
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<GoodsSpuSpec> {
/**
* 商品规格列表
* @param spuId
* @return
*/
List<GoodsSpuSpecVo> listSpuSpecs(Long spuId);
}

8
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<GoodsSkuMapper,GoodsSku> im
return getOne(lqw,false);
}
@Override
public List<GoodsSku> getBySpuId(Long spuId) {
LambdaQueryWrapper<GoodsSku> lqw = new LambdaQueryWrapper<>();
lqw.eq(GoodsSku::getSpuId,spuId);
return list(lqw);
}
}

8
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<GoodsSkuSpecValueMapper,GoodsSkuSpecValue> implements GoodsSkuSpecValueService {
@Override
public List<GoodsSkuSpecValueVo> listSpecValueBySpuId(Long spuId) {
return baseMapper.listSpecValueBySpuId(spuId);
}
@Override
public GoodsSkuSpecValue getByIds(Long skuId, Long specValueId) {
LambdaQueryWrapper<GoodsSkuSpecValue> lqw = new LambdaQueryWrapper<>();

41
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<GoodsSpuMapper,GoodsSpu> im
return getOne(lqw,false);
}
@Override
public GoodsSpuVo getVoById(Long id) {
GoodsSpu goodsSpu = this.getById(id);
GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo());
List<GoodsSku> skuList = goodsSkuService.getBySpuId(id);
goodsSpuVo.setSkuList(skuList);
List<GoodsSkuSpecValueVo> skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id);
List<GoodsSpuSpecVo> 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<GoodsSpuMapper,GoodsSpu> im
}
}else {
spu.setCategoryFirst(category.getId()+"");
spu.setCategorySecond("");
spu.setCategoryThird("");
}
//设置品牌
GoodsBrand goodsBrand = goodsBrandService.getByCode(tasteProduct.getBrandCode());

7
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<GoodsSpuSpecMapper,GoodsSpuSpec> implements GoodsSpuSpecService {
@Override
public List<GoodsSpuSpecVo> listSpuSpecs(Long spuId) {
return baseMapper.listSpuSpecs(spuId);
}
}

Loading…
Cancel
Save