zxl
2025-10-15 18a9f86a8c1fdb6c42c4212dcaa1de437f6f4861
Merge remote-tracking branch 'origin/user_action' into user_action
20个文件已修改
3个文件已添加
362 ■■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/order/CartController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/goods/entity/dos/GoodsSku.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/entity/UserCheckTemplate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java 22 ●●●●● 补丁 | 查看 | 原始文档 | 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/cart/entity/vo/BindingTemplateParam.java 43 ●●●●● 补丁 | 查看 | 原始文档 | 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/entity/dto/OrderSearchParams.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | 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/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager-api/src/main/java/cn/lili/controller/member/MemberEvaluationManagerController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/order/CartController.java
@@ -7,13 +7,21 @@
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.order.cart.entity.dto.BuyBackDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
import cn.lili.modules.order.cart.entity.vo.BindingTemplateParam;
import cn.lili.modules.order.cart.entity.vo.TradeParams;
import cn.lili.modules.order.cart.service.CartService;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.vo.ReceiptVO;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -22,6 +30,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -29,6 +38,7 @@
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
@@ -51,7 +61,12 @@
    @Autowired
    private COSUtil cosUtil;
    @Autowired
    private OrderService orderService;
    @Autowired
    private UserCheckTemplateService userCheckTemplateService;
    @ApiOperation(value = "向购物车中添加一个产品")
    @PostMapping
    @ApiImplicitParams({
@@ -352,4 +367,49 @@
            throw e;
        }
    }
    @PreventDuplicateSubmissions
    @ApiOperation(value = "根据交易编号进行模板数据绑定")
    @PostMapping("/binding/template")
    @Transactional(rollbackFor = Exception.class)
    public ResultMessage<Object> bindingTemplate(@RequestBody BindingTemplateParam bindingTemplateParam) {
        List<Order> byTradeSn = orderService.getByTradeSn(bindingTemplateParam.getSn());
        if (byTradeSn.isEmpty()) {
            log.info("当前订单不存在{}", bindingTemplateParam.getSn());
            return ResultUtil.error(ResultCode.ORDER_ERROR);
        }
        if (byTradeSn.size() >1) {
            log.info("当前订单数量异常{}", bindingTemplateParam.getSn());
            return ResultUtil.error(ResultCode.ORDER_ERROR);
        }
        Order order = byTradeSn.get(0);
        String sn = order.getSn();
        LambdaQueryWrapper<UserCheckTemplate> eq = Wrappers.<UserCheckTemplate>lambdaQuery().eq(UserCheckTemplate::getOrderSn, sn);
        List<UserCheckTemplate> list = userCheckTemplateService.list(eq);
        if (!list.isEmpty()) {
            log.info("订单不能重复绑定模板{}",bindingTemplateParam.getSn());
            return ResultUtil.error(ResultCode.ORDER_ERROR);
        }
        //定制商品特殊处理
        if (StringUtils.isNotBlank(bindingTemplateParam.getTemplateId())){
            List<CustomizeTemplateForm> templateForm = bindingTemplateParam.getTemplateForm();
            List<UserCheckTemplate> customizeTemplateForms = new ArrayList<>();
            for (CustomizeTemplateForm customizeTemplateForm : templateForm) {
                UserCheckTemplate userCheckTemplate = new UserCheckTemplate();
                userCheckTemplate.setContentType(customizeTemplateForm.getContentType());
                userCheckTemplate.setChooseImg(bindingTemplateParam.getChooseImage());
                userCheckTemplate.setChooseImgId(bindingTemplateParam.getChooseImageId());
                userCheckTemplate.setTemplateName(bindingTemplateParam.getTemplateName());
                userCheckTemplate.setTemplateId(bindingTemplateParam.getTemplateId());
                userCheckTemplate.setOrderSn(sn);
                userCheckTemplate.setSubId(customizeTemplateForm.getId());
                userCheckTemplate.setSubName(customizeTemplateForm.getTemplateTitle());
                userCheckTemplate.setContent(customizeTemplateForm.getValue());
                customizeTemplateForms.add(userCheckTemplate);
            }
            userCheckTemplateService.saveBatch(customizeTemplateForms);
        }
        return ResultUtil.success();
    }
}
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
@@ -9,7 +9,10 @@
import cn.lili.common.security.context.UserContext;
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.enums.general.AdminRoleEnum;
import cn.lili.modules.lmk.enums.general.TemplateContentTypeEnum;
import cn.lili.modules.lmk.service.UserCheckTemplateService;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderPackage;
@@ -27,7 +30,9 @@
import cn.lili.modules.system.entity.vo.Traces;
import cn.lili.utils.COSUtil;
import cn.lili.utils.CommonUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -70,6 +75,8 @@
    @Autowired
    private AdminUserService adminUserService;
    @Autowired
    private UserCheckTemplateService userCheckTemplateService;
    @ApiOperation(value = "查询会员订单列表")
    @GetMapping
    public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
