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;
|
}
|
}
|