/** * 完善用户信息 依次校验 身份证唯一性 手机号唯一性 验证码是否正确 身份证真实姓名是否匹配 然后授权 更新用户信息 其中校验 身份证号码格式 唯一性 和真实姓名是否匹配 已经在 {@link * AccountRest#isYLBAccount(String)} 中校验 * * @return */ @Path("/full/userInfo") @POST @Produces("application/json;charset=utf-8") public String fullUserMsg(String content) { if (StringUtils.isEmpty(content)) { return OpenResult.parameterError("无参数").buildJson(); } JSONObject json = JSONObject.parseObject(content); String realName = json.getString("realName"); String idNumber = json.getString("idNumber"); String mobileNo = json.getString("mobileNo"); String code = json.getString("code"); String ssoId = json.getString("UID"); String userId = ssoId; boolean flag = ValidateUtil.isMobile(mobileNo); if (!flag) { return OpenResult.serviceError(10119, "手机号码有误").buildJson(); } try { // 检验手机号是否被注册 JSONObject result = registService.mobileUnique(mobileNo); if (result != null) { if (result.getIntValue("retcode") != 0) { return OpenResult.parameterError(result.getIntValue("retcode"), result.getString("msg")) .buildJson(); } } else { return OpenResult.unknown("服务异常").buildJson(); } // 检验验证码 JSONObject codeResult = registService.checkIdentifyingCode(mobileNo, CodeType.REGISTER.type, code); if (codeResult != null) { Integer retcode = codeResult.getInteger("retcode"); String msg = codeResult.getString("msg"); if (retcode != 0) { return OpenResult.parameterError(retcode, msg).buildJson(); } } else { return OpenResult.unknown("服务异常").buildJson(); } // 注册盈利宝 // String passwd = generatePassword(8); // 记得改成通行证注册 2014-10-20 /* JSONObject regResult = registService.mobileRegist(mobileNo,passwd,code); if (regResult != null) { if (regResult.getIntValue("retcode") != 0) { return OpenResult.parameterError( regResult.getIntValue("retcode"), regResult.getString("msg")).buildJson(); } } else { return OpenResult.unknown("服务异常").buildJson(); } String userId = regResult.getString("userid");*/ // 授权 // accountAuthService.authorize(userId, ssoId, AuthType.JRJSSO); // UserInfo userInfo = userInfoService.queryUserInfo(userId); UserInfo info = null; if (userInfo == null) { info = userInfoService.createUserInfo(userId, UserStatus.COMPETE); if (info == null) { OpenResult.serviceError("-1", "完善信息失败").buildJson(); } } else { if (userInfo.getStatus() == UserStatus.INCOMPLETE.status) { info = userInfoService.updateUserInfo(userId, UserStatus.COMPETE); if (info == null) { OpenResult.serviceError("-1", "完善信息失败").buildJson(); } } if (userInfo.getStatus() == UserStatus.COMPETE.status) { String errorNo = "-1"; String errorInfo = "您已完善信息"; return OpenResult.serviceError(errorNo, errorInfo).buildJson(); } } // 更新用户信息 JSONObject IDRealresult = personalService.updateRealNameIDNumber(ssoId, idNumber, realName, mobileNo); if (IDRealresult != null) { if (IDRealresult.getInteger("retcode") != 0) { return IDRealresult.toJSONString(); } } else { return OpenResult.unknown("服务异常").buildJson(); } FullUserResult user = new FullUserResult(); user.setUserId(ssoId); return OpenResult.ok().add("data", user).buildJson(); } catch (ServiceException e) { log.error("Full user authorize ServiceException -->" + e.getMessage(), e); return OpenResult.serviceError(e.getErrorNo(), e.getErrorInfo()).buildJson(); } catch (StockServiceException e) { log.error("Full user StockServiceException -->" + e.getMessage(), e); return OpenResult.serviceError(e.getRetcode(), e.getMsg()).buildJson(); } catch (Exception e) { log.error("Full user Exception -->" + e.getMessage(), e); return OpenResult.serviceError("-1", e.getMessage()).buildJson(); } }
/** * 登陆 * * @param headers * @param content * @return */ @Path("/login") @POST @Produces("application/json;charset=utf-8") public String login( @Context HttpHeaders headers, @Context HttpServletRequest request, String content) { if (StringUtils.isBlank(content)) { OpenResult.parameterError("无参数").buildJson(); } JSONObject json = JSONObject.parseObject(content); String loginName = json.getString("loginname"); String passwd = json.getString("passwd"); // 在header中新增 调用应用名称标识(以header 参数传输,名字有用户中心统一分配)app必传参数 // 登录名类型 1:身份证,2:用户名,3:手机,4:邮箱 // int nametype = json.getIntValue("nametype"); String ip = IPUtils.getRemoteIpAdress(request); String clientinfo = json.getString("clientinfo"); String cccode = json.getString("cccode"); if (StringUtils.isBlank(loginName) || StringUtils.isBlank(passwd)) { return OpenResult.parameterError("参数不正确").buildJson(); } // 校验登录名是否符合 手机号 用户名 身份证号 邮箱正确格式 LoginResult loginResult = null; JSONObject result = null; try { // result = loginOutService.userLogin(loginName, passwd); result = loginOutService.userLoginParamAll(loginName, passwd, ip, clientinfo, cccode); if (result != null) { int retcode = result.getIntValue("retcode"); String msg = result.getString("msg"); if (retcode != 0) { return OpenResult.parameterError(retcode, msg).buildJson(); } int failtimes = result.getIntValue("failtimes"); String userId = result.getString("userid"); // 输入错误次数大于13次 账户友好提示信息 if ((failtimes == 0 && StringUtils.isEmpty(userId))) { return OpenResult.commonError(OpenResult.NOACCESS_ERROR, UserHelp.LOGIN_TIMES_L_13) .buildJson(); } else if (failtimes > 0) { if (failtimes < 13) { return OpenResult.commonError(OpenResult.NOACCESS_ERROR, UserHelp.LOGIN_TIMES_L_13) .buildJson(); } else { return OpenResult.commonError(OpenResult.NOACCESS_ERROR, UserHelp.LOGIN_TIMES_13) .buildJson(); } } else { loginResult = new LoginResult(); loginResult.setUserid(userId); loginResult.setUniquecode(result.getString("uniquecode")); loginResult.setCompanyuser(result.getIntValue("companyuser")); loginResult.setRegtime(result.getString("regtime")); loginResult.setUserstatus(result.getIntValue("userstatus")); loginResult.setFailtimes(result.getIntValue("failtimes")); loginResult.setFrozenremainseconds(result.getIntValue("frozenremainseconds")); loginResult.setLastsuccesstime(result.getString("lastsuccesstime")); JSONObject userContrInfo = personalService.getUserInfo(userId); String mobileNo = null; String idnumber = null; String realname = null; if (userContrInfo != null) { retcode = userContrInfo.getIntValue("retcode"); msg = userContrInfo.getString("msg"); if (retcode != 0) { return OpenResult.parameterError(retcode, msg).buildJson(); } mobileNo = userContrInfo.getJSONObject("user").getString("mobileno"); idnumber = userContrInfo.getJSONObject("user").getString("idnumber"); realname = userContrInfo.getJSONObject("user").getString("realname"); } else { return OpenResult.unknown("服务异常").buildJson(); } String sessionId = generateSessionId(loginResult); loginResult.setSessionId(sessionId); // 将中信证券所需的 mobileno devid 存入session中 String devId = getDevId(headers); JSONObject securitiesInfo = setSecuritiesInfoJson(devId, mobileNo); boolean securitiesFlag = setSecuritiesInfo(sessionId, securitiesInfo.toJSONString()); if (!securitiesFlag) { log.debug("登陆时SecuritiesInfo放入缓存结果--" + securitiesFlag); } mobileNo = InfoMasker.masker(mobileNo, 3, 4, "*", 1); loginResult.setMobileno(mobileNo); // 将userId放入缓存中 boolean sign = setMemcacheUserId(sessionId, userId); if (!sign) { log.debug("登陆时userId放入缓存结果--" + sign); } String deafultBroker = "ZXZQ"; // 是否绑定券商 List<Broker> brokers = accountService.queryBindedBrokers(userId); int bindStatus = 0; if (CollectionUtils.isEmpty(brokers)) { bindStatus = 1; } else { bindStatus = 2; } // 资金账号 String fundAccount = ""; BindInfo bindInfo = accountService.getBindInfo(userId, deafultBroker); if (bindInfo != null) { fundAccount = bindInfo.getFundAccount(); } // 是否填写 身份证 真实姓名 1未绑定 int bindId = 0; if (StringUtils.isEmpty(idnumber) || StringUtils.isEmpty(realname)) { bindId = 1; } else { bindId = 2; } loginResult.setBindStatus(bindStatus); loginResult.setBindId(bindId); loginResult.setFundAccount(fundAccount); loginResult.setDeafultBroker(deafultBroker); String str = OpenResult.ok().add("data", loginResult).buildJson(); return str; } } else { return OpenResult.unknown("服务异常").buildJson(); } } catch (StockServiceException e) { log.error("登录异常:" + e); return OpenResult.parameterError(result.getIntValue("retcode"), result.getString("msg")) .buildJson(); } catch (ServiceException e) { log.error("登录异常:" + e); return OpenResult.serviceError(e.getErrorNo(), e.getErrorInfo()).buildJson(); } catch (Exception e) { log.error("登录异常:" + e); return OpenResult.unknown(e.getMessage()).buildJson(); } }