zxl
2025-05-15 05d286d33b25ea7e317eae2861bb765ac11a927d
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package cn.lili.modules.member.entity.vo;
 
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.common.security.sensitive.Sensitive;
import cn.lili.common.security.sensitive.enums.SensitiveStrategy;
import cn.lili.common.utils.BeanUtil;
import cn.lili.modules.lmk.domain.vo.CustomerTagVO;
import cn.lili.modules.member.entity.dos.Member;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
 
import java.io.Serializable;
import java.util.Date;
import java.util.List;
 
/**
 * @author paulG
 * @since 2021/11/8
 **/
@Data
@NoArgsConstructor
public class MemberVO implements Serializable {
 
    private static final long serialVersionUID = 1810890757303309436L;
 
    @ApiModelProperty(value = "唯一标识", hidden = true)
    private String id;
 
    @ApiModelProperty(value = "会员用户名")
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String username;
 
    @ApiModelProperty(value = "昵称")
 
    private String nickName;
 
    @ApiModelProperty(value = "会员性别,1为男,0为女")
    private Integer sex;
 
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "会员生日")
    private Date birthday;
 
    @ApiModelProperty(value = "会员地址ID")
    private String regionId;
 
    @ApiModelProperty(value = "会员地址")
    private String region;
 
    @ApiModelProperty(value = "手机号码", required = true)
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String mobile;
 
    @ApiModelProperty(value = "积分数量")
    private Long point;
 
    @ApiModelProperty(value = "积分总数量")
    private Long totalPoint;
 
    @ApiModelProperty(value = "会员头像")
    private String face;
 
    @ApiModelProperty(value = "会员状态")
    private Boolean disabled;
 
    @ApiModelProperty(value = "是否开通店铺")
    private Boolean haveStore;
 
    @ApiModelProperty(value = "店铺ID")
    private String storeId;
 
    @ApiModelProperty(value = "openId")
    private String openId;
 
    /**
     * @see ClientTypeEnum
     */
    @ApiModelProperty(value = "客户端")
    private String clientEnum;
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "最后一次登录时间")
    private Date lastLoginDate;
 
    @ApiModelProperty(value = "会员等级ID")
    private String gradeId;
 
    @ApiModelProperty(value = "经验值数量")
    private Long experience;
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;
 
    @ApiModelProperty(value = "客户标签列表")
    private List<CustomerTagVO> customerTagList;
 
    public MemberVO(Member member) {
        BeanUtil.copyProperties(member, this);
    }
 
    public String getRegionId() {
        return getDefaultValue(regionId);
    }
 
    public String getRegion() {
        return getDefaultValue(region);
    }
 
    /**
     * JSON转换中的null 会转成 "null"
     * @param value
     * @return
     */
    private String getDefaultValue(String value){
        return (value == null || "null".equals(value)) ? "" : value;
    }
}