From 7bd8ca216a8b507d3545fe72a8776467938b44f7 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期六, 11 十月 2025 16:35:34 +0800
Subject: [PATCH] 定制模块
---
buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java | 34 ++++++++
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java | 29 +++++++
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java | 3
buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java | 11 ++
framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java | 18 ++++
framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java | 9 ++
framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java | 27 ++++++
framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java | 3
framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java | 2
framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml | 32 ++++++++
framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java | 19 ++++
11 files changed, 185 insertions(+), 2 deletions(-)
diff --git a/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java b/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
index 217afee..9fc0b62 100644
--- a/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
+++ b/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);
}
diff --git a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
index 349ac8d..28df163 100644
--- a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
+++ b/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);
+ }
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
new file mode 100644
index 0000000..0841a94
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
@@ -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;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java
new file mode 100644
index 0000000..7bc083d
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java
@@ -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;
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
index 50805c9..0493a13 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
+++ b/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);
+
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java b/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
index d163c27..4e17f8e 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
@@ -62,4 +62,6 @@
* @return
*/
Result all();
+
+ Result getCustomizeTemplate(String id);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
index 7a9c203..46ad265 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
+++ b/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);
+ }
}
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
index c39556f..f6e730a 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
+++ b/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;
/**
* 璁㈠崟鍦板潃淇敼鐘舵��
*/
diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index c3003e8..833fe7f 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/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);
diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java b/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
index a0b1f66..df74e53 100644
--- a/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
+++ b/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;
+
+
}
diff --git a/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml b/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
index d025c4b..47018a2 100644
--- a/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
+++ b/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>
--
Gitblit v1.8.0