@@ -103,6 +110,21 @@
        orderSearchParams.setMemberId(currentUser.getId());
        return ResultUtil.data(orderService.queryByXcxParams(orderSearchParams));
    }
    @ApiOperation(value = "根据订单号查询定制模板填写信息")
    @GetMapping("/customize/{sn}")
    public ResultMessage<List<UserCheckTemplate>> customize(@PathVariable @NotBlank String sn) {
        LambdaQueryWrapper<UserCheckTemplate> eq = Wrappers.<UserCheckTemplate>lambdaQuery().eq(UserCheckTemplate::getOrderSn, sn);
        List<UserCheckTemplate> list = userCheckTemplateService.list(eq);
        for (UserCheckTemplate userCheckTemplate : list) {
            if (TemplateContentTypeEnum.IMAGE.name().equals(userCheckTemplate.getContentType())) {
                String content = userCheckTemplate.getContent();
                if (StringUtils.isNotBlank(content)&&!content.contains("http")) {
                    userCheckTemplate.setContent(cosUtil.getPreviewUrl(content));
                }
            }
        }
        return ResultUtil.data(list);
    }
    @ApiOperation(value = "订单明细")
    @ApiImplicitParams({
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;
/**
 * 买家端,收银台接口
@@ -37,12 +44,14 @@
    private CashierSupport cashierSupport;
    @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);
        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/elasticsearch/BaseElasticsearchService.java
@@ -277,6 +277,15 @@
                        "          }\n" +
                        "        }\n" +
                        "      },\n" +
                        "      \"customizeFlag\": {\n" +
                        "        \"type\": \"text\",\n" +
                        "        \"fields\": {\n" +
                        "          \"keyword\": {\n" +
                        "            \"type\": \"keyword\",\n" +
                        "            \"ignore_above\": 256\n" +
                        "          }\n" +
                        "        }\n" +
                        "      },\n" +
                        "      \"point\": {\n" +
                        "        \"type\": \"long\"\n" +
                        "      },\n" +
framework/src/main/java/cn/lili/modules/goods/entity/dos/GoodsSku.java
@@ -183,7 +183,7 @@
    @ApiModelProperty(value ="定制模板名称")
    private String customizeTemplateName;
    @ApiModelProperty(value ="表示虚拟定制商品类型 现有类型:定制商品")
    @ApiModelProperty(value ="定制商品")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    /**
     * @see CustomizeFlagEnum
framework/src/main/java/cn/lili/modules/lmk/domain/entity/UserCheckTemplate.java
@@ -49,5 +49,9 @@
    /** 选择模板图片 */
    private String chooseImg;
    @TableField("content_type")
    /** 模板文本类型 */
    private String contentType;
}
framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
New file
@@ -0,0 +1,22 @@
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;
    /** 子模板类型*/
    private String contentType;
}
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
@@ -66,5 +66,7 @@
     */
    Result all();
    Result getCustomizeTemplate(String id);
    Result changeStatus(String id);
}
framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
@@ -5,6 +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 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;
@@ -15,6 +21,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;
@@ -39,6 +46,9 @@
    private final TemplateImgsService templateImgsService;
    private final TemplateConstomizeTitleService templateConstomizeTitleService;
    private final GoodsSkuService goodsSkuService;
    private final COSUtil cosUtil;
    /**
     * 添加
     * @param form
@@ -228,4 +238,23 @@
        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);
    }
}
framework/src/main/java/cn/lili/modules/order/cart/entity/vo/BindingTemplateParam.java
New file
@@ -0,0 +1,43 @@
package cn.lili.modules.order.cart.entity.vo;
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;
/**
 * 支付参数
 *
 * @author Chopper
 * @since 2020/12/19 11:46
 */
