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 (StringUtils.isNotEmpty(replaceStr) && StringUtils.isNotEmpty(this.body)) {
            String[] split = replaceStr.split(SeparatorConstants.COMMA);
            for (String s : split) {
                if (this.body.indexOf(s) != -1) {
                    this.body = this.body.replaceAll(s, SeparatorConstants.EMPTY);
                }
            }
        }
    }
}

@@ -1677,31 +1677,17 @@
 m re
-placeStr %E9%9C%80%E8%A6%81%E5%8E%BB%E9%99%A4%E7%9A%84%E6%96%87%E5%AD%97%EF%BC%8C%E4%BD%BF%E7%94%A8%E9%80%97%E5%8F%B7%E9%9A%94%E5%BC%80
+gex %E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
 %0A   
@@ -1722,284 +1722,100 @@
 ody(
-String replaceStr) %7B%0A        if (StringUtils.isNotEmpty(replaceStr) && StringUtils.isNotEmpty(this.body)) %7B%0A            String%5B%5D split = replaceStr.split(SeparatorConstants.COMMA);%0A            for (String s : split) %7B%0A                if (this.body.indexOf(s) != -1) %7B%0A        
+Object regex) %7B%0A        if (regex instanceof String && StringUtils.isNotEmpty(this.body)) %7B%0A
     
@@ -1855,17 +1855,32 @@
 laceAll(
-s
+regex.toString()
 , Separa
@@ -1904,40 +1904,8 @@
 Y);%0A
-                %7D%0A            %7D%0A
     

add body 添加过滤方法