framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java
@@ -252,6 +252,13 @@ sku.remove("couponId"); sku.remove("couponName"); } Object templateId = sku.get("customizeTemplateId"); if (templateId == null || StringUtil.isEmpty(templateId.toString())) { sku.remove("customizeTemplateId"); sku.remove("customizeTemplateName"); } sku.values().forEach(i -> { if (CharSequenceUtil.isBlank(i.toString())) { throw new ServiceException(ResultCode.MUST_HAVE_GOODS_SKU_VALUE); framework/src/main/java/cn/lili/modules/goods/sku/GoodsSkuBuilder.java
@@ -7,6 +7,7 @@ import cn.lili.common.utils.StringUtils; import cn.lili.modules.goods.entity.dos.Goods; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.order.order.entity.enums.CustomizeFlagEnum; import org.springframework.stereotype.Component; import java.util.*; @@ -65,7 +66,7 @@ Map<String, Object> specMap = new LinkedHashMap<>(); // 原始规格项 String[] ignoreOriginKeys = {"id", "sn", "cost", "price", "quantity", "weight", "alertQuantity","couponId","couponName"}; String[] ignoreOriginKeys = {"id", "sn", "cost", "price", "quantity", "weight", "alertQuantity","couponId","couponName","customizeTemplateId","customizeTemplateName"}; //获取规格信息 for (Map.Entry<String, Object> spec : skuInfo.entrySet()) { //保存新增规格信息 @@ -87,7 +88,22 @@ if(StringUtils.isNotBlank(Convert.toStr(skuInfo.get("couponId")))){ goodsSku.setCouponId(Convert.toStr(skuInfo.get("couponId"),"")); } boolean have = true; if(StringUtils.isNotBlank(Convert.toStr(skuInfo.get("customizeTemplateId")))){ goodsSku.setCustomizeTemplateId(Convert.toStr(skuInfo.get("customizeTemplateId"),"")); }else{ have = false; } if(StringUtils.isNotBlank(Convert.toStr(skuInfo.get("customizeTemplateName")))){ goodsSku.setCustomizeTemplateName(Convert.toStr(skuInfo.get("customizeTemplateName"),"")); }else { have = false; } if (have){ goodsSku.setCustomizeFlag(CustomizeFlagEnum.CUSTOMIZE.name()); }else{ goodsSku.setCustomizeFlag(CustomizeFlagEnum.NOT_CUSTOMIZE.name()); } goodsSku.setCouponName(Convert.toStr(skuInfo.get("couponName"),"")); goodsSku.setId(Convert.toStr(skuInfo.get("id"), "")); goodsSku.setSn(Convert.toStr(skuInfo.get("sn"))); framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
@@ -1,6 +1,7 @@ package cn.lili.modules.lmk.service; import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate; import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO; import com.baomidou.mybatisplus.extension.service.IService; import cn.lili.base.Result; import cn.lili.modules.lmk.domain.form.GoodsCustomizeTemplateForm; @@ -57,6 +58,8 @@ */ Result detail(String id); GoodsCustomizeTemplateVO detailById(String id); /** * 列表 * @return framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
@@ -5,14 +5,12 @@ import cn.lili.modules.lmk.enums.general.EnableStatusEnums; import cn.lili.modules.lmk.service.TemplateConstomizeTitleService; import cn.lili.modules.lmk.service.TemplateImgsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate; import cn.lili.modules.lmk.mapper.GoodsCustomizeTemplateMapper; import cn.lili.modules.lmk.service.GoodsCustomizeTemplateService; import cn.lili.base.Result; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.lili.modules.lmk.domain.form.GoodsCustomizeTemplateForm; import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO; @@ -184,6 +182,10 @@ */ @Override public Result detail(String id) { return Result.ok().data(this.detailById(id)); } @Override public GoodsCustomizeTemplateVO detailById(String id){ GoodsCustomizeTemplateVO vo = baseMapper.getById(id); Assert.notNull(vo, "记录不存在"); //查询相关模板信息 @@ -199,7 +201,7 @@ .list(); vo.setListImages(templateImgsList); vo.setTitles(templateConstomizeTitleList); return Result.ok().data(vo); return vo; } /** framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java
@@ -5,6 +5,7 @@ import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.SnowFlake; import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO; import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.vo.CartSkuVO; import cn.lili.modules.order.cart.entity.vo.CartVO; @@ -15,12 +16,14 @@ import cn.lili.modules.order.order.entity.enums.RefundStatusEnum; import cn.lili.modules.promotion.entity.vos.PromotionSkuVO; import cn.lili.mybatis.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.annotation.Transient; import java.math.BigDecimal; import java.util.stream.Collectors; @@ -139,6 +142,10 @@ @ApiModelProperty(value = "抽成比例") private BigDecimal commission; @ApiModelProperty(value = "商品定制模板VO") @TableField(exist = false) private GoodsCustomizeTemplateVO goodsCustomizeTemplateVO; public Integer getDeliverNumber() { if(deliverNumber == null){ return 0; framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java
@@ -2,24 +2,31 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.base.Result; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.utils.StringUtils; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO; import cn.lili.modules.lmk.service.GoodsCustomizeTemplateService; import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dto.OrderItemOperationDTO; import cn.lili.modules.order.order.entity.enums.CommentStatusEnum; import cn.lili.modules.order.order.entity.enums.OrderComplaintStatusEnum; import cn.lili.modules.order.order.entity.enums.OrderItemAfterSaleStatusEnum; import cn.lili.modules.order.order.entity.enums.RefundStatusEnum; import cn.lili.modules.order.order.entity.enums.*; import cn.lili.modules.order.order.mapper.OrderItemMapper; import cn.lili.modules.order.order.service.OrderItemService; import cn.lili.utils.COSUtil; 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.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** * 子订单业务层实现 @@ -28,7 +35,11 @@ * @since 2020/11/17 7:38 下午 */ @Service @RequiredArgsConstructor public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem> implements OrderItemService { private final GoodsCustomizeTemplateService goodsCustomizeTemplateService; private final GoodsSkuService skuService; private final COSUtil cosUtil; @Override public void updateCommentStatus(String orderItemSn, CommentStatusEnum commentStatusEnum) { @@ -87,7 +98,30 @@ public List<OrderItem> getByOrderSn(String orderSn) { LambdaQueryWrapper<OrderItem> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(OrderItem::getOrderSn, orderSn); return this.list(lambdaQueryWrapper); //查询每个 skuId对应的商品 是否是定制商品 ,是则查询出模板信息 List<OrderItem> list = this.list(lambdaQueryWrapper); for (OrderItem orderItem : list) { GoodsSku goodsSku = new LambdaQueryChainWrapper<>(skuService.getBaseMapper()) .eq(GoodsSku::getId, orderItem.getSkuId()) .eq(GoodsSku::getDeleteFlag, Boolean.FALSE) .one(); if (goodsSku != null && CustomizeFlagEnum.CUSTOMIZE.name().equals(goodsSku.getCustomizeFlag())) { if (goodsSku.getCustomizeTemplateId() != null){ GoodsCustomizeTemplateVO goodsCustomizeTemplateVO = goodsCustomizeTemplateService.detailById(goodsSku.getCustomizeTemplateId()); goodsCustomizeTemplateVO.getListImages().forEach(item ->{ if (StringUtils.isNotBlank(item.getImgUrl()) && !item.getImgUrl().contains("http")){ item.setImgUrl(cosUtil.getPreviewUrl(item.getImgUrl())); } }); orderItem.setGoodsCustomizeTemplateVO(goodsCustomizeTemplateVO); } } } return list; } @Override