| | |
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; |
| | | import com.yeshi.fanli.util.*; |
| | | import com.yeshi.fanli.vo.taobao.TaoBaoUser; |
| | | import com.yeshi.fanli.vo.user.QQUserInfoVO; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | |
| | | * 新版登录 V1.5.3 |
| | | * |
| | | * @param acceptData |
| | | * @param loginType 登录方式: 1-手机登录 2-微信登录 3-手机 4-qq |
| | | * @param vcode |
| | | * @param phone |
| | | * @param code |
| | | * @param loginType 登录方式: 1-手机登录 2-微信登录 |
| | | * @param aliAccessToken |
| | | * @param qqUser |
| | | * @param request |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "login", method = RequestMethod.POST) |
| | | public void login(AcceptData acceptData, int loginType, String vcode, String phone, String code, |
| | | public void login(AcceptData acceptData, int loginType, String vcode, String phone, String code, String aliAccessToken, String qqUser, |
| | | HttpServletRequest request, PrintWriter out) { |
| | | try { |
| | | BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), |
| | |
| | | } |
| | | |
| | | UserInfo userInfo = null; |
| | | // 手机登录 |
| | | if (loginType == 1) { |
| | | userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, system); |
| | | } |
| | | |
| | | |
| | | switch (loginType) { |
| | | //电话号码登录 |
| | | case 1: { |
| | | userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, aliAccessToken, system); |
| | | } |
| | | break; |
| | | // 微信登录 |
| | | if (loginType == 2) { |
| | | case 2: { |
| | | //需要绑定电话号码 |
| | | if (SystemInfoUtil.hasFunctions(system.getSystem(), SystemFunction.bindPhone)) |
| | | userInfo = userAccountService.loginWeiXinNew(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system); |
| | |
| | | else |
| | | userInfo = userAccountService.loginWeiXin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system); |
| | | } |
| | | break; |
| | | case 4: { |
| | | QQUserInfoVO qqUserInfo = UserUtil.parseQQUser(qqUser); |
| | | userInfo = userAccountService.loginQQ(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, qqUserInfo, system); |
| | | } |
| | | break; |
| | | } |
| | | |
| | | |
| | | if (userInfo == null) { |
| | | out.print(JsonUtil.loadFalseResult("登录失败")); |
| | | } else { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("userInfo", UserUtil.filterForClientUser(userInfo)); |
| | | if (SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.inviteCode)) { |
| | | data.put("inviteCode", userInfoExtraService.getInviteCodeByUid(userInfo.getId())); |
| | | } |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | |
| | | final UserInfo uuser = userInfo; |
| | |
| | | |
| | | } catch (UserAccountException e) { |
| | | int errorCode = e.getCode(); |
| | | if (errorCode == 101) { // 需要绑定手机号 |
| | | if (errorCode == UserAccountException.CODE_NEED_BIND_PHONE) { // 需要绑定手机号 |
| | | JSONObject data = new JSONObject(); |
| | | data.put("key", e.getMsg()); |
| | | JSONObject object = new JSONObject(); |
| | | object.put("code", errorCode); |
| | | object.put("data", data); |
| | | out.print(object.toString()); |
| | | } else if (errorCode == 102) { // 需要绑定微信号 |
| | | } else if (errorCode == UserAccountException.CODE_NEED_BIND_WX) { // 需要绑定微信号 |
| | | JSONObject data = new JSONObject(); |
| | | data.put("key", e.getMsg()); |
| | | JSONObject object = new JSONObject(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 绑定电话号码 V2.0.1 微信登录 |
| | | * 绑定电话号码 V2.0.1 三方登录 |
| | | * |
| | | * @param acceptData |
| | | * @param vcode |
| | |
| | | */ |
| | | @RequestSerializableByKey(key = "'bindPhoneLogin-'+#phone") |
| | | @RequestMapping(value = "bindPhoneLogin") |
| | | public void bindPhoneLogin(AcceptData acceptData, String vcode, String phone, String key, |
| | | public void bindPhoneLogin(AcceptData acceptData, String vcode, String phone, String key, String aliAccessToken, |
| | | HttpServletRequest request, PrintWriter out) { |
| | | BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), |
| | | acceptData.getPackages(), acceptData.getSystem()); |
| | |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(vcode)) { |
| | | out.print(JsonUtil.loadFalseResult("验证码不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(phone)) { |
| | | out.print(JsonUtil.loadFalseResult("电话号码不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(key)) { |
| | | out.print(JsonUtil.loadFalseResult("key值不能为空")); |
| | | return; |
| | | } |
| | | |
| | | phone = phone.replaceAll(" ", ""); |
| | | |
| | | String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_BIND); |
| | | if (Constant.IS_OUTNET) { |
| | | if (!vcode.equalsIgnoreCase(oldVCode)) { |
| | | out.print(JsonUtil.loadFalseResult(9001, "验证码错误,重新输入")); |
| | | String mobile = null; |
| | | try { |
| | | mobile = userAccountService.getMobile(vcode, phone, aliAccessToken, acceptData.getSystem(), SMSHistory.TYPE_BIND); |
| | | } catch (UserAccountException e) { |
| | | out.print(JsonUtil.loadFalseResult(e.getMsg())); |
| | | return; |
| | | } |
| | | redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_BIND); |
| | | } |
| | | |
| | | try { |
| | | UserInfo userInfo = userAccountService.bindPhoneToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, phone, key); |
| | | |
| | | UserInfo userInfo = userAccountService.bindPhoneToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, mobile, key); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("userInfo", UserUtil.filterForClientUser(userInfo)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | |
| | | return; |
| | | } |
| | | |
| | | |
| | | try { |
| | | UserInfo userInfo = userAccountService.bindWXToLogin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), acceptData, code, system.getAppid(), key); |
| | | JSONObject data = new JSONObject(); |