diff --git a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java index 0dbedc9..970b095 100644 --- a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java +++ b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java @@ -5,7 +5,6 @@ import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; import com.manage.entity.Power_Dept; import com.manage.entity.Power_Menu; -import com.manage.entity.Power_User; import com.manage.service.Power_DeptService; import com.manage.service.Power_MenuService; import com.manage.service.Power_UserService; @@ -59,38 +58,42 @@ public class methodForEmrMedical { @Value("${EMRMEDICALRECORD_PORT}") private String port; + @Value("8081") + private String port2; + @Value("${TOKEN_EXPIRE_TIME}") private long TOKEN_EXPIRE_TIME; - /** * 2.1 - * @ProjectName: getUserByUserName - * @Description: 获取用户 - * @Param 无 - * @Return getMenusByUserIdAndSysFlag - * @Author: xuhx - * @CreateDate: 20121/7/2 10:00 - * @UpdateUser: 更新者 + * + * @ProjectName: getUserByUserName + * @Description: 获取用户 + * @Param 无 + * @Return getMenusByUserIdAndSysFlag + * @Author: xuhx + * @CreateDate: 20121/7/2 10:00 + * @UpdateUser: 更新者 * @UpdateDate: */ - @RequestMapping(value = "getUserByUserName",method = RequestMethod.GET) + @RequestMapping(value = "getUserByUserName", method = RequestMethod.GET) @ResponseBody - public Msg getUser(String userName){ + public Msg getUser(String userName) { Power_UserVo user = powerUserService.selectByUserName(userName); - if(user!=null){ - return Msg.success().add("user",user); - }else{ + if (user != null) { + return Msg.success().add("user", user); + } else { return Msg.fail("没有此用户信息!!"); } } + /* * 单点登录 * author xuhx * */ - @RequestMapping(value = "login",method = RequestMethod.GET,produces = "text/html;charset=utf-8") + @RequestMapping(value = "login", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String login(String sessionID, HttpServletRequest request, HttpServletResponse response) throws Exception { String result = ""; @@ -111,8 +114,87 @@ public class methodForEmrMedical { int start = returnMessage.indexOf("") + 17; int end = returnMessage.indexOf(""); //传进来的id已失效,无法获取用户信息 - if(start!=16&&end!=-1){ - String userName = returnMessage.substring(start, end); + if (start != 16 && end != -1) { + String userName = returnMessage.substring(start, end); + //根据登录名获取用户(需要确保用户登录名唯一) + Power_UserVo user = powerUserService.selectByUserName(userName); + if (user != null) { + String password = MD5.JM(Base64.decode(user.getUserPwd())); + if (password != null && !"".equals(password)) { + String date = String.valueOf(DateUtils.getDate()); + //加密(此部分代码来自FontController的getToken方法,用来获取token及相关操作) + String token = Base64.encode(MD5.KL(date)); + List list = null; + List menuList = new ArrayList<>(); + Set menus = new TreeSet<>(); + if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { + list = powerMenuService.queryAllPowerMenu(null, user.getRoleId()); + } else { + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(), null); + } + if (null != list && !list.isEmpty()) { + for (Power_Menu power_menu : list) { + User_Dept_Menu deptMenu = new User_Dept_Menu(); + String menuUrl = power_menu.getMenuUrl(); + if (StringUtils.isNotBlank(menuUrl)) { + BeanUtils.copyProperties(power_menu, deptMenu); + deptMenu.setMethodParent(power_menu.getParentId()); + menuList.add(deptMenu); + } + if (StringUtils.isNotBlank(power_menu.getMethod())) { + menus.add(power_menu.getMenuUrl()); + } + } + } + user.setMenuList(menuList); + user.setMenus(menus); + + //设置科室 + StringBuilder power_depts = new StringBuilder(); + List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for (int j = 0; j < power_depts1.size(); j++) { + if (j < power_depts1.size() - 1) { + power_depts.append(power_depts1.get(j).getDeptName()).append(","); + } else { + power_depts.append(power_depts1.get(j).getDeptName()); + } + } + user.setRemark(power_depts.toString()); + //移除缓存 + CacheManager.removeCacheByObject(user); + CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME)); + if (!"".equals(token) && token != null) { + //返回跳转url + result = "http://" + ip + ":" + port + "/emr_medical_record/login?token=" + token + "&userName=" + userName; + response.sendRedirect(result); + } else { + result = "获取登录token失败,请检查数据!!"; + } + } else { + result = "无法获取用户密码!!"; + } + } else { + result = "登录用户不存在!!"; + } + } else { + result = "sessionID已失效,请重新登录"; + } + + } + return result; + } + + + /* + * 单点登录,跳转病案归档系统 + * author xm + * 需要传入userName,即工号 + * */ + @RequestMapping(value = "loginToEmrMedicalRecord", method = RequestMethod.GET, produces = "text/html;charset=utf-8") + @ResponseBody + public String loginToEmrMedicalRecord(String userName, HttpServletRequest request, HttpServletResponse response) throws Exception { + String result = ""; + if (userName != null && !"".equals(userName)) { //根据登录名获取用户(需要确保用户登录名唯一) Power_UserVo user = powerUserService.selectByUserName(userName); if (user != null) { @@ -125,11 +207,11 @@ public class methodForEmrMedical { List menuList = new ArrayList<>(); Set menus = new TreeSet<>(); if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,user.getRoleId()); + list = powerMenuService.queryAllPowerMenu(null, user.getRoleId()); } else { - list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null); + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(), null); } - if(null != list && !list.isEmpty()){ + if (null != list && !list.isEmpty()) { for (Power_Menu power_menu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); String menuUrl = power_menu.getMenuUrl(); @@ -145,24 +227,23 @@ public class methodForEmrMedical { } user.setMenuList(menuList); user.setMenus(menus); - //设置科室 StringBuilder power_depts = new StringBuilder(); List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId()); - for(int j=0;j list = null; + List menuList = new ArrayList<>(); + Set menus = new TreeSet<>(); + if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { + list = powerMenuService.queryAllPowerMenu(null, user.getRoleId()); + } else { + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(), null); + } + if (null != list && !list.isEmpty()) { + for (Power_Menu power_menu : list) { + User_Dept_Menu deptMenu = new User_Dept_Menu(); + String menuUrl = power_menu.getMenuUrl(); + if (StringUtils.isNotBlank(menuUrl)) { + BeanUtils.copyProperties(power_menu, deptMenu); + deptMenu.setMethodParent(power_menu.getParentId()); + menuList.add(deptMenu); + } + if (StringUtils.isNotBlank(power_menu.getMethod())) { + menus.add(power_menu.getMenuUrl()); + } + } + } + user.setMenuList(menuList); + user.setMenus(menus); + //设置科室 + StringBuilder power_depts = new StringBuilder(); + List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for (int j = 0; j < power_depts1.size(); j++) { + if (j < power_depts1.size() - 1) { + power_depts.append(power_depts1.get(j).getDeptName()).append(","); + } else { + power_depts.append(power_depts1.get(j).getDeptName()); + } + } + user.setRemark(power_depts.toString()); + //移除缓存 + CacheManager.removeCacheByObject(user); + CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME)); + if (!"".equals(token) && token != null) { + //返回跳转url + result = "http://" + ip + ":" + port2 + "/emr_record/login?token=" + token + "&userName=" + userName; + response.sendRedirect(result); + } else { + result = "获取登录token失败,请检查数据!!"; + } + } else { + result = "无法获取用户密码!!"; + } + } else { + result = "登录用户不存在!!"; + } + } else { + result = "请传入工号!!"; } return result; } -} +} \ No newline at end of file