@Data
@ToString
public class BindingTemplateParam {
    @NotNull
    @ApiModelProperty(value = "订单号")
    private String sn;
    @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/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/entity/dto/OrderSearchParams.java
@@ -119,6 +119,8 @@
    private String couponFlag;
    private String customizeFlag;
    private String storeSelectId;
    public <T> QueryWrapper<T> queryWrapper() {
@@ -189,6 +191,7 @@
        wrapper.eq(CharSequenceUtil.isNotEmpty(commentStatus), "oi.comment_status", commentStatus);
        wrapper.eq(CharSequenceUtil.isNotEmpty(couponFlag),"o.coupon_flag", couponFlag);
        wrapper.eq(CharSequenceUtil.isNotEmpty(customizeFlag),"o.customize_flag", customizeFlag);
        //按标签查询
        if (CharSequenceUtil.isNotEmpty(tag)) {
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java
@@ -160,6 +160,7 @@
    private String consigneeName;
    private String consigneeMobile;
    private String modifyAddressFlag;
    private String customizeFlag;
    private String memberId;
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleXcxVO.java
@@ -160,6 +160,12 @@
    @ApiModelProperty(value = "是否是礼品卡")
    private String couponFlag;
    /**
     * @see cn.lili.modules.order.order.entity.enums.CustomizeFlagEnum
     */
    @ApiModelProperty(value = "是否是定制商品")
    private String customizeFlag;
    private int i = 0;
    public List<OrderItemVO> initOrderItems() {
        if (CharSequenceUtil.isEmpty(groupGoodsId)) {
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
@@ -93,6 +93,7 @@
            "o.consignee_mobile AS consigneeMobile," +
            "o.member_id AS memberId," +
            "m.nick_name AS nickName," +
            "o.customize_flag AS customizeFlag," +
            "o.modify_address_flag AS modifyAddressFlag,"+
            " GROUP_CONCAT(oi.goods_id) as group_goods_id," +
            " GROUP_CONCAT(oi.sku_id) as group_sku_id," +
@@ -145,7 +146,7 @@
     * @return 简短订单分页
     */
    @Select("select o.id,o.sn,o.flow_price,o.create_time,o.order_status,o.pay_status,o.payment_method,o.payment_time,o.member_name,o.store_name as " +
            "store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status,o.order_promotion_type,o.seller_remark,o.coupon_flag " +
            "store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status,o.order_promotion_type,o.seller_remark,o.coupon_flag,o.customize_flag " +
            ",GROUP_CONCAT(oi.goods_id) as group_goods_id," +
            " GROUP_CONCAT(oi.sku_id) as group_sku_id," +
            " GROUP_CONCAT(oi.num) as group_num" +
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -284,6 +284,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/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java
@@ -5,6 +5,7 @@
import cn.lili.elasticsearch.EsSuffix;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
import cn.lili.modules.order.order.entity.enums.CustomizeFlagEnum;
import cn.lili.modules.promotion.tools.PromotionTools;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -299,6 +300,13 @@
    @Field(type = FieldType.Long)
    private Integer goodsSort;
    @ApiModelProperty(value = "定制商品")
    @Field(type = FieldType.Text)
    /**
     * @see CustomizeFlagEnum
     */
    private String customizeFlag;
    public EsGoodsIndex(GoodsSku sku) {
        if (sku != null) {
            this.id = sku.getId();
@@ -327,6 +335,7 @@
            this.recommend = sku.getRecommend();
            this.goodsType = sku.getGoodsType();
            this.releaseTime = new Date().getTime();
            this.customizeFlag = sku.getCustomizeFlag();
        }
    }
@@ -397,6 +406,7 @@
            this.intro = sku.getIntro();
            this.grade = sku.getGrade();
            this.releaseTime = new Date().getTime();
            this.customizeFlag = sku.getCustomizeFlag();
        }
    }
framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
@@ -37,5 +37,37 @@
            AND LGCT.status = #{query.status}
        </if>
    </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>
manager-api/src/main/java/cn/lili/controller/member/MemberEvaluationManagerController.java
@@ -2,12 +2,14 @@
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationVO;
import cn.lili.modules.member.service.MemberEvaluationService;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -17,6 +19,8 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
 * 管理端,会员商品评价接口
@@ -30,14 +34,34 @@
public class MemberEvaluationManagerController {
    @Autowired
    private MemberEvaluationService memberEvaluationService;
    @Autowired
    private COSUtil cosUtil;
    @PreventDuplicateSubmissions
    @ApiOperation(value = "通过id获取评论")
    @ApiImplicitParam(name = "id", value = "评价ID", required = true, dataType = "String", paramType = "path")
    @GetMapping(value = "/get/{id}")
    public ResultMessage<MemberEvaluationVO> get(@PathVariable String id) {
        return ResultUtil.data(memberEvaluationService.queryById(id));
        MemberEvaluationVO t = memberEvaluationService.queryById(id);
        String images = t.getImages();
        if (StringUtils.isNotBlank(images)) {
            String[] split = images.split(",");
            List<String> imgList = new ArrayList<>(split.length);
            for (String s : split) {
                if (StringUtils.isNotBlank(s)&&!s.contains("http")) {
                    imgList.add(cosUtil.getPreviewUrl(s));
                }
            }
            t.setImages(String.join(",", imgList));
        }
        String goodsImage = t.getGoodsImage();
        if (StringUtils.isNotBlank(goodsImage)&&!goodsImage.contains("http")) {
            t.setGoodsImage(cosUtil.getPreviewUrl(goodsImage));
        }
        String memberProfile = t.getMemberProfile();
        if (StringUtils.isNotBlank(memberProfile)&&!memberProfile.contains("http")) {
            t.setMemberProfile(cosUtil.getPreviewUrl(memberProfile));
        }
        return ResultUtil.data(t);
    }
    @ApiOperation(value = "获取评价分页")