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>