package com.alan344happyframework.bean;

import com.alan344happyframework.constants.SeparatorConstants;
import com.alan344happyframework.core.Product;
import com.alan344happyframework.util.StringUtils;
import com.alan344happyframework.weixin.entity.WechatPayOrder;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import java.util.List;

@Getter
@Setter
public class OrderPay extends PayBase {
    /**
     * 订单id，必填
     */
    @NotBlank
    @Length(max = 32, min = 1)
    private String orderId;
    /**
     * 订单金额，必填
     */
    @NotBlank
    @Digits(integer = 30, fraction = 2)
    private String price;
    /**
     * 对一笔交易的具体描述信息。如果是多种商品，请将商品描述字符串累加传给body。
     * <p>
     * body 和 products 二者选其一，如果两个都填，使用body
     * <p>
     * 必填
     */
    @NotBlank
    private String body;
    /**
     * body 和 products 二者选其一，如果两个都填，使用body
     */
    private List<? extends Product> bodyProducts;
    /**
     * 商品的标题/交易标题/订单标题/订单关键字等。例如：火车票
     */
    @NotBlank
    private String subject;
    /**
     * 回调地址，如果填写的话第三方会在回调你应用的接口
     */
    private String notifyUrl;
    /**
     * 阿里其他参数
     */
    private AlipayTradeAppPayModel alipayTradeAppPayModel;
    /**
     * 微信其他参数
     */
    private WechatPayOrder wechatPayOrder = new WechatPayOrder();

    public void setBodyProducts(List<? extends Product> products) {
        if (StringUtils.isEmpty(this.body)) {
            this.body = Product.getNames(products);
        }
    }

    /**
     * 过滤 body 中的特殊字符
     *
     * @param replaceStr 需要去除的文字，使用逗号隔开
     */
    public void filterBody(String replaceStr) {
        if (!org.springframework.util.StringUtils.isEmpty(replaceStr) && StringUtils.isNotEmpty(this.body)) {
            String[] split = replaceStr.split(SeparatorConstants.COMMA);
            for (String s : split) {
                this.body = body.replaceAll(s, SeparatorConstants.EMPTY);
            }
        }
    }
}

@@ -1769,34 +1769,8 @@
 if (
-!org.springframework.util.
 Stri
@@ -1775,24 +1775,27 @@
 ringUtils.is
+Not
 Empty(replac
@@ -1978,16 +1978,21 @@
 .body = 
+this.
 body.rep

add body 添加过滤方法