package com.tourguide.modules.user.dto; import javax.validation.Valid; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMin; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; public class GuideTeamSaveRequest { @NotBlank(message = "讲解队名称不能为空") @Size(max = 100, message = "讲解队名称不能超过100个字符") private String teamName; @NotBlank(message = "联系人电话不能为空") @Pattern(regexp = "^[0-9+\\-() ]{6,20}$", message = "联系人电话格式不正确") private String contactPhone; @Size(max = 200, message = "企业名称不能超过200个字符") private String companyName; @Size(max = 32, message = "统一社会信用代码不能超过32个字符") private String unifiedSocialCreditCode; @NotNull(message = "平台抽成比例不能为空") @DecimalMin(value = "0", message = "平台抽成比例不能小于0") @DecimalMax(value = "100", message = "平台抽成比例不能大于100") private BigDecimal commissionRatio; @Size(max = 128, message = "openID不能超过128个字符") private String wechatOpenId; @Size(max = 64, message = "商户ID不能超过64个字符") private String merchantId; @Valid private List scenicConfigs = new ArrayList(); public String getTeamName() { return teamName; } public void setTeamName(String teamName) { this.teamName = teamName; } public String getContactPhone() { return contactPhone; } public void setContactPhone(String contactPhone) { this.contactPhone = contactPhone; } public String getCompanyName() { return companyName; } public void setCompanyName(String companyName) { this.companyName = companyName; } public String getUnifiedSocialCreditCode() { return unifiedSocialCreditCode; } public void setUnifiedSocialCreditCode(String unifiedSocialCreditCode) { this.unifiedSocialCreditCode = unifiedSocialCreditCode; } public BigDecimal getCommissionRatio() { return commissionRatio; } public void setCommissionRatio(BigDecimal commissionRatio) { this.commissionRatio = commissionRatio; } public String getWechatOpenId() { return wechatOpenId; } public void setWechatOpenId(String wechatOpenId) { this.wechatOpenId = wechatOpenId; } public String getMerchantId() { return merchantId; } public void setMerchantId(String merchantId) { this.merchantId = merchantId; } public List getScenicConfigs() { return scenicConfigs; } public void setScenicConfigs(List scenicConfigs) { this.scenicConfigs = scenicConfigs; } @AssertTrue(message = "openID和商户ID至少配置一个") public boolean isCollectionAccountConfigured() { return hasText(wechatOpenId) || hasText(merchantId); } private boolean hasText(String value) { return value != null && !value.trim().isEmpty(); } }