diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dos/DraftGoods.java b/framework/src/main/java/cn/lili/modules/goods/entity/dos/DraftGoods.java index 23e0a4a3..df07486c 100644 --- a/framework/src/main/java/cn/lili/modules/goods/entity/dos/DraftGoods.java +++ b/framework/src/main/java/cn/lili/modules/goods/entity/dos/DraftGoods.java @@ -64,6 +64,10 @@ public class DraftGoods extends BaseEntity { @ApiModelProperty(value = "详情") private String intro; + + @ApiModelProperty(value = "商品移动端详情") + private String mobileIntro; + @Max(value = 99999999, message = "价格不能超过99999999") @ApiModelProperty(value = "商品价格") private Double price; @@ -114,11 +118,6 @@ public class DraftGoods extends BaseEntity { @ApiModelProperty(value = "是否自营") private Boolean selfOperated; - /** - * 商品移动端详情 - */ - @ApiModelProperty(value = "商品移动端详情") - private String mobileIntro; @ApiModelProperty(value = "商品视频") private String goodsVideo; diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java b/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java index 79ee16af..81bbc39b 100644 --- a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java +++ b/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java @@ -26,14 +26,24 @@ public class SpecValueVO implements Serializable { @ApiModelProperty(value = "规格值") private String specValue; - /** - * 规格类型,1图片 0 非图片 - */ @ApiModelProperty(value = "该规格是否有图片,1 有 0 没有") private Integer specType; /** * 规格图片 */ @ApiModelProperty(value = "规格的图片") - private List specImage; + private List specImage; + + @Data + public static class SpecImages implements Serializable { + + private static final long serialVersionUID = 1816357809660916086L; + + private String url; + + private String name; + + private String status; + + } } diff --git a/framework/src/main/java/cn/lili/modules/goods/service/GoodsParamsService.java b/framework/src/main/java/cn/lili/modules/goods/service/GoodsParamsService.java index c0ea0bd1..bd8195fc 100644 --- a/framework/src/main/java/cn/lili/modules/goods/service/GoodsParamsService.java +++ b/framework/src/main/java/cn/lili/modules/goods/service/GoodsParamsService.java @@ -23,6 +23,21 @@ public interface GoodsParamsService extends IService { */ void addParams(List paramList, String goodsId); + /** + * 更新商品参数是否索引 + * + * @param paramId 参数id + * @param isIndex 是否索引 + */ + void updateParametersIsIndex(String paramId, Integer isIndex); + + /** + * 根据参数id删除已经设置的商品参数 + * + * @param paramId 参数id + */ + void deleteByParamId(String paramId); + /** * 获取商品关联参数 * diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsParamsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsParamsServiceImpl.java index 4fae7285..9c91b756 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsParamsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsParamsServiceImpl.java @@ -2,7 +2,6 @@ package cn.lili.modules.goods.serviceimpl; import cn.lili.modules.goods.entity.dos.CategoryParameterGroup; import cn.lili.modules.goods.entity.dos.GoodsParams; -import cn.lili.modules.goods.entity.dos.Parameters; import cn.lili.modules.goods.entity.vos.GoodsParamsGroupVO; import cn.lili.modules.goods.entity.vos.GoodsParamsVO; import cn.lili.modules.goods.mapper.GoodsParamsMapper; @@ -10,9 +9,10 @@ import cn.lili.modules.goods.service.CategoryParameterGroupService; import cn.lili.modules.goods.service.GoodsParamsService; import cn.lili.modules.goods.service.ParametersService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,8 +38,6 @@ public class GoodsParamsServiceImpl extends ServiceImpl paramList, String goodsId) { @@ -48,18 +46,41 @@ public class GoodsParamsServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(GoodsParams::getParamId, paramId); + updateWrapper.set(GoodsParams::getIsIndex, isIndex); + this.update(updateWrapper); + } + + /** + * 根据参数id删除已经设置的商品参数 + * + * @param paramId 参数id + */ + @Override + public void deleteByParamId(String paramId) { + this.remove(new QueryWrapper().eq("param_id", paramId)); + } + @Override public List getGoodsParamsByGoodsId(String goodsId) { return this.list(new LambdaQueryWrapper().eq(GoodsParams::getGoodsId, goodsId)); diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java index 99f46de6..3f7419b1 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java @@ -11,6 +11,7 @@ import cn.lili.common.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.common.rocketmq.tags.GoodsTagsEnum; import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.PageUtil; +import cn.lili.common.utils.StringUtils; import cn.lili.config.rocketmq.RocketmqCustomProperties; import cn.lili.modules.goods.entity.dos.Goods; import cn.lili.modules.goods.entity.dos.GoodsParams; @@ -44,6 +45,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** * 商品sku业务层实现 @@ -64,9 +66,6 @@ public class GoodsSkuServiceImpl extends ServiceImpl i //商品相册 @Autowired private GoodsGalleryService goodsGalleryService; - //规格 - @Autowired - private SpecificationService specificationService; //缓存 @Autowired private StringRedisTemplate stringRedisTemplate; @@ -317,33 +316,30 @@ public class GoodsSkuServiceImpl extends ServiceImpl i @Override public GoodsSkuVO getGoodsSkuVO(GoodsSku goodsSku) { + //厨师还商品 GoodsSkuVO goodsSkuVO = new GoodsSkuVO(goodsSku); + //获取sku信息 JSONObject jsonObject = JSONUtil.parseObj(goodsSku.getSpecs()); + //用于接受sku信息 List specValueVOS = new ArrayList<>(); + //用于接受sku相册 List goodsGalleryList = new ArrayList<>(); -// for (Map.Entry entry : jsonObject.entrySet()) { -// SpecValueVO s = new SpecValueVO(); -// if (entry.getKey().equals("images")) { -// s.setSpecName(entry.getKey()); -// if (entry.getValue().toString().contains("url")) { -// List specImages = JSONUtil.toList(JSONUtil.parseArray(entry.getValue()), SpecValueVO.SpecImages.class); -// s.setSpecImage(specImages); -// goodsGalleryList = specImages.stream().map(SpecValueVO.SpecImages::getUrl).collect(Collectors.toList()); -// } -// } else { -// SpecificationVO specificationVO = new SpecificationVO(); -// specificationVO.setSpecName(entry.getKey()); -// specificationVO.setStoreId(goodsSku.getStoreId()); -// specificationVO.setCategoryPath(goodsSku.getCategoryPath()); -// Specification specification = specificationService.addSpecification(specificationVO); -// s.setSpecNameId(specification.getId()); -// SpecValues specValues = specValuesService.getSpecValues(entry.getValue().toString(), specification.getId()); -// s.setSpecValueId(specValues.getId()); -// s.setSpecName(entry.getKey()); -// s.setSpecValue(entry.getValue().toString()); -// } -// specValueVOS.add(s); -// } + //循环提交的sku表单 + for (Map.Entry entry : jsonObject.entrySet()) { + SpecValueVO specValueVO = new SpecValueVO(); + if (entry.getKey().equals("images")) { + specValueVO.setSpecName(entry.getKey()); + if (entry.getValue().toString().contains("url")) { + List specImages = JSONUtil.toList(JSONUtil.parseArray(entry.getValue()), SpecValueVO.SpecImages.class); + specValueVO.setSpecImage(specImages); + goodsGalleryList = specImages.stream().map(SpecValueVO.SpecImages::getUrl).collect(Collectors.toList()); + } + } else { + specValueVO.setSpecName(entry.getKey()); + specValueVO.setSpecValue(entry.getValue().toString()); + } + specValueVOS.add(specValueVO); + } goodsSkuVO.setGoodsGalleryList(goodsGalleryList); goodsSkuVO.setSpecList(specValueVOS); return goodsSkuVO; @@ -603,29 +599,34 @@ public class GoodsSkuServiceImpl extends ServiceImpl i List attributes = new ArrayList<>(); //获取规格信息 - for (Map.Entry m : map.entrySet()) { + for (Map.Entry spec : map.entrySet()) { //保存规格信息 - if (m.getKey().equals("id") || m.getKey().equals("sn") || m.getKey().equals("cost") || m.getKey().equals("price") || m.getKey().equals("quantity") || m.getKey().equals("weight")) { + if (spec.getKey().equals("id") || spec.getKey().equals("sn") || spec.getKey().equals("cost") + || spec.getKey().equals("price") || spec.getKey().equals("quantity") + || spec.getKey().equals("weight")) { continue; } else { - specMap.put(m.getKey(), m.getValue()); - if (m.getKey().equals("images")) { + specMap.put(spec.getKey(), spec.getValue()); + if (spec.getKey().equals("images")) { //设置规格商品缩略图 - List> images = (List>) m.getValue(); + List> images = (List>) spec.getValue(); if (images == null || images.isEmpty()) { - throw new ServiceException("sku图片至少为一个"); + continue; + } + //设置规格商品缩略图 + //如果规格没有图片,则用商品图片复盖。有则增加规格图片,放在商品图片集合之前 + if (spec.getValue() != null && StringUtils.isNotEmpty(spec.getValue().toString())) { + thumbnail = goodsGalleryService.getGoodsGallery(images.get(0).get("url")).getThumbnail(); + small = goodsGalleryService.getGoodsGallery(images.get(0).get("url")).getSmall(); + } else { + //设置商品名称 + goodsName.append(" ").append(spec.getValue()); + //规格简短信息 + simpleSpecs.append(" ").append(spec.getValue()); } - thumbnail = goodsGalleryService.getGoodsGallery(images.get(0).get("url")).getThumbnail(); - small = goodsGalleryService.getGoodsGallery(images.get(0).get("url")).getSmall(); - } else { - //设置商品名称 - goodsName.append(" ").append(m.getValue()); - //规格简短信息 - simpleSpecs.append(" ").append(m.getValue()); } } } - //设置规格信息 sku.setGoodsName(goodsName.toString()); sku.setThumbnail(thumbnail); @@ -656,4 +657,4 @@ public class GoodsSkuServiceImpl extends ServiceImpl i public void setGoodsIndexService(EsGoodsIndexService goodsIndexService) { this.goodsIndexService = goodsIndexService; } -} \ No newline at end of file +} diff --git a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/PlatformViewDataServiceImpl.java b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/PlatformViewDataServiceImpl.java index 8d69e54f..c39cf71e 100644 --- a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/PlatformViewDataServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/PlatformViewDataServiceImpl.java @@ -4,7 +4,6 @@ import cn.lili.common.cache.Cache; import cn.lili.common.cache.CachePrefix; import cn.lili.common.security.enums.UserEnums; import cn.lili.common.utils.CurrencyUtil; -import cn.lili.common.utils.DateUtil; import cn.lili.config.properties.StatisticsProperties; import cn.lili.modules.base.entity.enums.ClientTypeEnum; import cn.lili.modules.member.entity.vo.MemberDistributionVO; @@ -52,6 +51,9 @@ public class PlatformViewDataServiceImpl extends ServiceImpl save(@Valid Parameters parameters) { @@ -44,6 +48,9 @@ public class ParameterManagerController { public ResultMessage update(@Valid Parameters parameters) { if (parametersService.updateById(parameters)) { + if (parameters.getIsIndex() != null) { + goodsParamsService.updateParametersIsIndex(parameters.getId(), parameters.getIsIndex()); + } return ResultUtil.data(parameters); } throw new ServiceException(ResultCode.PARAMETER_UPDATE_ERROR); @@ -54,6 +61,7 @@ public class ParameterManagerController { @DeleteMapping(value = "/{id}") public ResultMessage delById(@PathVariable String id) { parametersService.removeById(id); + goodsParamsService.deleteByParamId(id); return ResultUtil.success(); } diff --git a/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java b/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java index 0a778cc2..1bdb6968 100644 --- a/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java +++ b/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -29,7 +30,7 @@ public class SpecificationStoreController { @GetMapping(value = "/{categoryId}") @ApiOperation(value = "获取分类规格") - public List getSpecifications(String categoryId) { + public List getSpecifications(@PathVariable String categoryId) { return categorySpecificationService.getCategorySpecList(categoryId); }