peng
2025-10-11 8fd3db7778b3991810d33ac4dffd2f9031b106fc
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
@@ -1,18 +1,32 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.modules.lmk.domain.entity.TemplateConstomizeTitle;
import cn.lili.modules.lmk.domain.entity.TemplateImgs;
import cn.lili.modules.lmk.enums.general.EnableStatusEnums;
import cn.lili.modules.lmk.service.TemplateConstomizeTitleService;
import cn.lili.modules.lmk.service.TemplateImgsService;
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;
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.service.impl.ServiceImpl;
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;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.List;
@@ -30,15 +44,35 @@
    private final GoodsCustomizeTemplateMapper goodsCustomizeTemplateMapper;
    private final TemplateImgsService templateImgsService;
    private final TemplateConstomizeTitleService templateConstomizeTitleService;
    private final GoodsSkuService goodsSkuService;
    private final COSUtil cosUtil;
    /**
     * 添加
     * @param form
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result add(GoodsCustomizeTemplateForm form) {
        GoodsCustomizeTemplate entity = GoodsCustomizeTemplateForm.getEntityByForm(form, null);
        entity.setStatus(EnableStatusEnums.ENABLE.name());
        baseMapper.insert(entity);
        String templateId = entity.getId();
        List<TemplateImgs> listImages = form.getListImages();
        for (TemplateImgs templateImgs : listImages) {
            templateImgs.setTemplateId(templateId);
        }
        List<TemplateConstomizeTitle> titles = form.getTitles();
        for (TemplateConstomizeTitle title : titles) {
            title.setTemplateId(templateId);
        }
        templateImgsService.saveBatch(listImages);
        templateConstomizeTitleService.saveBatch(titles);
        return Result.ok("添加成功");
    }
@@ -48,12 +82,47 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result update(GoodsCustomizeTemplateForm form) {
        GoodsCustomizeTemplate entity = baseMapper.selectById(form.getId());
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        //先删除之前的模板信息然后添加新信息
        List<TemplateImgs> templateImgsList = new LambdaQueryChainWrapper<>(templateImgsService.getBaseMapper())
                .eq(TemplateImgs::getTemplateId, entity.getId())
                .eq(TemplateImgs::getDeleteFlag, Boolean.FALSE)
                .list();
        List<String> imgIds = templateImgsList.stream()
                .map(TemplateImgs::getId)
                .collect(Collectors.toList());
        List<TemplateConstomizeTitle> templateConstomizeTitleList = new LambdaQueryChainWrapper<>(templateConstomizeTitleService.getBaseMapper())
                .eq(TemplateConstomizeTitle::getTemplateId, entity.getId())
                .eq(TemplateConstomizeTitle::getDeleteFlag, Boolean.FALSE)
                .list();
        List<String> titleIds = templateConstomizeTitleList.stream()
                .map(TemplateConstomizeTitle::getId)
                .collect(Collectors.toList());
        templateImgsService.removeBatchByIds(imgIds);
        templateConstomizeTitleService.removeBatchByIds(titleIds);
        List<TemplateImgs> listImages = form.getListImages();
        for (TemplateImgs templateImgs : listImages) {
            templateImgs.setTemplateId(entity.getId());
        }
        List<TemplateConstomizeTitle> titles = form.getTitles();
        for (TemplateConstomizeTitle title : titles) {
            title.setTemplateId(entity.getId());
        }
        templateImgsService.saveBatch(listImages);
        templateConstomizeTitleService.saveBatch(titles);
        baseMapper.updateById(entity);
        return Result.ok("修改成功");
    }
@@ -75,8 +144,32 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result removeById(String id) {
        List<TemplateImgs> templateImgsList = new LambdaQueryChainWrapper<>(templateImgsService.getBaseMapper())
                .eq(TemplateImgs::getTemplateId, id)
                .eq(TemplateImgs::getDeleteFlag, Boolean.FALSE)
                .list();
        List<String> imgIds = templateImgsList.stream()
                .map(TemplateImgs::getId)
                .collect(Collectors.toList());
        List<TemplateConstomizeTitle> templateConstomizeTitleList = new LambdaQueryChainWrapper<>(templateConstomizeTitleService.getBaseMapper())
                .eq(TemplateConstomizeTitle::getTemplateId, id)
                .eq(TemplateConstomizeTitle::getDeleteFlag, Boolean.FALSE)
                .list();
        List<String> titleIds = templateConstomizeTitleList.stream()
                .map(TemplateConstomizeTitle::getId)
                .collect(Collectors.toList());
        templateImgsService.removeBatchByIds(imgIds);
        templateConstomizeTitleService.removeBatchByIds(titleIds);
        baseMapper.deleteById(id);
        return Result.ok("删除成功");
    }
@@ -99,9 +192,26 @@
     */
    @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, "记录不存在");
        return Result.ok().data(vo);
        //查询相关模板信息
        List<TemplateImgs> templateImgsList = new LambdaQueryChainWrapper<>(templateImgsService.getBaseMapper())
                .eq(TemplateImgs::getTemplateId, id)
                .eq(TemplateImgs::getDeleteFlag, Boolean.FALSE)
                .list();
        List<TemplateConstomizeTitle> templateConstomizeTitleList = new LambdaQueryChainWrapper<>(templateConstomizeTitleService.getBaseMapper())
                .eq(TemplateConstomizeTitle::getTemplateId, id)
                .eq(TemplateConstomizeTitle::getDeleteFlag, Boolean.FALSE)
                .list();
        vo.setListImages(templateImgsList);
        vo.setTitles(templateConstomizeTitleList);
        return vo;
    }
    /**
@@ -116,4 +226,35 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result changeStatus(String id) {
        GoodsCustomizeTemplate goodsCustomizeTemplate = baseMapper.selectById(id);
        if (EnableStatusEnums.ENABLE.name().equals(goodsCustomizeTemplate.getStatus())){
            goodsCustomizeTemplate.setStatus(EnableStatusEnums.DISABLE.name());
        }else{
            goodsCustomizeTemplate.setStatus(EnableStatusEnums.ENABLE.name());
        }
        baseMapper.updateById(goodsCustomizeTemplate);
        return Result.ok();
    }
    @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);
    }
}