package cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw;
|
|
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
|
import cn.iocoder.yudao.framework.common.validation.InEnum;
|
import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
|
import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawTypeEnum;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import jakarta.validation.constraints.Min;
|
import lombok.Data;
|
import org.hibernate.validator.constraints.URL;
|
|
import jakarta.validation.Validator;
|
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.PositiveOrZero;
|
|
@Schema(description = "用户 App - 分销提现创建 Request VO")
|
@Data
|
public class AppBrokerageWithdrawCreateReqVO {
|
|
@Schema(description = "提现方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@InEnum(value = BrokerageWithdrawTypeEnum.class, message = "提现方式必须是 {value}")
|
private Integer type;
|
|
@Schema(description = "提现金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
|
@PositiveOrZero(message = "提现金额不能小于 0")
|
@Min(value = 30, message = "微信提现金额不能小于 0.3", groups = {WechatApi.class})
|
@NotNull(message = "提现金额不能为空")
|
private Integer price;
|
|
@Schema(description = "提现账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456789")
|
@NotBlank(message = "提现账号不能为空", groups = {Bank.class, WechatApi.class, AlipayApi.class})
|
private String userAccount;
|
|
@Schema(description = "提现姓名", example = "张三")
|
@NotBlank(message = "提现姓名不能为空", groups = {Bank.class, WechatApi.class, AlipayApi.class})
|
private String userName;
|
|
@Schema(description = "收款码的图片", example = "https://www.iocoder.cn/1.png")
|
@URL(message = "收款码的图片,必须是一个 URL", groups = {WechatQR.class, AlipayQR.class})
|
private String qrCodeUrl;
|
|
@Schema(description = "提现银行", example = "1")
|
@NotNull(message = "提现银行不能为空", groups = {Bank.class})
|
private String bankName;
|
@Schema(description = "开户地址", example = "海淀支行")
|
private String bankAddress;
|
|
@Schema(description = "转账渠道", example = "wx_lite")
|
@NotNull(message = "转账渠道不能为空", groups = {WechatApi.class})
|
@InEnum(PayChannelEnum.class)
|
private String transferChannelCode;
|
|
public interface Wallet {
|
}
|
|
public interface Bank {
|
}
|
|
public interface WechatQR {
|
}
|
|
public interface WechatApi {
|
}
|
|
public interface AlipayQR {
|
}
|
|
public interface AlipayApi {
|
}
|
|
public void validate(Validator validator) {
|
if (BrokerageWithdrawTypeEnum.WALLET.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, Wallet.class);
|
} else if (BrokerageWithdrawTypeEnum.BANK.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, Bank.class);
|
} else if (BrokerageWithdrawTypeEnum.WECHAT_QR.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, WechatQR.class);
|
} else if (BrokerageWithdrawTypeEnum.WECHAT_API.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, WechatApi.class);
|
} else if (BrokerageWithdrawTypeEnum.ALIPAY_QR.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, AlipayQR.class);
|
} else if (BrokerageWithdrawTypeEnum.ALIPAY_API.getType().equals(type)) {
|
ValidationUtils.validate(validator, this, AlipayApi.class);
|
}
|
}
|
|
}
|