peng
2025-10-11 7bd8ca216a8b507d3545fe72a8776467938b44f7
定制模块
9个文件已修改
2个文件已添加
187 ■■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
@@ -3,7 +3,11 @@
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.lmk.domain.entity.UserCheckTemplate;
import cn.lili.modules.lmk.domain.form.CustomizeTemplateForm;
import cn.lili.modules.lmk.service.UserCheckTemplateService;
import cn.lili.modules.payment.kit.CashierSupport;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.entity.enums.PaymentClientEnum;
@@ -15,11 +19,14 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * 买家端,收银台接口
@@ -36,14 +43,37 @@
    @Autowired
    private CashierSupport cashierSupport;
    @Autowired
    private UserCheckTemplateService  userCheckTemplateService;
    @ApiImplicitParams({
            @ApiImplicitParam(name = "client", value = "客户端类型", paramType = "path", allowableValues = "PC,H5,WECHAT_MP,APP")
    })
    @GetMapping(value = "/tradeDetail")
    @PostMapping(value = "/tradeDetail")
    @ApiOperation(value = "获取支付详情")
    public ResultMessage paymentParams(@Validated PayParam payParam) {
    @Transactional(rollbackFor = Exception.class)
    public ResultMessage paymentParams(@Validated @RequestBody PayParam payParam) {
        CashierParam cashierParam = cashierSupport.cashierParam(payParam);
        //定制商品特殊处理
        if (StringUtils.isNotBlank(payParam.getTemplateId())){
            List<CustomizeTemplateForm> templateForm = payParam.getTemplateForm();
            List<UserCheckTemplate> customizeTemplateForms = new ArrayList<>();
            String orderSns = cashierParam.getOrderSns();
            for (CustomizeTemplateForm customizeTemplateForm : templateForm) {
                UserCheckTemplate userCheckTemplate = new UserCheckTemplate();
                userCheckTemplate.setChooseImg(payParam.getChooseImage());
                userCheckTemplate.setTemplateName(payParam.getTemplateName());
                userCheckTemplate.setTemplateId(payParam.getTemplateId());
                userCheckTemplate.setOrderSn(orderSns);
                userCheckTemplate.setSubId(customizeTemplateForm.getId());
                userCheckTemplate.setSubName(customizeTemplateForm.getTemplateTitle());
                userCheckTemplate.setContent(customizeTemplateForm.getValue());
                customizeTemplateForms.add(userCheckTemplate);
            }
            userCheckTemplateService.saveBatch(customizeTemplateForms);
        }
        return ResultUtil.data(cashierParam);
    }
buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
@@ -13,6 +13,8 @@
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.GoodsUnitService;
import cn.lili.modules.goods.service.StoreGoodsLabelService;
import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
import cn.lili.modules.lmk.service.GoodsCustomizeTemplateService;
import cn.lili.modules.store.entity.dos.Store;
import cn.lili.modules.store.entity.dto.StoreBankDTO;
import cn.lili.modules.store.entity.dto.StoreCompanyDTO;
@@ -75,6 +77,9 @@
    @Autowired
    private GoodsService goodsService;
    @Autowired
    private GoodsCustomizeTemplateService goodsCustomizeTemplateService;
    @ApiOperation(value = "获取店铺列表分页")
    @GetMapping
@@ -170,4 +175,10 @@
        goodsService.addGoods(goodsOperationDTO);
        return ResultUtil.success();
    }
    @ApiOperation(value = "定制商品获取模板信息")
    @GetMapping(value = "/getTemplate/{skuId}")
    public Result getTemplate(@PathVariable String skuId) {
        return goodsCustomizeTemplateService.getCustomizeTemplate(skuId);
    }
}
framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
New file
@@ -0,0 +1,19 @@
package cn.lili.modules.lmk.domain.form;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
@Data
public class CustomizeTemplateForm {
    /** 模板id */
    private String id;
    /** 子模板标题 */
    private String templateTitle;
    /** 子模板值*/
    private String value;
}
framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java
New file
@@ -0,0 +1,27 @@
package cn.lili.modules.lmk.domain.vo;
import cn.lili.modules.lmk.domain.entity.TemplateConstomizeTitle;
import cn.lili.modules.lmk.domain.entity.TemplateImgs;
import lombok.Data;
import java.util.List;
@Data
public class CustomizeTemplateVO {
    /**
     * 模板id
     */
    private String id;
    /**
     * 模板名称
     */
    private String name;
    /**
     * 图片列表
     */
    private List<TemplateImgs> templateImgs;
    /**
     * 标题
     */
    private List<TemplateConstomizeTitle>  templateConstomizeTitles;
}
framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
@@ -1,6 +1,7 @@
package cn.lili.modules.lmk.mapper;
import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
import cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO;
@@ -31,4 +32,6 @@
    */
    IPage getPage(IPage page, @Param("query") GoodsCustomizeTemplateQuery query);
    CustomizeTemplateVO getCustomizeTemplate(@Param("id") String id);
}
framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
@@ -62,4 +62,6 @@
     * @return
     */
    Result all();
    Result getCustomizeTemplate(String id);
}
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
@@ -1,5 +1,11 @@
package cn.lili.modules.lmk.service.impl;
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.entity.TemplateImgs;
import cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
import cn.lili.modules.lmk.mapper.GoodsCustomizeTemplateMapper;
@@ -9,6 +15,7 @@
import cn.lili.modules.lmk.domain.form.GoodsCustomizeTemplateForm;
import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO;
import cn.lili.modules.lmk.domain.query.GoodsCustomizeTemplateQuery;
import jodd.util.StringUtil;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import cn.lili.utils.PageUtil;
@@ -30,6 +37,9 @@
    private final GoodsCustomizeTemplateMapper goodsCustomizeTemplateMapper;
    private final GoodsSkuService goodsSkuService;
    private final COSUtil cosUtil;
    /**
     * 添加
     * @param form
@@ -116,4 +126,23 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result getCustomizeTemplate(String id) {
        GoodsSku goodsSku = goodsSkuService.getById(id);
        String templateId = goodsSku.getCustomizeTemplateId();
        CustomizeTemplateVO customizeTemplate = baseMapper.getCustomizeTemplate(templateId);
        if (customizeTemplate != null) {
            List<TemplateImgs> templateImgs = customizeTemplate.getTemplateImgs();
            if (!templateImgs.isEmpty()) {
                for (TemplateImgs templateImg : templateImgs) {
                    String imgUrl = templateImg.getImgUrl();
                    if (StringUtils.isNotBlank(imgUrl)&&!imgUrl.contains("http")) {
                        templateImg.setImgUrl(cosUtil.getPreviewUrl(imgUrl));
                    }
                }
            }
        }
        return Result.ok().data(customizeTemplate);
    }
}
framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
@@ -17,6 +17,8 @@
import cn.lili.modules.order.order.entity.enums.*;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.mybatis.BaseEntity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
@@ -191,6 +193,13 @@
     */
    @ApiModelProperty(value = "是否是礼品卡")
    private String couponFlag;
    @ApiModelProperty(value ="表示虚拟定制商品类型 现有类型:定制商品")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    /**
     * @see CustomizeFlagEnum
     */
    private String customizeFlag;
    /**
     * 订单地址修改状态
     */
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -277,6 +277,9 @@
                                String couponName = skuInfo.getCouponName();
                                orderItem.setCouponId(couponId);
                                orderItem.setCouponName(couponName);
                            }//订单中有定制商品将订单改为定制商品
                            else if (CustomizeFlagEnum.CUSTOMIZE.name().equals(skuInfo.getCustomizeFlag())) {
                                order.setCustomizeFlag(CustomizeFlagEnum.CUSTOMIZE.name());
                            }
                        }
                        orderItems.add(orderItem);
framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
@@ -1,10 +1,12 @@
package cn.lili.modules.payment.kit.dto;
import cn.lili.modules.lmk.domain.form.CustomizeTemplateForm;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
 * 支付参数
@@ -29,6 +31,22 @@
    @ApiModelProperty(value = "客户端类型")
    private String clientType;
    @ApiModelProperty(value = "模板信息")
    private List<CustomizeTemplateForm> templateForm;
    @ApiModelProperty(value = "模板id")
    private String templateId;
    @ApiModelProperty(value = "模板名称")
    private String templateName;
    @ApiModelProperty(value = "选中图片")
    private String chooseImage;
    @ApiModelProperty(value = "选中图片Id")
    private String chooseImageId;
}
framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
@@ -37,5 +37,37 @@
        WHERE
            LGCT.delete_flag = 0
    </select>
    <resultMap id="getCustomizeTemplateMap" type="cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO">
        <id property="id" column="id"/>
        <result property="name" column="template_name"/>
        <collection property="templateImgs" ofType="cn.lili.modules.lmk.domain.entity.TemplateImgs">
            <id property="id" column="imgId"/>
            <result property="imgUrl" column="img_url"/>
        </collection>
        <collection property="templateConstomizeTitles" ofType="cn.lili.modules.lmk.domain.entity.TemplateConstomizeTitle">
            <id property="id" column="titleId"/>
            <result property="contentType" column="content_type"/>
            <result property="templateTitle" column="template_title"/>
        </collection>
    </resultMap>
    <select id="getCustomizeTemplate" resultMap="getCustomizeTemplateMap">
        SELECT
            lgct.id,
            lgct.template_name,
            lti.id imgId,
            lti.img_url,
            ltct.id titleId,
            ltct.template_title,
            ltct.content_type
        FROM
            lmk_goods_customize_template lgct
                JOIN lmk_template_imgs lti ON lti.template_id = lgct.id
                JOIN lmk_template_constomize_title ltct ON ltct.template_id = lgct.id
        WHERE
          lgct.id = #{id}
          AND lgct.delete_flag = 0
          AND lti.delete_flag = 0
          AND ltct.delete_flag = 0
    </select>
</mapper>