From cb0caa28d3fa90ef2a7aa3ac5fb181851b3bceeb Mon Sep 17 00:00:00 2001 From: "rui.zhang" Date: Wed, 4 May 2016 11:53:38 +0800 Subject: [PATCH] =?UTF-8?q?platform=20permission=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/LoginUtil.java | 28 +++++++++++---------- .../operate/web/controller/UsersController.java | 29 ++++++++++++++++------ 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java index 16c1691..6be7ba0 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java @@ -64,26 +64,27 @@ public class LoginUtil { return null; } - public static String loginHospitalUser(String phone, String pwd, String typeId, String token) { + public static LoginContext loginHospitalUser(String account, String pwd, String typeId, String token) { HttpClient client = new HttpClient(); PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/userLogin.action"); + NameValuePair[] data = { + new NameValuePair("account", account), + new NameValuePair("typeId", typeId), + new NameValuePair("password", org.apache.commons.lang.StringUtils.isBlank(pwd)?"p":md5(pwd).toUpperCase()) + }; + post.setRequestBody(data); + post.setRequestHeader("Authorization", token); try { - NameValuePair[] data = { - new NameValuePair("phone", phone), - new NameValuePair("typeId", typeId), - new NameValuePair("password", org.apache.commons.lang.StringUtils.isBlank(pwd)?"p":md5(pwd)) - }; - post.setRequestBody(data); - post.setRequestHeader("Authorization", token); client.executeMethod(post); int statusCode = post.getStatusCode(); String result = new String(post.getResponseBodyAsString()); post.releaseConnection(); + LoginContext loginState = new LoginContext(); if (200 == statusCode) { - LoginContext loginState = JsonUtil.str2Obj(result, LoginContext.class); + loginState = JsonUtil.str2Obj(result, LoginContext.class); if (0 == loginState.getErrorcode()) { - return loginState.getToken(); + return loginState; } } } catch (Exception e) { @@ -92,7 +93,7 @@ public class LoginUtil { return null; } - public static String login(String phone, String varCode, String typeId, String token) { + public static LoginContext login(String phone, String varCode, String typeId, String token) { HttpClient client = new HttpClient(); PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/login.action"); NameValuePair[] data = { @@ -108,10 +109,11 @@ public class LoginUtil { String result = new String(post.getResponseBodyAsString()); post.releaseConnection(); + LoginContext loginState = new LoginContext(); if (200 == statusCode) { - LoginContext loginState = JsonUtil.str2Obj(result, LoginContext.class); + loginState = JsonUtil.str2Obj(result, LoginContext.class); if (0 == loginState.getErrorcode()) { - return loginState.getToken(); + return loginState; } } } catch (Exception e) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java index 85d9343..dc192f3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java @@ -171,10 +171,11 @@ public class UsersController extends BaseController { */ @RequestMapping(value = "/tokens", method = RequestMethod.POST) public void usersLogin(@RequestParam(value = "account") String account, - @RequestParam(value = "vercode") String code, + @RequestParam(value = "vercode", required = false) String code, + @RequestParam(value = "password", required = false) String password, HttpServletResponse response) { Map resultMsgMap = new HashMap<>(); - if (StringUtils.isEmpty(account) || StringUtils.isEmpty(code)) { + if (StringUtils.isEmpty(account) && (StringUtils.isEmpty(code) || StringUtils.isEmpty(password))) { resultMsgMap.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR);//参数错误 resultMsgMap.put(ResultUtils.ERROR_MSG, "登录账户或者验证码为空,请输入"); //把这个map转成一个json字符串输出到前台 @@ -182,26 +183,40 @@ public class UsersController extends BaseController { return; } + //code 不为空使用手机登录, password不为空时使用帐号登录 UsersQuery usersQuery = new UsersQuery(); - usersQuery.setPhone(account); + usersQuery.setYn(YnEnums.YES.getId()); + if(null != code) { + usersQuery.setPhone(account); + } + if(null != password) { + usersQuery.setAccount(account); + } List users = usersService.queryUsers(usersQuery); if(0 == users.size()) { ResultUtils.buildParameterErrorResultAndWrite(response, "该账户不存在"); return; } - String key =LoginUtil.login(account, code, typeId, token); - if(null != key) { + LoginContext loginContext = null; + if(null != code) { + loginContext =LoginUtil.login(account, code, typeId, token); + } + if(null != password) { + loginContext = LoginUtil.loginHospitalUser(account, password, typeId, token); + } + + if(null != loginContext) { Users users1 = new Users(); users1.setId(users.get(0).getId()); users1.setLastLoginTime(new Date()); usersService.updateUsers(users1); Map result = new HashMap<>(); - result.put("token", key); + result.put("token", loginContext.getToken()); ResultUtils.buildSuccessResultAndWrite(response, result); }else { - ResultUtils.buildResultAndWrite(response, ErrorCodeConstants.PARAMETER_ERROR, "登录失败,手机或验证码错误"); + ResultUtils.buildResultAndWrite(response, ErrorCodeConstants.PARAMETER_ERROR, loginContext.getErrormsg()); } } -- 1.8.3.1