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 61dadc3..c375c81 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 @@ -15,14 +15,20 @@ import java.security.NoSuchAlgorithmException; public class LoginUtil { private static Logger logger = LoggerFactory.getLogger("HTTP-INVOKE"); - public static LoginContext register(String phone, String token, String typeId) { - StopWatch stopWatch = new StopWatch("register"); + + + + public static LoginContext register(String userId, String phone,String account, String pwd, String token, String typeId) { + StopWatch stopWatch = new StopWatch("aouHospitalUser"); stopWatch.start("init http client"); HttpClient client = new HttpClient(); - PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/register.action"); + PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/checkUser.action"); NameValuePair[] data = { new NameValuePair("phone", phone), + new NameValuePair("account", account), + new NameValuePair("password", pwd), new NameValuePair("typeId", typeId), + new NameValuePair("userId", userId) }; post.setRequestBody(data); post.setRequestHeader("Authorization", token); @@ -32,13 +38,16 @@ public class LoginUtil { client.executeMethod(post); int statusCode = post.getStatusCode(); String result = new String(post.getResponseBodyAsString()); + post.releaseConnection(); stopWatch.stop(); if (200 == statusCode) { stopWatch.start("parse json"); LoginContext loginState = JsonUtil.str2Obj(result, LoginContext.class); stopWatch.stop(); - return loginState; + if (0 == loginState.getErrorcode()) { + return loginState; + } } } catch (Exception e) { e.printStackTrace(); @@ -48,6 +57,43 @@ public class LoginUtil { return null; } + public static LoginContext loginByAccount(String account, String pwd, String typeId, String token) { + StopWatch stopWatch = new StopWatch("loginHospitalUser"); + stopWatch.start("init http client"); + 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); + stopWatch.stop(); + try { + stopWatch.start("excuteMethod"); + client.executeMethod(post); + int statusCode = post.getStatusCode(); + String result = new String(post.getResponseBodyAsString()); + + post.releaseConnection(); + stopWatch.stop(); + LoginContext loginState = new LoginContext(); + if (200 == statusCode) { + stopWatch.start("parse json"); + loginState = JsonUtil.str2Obj(result, LoginContext.class); + stopWatch.stop(); + return loginState; + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + logger.info(stopWatch.toString()); + } + return null; + } + + public static Integer aouHospitalUser(String account, String pwd, String typeId, String token) { StopWatch stopWatch = new StopWatch("aouHospitalUser"); stopWatch.start("init http client"); @@ -121,7 +167,7 @@ public class LoginUtil { return null; } - public static LoginContext login(String phone, String varCode, String typeId, String token) { + public static LoginContext loginByPhone(String phone, String varCode, String typeId, String token) { StopWatch stopWatch = new StopWatch("login"); stopWatch.start("init http client"); HttpClient client = new HttpClient(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java index 0809fab..ac316ec 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java @@ -8,17 +8,22 @@ import org.springframework.util.StopWatch; */ public class Test { public static void main(String[] args){ - StopWatch stopWatch= new StopWatch("doctor-api-patient"); - stopWatch.start("query patients"); - add(); - stopWatch.stop(); - stopWatch.start("query patients1"); - add(); - stopWatch.stop(); - stopWatch.start("query patients2"); - add(); - stopWatch.stop(); - System.out.print(stopWatch); +// StopWatch stopWatch= new StopWatch("doctor-api-patient"); +// stopWatch.start("query patients"); +// add(); +// stopWatch.stop(); +// stopWatch.start("query patients1"); +// add(); +// stopWatch.stop(); +// stopWatch.start("query patients2"); +// add(); +// stopWatch.stop(); +// System.out.print(stopWatch); + + + + String a = "*****"; + System.out.println(a.matches("^\\**$")); } private static void add(){ int a=0; 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 a788e24..f4df126 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 @@ -52,6 +52,8 @@ public class UsersController extends BaseController { private String token; @Value("#{configProperties['login.typeId']}") private String typeId; + @Value("#{configProperties['login.defaultPwd']}") + private String defaultPwd; @Autowired private RolePermissionMapsService rolePermissionMapsService; @Autowired @@ -186,7 +188,7 @@ public class UsersController extends BaseController { user.setRoles(this.getUserRoles(user.getId())); user.setDepartmentses(departmentsService.getDepartments(user.getDeptId())); - user.setPwd(null); + user.setPwd(user.getPwd().replaceAll(".","*")); } FrontEndResult frontEndResult = new FrontEndResult(); @@ -244,7 +246,8 @@ public class UsersController extends BaseController { return; } - if(!users.get(0).getEnable().equals(1)) { + Users u = users.get(0); + if(!u.getEnable().equals(1)) { ResultUtils.buildParameterErrorResultAndWrite(response, "该账户已被禁用"); return; } @@ -252,10 +255,10 @@ public class UsersController extends BaseController { LoginContext loginContext = new LoginContext(); loginContext.setErrormsg("服务器内部错误!"); if(null != code) { - loginContext =LoginUtil.login(account, code, typeId, token); + loginContext =LoginUtil.loginByPhone(account, code, typeId, token); } if(null != password) { - loginContext = LoginUtil.loginHospitalUser(account, password, typeId, token); + loginContext = LoginUtil.loginByAccount(account, password, typeId, token); } if(null != loginContext && loginContext.getErrorcode().equals(0)) { @@ -573,7 +576,8 @@ public class UsersController extends BaseController { // users.setPwd(LoginUtil.md5(NumberUtils.getRandomString(6))); //关联登录中心ID - LoginContext loginContext = LoginUtil.register(phone, token, typeId); + LoginContext loginContext = null; + loginContext = LoginUtil.register(null, phone, null, null, token, typeId); //0 成功 4009 已注册 if(loginContext.getErrorcode().equals(0) || loginContext.getErrorcode().equals(4009)) { users.setLogincenterId(loginContext.getId()); @@ -620,7 +624,8 @@ public class UsersController extends BaseController { @RequestParam(value = "ksId", required = false) Integer ksId, @RequestParam(value = "name", required = false) String name, @RequestParam(value = "account", required = false)String account, - @RequestParam(value = "phone") String phone, + @RequestParam(value = "password", required = false) String password, + @RequestParam(value = "phone", required = false) String phone, @RequestParam(value = "enable", required = false) Integer enable, @RequestParam(value = "remarks", required = false) String remarks, @RequestParam(value = "roleIds") String roleIds) { @@ -631,14 +636,16 @@ public class UsersController extends BaseController { Users user = usersService.getUsers(loginState.getId()); - if ( StringUtils.isBlank(roleIds) || StringUtils.isBlank(phone) || null == user ) { + if (StringUtils.isBlank(roleIds) || null == user|| (StringUtils.isBlank(account) && StringUtils.isBlank(phone))) { ResultUtils.buildParameterErrorResultAndWrite(response); return; } - if (!isPhone(phone)) { + if( StringUtils.isNotBlank(phone) && !isPhone(phone)) { ResultUtils.buildParameterErrorResultAndWrite(response, "手机号格式不正确"); return; + } else if(StringUtils.isNotBlank(account) && StringUtils.isBlank(password)) { + password = defaultPwd; } if(deptId == null && ksId == null) { @@ -655,18 +662,32 @@ public class UsersController extends BaseController { return; }*/ if (user != null) { - - //检查注册账户是否存在 UsersQuery usersQuery = new UsersQuery(); - usersQuery.setPhone(phone); - usersQuery.setYn(YnEnums.YES.getId()); - List usersList = usersService.queryUsers(usersQuery); - if (usersList.size() != 0) { - Map map = new HashMap<>(); - map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); - map.put(ResultUtils.ERROR_MSG, "用户已存在"); - writeJson(response, JsonUtil.obj2JsonString(map)); - return; + if(StringUtils.isNotBlank(phone)) { + //检查注册账户是否存在 + usersQuery.setPhone(phone); + usersQuery.setYn(YnEnums.YES.getId()); + List usersList = usersService.queryUsers(usersQuery); + if (usersList.size() != 0) { + Map map = new HashMap<>(); + map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); + map.put(ResultUtils.ERROR_MSG, "该手机号已使用"); + writeJson(response, JsonUtil.obj2JsonString(map)); + return; + } + } + + if(StringUtils.isNotBlank(account)) { + usersQuery = new UsersQuery(); + usersQuery.setAccount(account); + usersQuery.setYn(YnEnums.YES.getId()); + if(0 != usersService.queryUsersCount(usersQuery)) { + Map map = new HashMap<>(); + map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); + map.put(ResultUtils.ERROR_MSG, "该账户已存在"); + writeJson(response, JsonUtil.obj2JsonString(map)); + return; + } } //准备添加数据 @@ -678,6 +699,7 @@ public class UsersController extends BaseController { users.setAccount(account); users.setPhone(phone); users.setEnable(enable); + users.setPwd(password); users.setRemarks(remarks); users.setKsId(ksId); users.setPublishId(user.getId()); @@ -688,8 +710,17 @@ public class UsersController extends BaseController { users.setLastLoginTime(new Date()); // users.setPwd(LoginUtil.md5(NumberUtils.getRandomString(6))); + LoginContext loginContext = null; + //关联登录中心ID - LoginContext loginContext = LoginUtil.register(phone, token, typeId); + if(StringUtils.isNotBlank(phone) || StringUtils.isNotBlank(account)) { + String pwd = null; + if(StringUtils.isNotBlank(password)) { + pwd = LoginUtil.md5(password).toUpperCase(); + } + loginContext = LoginUtil.register(null, phone,account, pwd, token, typeId); + } + //0 成功 4009 已注册 if(loginContext.getErrorcode().equals(0) || loginContext.getErrorcode().equals(4009)) { users.setLogincenterId(loginContext.getId()); @@ -722,103 +753,6 @@ public class UsersController extends BaseController { } - -// /** -// * 添加用户信息 -// */ -// @RequestMapping(value = "/users", method = RequestMethod.POST) -// @TokenRequired -// public void addUsers(HttpServletResponse response, -// HttpServletRequest request, -// @RequestParam(value = "type") Integer type, -// @RequestParam(value = "deptId") Integer deptId, -// @RequestParam(value = "orgId") Integer orgId, -// @RequestParam(value = "name", required = false) String name, -// @RequestParam(value = "account", required = false)String account, -// @RequestParam(value = "phone") String phone, -// @RequestParam(value = "enable") Integer enable, -// @RequestParam(value = "remarks", required = false) String remarks, -// @RequestParam(value = "roleIds") String roleIds) { -// -// -// //获取登录用户 -// LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); -// Users user = usersService.getUsersByLoginCenterId(loginState.getId()); -// -// Departments departments = departmentsService.getDepartments(deptId); -// Organization organization = organizationService.getOrganization(orgId); -// -// if (type == null || StringUtils.isBlank(roleIds) || deptId == null || -// StringUtils.isBlank(name) || StringUtils.isBlank(phone) || null == user || null == departments || null == organization) { -// ResultUtils.buildParameterErrorResultAndWrite(response); -// return; -// } -// -// if (user != null) { -// -// //检查注册账户是否存在 -// UsersQuery usersQuery = new UsersQuery(); -// usersQuery.setPhone(phone); -// List usersList = usersService.queryUsers(usersQuery); -// if (usersList.size() != 0) { -// Map map = new HashMap<>(); -// map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); -// map.put(ResultUtils.ERROR_MSG, "用户已存在"); -// writeJson(response, JsonUtil.obj2JsonString(map)); -// return; -// } -// -// //准备添加数据 -// Users users = new Users(); -// users.setType(type); -// users.setDeptId(deptId); -// users.setOrgId(orgId); -// users.setName(name); -// users.setAccount(account); -// users.setPhone(phone); -// users.setEnable(enable); -// users.setRemarks(remarks); -// users.setPublishId(user.getId()); -// users.setPublishName(user.getName()); -// users.setYn(YnEnums.YES.getId()); -// users.setModified(new Date()); -// users.setCreated(new Date()); -// users.setLastLoginTime(new Date()); -//// users.setPwd(LoginUtil.md5(NumberUtils.getRandomString(6))); -// -// //关联登录中心ID -// Integer loginCenterId = LoginUtil.register(phone, token, typeId); -// if(null == loginCenterId) { -// ResultUtils.buildResultAndWrite(response, ErrorCodeConstants.SYSTEM_ERROR, "服务器内部错误"); -// return; -// } -// users.setLogincenterId(loginCenterId); -// -// usersService.addUsers(users); -// -// -// //如有角色,则对用户角色中间表新增 -// UserRoleMaps userRoleMaps = new UserRoleMaps(); -// -// String[] roleArrayIds = roleIds.split(","); -// List user1 = usersService.queryUsers(usersQuery); -// for (String id : roleArrayIds) { -// Roles roles = rolesService.getRoles(Integer.valueOf(id)); -// if (roles == null || roles.getYn() == YnEnums.NO.getId()) { -// continue; -// } -// -// if (user1.get(0).getId() != null) { -// userRoleMaps.setRoleId(Integer.valueOf(Integer.valueOf(id))); -// userRoleMaps.setUserId(user1.get(0).getId()); -// userRoleMaps.setYn(YnEnums.YES.getId()); -// userRoleMapsService.addUserRoleMaps(userRoleMaps); -// } -// } -// ResultUtils.buildSuccessResultAndWrite(response); -// } -// } - /** * 用户修改 */ @@ -829,6 +763,7 @@ public class UsersController extends BaseController { @PathVariable(value = "id") Integer id, @RequestParam(value = "name",required = false) String name, @RequestParam(value = "account",required = false)String account, + @RequestParam(value = "password",required = false)String password, @RequestParam(value = "phone",required = false) String phone, @RequestParam(value = "enable",required = false) Integer enable, @RequestParam(value = "remarks",required = false) String remarks, @@ -855,6 +790,10 @@ public class UsersController extends BaseController { if(null!=users.getOtherAccount()&&"1".equals(user.getOtherAccount()+"")){ return; } + if(password.matches("^\\**$")) { + password = users.getPwd(); + } + //根据当前登录的用户判断是否 有管理员的权限 /* List list = userRoleMapsService.queryUserRoleName(loginState.getId()); if(CollectionUtils.isEmpty(list) ||!list.contains(ADMIN)){ @@ -873,35 +812,57 @@ public class UsersController extends BaseController { } - //修改了手机号,不能修改已存在的手机号 - if(!new Integer(1).equals(users.getOtherAccount()) && !phone.equals(users.getPhone())) { - //检查账户是否存在 - UsersQuery usersQuery = new UsersQuery(); - usersQuery.setPhone(phone); - usersQuery.setYn(YnEnums.YES.getId()); - List usersList = usersService.queryUsers(usersQuery); - if (0 < usersList.size()) { - Map map = new HashMap<>(); - map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); - map.put(ResultUtils.ERROR_MSG, "手机号已存在"); - writeJson(response, JsonUtil.obj2JsonString(map)); - return; - } + //修改了手机号, 帐号 密码 + if(!new Integer(1).equals(users.getOtherAccount())) { + if((StringUtils.isNotBlank(account) && !account.equals(users.getAccount())) || (StringUtils.isNotBlank(phone) && !phone.equals(users.getPhone())) || (StringUtils.isNotBlank(password) && !password.equals(users.getPwd()))) { + UsersQuery usersQuery = new UsersQuery(); + List usersList; + if(StringUtils.isNotBlank(phone) && !phone.equals(users.getPhone())) { + //检查手机号是否存在 + usersQuery.setPhone(phone); + usersQuery.setYn(YnEnums.YES.getId()); + usersList = usersService.queryUsers(usersQuery); + if (0 < usersList.size()) { + Map map = new HashMap<>(); + map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); + map.put(ResultUtils.ERROR_MSG, "手机号已存在"); + writeJson(response, JsonUtil.obj2JsonString(map)); + return; + } + } + if(StringUtils.isNotBlank(account) && !account.equals(users.getAccount())) { + //检查账户是否存在 + usersQuery = new UsersQuery(); + usersQuery.setAccount(account); + usersQuery.setYn(YnEnums.YES.getId()); + usersList = usersService.queryUsers(usersQuery); + if (0 < usersList.size()) { + Map map = new HashMap<>(); + map.put(ResultUtils.ERROR_CODE, ConstantInterface.PARAMETER_ERROR); + map.put(ResultUtils.ERROR_MSG, "该帐号已存在"); + writeJson(response, JsonUtil.obj2JsonString(map)); + return; + } + } - LoginContext loginContext = LoginUtil.register(phone, token, typeId); - //0 成功 4009 已注册 - if(loginContext.getErrorcode().equals(0) || loginContext.getErrorcode().equals(4009)) { - users.setPhone(phone); - users.setLogincenterId(loginContext.getId()); - } else { - ResultUtils.buildResultAndWrite(response, ErrorCodeConstants.SYSTEM_ERROR, loginContext.getErrormsg()); - return; + + + LoginContext loginContext = LoginUtil.register(users.getLogincenterId().toString(), phone, account, LoginUtil.md5(password).toUpperCase(), token, typeId); + //0 成功 4009 已注册 + if(loginContext.getErrorcode().equals(0) || loginContext.getErrorcode().equals(4009)) { + users.setPhone(phone); + users.setAccount(account); + users.setLogincenterId(loginContext.getId()); + } else { + ResultUtils.buildResultAndWrite(response, ErrorCodeConstants.SYSTEM_ERROR, loginContext.getErrormsg()); + return; + } } } + users.setPwd(password); users.setName(name); - users.setAccount(account); users.setEnable(enable); users.setRemarks(remarks); users.setModified(new Date()); @@ -912,24 +873,33 @@ public class UsersController extends BaseController { //如有角色,则对用户角色中间表先删除后新增 - if(null != roleIds) { + if(StringUtils.isNotBlank(roleIds)) { + + UserRoleMapsQuery userRoleMapsQuery = new UserRoleMapsQuery(); + userRoleMapsQuery.setUserId(users.getId()); + userRoleMapsQuery.setYn(YnEnums.YES.getId()); + List userRoleMapses = userRoleMapsService.queryUserRoleMaps(userRoleMapsQuery); + + String[] roleArrayIds = roleIds.split(","); //判断角色是否有更新 Boolean flag = false; - if(null == users.getRoles()) flag = true; + if(CollectionUtils.isEmpty(userRoleMapses) || roleArrayIds.length != userRoleMapses.size()) flag = true; if(!flag) { for (String s : roleArrayIds) { - for(Roles role : users.getRoles()) { - if(s.equals(role.getId().toString())) continue; - flag = true; + boolean exist = false; + for(UserRoleMaps role : userRoleMapses) { + if(s.equals(role.getRoleId().toString())) { + exist = true; + } } - if(flag) break; + if(!exist) break; } } if(flag) { Integer _userId = users.getId(); - UserRoleMapsQuery userRoleMapsQuery = new UserRoleMapsQuery(); + userRoleMapsQuery = new UserRoleMapsQuery(); userRoleMapsQuery.setUserId(_userId); List roleMapsList = userRoleMapsService.queryUserRoleMaps(userRoleMapsQuery); for (UserRoleMaps userRoleMaps : roleMapsList) { @@ -1099,10 +1069,16 @@ public class UsersController extends BaseController { ResultUtils.buildParameterErrorResultAndWrite(response, "用户ID不存在"); return; } - users.setPwd(LoginUtil.md5("123456")); + users.setPwd(defaultPwd); users.setModified(new Date()); usersService.updateUsers(users); - ResultUtils.buildSuccessResultAndWrite(response); + LoginContext loginContext = LoginUtil.register(users.getLogincenterId().toString(), null, null, LoginUtil.md5(defaultPwd).toUpperCase(), token, typeId); + if(loginContext.getErrorcode().equals(0)) { + ResultUtils.buildSuccessResultAndWrite(response); + } else { + ResultUtils.buildResultAndWrite(response,ErrorCodeConstants.SYSTEM_ERROR, "系统错误"); + } + } @RequestMapping(value = "/logout", method = RequestMethod.GET) diff --git a/platform-operate-api/src/main/resources/database.properties b/platform-operate-api/src/main/resources/database.properties index cb53c1e..1afd5b7 100644 --- a/platform-operate-api/src/main/resources/database.properties +++ b/platform-operate-api/src/main/resources/database.properties @@ -36,4 +36,5 @@ token.prefix=member login.typeId=2 -login.token=265a841b-9bb5-434a-8c2b-e78df86fc45d \ No newline at end of file +login.token=265a841b-9bb5-434a-8c2b-e78df86fc45d +login.defaultPwd=123456 \ No newline at end of file