package com.ishop.mobile.util;
import com.iplatform.base.SecurityConstants;
import com.iplatform.base.pojo.RequestLogin;
import com.iplatform.model.po.S_user_core;
import com.ishop.mobile.Constants;
import com.ishop.mobile.pojo.LoginParam;
import com.ishop.model.po.EbUser;
import com.ishop.model.vo.LoginInfoVo;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.CaptchaType;
import com.walker.web.ClientType;
import com.walker.web.LoginType;
import com.walker.web.UserPrincipal;
import com.walker.web.UserType;
import java.util.Map;
public class LoginUtils {
public static final void setupBindType(S_user_core userCore, String bindType){
if(StringUtils.isNotEmpty(bindType)){
// 存在用户,但尚未绑定,更新绑定
switch (bindType) {
case com.ishop.merchant.Constants.REGISTER_TYPE_WECHAT:
userCore.setIs_wechat_public(1);
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_ROUTINE:
userCore.setIs_wechat_routine(1);
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_IOS_WX:
userCore.setIs_wechat_ios(1);
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_ANDROID_WX:
userCore.setIs_wechat_android(1);
break;
}
}
}
/**
* 获取用户Token类型,已有方法。
* @param type 用户注册类型
* @date 2023-08-07
*/
public static final int getUserTokenType(String type) {
Integer userTokenType = 0;
switch (type) {
case com.ishop.merchant.Constants.REGISTER_TYPE_WECHAT:
userTokenType = com.ishop.merchant.Constants.USER_TOKEN_TYPE_WECHAT;
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_ROUTINE:
userTokenType = com.ishop.merchant.Constants.USER_TOKEN_TYPE_ROUTINE;
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_IOS_WX:
userTokenType = com.ishop.merchant.Constants.USER_TOKEN_TYPE_IOS_WX;
break;
case com.ishop.merchant.Constants.REGISTER_TYPE_ANDROID_WX:
userTokenType = com.ishop.merchant.Constants.USER_TOKEN_TYPE_ANDROID_WX;
break;
}
return userTokenType;
}
/**
* 手机端登录时,组装返回前端用户信息。
*
该方法在手机(验证码)登录方法中使用。{@linkplain com.ishop.mobile.api.LoginApi#phoneCaptchaLogin(LoginParam)}
* @param data 调用系统登录返回的用户基本对象。
* @return
* @date 2023-06-30
*/
public static final LoginInfoVo acquireLoginInfoVo(Map data){
UserPrincipal userPrincipal = (UserPrincipal) data.get(SecurityConstants.KEY_USER_INFO_APP);
LoginInfoVo vo = new LoginInfoVo();
vo.setToken(data.get(com.walker.web.Constants.TOKEN_NAME).toString());
vo.setId(userPrincipal.getUserInfo().getId());
vo.setPhone(userPrincipal.getUserInfo().getPhonenumber());
vo.setNikeName(userPrincipal.getUserInfo().getNick_name());
vo.setType(Constants.LOGIN_STATUS_LOGIN);
return vo;
}
public static final EbUser acquireMobileRegisterEbUser(String phone, S_user_core userCore, String avatar){
EbUser ebUser = new EbUser();
ebUser.setAccount(phone);
ebUser.setPwd(userCore.getPassword());
ebUser.setPhone(phone);
ebUser.setNickname(userCore.getNick_name());
ebUser.setSex(0);
ebUser.setRegisterType(userCore.getRegister_type());
ebUser.setAddress(StringUtils.EMPTY_STRING);
ebUser.setAvatar(avatar);
ebUser.setLastLoginTime(userCore.getCreate_time());
ebUser.setCreateTime(userCore.getCreate_time());
ebUser.setUpdateTime(userCore.getCreate_time());
ebUser.setIsWechatRoutine(userCore.getIs_wechat_routine());
ebUser.setIsWechatPublic(userCore.getIs_wechat_public());
ebUser.setIsWechatAndroid(userCore.getIs_wechat_android());
ebUser.setIsWechatIos(userCore.getIs_wechat_ios());
ebUser.setLevel(0);
ebUser.setSignNum(0);
ebUser.setCountry("CN");
ebUser.setIntegral(0);
ebUser.setExperience(0);
ebUser.setNowMoney(0d);
ebUser.setPayCount(0);
ebUser.setStatus(1);
ebUser.setIsLogoff(0);
ebUser.setIsBindingIos(0);
ebUser.setBrokeragePrice(0d);
ebUser.setIsPromoter(0);
ebUser.setSpreadUid(0L);
ebUser.setSpreadCount(0);
return ebUser;
}
public static final S_user_core acquireMobileRegisterUserCore(String phone, String defaultPassEncrypt, String avatar){
S_user_core userCore = new S_user_core();
userCore.setUser_name(phone);
userCore.setPhonenumber(phone);
userCore.setNick_name(com.ishop.mobile.Constants.REG_USER_PREFIX + StringUtils.generateRandomNumber(6));
userCore.setOrg_id(0L);
userCore.setDept_id(0L);
userCore.setUser_type(UserType.TYPE_APP_REG);
userCore.setPassword(defaultPassEncrypt);
userCore.setSex("0");
userCore.setType(0); // 普通用户,类型默认为0
userCore.setRegister_type(com.ishop.mobile.Constants.REGISTER_TYPE_H5);
userCore.setBind_mobile(1); // 这里(手机号不存在直接注册)肯定已绑定手机
userCore.setCreate_by("register");
userCore.setCreate_time(DateUtils.getDateTimeNumber());
userCore.setUpdate_time(userCore.getCreate_time());
userCore.setAvatar(avatar);
// 设置默认值
userCore.setIs_wechat_public(0);
userCore.setIs_wechat_routine(0);
userCore.setIs_wechat_ios(0);
userCore.setIs_wechat_android(0);
userCore.setModify_pwd(0);
userCore.setBind_wechat(0);
userCore.setBind_mail(0);
userCore.setProfile_id(0L);
userCore.setIs_sms(1);
userCore.setStatus(com.iplatform.base.Constants.STATUS_NORMAL);
userCore.setMer_id(0L);
userCore.setDel_flag(0);
userCore.setIs_logoff(0);
userCore.setLogin_date(userCore.getCreate_time());
userCore.setLogoff_time(0L);
return userCore;
}
// public static final RequestLogin acquireRequestLoginByWechatRoutine(String loginId, String encryptPass){
// RequestLogin requestLogin = new RequestLogin();
// requestLogin.setUuid(StringUtils.EMPTY_STRING);
// requestLogin.setLoginType(LoginType.INDEX_WECHAT);
// requestLogin.setClientType(ClientType.INDEX_MOBILE);
// requestLogin.setUsername(loginId);
// requestLogin.setPassword(encryptPass);
// requestLogin.setCode(StringUtils.EMPTY_STRING);
// requestLogin.setVerifyType(CaptchaType.INDEX_NONE); // 后台:WechatLoginCallback -> NoneCaptchaProvider
// return requestLogin;
// }
/**
* 微信登录时,组装一个请求对象。
* @param loginId 用户登录名
* @param encryptPass 从数据库查询的加密密码
* @return
* @date 2023-07-27
*/
public static final RequestLogin acquireRequestLoginByWechatPublic(String loginId, String encryptPass){
RequestLogin requestLogin = new RequestLogin();
requestLogin.setUuid(StringUtils.EMPTY_STRING);
requestLogin.setLoginType(LoginType.INDEX_WECHAT);
requestLogin.setClientType(ClientType.INDEX_MOBILE);
requestLogin.setUsername(loginId);
requestLogin.setPassword(encryptPass);
requestLogin.setCode(StringUtils.EMPTY_STRING);
requestLogin.setVerifyType(CaptchaType.INDEX_NONE); // 后台:WechatLoginCallback -> NoneCaptchaProvider
return requestLogin;
}
/**
* 根据移动端请求参数,组装一个系统统一的登录请求对象。
* @param param
* @return
* @date 2023-06-28
*/
public static final RequestLogin acquireRequestLoginByCaptcha(LoginParam param){
RequestLogin requestLogin = new RequestLogin();
requestLogin.setUuid(param.getUuid());
requestLogin.setLoginType(LoginType.INDEX_SMS_CODE);
requestLogin.setClientType(ClientType.INDEX_MOBILE);
requestLogin.setUsername(param.getPhone());
requestLogin.setPassword(param.getCaptcha());
requestLogin.setCode(param.getCaptcha());
requestLogin.setVerifyType(CaptchaType.INDEX_SMS_CODE);
return requestLogin;
}
public static final RequestLogin acquireRequestLoginByPassword(LoginParam param){
RequestLogin requestLogin = new RequestLogin();
requestLogin.setUuid(param.getUuid());
requestLogin.setLoginType(LoginType.INDEX_MOBILE_PASSWORD);
requestLogin.setClientType(ClientType.INDEX_MOBILE);
requestLogin.setUsername(param.getPhone());
requestLogin.setPassword(param.getPassword());
requestLogin.setCode(param.getCaptcha());
requestLogin.setVerifyType(CaptchaType.INDEX_NONE);
return requestLogin;
}
}