liujie
2026-09-17 825a575deb96cce822468bb9d9ac3e4eea0f91d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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.NotEmpty;
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;
 
    private Long collectionGuideId;
 
    @Valid
    @NotEmpty(message = "至少配置一个景区")
    private List<GuideTeamScenicRequest> scenicConfigs = new ArrayList<GuideTeamScenicRequest>();
 
    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 Long getCollectionGuideId() { return collectionGuideId; }
    public void setCollectionGuideId(Long collectionGuideId) { this.collectionGuideId = collectionGuideId; }
    public List<GuideTeamScenicRequest> getScenicConfigs() { return scenicConfigs; }
    public void setScenicConfigs(List<GuideTeamScenicRequest> 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();
    }
}