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
package com.everyday.word.factory.user;
 
import com.everyday.word.dto.QQUserInfo;
import com.everyday.word.entity.SystemEnum;
import com.everyday.word.entity.user.IdentityType;
import com.everyday.word.entity.user.User;
import com.everyday.word.entity.user.UserAuth;
import com.everyday.word.vo.user.UserInfoVO;
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.entity.wx.WeiXinUser;
 
import java.util.List;
 
/**
 * @author hxh
 * @title: UserAuthFactory
 * @description: TODO
 * @date 2025/2/11 13:51
 */
public class UserFactory {
 
    public static UserAuth createAuth(WeiXinUser user, SystemEnum system) {
        return UserAuth.builder()
                .identityType(IdentityType.WECHAT)
                .identifier(user.getOpenid())
                .portrait(user.getHeadimgurl())
                .nickName(user.getNickname())
                .system(system)
                .build();
    }
 
    public static UserAuth createAuth(QQUserInfo user, SystemEnum system) {
        return UserAuth.builder()
                .identityType(IdentityType.QQ)
                .identifier(user.getOpenid())
                .portrait(user.getFigureurl())
                .nickName(user.getNickname())
                .system(system)
                .build();
    }
 
    public static UserAuth createAuth(String phone, SystemEnum system) {
        return UserAuth.builder()
                .identityType(IdentityType.PHONE)
                .identifier(phone)
                .system(system)
                .build();
    }
 
    public static UserInfoVO createVO(User user, List<UserAuth> authList) {
        UserInfoVO vo = UserInfoVO.builder()
                .id(user.getId())
                .nickName(user.getNickName())
                .portrait(user.getPortrait())
                .build();
        if (authList != null) {
            for (UserAuth auth : authList) {
                if (auth.getIdentityType() == IdentityType.PHONE) {
                    if (auth.getIdentifier().length() > 5) {
                        String phone = auth.getIdentifier().substring(0, 3);
                        phone += "******";
                        phone += auth.getIdentifier().substring(auth.getIdentifier().length() - 2, auth.getIdentifier().length());
                        vo.setPhone(phone);
                    } else {
                        vo.setPhone(auth.getIdentifier());
                    }
                } else if (auth.getIdentityType() == IdentityType.WECHAT) {
                    vo.setWxNickName(auth.getNickName());
                } else if (auth.getIdentityType() == IdentityType.QQ) {
                    vo.setQqNickName(auth.getNickName());
                }
            }
        }
        return vo;
    }
}