zxl
2025-10-11 802eb534794ce1783c2525ad4ddc4a6256d1a087
订单定值商品模板信息展示
6个文件已修改
89 ■■■■ 已修改文件
framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/goods/sku/GoodsSkuBuilder.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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